added bungie.py rss to discord webhook script
This commit is contained in:
11
.gitignore
vendored
Normal file
11
.gitignore
vendored
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
# Environment files
|
||||||
|
.env
|
||||||
|
|
||||||
|
# venv
|
||||||
|
venv/
|
||||||
|
|
||||||
|
# PyCharm
|
||||||
|
.idea/
|
||||||
|
|
||||||
|
# Databases
|
||||||
|
*.db
|
||||||
57
bungie.py
Normal file
57
bungie.py
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
from discord_webhook import DiscordWebhook, DiscordEmbed
|
||||||
|
from datetime import datetime
|
||||||
|
from dotenv import load_dotenv
|
||||||
|
from time import mktime
|
||||||
|
|
||||||
|
import feedparser
|
||||||
|
import sqlite3
|
||||||
|
import sys
|
||||||
|
import os
|
||||||
|
|
||||||
|
load_dotenv()
|
||||||
|
DB_PATH = os.getenv('DB_PATH')
|
||||||
|
WEBHOOK_URL = os.getenv('WEBHOOK_URL')
|
||||||
|
|
||||||
|
try:
|
||||||
|
con = sqlite3.connect(DB_PATH)
|
||||||
|
except sqlite3.Error as e:
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
with con:
|
||||||
|
cur = con.cursor()
|
||||||
|
cur.execute('CREATE TABLE IF NOT EXISTS posts(id TEXT NOT NULL);')
|
||||||
|
|
||||||
|
webhook = DiscordWebhook(url=WEBHOOK_URL)
|
||||||
|
|
||||||
|
feed = feedparser.parse('https://nitter.cc/BungieHelp/rss')
|
||||||
|
|
||||||
|
for entry in reversed(feed['entries']):
|
||||||
|
cur.execute('SELECT * FROM posts WHERE id=?;', (entry['id'],))
|
||||||
|
record = cur.fetchone()
|
||||||
|
if record is None:
|
||||||
|
embed = DiscordEmbed(
|
||||||
|
description=entry['title'],
|
||||||
|
color='1B95E0'
|
||||||
|
)
|
||||||
|
|
||||||
|
embed.set_author(name=feed['channel']['title'], url=feed['channel']['image']['link'],
|
||||||
|
icon_url=feed['channel']['image']['href'])
|
||||||
|
|
||||||
|
dt = datetime.fromtimestamp(mktime(entry['published_parsed']))
|
||||||
|
|
||||||
|
embed.set_timestamp(dt.timestamp())
|
||||||
|
|
||||||
|
webhook.add_embed(embed)
|
||||||
|
|
||||||
|
cur.execute('INSERT INTO posts VALUES(?, ?);', (entry['id'], dt,))
|
||||||
|
|
||||||
|
if len(webhook.embeds) == 10:
|
||||||
|
response = webhook.execute()
|
||||||
|
webhook.embeds = []
|
||||||
|
|
||||||
|
cur.execute('DELETE FROM posts WHERE id NOT IN (SELECT id FROM posts ORDER BY DATE DESC LIMIT 20)')
|
||||||
|
|
||||||
|
if len(webhook.embeds) > 0:
|
||||||
|
response = webhook.execute()
|
||||||
|
con.commit()
|
||||||
|
|
||||||
Reference in New Issue
Block a user