mastofeeds/mastofeeds.py
2023-07-03 09:38:40 +02:00

67 lines
1.1 KiB
Python

import os
import sys
import time
from app.libraries.database import Database
from app.libraries.setup import Setup
import feedparser
from mastodon import Mastodon
import psycopg2
# main
if __name__ == '__main__':
db = Database()
setup = Setup()
mastodon = Mastodon(
access_token = setup.mastodon_app_token,
api_base_url= setup.mastodon_hostname
)
#publish = 0
try:
newsfeeds = feedparser.parse(db.feeds_url)
print(newsfeeds.status)
except:
print(newsfeeds.status)
sys.exit(0)
for entry in newsfeeds.entries:
title = entry['title']
id = entry['id']
link = entry['link']
# check database if feed is already published
publish = db.published(link)
if publish:
toot_text = str(title)+'\n'
toot_text += str(link)
print("Tooting...")
print(toot_text)
mastodon.status_post(toot_text, in_reply_to_id=None,)
time.sleep(2)
# write feed
db.write_feed(link)
else:
print("Any new feeds")
sys.exit(0)