diff --git a/roles/torrent/files/torrent-generator/torrent-generator b/roles/torrent/files/torrent-generator/torrent-generator index 73b62b5837..35b5274d41 100755 --- a/roles/torrent/files/torrent-generator/torrent-generator +++ b/roles/torrent/files/torrent-generator/torrent-generator @@ -20,6 +20,7 @@ import sys import glob import time import operator +import simplejson timeformat = "%Y-%m-%d" rssformat = "%a, %d %b %Y %H:%M:%S" @@ -67,7 +68,6 @@ def do_html_output(config, groups): myout.close() def do_rss_output(config, groups): - myout = open(config.rssout, 'w') with open(config.rssheader) as head: myout.write(head.read()) @@ -83,8 +83,12 @@ def do_rss_output(config, groups): with open(config.rssfooter) as foot: myout.write(foot.read()) myout.close() - - + +def do_json_output(config, groups): + myout = open(config.jsonout, 'w') + myout.write(simplejson.dumps(groups, default=vars)) + myout.close() + class Group: def __init__(self, name, date): self.name = name @@ -119,6 +123,7 @@ class Config: self.rssfooter = cpobj.get('main', 'rssfooter') self.htmlout = cpobj.get('main', 'htmlout') self.rssout = cpobj.get('main', 'rssout') + self.jsonout = cpobj.get('main', 'jsonout') except configparser.NoOptionError as e: print("Config file missing required option:", e, file=sys.stderr) sys.exit(1) @@ -174,6 +179,7 @@ def main(): do_html_output(config, sortgroups) do_rss_output(config, sortgroups) + do_json_output(config, sortgroups) if __name__ == "__main__": diff --git a/roles/torrent/files/torrent_generator.conf b/roles/torrent/files/torrent_generator.conf index 4e56c18cf9..96f82b2a3b 100644 --- a/roles/torrent/files/torrent_generator.conf +++ b/roles/torrent/files/torrent_generator.conf @@ -7,4 +7,5 @@ rssheader=/srv/torrent/torrent-generator/head.rss rssfooter=/srv/torrent/torrent-generator/foot.rss htmlout=/srv/web/index.html rssout=/srv/web/rss20.xml +jsonout=/srv/web/torrents.json