Загрузить файлы в «/»
This commit is contained in:
parent
0a927d0fed
commit
6bc5fe9aba
8
config.ini.example
Normal file
8
config.ini.example
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
[general]
|
||||||
|
last_run = PASTE_TIMESTAMP
|
||||||
|
token = MATRIX_TOKEN
|
||||||
|
|
||||||
|
[feed.myfeed]
|
||||||
|
title = Feed Title
|
||||||
|
url = FEED_URL
|
||||||
|
room_id = ROOM_ID
|
34
rss.py
Normal file
34
rss.py
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
import xml.etree.ElementTree as ET
|
||||||
|
from urllib.request import urlopen, Request
|
||||||
|
from time import time
|
||||||
|
from datetime import datetime
|
||||||
|
from configparser import ConfigParser
|
||||||
|
from uuid import uuid4 as uuid
|
||||||
|
import json
|
||||||
|
config = ConfigParser()
|
||||||
|
config.read("config.ini")
|
||||||
|
now = int(config["general"]["last_run"])
|
||||||
|
for f in config.sections():
|
||||||
|
if not "feed." in f: continue
|
||||||
|
with urlopen(config[f]["url"]) as r:
|
||||||
|
r = ET.parse(r)
|
||||||
|
for i in r.findall("./channel/item"):
|
||||||
|
date = i.find("pubDate").text
|
||||||
|
date = datetime.strptime(date, "%a, %d %b %Y %H:%M:%S %z")
|
||||||
|
date = datetime.timestamp(date)
|
||||||
|
date = int(date)
|
||||||
|
if date > now:
|
||||||
|
title = i.find("title").text
|
||||||
|
link = i.find("link").text
|
||||||
|
data = json.dumps(
|
||||||
|
dict(msgtype="m.text",
|
||||||
|
body=f"[{title}]({link})",
|
||||||
|
formatted_body=f'<a href="{link}">{title}</a>',
|
||||||
|
format="org.matrix.custom.html"
|
||||||
|
))
|
||||||
|
req = Request(f"https://fb.doesnm.cc/_matrix/client/v3/rooms/{config[f]['room_id']}/send/m.room.message/{uuid()}?access_token={config['general']['token']}",data.encode("ascii"),method="PUT") # TODO: homeserver config lol
|
||||||
|
with urlopen(req) as r:
|
||||||
|
pass
|
||||||
|
config['general']['last_run'] = str(int(time()))
|
||||||
|
with open("config.ini","w") as f:
|
||||||
|
config.write(f)
|
Loading…
Reference in New Issue
Block a user