html.escape 4 strings in rss

This commit is contained in:
Christian Jeworrek
2025-03-29 18:44:10 +01:00
parent 9792af0ad9
commit ab540a03dc

View File

@@ -2,6 +2,7 @@
import os
import re
import locale
import html
from datetime import datetime
from pytz import timezone
import requests
@@ -27,7 +28,7 @@ print('<?xml version="1.0" encoding="UTF-8" ?>\n'
'<description>' + FWNAME + ' Einsätze</description>')
for mysoup in soup.find_all('a', class_='einsatz-link text-nowrap'):
mylink = BASEURL + mysoup['href']
mylink = html.escape(BASEURL + mysoup['href'])
soup2 = BeautifulSoup(session.get( mylink ,timeout=10).content, 'html.parser')
mydatetime_str = soup2.find("th",string='Einsatzstart').find_next("td").string
mydatetime = datetime.strptime(mydatetime_str, '%d. %B %Y %H:%M')
@@ -39,6 +40,7 @@ for mysoup in soup.find_all('a', class_='einsatz-link text-nowrap'):
mykeywords = mykeywords.find_next("td").string.strip()
else:
mykeywords = ""
mykeywords = html.escape(mykeywords)
myunits = soup2.find("th",string='Alarmierte Einheiten')
if myunits is None:
myunits = soup2.find("th",string='Alarmierung')
@@ -46,14 +48,15 @@ for mysoup in soup.find_all('a', class_='einsatz-link text-nowrap'):
myunits = myunits.find_next("td").string.strip()
else:
myunits = ""
myunits = html.escape(myunits)
print("<item>")
locale.setlocale(locale.LC_TIME, 'en_US.UTF-8')
print("<pubDate>" + mydatetime.strftime('%a, %d %b %Y %H:%M:%S %z') + "</pubDate>")
locale.setlocale(locale.LC_TIME, 'de_DE.UTF-8')
print("<title>" + mykeywords + " - " + (soup2.find('meta', attrs={ "property": "og:title" }))['content'] + " - " + myunits + "</title>")
print("<title>" + mykeywords + " - " + html.escape((soup2.find('meta', attrs={ "property": "og:title" }))['content']) + " - " + myunits + "</title>")
print("<link>" + mylink + "</link>")
try:
print("<description>" + (soup2.find('div', class_="description")).string.strip() + '&lt;br&gt;' + (soup2.find('div', class_="description").find_next("p").string.strip()) + '&lt;hr&gt;' + myunits + "</description>")
print("<description>" + html.escape((soup2.find('div', class_="description")).string.strip() + '<br>' + (soup2.find('div', class_="description").find_next("p").string.strip()) + '<hr>' + myunits) + "</description>")
except:
print("<description></description>")
print("</item>")