mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-30 22:25:19 +00:00 
			
		
		
		
	Write a new feed each time, reading from versions.json
This commit is contained in:
		| @@ -1,83 +1,57 @@ | |||||||
| #!/usr/bin/env python3 | #!/usr/bin/env python3 | ||||||
|  |  | ||||||
| import sys |  | ||||||
|  |  | ||||||
| import xml.etree.ElementTree as ET |  | ||||||
| import xml.dom.minidom as minidom |  | ||||||
|  |  | ||||||
| import datetime | import datetime | ||||||
|  |  | ||||||
| if len(sys.argv) <= 1: | import textwrap | ||||||
| 	print('Specify the version number as parameter') |  | ||||||
| 	sys.exit() |  | ||||||
| version = sys.argv[1] |  | ||||||
|  |  | ||||||
| out_file = "atom.atom" | import json | ||||||
| in_file = out_file |  | ||||||
|  | atom_template=textwrap.dedent("""\ | ||||||
|  | 								<?xml version='1.0' encoding='utf-8'?> | ||||||
|  | 									<atom:feed xmlns:atom="http://www.w3.org/2005/Atom"> | ||||||
|  | 									<atom:subtitle>Updates feed.</atom:subtitle> | ||||||
|  | 									<atom:id>youtube-dl-updates-feed</atom:id> | ||||||
|  | 									<atom:updated>@TIMESTAMP@</atom:updated> | ||||||
|  | 									@ENTRIES@ | ||||||
|  | 								</atom:feed>""") | ||||||
|  |  | ||||||
|  | entry_template=textwrap.dedent(""" | ||||||
|  | 								<atom:entry> | ||||||
|  | 									<atom:id>youtube-dl-@VERSION@</atom:id> | ||||||
|  | 									<atom:title>New version @VERSION@</atom:title> | ||||||
|  | 									<atom:link href="http://rg3.github.com/youtube-dl" /> | ||||||
|  | 									<atom:content type="xhtml"> | ||||||
|  | 										<div xmlns="http://www.w3.org/1999/xhtml"> | ||||||
|  | 											Downloads available at <a href="http://youtube-dl.org/downloads/@VERSION@/">http://youtube-dl.org/downloads/@VERSION@/</a> | ||||||
|  | 										</div> | ||||||
|  | 									</atom:content> | ||||||
|  | 									<atom:author> | ||||||
|  | 										<atom:name>The youtube-dl maintainers</atom:name> | ||||||
|  | 									</atom:author> | ||||||
|  | 									<atom:updated>@TIMESTAMP@</atom:updated> | ||||||
|  | 								</atom:entry> | ||||||
|  | 								""") | ||||||
|  |  | ||||||
| now = datetime.datetime.now() | now = datetime.datetime.now() | ||||||
| now_iso = now.isoformat() | now_iso = now.isoformat() | ||||||
|  |  | ||||||
| atom_url = "http://www.w3.org/2005/Atom" | atom_template = atom_template.replace('@TIMESTAMP@',now_iso) | ||||||
|  |  | ||||||
| #Some utilities functions | entries=[] | ||||||
| def atom_tag(tag): |  | ||||||
| 	#Return a tag in the atom namespace |  | ||||||
| 	return "{{{}}}{}".format(atom_url,tag) |  | ||||||
|  |  | ||||||
| def atom_SubElement(parent,tag): | versions_info = json.load(open('update/versions.json')) | ||||||
| 	return ET.SubElement(parent,atom_tag(tag)) | versions = list(versions_info['versions'].keys()) | ||||||
|  | versions.sort() | ||||||
|  |  | ||||||
| class YDLUpdateAtomEntry(object): | for v in versions: | ||||||
| 	def __init__(self,parent,title,id ,link, downloads_link): | 	entry = entry_template.replace('@TIMESTAMP@',v.replace('.','-')) | ||||||
| 		self.entry = entry = atom_SubElement(parent, "entry") | 	entry = entry.replace('@VERSION@',v) | ||||||
| 		#We set the values: | 	entries.append(entry) | ||||||
| 		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 | entries_str = textwrap.indent(''.join(entries), '\t') | ||||||
| 		atom_author = atom_SubElement(entry, "author") | atom_template = atom_template.replace('@ENTRIES@', entries_str) | ||||||
| 		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") | with open('update/atom.atom','w',encoding='utf-8') as atom_file: | ||||||
| 		up = parent.find(atom_tag("updated")) | 	atom_file.write(atom_template) | ||||||
| 		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,7 +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/update-feed.py" | ||||||
|     "$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
	 Jaime Marquínez Ferrándiz
					Jaime Marquínez Ferrándiz