mirror of
				https://github.com/ytdl-org/youtube-dl.git
				synced 2025-10-29 09:26:20 -07:00 
			
		
		
		
	Add an Atom feed generator in devscripts
This commit is contained in:
		
							
								
								
									
										83
									
								
								devscripts/gh-pages/update-feed.py
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										83
									
								
								devscripts/gh-pages/update-feed.py
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,83 @@ | |||||||
|  | #!/usr/bin/env python3 | ||||||
|  |  | ||||||
|  | import sys | ||||||
|  |  | ||||||
|  | import xml.etree.ElementTree as ET | ||||||
|  | import xml.dom.minidom as minidom | ||||||
|  |  | ||||||
|  | import datetime | ||||||
|  |  | ||||||
|  | if len(sys.argv) <= 1: | ||||||
|  | 	print('Specify the version number as parameter') | ||||||
|  | 	sys.exit() | ||||||
|  | version = sys.argv[1] | ||||||
|  |  | ||||||
|  | out_file = "atom.atom" | ||||||
|  | in_file = out_file | ||||||
|  |  | ||||||
|  | now = datetime.datetime.now() | ||||||
|  | now_iso = now.isoformat() | ||||||
|  |  | ||||||
|  | atom_url = "http://www.w3.org/2005/Atom" | ||||||
|  |  | ||||||
|  | #Some utilities functions | ||||||
|  | def atom_tag(tag): | ||||||
|  | 	#Return a tag in the atom namespace | ||||||
|  | 	return "{{{}}}{}".format(atom_url,tag) | ||||||
|  | 	 | ||||||
|  | def atom_SubElement(parent,tag): | ||||||
|  | 	return ET.SubElement(parent,atom_tag(tag)) | ||||||
|  | 	 | ||||||
|  | class YDLUpdateAtomEntry(object): | ||||||
|  | 	def __init__(self,parent,title,id ,link, downloads_link): | ||||||
|  | 		self.entry = entry = atom_SubElement(parent, "entry") | ||||||
|  | 		#We set the values: | ||||||
|  | 		atom_id = atom_SubElement(entry, "id") | ||||||
|  | 		atom_id.text = id | ||||||
|  | 		atom_title = atom_SubElement(entry, "title") | ||||||
|  | 		atom_title.text = title | ||||||
|  | 		atom_link = atom_SubElement(entry, "link") | ||||||
|  | 		atom_link.set("href", link) | ||||||
|  | 		atom_content = atom_SubElement(entry, "content") | ||||||
|  | 		atom_content.set("type", "xhtml") | ||||||
|  | 		#Here we go: | ||||||
|  | 		div = ET.SubElement(atom_content,"div") | ||||||
|  | 		div.set("xmlns", "http://www.w3.org/1999/xhtml") | ||||||
|  | 		div.text = "Downloads available at " | ||||||
|  | 		a = ET.SubElement(div, "a") | ||||||
|  | 		a.set("href", downloads_link) | ||||||
|  | 		a.text = downloads_link | ||||||
|  | 		 | ||||||
|  | 		#Author info | ||||||
|  | 		atom_author = atom_SubElement(entry, "author") | ||||||
|  | 		author_name = atom_SubElement(atom_author, "name") | ||||||
|  | 		author_name.text = "The youtube-dl maintainers" | ||||||
|  | 		#If someone wants to put an email adress: | ||||||
|  | 		#author_email = atom_SubElement(atom_author, "email") | ||||||
|  | 		#author_email.text = the_email | ||||||
|  | 		 | ||||||
|  | 		atom_updated = atom_SubElement(entry,"updated") | ||||||
|  | 		up = parent.find(atom_tag("updated")) | ||||||
|  | 		atom_updated.text = up.text = now_iso | ||||||
|  | 	 | ||||||
|  | 	@classmethod | ||||||
|  | 	def entry(cls,parent, version): | ||||||
|  | 		update_id = "youtube-dl-{}".format(version) | ||||||
|  | 		update_title = "New version {}".format(version) | ||||||
|  | 		downloads_link = "http://youtube-dl.org/downloads/{}/".format(version) | ||||||
|  | 		#There's probably no better link | ||||||
|  | 		link = "http://rg3.github.com/youtube-dl" | ||||||
|  | 		return cls(parent, update_title, update_id, link, downloads_link) | ||||||
|  | 		 | ||||||
|  |  | ||||||
|  | atom = ET.parse(in_file) | ||||||
|  |  | ||||||
|  | root = atom.getroot() | ||||||
|  |  | ||||||
|  | #Otherwise when saving all tags will be prefixed with a 'ns0:' | ||||||
|  | ET.register_namespace("atom",atom_url) | ||||||
|  |  | ||||||
|  | update_entry = YDLUpdateAtomEntry.entry(root, version) | ||||||
|  |  | ||||||
|  | #Find some way of pretty printing | ||||||
|  | atom.write(out_file,encoding="utf-8",xml_declaration=True) | ||||||
| @@ -69,6 +69,7 @@ ROOT=$(pwd) | |||||||
|     ORIGIN_URL=$(git config --get remote.origin.url) |     ORIGIN_URL=$(git config --get remote.origin.url) | ||||||
|     cd build/gh-pages |     cd build/gh-pages | ||||||
|     "$ROOT/devscripts/gh-pages/add-version.py" $version |     "$ROOT/devscripts/gh-pages/add-version.py" $version | ||||||
|  |     "$ROOT/devscripts/gh-pages/update-feed.py" $version | ||||||
|     "$ROOT/devscripts/gh-pages/sign-versions.py" < "$ROOT/updates_key.pem" |     "$ROOT/devscripts/gh-pages/sign-versions.py" < "$ROOT/updates_key.pem" | ||||||
|     "$ROOT/devscripts/gh-pages/generate-download.py" |     "$ROOT/devscripts/gh-pages/generate-download.py" | ||||||
|     "$ROOT/devscripts/gh-pages/update-copyright.py" |     "$ROOT/devscripts/gh-pages/update-copyright.py" | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user