From 67d1ea9c61a4f1999aaa4957236e78674b1419df Mon Sep 17 00:00:00 2001 From: Onuralp SEZER Date: Feb 26 2022 22:28:50 +0000 Subject: concurrent call for URLS and fetch releases.json for get latest fedora version and version-1 Signed-off-by: Onuralp SEZER --- diff --git a/main.py b/main.py index bf532d6..9cf9e09 100644 --- a/main.py +++ b/main.py @@ -1,19 +1,24 @@ from matrix_client.client import MatrixClient import requests import configparser +import concurrent.futures class MClient: def __init__(self): - self.versions: list = ["rawhide", "f35", "f34"] + self.versions: list = ["rawhide"] self.plasma_versions: list = [] self.kf5_versions: list = [] self.qt5_versions: list = [] - self.place_holder: str = "" self.url_list: list = ["https://src.fedoraproject.org/rpms/plasma-desktop/raw/{0}/f/plasma-desktop.spec", "https://src.fedoraproject.org/rpms/kf5/raw/{0}/f/kf5.spec", "https://src.fedoraproject.org/rpms/qt5-qtbase/raw/{0}/f/qt5-qtbase.spec"] + def get_fedora_version(self) -> None: + reqs = requests.get("https://getfedora.org/releases.json") + self.versions.append("f"+str(reqs.json()[0]["version"])) + self.versions.append("f"+str(int(reqs.json()[0]["version"])-1)) + def get_package_versions(self, url: str) -> list: ver_list: list = [] for i in self.versions: @@ -26,9 +31,18 @@ class MClient: return ver_list def update_topic(self) -> None: - self.plasma_versions = self.get_package_versions(self.url_list[0]) - self.kf5_versions = self.get_package_versions(self.url_list[1]) - self.qt5_versions = self.get_package_versions(self.url_list[2]) + results: list = [] + self.get_fedora_version() + with concurrent.futures.ThreadPoolExecutor() as executor: + futures = [] + for url in self.url_list: + futures.append(executor.submit(self.get_package_versions, url=url)) + for future in concurrent.futures.as_completed(futures): + results.append(future.result()) + + self.plasma_versions = results[0] + self.kf5_versions = results[1] + self.qt5_versions = results[2] topic: str = f"Fedora KDE | https://fedoraproject.org/wiki/SIGs/KDE | Current: Rawhide: " \ f"plasma-{self.plasma_versions[0]}," \ @@ -37,12 +51,17 @@ class MClient: f"qt5-{self.qt5_versions[1]}, {self.versions[2].upper()}: plasma-{self.plasma_versions[2]}, " \ f"kf5-{self.kf5_versions[2]}, qt5-{self.qt5_versions[2]} | " \ f"https://getfedora.org/code-of-conduct" + + self.send_topic_matrix(topic) + + @staticmethod + def send_topic_matrix(topic: str): config: configparser.ConfigParser = configparser.ConfigParser() config.read('config.ini') client: MatrixClient = MatrixClient(config["MATRIX"]['server']) client.login(username=config['MATRIX']['username'], password=config["MATRIX"]['password'], sync=False) - room = client.join_room(config['MATRIX']['room']) - room.set_room_topic(topic) + client.join_room(config['MATRIX']['room']).set_room_topic(topic) + client.logout() def main():