diff --git a/requirements.txt b/requirements.txt index 2650190..5868418 100644 --- a/requirements.txt +++ b/requirements.txt @@ -5,4 +5,5 @@ redis==5.0.1 cryptography==41.0.7 bcrypt==4.1.2 python-dotenv==1.0.0 -gunicorn==21.2.0 \ No newline at end of file +gunicorn==21.2.0 +requests==2.32.5 \ No newline at end of file diff --git a/src/app.py b/src/app.py index 9eb99f4..2205258 100644 --- a/src/app.py +++ b/src/app.py @@ -11,6 +11,8 @@ import secrets import hashlib import hmac import re +import xml.etree.ElementTree as ET +import requests from datetime import datetime, timedelta import logging from functools import wraps @@ -516,6 +518,26 @@ def internal_error(e): logger.error(f"Internal server error: {str(e)}") return jsonify({'error': 'Internal server error'}), 500 + +@app.route("/rss") +def rss_proxy(): + url = "https://rattatwinko.servecounterstrike.com/gitea/rattatwinko/bytechat-desktop/releases.rss" + resp = requests.get(url) + resp.raise_for_status() + + root = ET.fromstring(resp.text) + items = [] + for item in root.findall("./channel/item"): + items.append({ + "title": item.findtext("title"), + "link": item.findtext("link"), + "pubDate": item.findtext("pubDate"), + "author": item.findtext("author"), + "description": item.findtext("description"), + }) + + return jsonify(items) + if __name__ == "__main__": try: start_cleanup_task() diff --git a/src/static/script.js b/src/static/script.js index 91fd814..bd0aef5 100644 --- a/src/static/script.js +++ b/src/static/script.js @@ -104,8 +104,8 @@ function setupSecurityFeatures() { clearSensitiveData(); }); - const securityIndicator = document.getElementById('securityIndicator'); - securityIndicator.style.display = 'block'; + //const securityIndicator = document.getElementById('securityIndicator'); + //securityIndicator.style.display = 'block'; } function clearSensitiveData() { diff --git a/src/templates/chat.html b/src/templates/chat.html index 1025173..cc8e32b 100644 --- a/src/templates/chat.html +++ b/src/templates/chat.html @@ -101,20 +101,104 @@ - - +