-
Notifications
You must be signed in to change notification settings - Fork 2
/
rss-discord.py
49 lines (41 loc) · 1.57 KB
/
rss-discord.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#!/usr/bin/env python3
# Module requis
import feedparser
import requests
import time
import json
from pathlib import Path
with open("/root/rss-discord/db.json", "r") as json_file:
DICO = json.load(json_file)
def code(URL, WEBHOOK, USERNAME, AVATAR_URL, GUID):
print(DICO['USERNAME'][k])
feed = feedparser.parse(URL)
# Récupération du flux
for entry in feed.entries:
# Recherche si le GUID du post rss existe dans le fichier
fichier = open(GUID, 'r').read().find(entry.guid)
# Si le GUID existe il renvois 0 sinon -1 | On print les infos et on ecrit le guid du post dans le fichier GUID
if fichier == -1 :
print(entry.title)
print(entry.link)
print(entry.updated)
print(entry.guid)
fichier = open(GUID, "a")
fichier.write("\n" + entry.guid)
fichier.close()
# Partie config webhook discord
data = {}
data["content"] = f"**{entry.title}**\n{entry.link}\n*{entry.updated}*"
data["username"] = USERNAME
data["avatar_url"] = AVATAR_URL
# Partie qui envoi l'info au webhook (a desactiver pour migration / initialisation ou test)
requests.post(WEBHOOK, json = data)
time.sleep(1)
else :
print("exist")
print('\n')
for (k, v) in DICO['URL'].items():
guid_file = Path(DICO['GUID'][k])
guid_file.touch(exist_ok=True)
code(DICO['URL'][k], DICO['WEBHOOK'][k], DICO['USERNAME'][k], DICO['AVATAR'][k], DICO['GUID'][k])
json_file.close()