Skip to content
Snippets Groups Projects
Commit a92a3f40 authored by Jan Eggers's avatar Jan Eggers
Browse files

Checkpoint

parent 14ad06ec
No related branches found
No related tags found
No related merge requests found
......@@ -17,6 +17,9 @@ dependencies = [
"requests", # Alle bsky-Calls über Requests
"openai", # für die Bildbeschreibung
"ollama", # für die Bildbeschreibung
"openai-whisper", # für die Transkription
"bs4", # Seitenanalyse
"pydub", # Transkription/Audioformate
]
readme="README.md"
license = {file = "LICENSE"}
......
......@@ -39,12 +39,11 @@ def is_hr_url(url):
return True
return False
def find_hr_links(text):
# Regex, um Links zu extrahieren
def find_links(text):
# Regex, um Links aus Text zu extrahieren
if text is None or text=="":
return []
urls = re.findall(r'https?://[^\s]+', text)
hr_links = [url for url in urls if is_hr_url(url)]
return hr_links
if __name__ == "__main__":
......@@ -52,14 +51,30 @@ if __name__ == "__main__":
# Schau, ob es schon Daten gibt
if not os.path.exists('tg-checks'):
os.makedirs('tg-checks')
filename = f'tg-checks/config.csv'
filename = f'tg-checks/channels.csv'
if os.path.exists(filename):
channels_df = pd.read_csv(filename)
print(f"Config-Datei mit {len(channels_df)} Kanälen")
channels = channels_df['Kanal'].to_list()
else:
channels=['fragunsdochdasoriginal','freiheitffm']
hr_links = []
# Datei mit den Links, auf die geprüft werden soll
# Durchsucht in den gefunden Links auf diese Strings (naiv).
#
# Strings sollten also z.B. hessenschau.de
filename = f'tg-checks/checks.csv'
if os.path.exists(filename):
checks_df = pd.read_csv(filename)
checks = checks_df['Kanal'].to_list()
else:
channels=['hessenschau.de',
'hrinforadio.de',
"hr3.de",
'hrfernsehen.de',
'ardmediathek.hr',
'hr.de',
]
warning_links = []
for c in channels:
existing_df = pd.DataFrame()
profile = tgc_profile(c)
......@@ -93,14 +108,26 @@ if __name__ == "__main__":
print(f"Einlesen {start_post+1} bis {last_post}...")
posts = tgc_read_range(c, start_post+1, last_post, save=False, describe= False)
# Nach hr-Links suchen
# Die Posts, die hr-Links enthalten, markieren
# und später als Tabelle ausgeben, die dann von einem Watch-Programm
# beobachtet wird
alerts=[]
for post in posts:
interessant = find_hr_links(post['text'])
if post['links']:
interessant.extend(post['links'])
hr_links.extend(interessant)
print(f"Potenziell interessant: {interessant}")
# Links gegen Liste prüfen
for l in post['links']:
for ch in checks:
# Taucht der Link in der Liste auf?
alert = post
# Speichern, was verlinkt wurde
alert['alert'] = ch
alerts.append(alert)
print(f"Neue Alerts: ")
for a in alerts:
print(a)
# Posts anhängen an das csv dieses Kanals
alerts_df = pd.DataFrame(alerts)
df = pd.DataFrame(posts)
df = pd.concat([existing_df, df]).drop_duplicates(subset=['nr']).reset_index(drop=True)
df.to_csv(f'tg-checks/{c}.csv', index=False) # Save to CSV for example
print("Ende Gelände.")
df.to_csv(f'tg-checks/alerts.csv', index=False)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment