diff options
author | garret1317 <garret@airmail.cc> | 2025-06-05 18:06:37 +0100 |
---|---|---|
committer | garret1317 <garret@airmail.cc> | 2025-06-05 18:06:37 +0100 |
commit | 50bfb27bd17236ccdc5dadf87b461c418edf2508 (patch) | |
tree | 998f75990da8cea18a6d4259ca6444846b70cf8a /misc/generate_changelog.py | |
parent | 12801d5e2648b1e9cec2a9c3dfa5a77668ed638b (diff) | |
download | yt-dlp-rajiko-50bfb27bd17236ccdc5dadf87b461c418edf2508.tar.gz yt-dlp-rajiko-50bfb27bd17236ccdc5dadf87b461c418edf2508.tar.bz2 yt-dlp-rajiko-50bfb27bd17236ccdc5dadf87b461c418edf2508.zip |
add useful scripts used in release/development
Diffstat (limited to 'misc/generate_changelog.py')
-rwxr-xr-x | misc/generate_changelog.py | 116 |
1 files changed, 0 insertions, 116 deletions
diff --git a/misc/generate_changelog.py b/misc/generate_changelog.py deleted file mode 100755 index 1bce073..0000000 --- a/misc/generate_changelog.py +++ /dev/null @@ -1,116 +0,0 @@ -#!/usr/bin/env python3 -import email.utils -import feedgenerator - -def parse_changelog(lines): - got_version = False - got_date = False - got_url = False - done_remarks = False - releases = [] - release = {} - release_remarks = [] - release_changes = [] - current_change = "" - - for idx, line in enumerate(lines): - line = line.rstrip() - - if not got_version: - got_version = True - release["version"] = line - continue - - if not got_date: - release["date"] = email.utils.parsedate_to_datetime(line) - got_date = True - continue - - key, sep, val = line.partition(": ") - if key in ["url", "sha256", "released"] and val != "": - release[key] = val - continue - - if not done_remarks: - if line == "": - done_remarks = True - release["remarks"] = release_remarks - release_remarks = [] - continue - else: - release_remarks.append(line) - continue - - if line != "": - release_changes.append(line.rstrip()) - - if idx + 1 != len(lines): - continue - - release["changes"] = release_changes - if release.get("released") != "no": - releases.append(release) - - got_version = False - got_date = False - done_remarks = False - release = {} - release_changes = [] - - return releases - -def generate_rss_feed(releases): - feed = feedgenerator.Rss201rev2Feed( - title="yt-dlp-rajiko changelog", - description="Notifications for new yt-dlp-rajiko releases, with changelogs", - link="https://427738.xyz/yt-dlp-rajiko/", - language="en-GB", - ttl=180, # 3 hours - ) - - for release in releases: - title = "yt-dlp-rajiko " + release["version"] + " has been released" - description = "" - description += "<p>" - for remark in release["remarks"]: - description += remark - description += "<br/>" - description += "</p>" - description += "<p>This release:</p>\n" - description += "<ul>" - for change in release["changes"]: - description += "<li>" - description += change - description += "</li>\n" - description += "</ul></p>" - - if release.get("url"): - if release["version"] != "1.0": - description += "\n<p>If you use pip, you should be able to upgrade with <code>pip install yt-dlp-rajiko --upgrade --extra-index-url https://427738.xyz/yt-dlp-rajiko/pip/</code>.<br>" - description += "If you installed manually, you can download the updated <code>.whl</code> from this post's link." - if release.get("sha256"): - description += " The SHA256 checksum should be <code>" - description += release.get("sha256") - description += "</code>." - description += "</p>" - else: - description += '\n<p>Please see <a href="https://427738.xyz/yt-dlp-rajiko/#install">the homepage</a> for initial installation instructions.</p>' - - feed.add_item( - title=title, - description=description, - link=release.get("url"), - pubdate=release["date"] - ) - return feed - -if __name__ == "__main__": - with open("CHANGELOG") as f: - releases = parse_changelog(f.readlines()) - - feed = generate_rss_feed(releases) - feed_contents = feed.writeString("utf-8") - feed_contents = feed_contents.replace("<rss", '<?xml-stylesheet href="rss-style.xsl" type="text/xsl"?>\n<rss') - - with open('CHANGELOG.xml', 'w') as fp: - fp.write(feed_contents) |