From 3c2b49fc7443ae3b1ab5a1a08ad064faec2efce6 Mon Sep 17 00:00:00 2001 From: sqozz Date: Sun, 1 Apr 2018 01:14:48 +0200 Subject: [PATCH] Add category resolver --- indexer.py | 48 +++++++++++++++++++++++++++++------------- templates/details.html | 2 +- 2 files changed, 34 insertions(+), 16 deletions(-) diff --git a/indexer.py b/indexer.py index ee516d5..ce4f97b 100644 --- a/indexer.py +++ b/indexer.py @@ -15,33 +15,48 @@ LANGUAGES = ['en', 'de'] settings = None -def get_categories(): - cats = settings["categories"] - for c in cats: - c["label"] = str(lazy_gettext(c["label"])) - for s in c["subcategories"]: - s["label"] = str(lazy_gettext(s["label"])) - return cats + +class Categories(): + def __init__(self): + + self.categories = settings["categories"] + for c in self.categories: + c["label"] = str(lazy_gettext(c["label"])) + for s in c["subcategories"]: + s["label"] = str(lazy_gettext(s["label"])) + + def find(self, category, subcategory = None): + cat_name = "" + sub_name = "" + for cat in self.categories: + if cat["id"] == category: + cat_name = cat["label"] + if subcategory != None: + for sub in cat["subcategories"]: + if sub["id"] == subcategory: + sub_name = sub["label"] + return (cat_name, sub_name) + @app.route("/") def index(): - return render_template("search.html", categories=get_categories()) + return render_template("search.html", categories=categories.categories) @app.route("/categories") def categorys(): - return render_template("categories.html", categories=get_categories()) + return render_template("categories.html", categories=categories.categories) @app.route("/create", methods=['GET','POST']) def create(): if request.method == "GET": - return render_template("create.html", categories=get_categories(), errors=None) + return render_template("create.html", categories=categories.categories, errors=None) elif request.method == "POST": newTorrent = createNewTorrent(request) if len(newTorrent.errors) == 0: message = _("Successfully created torrent {}").format(newTorrent.fileid, newTorrent.fileid[:-20]) - return render_template("create.html", categories=get_categories(), messages=[message]) + return render_template("create.html", categories=categories.categories, messages=[message]) else: - return render_template("create.html", categories=get_categories(), errors=newTorrent.errors) + return render_template("create.html", categories=categories.categories, errors=newTorrent.errors) @app.route("/download/") def download(filename): @@ -86,14 +101,14 @@ def search(): r = row[0:2] + (size(float(row[2])) , ) + row[3:] results.append(r) - return render_template("result.html", results=results, categories=get_categories()) + return render_template("result.html", results=results, categories=categories.categories) @app.route("/details", methods=['GET']) def details(): info_hash = request.args["h"] tf = TorrentFile(fileid=info_hash) tf.fromDb() - return render_template("details.html", categories=get_categories(), torrent=tf) + return render_template("details.html", categories=categories.categories, torrent=tf) def scrapeAll(): TRACKER_URL = "http://tracker.lootbox.cf:6969/" @@ -106,6 +121,8 @@ def init(): with open("settings.json") as settingsJson: settings = json.load(settingsJson) initDb() + global categories + categories = Categories() #scrapeAll() def initDb(): @@ -142,7 +159,7 @@ def createNewTorrent(reuqest): if a in [b'udp://tracker.lootbox.cf:6969/announce', b'udp://tracker.lootbox.cf:6969/announce/',b'udp://tracker.lootbox.cf/announce',b'udp://tracker.lootbox.cf/announce/']: is_ours = True break - + if not is_ours: newTFile.errors = ["Rejecting torrent {}, as it does not use our tracker".format(info_hash, info_hash[:-20])] return newTFile @@ -253,6 +270,7 @@ class TorrentFile(): self.name = (base64.b64decode(res["name"])).decode() self.category = res["category"] self.subcategory = res["subcategory"] + self.category_string, self.subcategory_string = categories.find(int(self.category), int(self.subcategory)) self.description = (base64.b64decode(res["description"])).decode() self.audioquality_description = (base64.b64decode(res["audioquality_description"])).decode() self.videoquality_description = (base64.b64decode(res["videoquality_description"])).decode() diff --git a/templates/details.html b/templates/details.html index 1efcb6a..e4d82b2 100644 --- a/templates/details.html +++ b/templates/details.html @@ -8,7 +8,7 @@ vim: ts=2 noexpandtab
-

{{ torrent.category }} » {{ torrent.subcategory}} » {{ torrent.name }}

+

{{ torrent.category_string }} » {{ torrent.subcategory_string }} » {{ torrent.name }}

.torrent-file: