update rss_proxy.py

* fixed broken guid rewrite
This commit is contained in:
2025-03-05 19:17:33 +03:00
parent 72d6ede0e6
commit 0e4abbc44b

View File

@@ -1,3 +1,4 @@
import html
import urllib.parse import urllib.parse
import os import os
import requests import requests
@@ -22,8 +23,8 @@ def normalize_text(text):
def extract_viewtopic_link(description): def extract_viewtopic_link(description):
"""Ищет любую ссылку в description""" decoded_description = html.unescape(description)
match = re.search(r'href="(https?://[^"]+)"', description) match = re.search(r'href="(https?://[^"]+)"', decoded_description)
return match.group(1) if match else None return match.group(1) if match else None
@@ -50,13 +51,13 @@ def init_proxy(app):
try: try:
proxies = {"http": PROXY_URL, "https": PROXY_URL} if PROXY_URL else None proxies = {"http": PROXY_URL, "https": PROXY_URL} if PROXY_URL else None
r = requests.get(url, timeout=10, proxies=proxies) r = requests.get(url, timeout=10, proxies=proxies)
r.encoding = r.apparent_encoding
xml_data = r.text xml_data = r.text
xml_data = xml_data.replace("&", "&") xml_data = xml_data.replace("&", "&")
_encoding = xml_data.split('encoding="')[1].split('"')[0]
if '<?xml version="1.0" encoding="' in xml_data: if '<?xml version="1.0" encoding="' in xml_data:
xml_data = xml_data.replace( xml_data = xml_data.replace(
'<?xml version="1.0" encoding="' + xml_data.split('encoding="')[1].split('"')[0] + '"?>', f'<?xml version="1.0" encoding="{_encoding}"?>',
'<?xml version="1.0" encoding="UTF-8"?>' '<?xml version="1.0" encoding="UTF-8"?>'
) )