From e22941d33524b53987a36feb48d08dc12bef0806 Mon Sep 17 00:00:00 2001 From: Stefam Regnery Date: Wed, 19 May 2021 23:50:28 +0200 Subject: [PATCH] fix --- arc-dps-updater/updater.py | 126 ++++++++++++------------- display-all-reports/display-reports.py | 98 +++++++++---------- dps.report-uploader/uploader.py | 98 ++++++++++--------- 3 files changed, 162 insertions(+), 160 deletions(-) diff --git a/arc-dps-updater/updater.py b/arc-dps-updater/updater.py index 4b80ad8..875d126 100644 --- a/arc-dps-updater/updater.py +++ b/arc-dps-updater/updater.py @@ -1,65 +1,61 @@ -import shutil -import json -import os -import requests -import urllib3 -from urllib import request -import ssl - - -urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) - -with open("config.json", mode="r") as config_file: - config = json.load(config_file) - - -def get_md5sum(md5_url): - r = requests.get(md5_url, verify=False, stream=True) - return str(r.text.split(" ")[0]) - - -def download_file(url): - ctx = ssl.create_default_context() - ctx.check_hostname = False - ctx.verify_mode = ssl.CERT_NONE - - file_name = url.split('/')[-1] - u = request.urlopen(url) - f = open(file_name, 'wb') - file_size = int(u.getheader("Content-Length")) - print("Downloading: %s Bytes: %s" % (file_name, file_size)) - - file_size_dl = 0 - block_sz = 8192 - while True: - file_buffer = u.read(block_sz) - if not file_buffer: - break - - file_size_dl += len(file_buffer) - f.write(file_buffer) - - f.close() - - -def main(): - global config_file - online_version = get_md5sum(config["arc_dps"]["md5path"]) - arc_dps_url = config["arc_dps"]["download_path"] - buildtemplates_url = config["arc_dps_buildtemplates"]["download_path"] - if config["arc_dps"]["current_version"] != online_version: - arc_dps_file_name = arc_dps_url.rsplit('/', 1)[-1] - buildtemplates_file_name = buildtemplates_url.rsplit('/', 1)[-1] - download_file(arc_dps_url) - download_file(buildtemplates_url) - shutil.move(arc_dps_file_name, os.path.join(config["guildwars2_path"], "bin64", arc_dps_file_name)) - shutil.move(buildtemplates_file_name, - os.path.join(config["guildwars2_path"], "bin64", buildtemplates_file_name)) - - config["arc_dps"]["current_version"] = online_version - with open("config.json", mode="w") as config_file: - config_file = (json.dump(config, config_file, indent=2)) - - -if __name__ == "__main__": - main() +import shutil +import json +import os +import requests +import urllib3 +from urllib import request +import ssl + + +urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) + +with open("config.json", mode="r") as config_file: + config = json.load(config_file) + + +def get_md5sum(md5_url): + r = requests.get(md5_url, verify=False, stream=True) + return str(r.text.split(" ")[0]) + + +def download_file(url): + ctx = ssl.create_default_context() + ctx.check_hostname = False + ctx.verify_mode = ssl.CERT_NONE + + file_name = url.split('/')[-1] + u = request.urlopen(url) + f = open(file_name, 'wb') + file_size = u.getheader("Content-Length") + print(file_size) + print("Downloading: %s Bytes: %s" % (file_name, file_size)) + + file_size_dl = 0 + block_sz = 8192 + while True: + file_buffer = u.read(block_sz) + if not file_buffer: + break + + file_size_dl += len(file_buffer) + f.write(file_buffer) + + f.close() + + +def main(): + global config_file + online_version = get_md5sum(config["arc_dps"]["md5path"]) + arc_dps_url = config["arc_dps"]["download_path"] + if config["arc_dps"]["current_version"] != online_version: + arc_dps_file_name = arc_dps_url.rsplit('/', 1)[-1] + download_file(arc_dps_url) + shutil.move(arc_dps_file_name, os.path.join(config["guildwars2_path"], "bin64", arc_dps_file_name)) + + config["arc_dps"]["current_version"] = online_version + with open("config.json", mode="w") as config_file: + config_file = (json.dump(config, config_file, indent=2)) + + +if __name__ == "__main__": + main() diff --git a/display-all-reports/display-reports.py b/display-all-reports/display-reports.py index 1800707..ddcd7da 100644 --- a/display-all-reports/display-reports.py +++ b/display-all-reports/display-reports.py @@ -1,49 +1,49 @@ -#!/usr/bin/env python -import textwrap -import requests -from flask import Flask, Response, request - -app = Flask(__name__) - - -USER_TOKEN = '' - -def get_uploads(user_token, page=1): - return requests.get("https://dps.report/getUploads?userToken={}&page={}".format(user_token, page)).json() - - -@app.route("/") -def fetch_and_display_my_reports(): - if request.args.get('page', ''): - uploads = get_uploads(USER_TOKEN, request.args.get('page', '')) - else: - uploads = get_uploads(USER_TOKEN) -# print(uploads) - upload_links_html = "" - for upload in uploads['uploads']: - upload_links_html += ' {url}
\n'.format(url=upload['permalink']) - - older_reports = "
Older reports: " - if uploads['pages'] > 1: - for i in range(uploads['pages']): - if request.args.get('page', '') == str(i+1): - older_reports += ' {page_number} '.format(page_number=i+1) - else: - older_reports += ' {page_number} '.format(page_number=i+1) - - else: - older_reports = "" - response_text = textwrap.dedent('''\ - - - - lennys dps reports - - - {upload_links}{older_reports} - - '''.format(upload_links=upload_links_html, older_reports=older_reports)) - return Response(response_text, mimetype='text/html') - -def start(): - app = Flask(__name__) +#!/usr/bin/env python +import textwrap +import requests +from flask import Flask, Response, request + +app = Flask(__name__) + + +USER_TOKEN = '' + +def get_uploads(user_token, page=1): + return requests.get("https://dps.report/getUploads?userToken={}&page={}".format(user_token, page)).json() + + +@app.route("/") +def fetch_and_display_my_reports(): + if request.args.get('page', ''): + uploads = get_uploads(USER_TOKEN, request.args.get('page', '')) + else: + uploads = get_uploads(USER_TOKEN) +# print(uploads) + upload_links_html = "" + for upload in uploads['uploads']: + upload_links_html += ' {url}
\n'.format(url=upload['permalink']) + + older_reports = "
Older reports: " + if uploads['pages'] > 1: + for i in range(uploads['pages']): + if request.args.get('page', '') == str(i+1): + older_reports += ' {page_number} '.format(page_number=i+1) + else: + older_reports += ' {page_number} '.format(page_number=i+1) + + else: + older_reports = "" + response_text = textwrap.dedent('''\ + + + + lennys dps reports + + + {upload_links}{older_reports} + + '''.format(upload_links=upload_links_html, older_reports=older_reports)) + return Response(response_text, mimetype='text/html') + +def start(): + app = Flask(__name__) diff --git a/dps.report-uploader/uploader.py b/dps.report-uploader/uploader.py index 535ace5..5d7c686 100644 --- a/dps.report-uploader/uploader.py +++ b/dps.report-uploader/uploader.py @@ -1,46 +1,52 @@ -#!/usr/bin/env python3 -import os -import time -import requests -import argparse - -from pathlib import Path -from watchdog.observers import Observer -from watchdog.events import PatternMatchingEventHandler - - -class FileWatchdog(PatternMatchingEventHandler): - def __init__(self, file_pattern, user_token): - super(FileWatchdog, self).__init__(patterns=[file_pattern], ignore_directories=True) - self.pattern = file_pattern - self.user_token = user_token - - def on_moved(self, event): - self.upload_report(event) - - def upload_report(self, event): - report = open(os.path.join(event.dest_path), 'rb') - a = requests.post("https://dps.report/uploadContent?json=1&generator=ei&userToken={}".format(self.user_token), - files={"file": report}) - print(a.json()) - - -def main(): - parser = argparse.ArgumentParser() - parser.add_argument('user_token', action='store') - args = parser.parse_args() - - watch_path = os.path.join(Path.home(), "Documents", "Guild Wars 2", "addons", "arcdps", "arcdps.cbtlogs") - print(watch_path) - file_pattern = os.path.join("*.zevtc") - - observer = Observer() - observer.schedule(FileWatchdog(file_pattern, args.user_token), watch_path, recursive=True) - observer.start() - - while True: - time.sleep(1) - - -if __name__ == '__main__': - main() +#!/usr/bin/env python3 + +import os +import time +import requests +import argparse + +from pathlib import Path +from oslo_concurrency import lockutils +from watchdog.observers import Observer +from watchdog.events import PatternMatchingEventHandler + +lockutils.set_defaults(os.path.abspath(os.path.dirname(__file__))) + + +class FileWatchdog(PatternMatchingEventHandler): + def __init__(self, file_pattern, user_token): + super(FileWatchdog, self).__init__(patterns=[file_pattern], ignore_directories=True) + self.pattern = file_pattern + self.user_token = user_token + + def on_moved(self, event): + self.upload_report(event) + + def upload_report(self, event): + report = open(os.path.join(event.dest_path), 'rb') + a = requests.post("https://dps.report/uploadContent?json=1&generator=ei&userToken={}".format(self.user_token), + files={"file": report}) + print(a.json()) + + +@lockutils.synchronized('dps.report_uploader', external=True) +def main(): + print('start initiated') + parser = argparse.ArgumentParser() + parser.add_argument('user_token', action='store') + args = parser.parse_args() + + watch_path = os.path.join(Path.home(), "Documents", "Guild Wars 2", "addons", "arcdps", "arcdps.cbtlogs") + print(watch_path) + file_pattern = os.path.join("*.zevtc") + + observer = Observer() + observer.schedule(FileWatchdog(file_pattern, args.user_token), watch_path, recursive=True) + observer.start() + print('started observing') + while True: + time.sleep(1) + + +if __name__ == '__main__': + main()