From bbe362b7633a9dd1ac65632ddf37b6b87987f89a Mon Sep 17 00:00:00 2001 From: Xavi Ivars Date: Thu, 12 Oct 2023 00:27:03 +0200 Subject: [PATCH] Fedora --- fedora/__init__.py | 38 ++++++++++++++++++++++++++++++++++++++ handler.py | 11 +++++++++++ 2 files changed, 49 insertions(+) create mode 100644 fedora/__init__.py diff --git a/fedora/__init__.py b/fedora/__init__.py new file mode 100644 index 0000000..9b38cde --- /dev/null +++ b/fedora/__init__.py @@ -0,0 +1,38 @@ +import requests +from cachetools import cached, TTLCache + +from utils import download_data, add_program + +add_program("fedora", 'fedora', 'fedora') + + +@cached(cache=TTLCache(maxsize=10, ttl=300)) +def get(): + + d = get_fedora() + + version = d['version'] + + return [ + download_data( + f'Fedora {version} - Live ISO', + url=d['link'], + os='linux', + get_size=True + ) + ] + +def get_fedora(): + url = 'https://fedoraproject.org/releases.json' + + r = requests.get(url) + + js = r.json() + + stable = False + + stable = list(filter(lambda x: 'Beta' not in x['version'], js)) + stable = list(filter(lambda x: x['arch'] == 'x86_64' and x['variant']=='Workstation', stable)) + + if len(stable) > 0: + return stable[0] diff --git a/handler.py b/handler.py index 1eb413b..32684ec 100644 --- a/handler.py +++ b/handler.py @@ -2,6 +2,7 @@ import calibre import debian +import fedora import notepadplusplus import sevenzip import tor @@ -168,6 +169,16 @@ def debian_route(): return "NoData", 404 + +@app.route("/fedora") +def fedora_route(): + r = fedora.get() + if r is not None: + return __jsonify(r) + else: + return "NoData", 404 + + def __jsonify(r): r = sorted(r, key=lambda x: x['download_os'], reverse=True) return jsonify(r)