mirror of
https://github.com/martinrotter/rssguard.git
synced 2024-12-29 09:31:24 +01:00
40 lines
2.0 KiB
Python
40 lines
2.0 KiB
Python
# Use this script as "post-process" script, let RSS Guard download
|
|
# the "releases" file itself.
|
|
#
|
|
# This script expects one command line argument:
|
|
# true -> ignore prereleases
|
|
# false -> include prereleases
|
|
#
|
|
# Sample input file whose contents must be provided as stdin: https://api.github.com/repos/<user>/<repo>/releases
|
|
#
|
|
# This script produces JSON feed.
|
|
|
|
import re
|
|
import json
|
|
import sys
|
|
import distutils.util
|
|
from datetime import datetime
|
|
|
|
leave_out_prereleases = distutils.util.strtobool(sys.argv[1])
|
|
input_data = sys.stdin.read()
|
|
json_data = json.loads(input_data)
|
|
|
|
json_feed = "{{\"title\": \"{title}\", \"items\": [{items}]}}"
|
|
items = list()
|
|
|
|
for rel in json_data:
|
|
if rel['prerelease'] and leave_out_prereleases:
|
|
continue
|
|
|
|
article_author = json.dumps(rel["author"]["login"])
|
|
article_url = json.dumps(rel["html_url"])
|
|
article_title = json.dumps(rel["tag_name"])
|
|
article_time = json.dumps(datetime.strptime(rel["published_at"], "%Y-%m-%dT%H:%M:%SZ").isoformat())
|
|
items.append("{{\"title\": {title}, \"authors\": [{{\"name\": {author}}}], \"content_html\": {html}, \"url\": {url}, \"date_published\": {date}}}".format(title=article_title,
|
|
html=article_title,
|
|
url=article_url,
|
|
date=article_time,
|
|
author=article_author))
|
|
|
|
json_feed = json_feed.format(title = "Releases", items = ", ".join(items))
|
|
print(json_feed) |