diff --git a/display-all-reports/display-reports.py b/display-all-reports/display-reports.py index ddcd7da..d41aeac 100644 --- a/display-all-reports/display-reports.py +++ b/display-all-reports/display-reports.py @@ -1,49 +1,115 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 +import os import textwrap import requests -from flask import Flask, Response, request +import datetime +from flask import Flask, Response, request, jsonify app = Flask(__name__) - -USER_TOKEN = '' +USER_TOKEN = os.getenv('USER_TOKEN') +if not USER_TOKEN: + raise EnvironmentError("USER_TOKEN environment variable is not set") def get_uploads(user_token, page=1): - return requests.get("https://dps.report/getUploads?userToken={}&page={}".format(user_token, page)).json() - + return requests.get("https://dps.report/getUploads?userToken={}&page={}&perPage={}".format(user_token, page, 100)).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) +def test(): + page = request.args.get('page', '1') + uploads = get_uploads(USER_TOKEN, page) + + if request.headers.get('X-Requested-With') == 'XMLHttpRequest': + return jsonify(uploads) + upload_links_html = "" - for upload in uploads['uploads']: - upload_links_html += ' {url}
\n'.format(url=upload['permalink']) + for upload in sorted(uploads['uploads'], key=lambda upload: upload['encounterTime'], reverse=True): + encounter_time = datetime.datetime.fromtimestamp(upload['encounterTime']).strftime('%Y%m%d-%H%M%S') + boss_name = upload['encounter']['boss'] + bosses = {26712: "Ura", + 26774: "Decima", + 26725: "Greer"} + if boss_name == "DPS.Report": + boss_name = bosses[upload['encounter']['bossId']] + print(upload['encounter']) + if upload['encounter']['isCm'] and not upload['encounter']['isLegendaryCm']: + boss_name = boss_name + ' CM' + if upload['encounter']['isLegendaryCm']: + boss_name = boss_name + ' LCM' + if upload['encounter']['emboldened']: + boss_name = boss_name + ' (emboldened)' + + + + boss_success = upload['encounter']['success'] + success = '❌' + if boss_success: + success = '✅' + upload_links_html += ' {success} {encounter_time} {boss_name}
\n'.format(url=upload['permalink'], + success=success, + encounter_time=encounter_time, + boss_name=boss_name) 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) + for i in range(uploads['pages']): + if 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} + +
+ {older_reports} +
- '''.format(upload_links=upload_links_html, older_reports=older_reports)) + + '''.format(upload_links_html=upload_links_html, older_reports=older_reports)) return Response(response_text, mimetype='text/html') -def start(): - app = Flask(__name__) +if __name__ == "__main__": + app.run() \ No newline at end of file