2025-01-01 18:17:01 -08:00
|
|
|
from discord.ext import commands, tasks
|
|
|
|
|
from cogs.base_cog.bot_base_cog import BotBaseCog
|
|
|
|
|
import feedparser
|
|
|
|
|
|
|
|
|
|
class RSSCog(BotBaseCog):
|
|
|
|
|
|
|
|
|
|
def __init__(self, bot):
|
|
|
|
|
super().__init__(bot)
|
|
|
|
|
self.setup(__class__.__name__)
|
2025-01-01 18:28:45 -08:00
|
|
|
self.rss_base_url = 'https://secure.runescape.com/m=adventurers-log/rssfeed?searchName='
|
2025-01-01 19:41:08 -08:00
|
|
|
self.usernames = ['Deadifyed', 'Frozener', 'Tsuki no ko', 'blue boomer4']
|
2025-01-01 18:44:48 -08:00
|
|
|
self.last_items = {key: None for key in self.usernames}
|
2025-01-01 18:17:01 -08:00
|
|
|
self.check_rss.start()
|
|
|
|
|
|
|
|
|
|
@tasks.loop(minutes=1)
|
|
|
|
|
async def check_rss(self):
|
2025-01-01 18:28:45 -08:00
|
|
|
for name in self.usernames:
|
2025-01-01 19:41:08 -08:00
|
|
|
rss_url = self.rss_base_url + name.replace(' ','%20')
|
2025-01-01 18:28:45 -08:00
|
|
|
feed = feedparser.parse(rss_url)
|
|
|
|
|
latest_item = feed.entries[0] if feed.entries else None
|
|
|
|
|
|
|
|
|
|
if latest_item and latest_item.title != self.last_items[name]:
|
|
|
|
|
self.last_items[name] = latest_item.title
|
|
|
|
|
channel = self.bot.get_channel(895388842834673696)
|
2025-01-01 18:44:48 -08:00
|
|
|
await channel.send(f"{name}: {latest_item.description}")
|
2025-01-01 18:17:01 -08:00
|
|
|
|
|
|
|
|
@check_rss.before_loop
|
|
|
|
|
async def before_check_rss(self):
|
|
|
|
|
await self.bot.wait_until_ready()
|
|
|
|
|
|
|
|
|
|
async def setup(bot):
|
|
|
|
|
await bot.add_cog(RSSCog(bot))
|