39 lines
1.1 KiB
Python
39 lines
1.1 KiB
Python
import feedparser
|
|
import json
|
|
import re
|
|
import subprocess
|
|
|
|
feeds = []
|
|
config = []
|
|
|
|
with open("shows.json", "r") as feeds:
|
|
feeds = json.load(feeds)
|
|
|
|
with open("config.json", "r") as config:
|
|
config = json.load(config)
|
|
|
|
for feed in feeds["Feeds"]:
|
|
print("Checking feed: " + feed["URL"])
|
|
NewsFeed = feedparser.parse(feed["URL"])
|
|
|
|
for show in feed["Shows"]:
|
|
print("Checking show: " + show["Title"])
|
|
|
|
for entry in NewsFeed.entries:
|
|
if show["Title"] in entry.title:
|
|
regex = feed["Episode-Regex"].replace("$SHOWS$", show["Title"])
|
|
match = re.match(regex, entry.title)
|
|
|
|
if match:
|
|
episodeNumber = match.groups()
|
|
|
|
if int(episodeNumber[0]) > int(show["Local"]):
|
|
print("NEW NEW NEW " + show["Title"] + episodeNumber[0])
|
|
|
|
subprocess.run(["transmission-remote", "-a", entry.link, "-w", config["showDownloadDir"]])
|
|
|
|
show["Local"] = str(int(show["Local"]) + 1).zfill(2)
|
|
|
|
with open("shows.json", "w") as new_feeds:
|
|
new_feeds.write(json.dumps(feeds, indent=3))
|