14
Pipfile
Normal file
14
Pipfile
Normal file
@@ -0,0 +1,14 @@
|
||||
[[source]]
|
||||
url = "https://pypi.org/simple"
|
||||
verify_ssl = true
|
||||
name = "pypi"
|
||||
|
||||
[packages]
|
||||
feedparser = "*"
|
||||
requests = "*"
|
||||
|
||||
[dev-packages]
|
||||
feedparser = "*"
|
||||
|
||||
[requires]
|
||||
python_version = "3.9"
|
||||
89
Pipfile.lock
generated
Normal file
89
Pipfile.lock
generated
Normal file
@@ -0,0 +1,89 @@
|
||||
{
|
||||
"_meta": {
|
||||
"hash": {
|
||||
"sha256": "5e804f6b937bc93ae43005796f582b8623bef4948d44f7569068b9e24783e880"
|
||||
},
|
||||
"pipfile-spec": 6,
|
||||
"requires": {
|
||||
"python_version": "3.9"
|
||||
},
|
||||
"sources": [
|
||||
{
|
||||
"name": "pypi",
|
||||
"url": "https://pypi.org/simple",
|
||||
"verify_ssl": true
|
||||
}
|
||||
]
|
||||
},
|
||||
"default": {
|
||||
"certifi": {
|
||||
"hashes": [
|
||||
"sha256:1a4995114262bffbc2413b159f2a1a480c969de6e6eb13ee966d470af86af59c",
|
||||
"sha256:719a74fb9e33b9bd44cc7f3a8d94bc35e4049deebe19ba7d8e108280cfd59830"
|
||||
],
|
||||
"version": "==2020.12.5"
|
||||
},
|
||||
"chardet": {
|
||||
"hashes": [
|
||||
"sha256:0d6f53a15db4120f2b08c94f11e7d93d2c911ee118b6b30a04ec3ee8310179fa",
|
||||
"sha256:f864054d66fd9118f2e67044ac8981a54775ec5b67aed0441892edb553d21da5"
|
||||
],
|
||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
|
||||
"version": "==4.0.0"
|
||||
},
|
||||
"feedparser": {
|
||||
"hashes": [
|
||||
"sha256:1b00a105425f492f3954fd346e5b524ca9cef3a4bbf95b8809470e9857aa1074",
|
||||
"sha256:f596c4b34fb3e2dc7e6ac3a8191603841e8d5d267210064e94d4238737452ddd"
|
||||
],
|
||||
"index": "pypi",
|
||||
"version": "==6.0.2"
|
||||
},
|
||||
"idna": {
|
||||
"hashes": [
|
||||
"sha256:b307872f855b18632ce0c21c5e45be78c0ea7ae4c15c828c20788b26921eb3f6",
|
||||
"sha256:b97d804b1e9b523befed77c48dacec60e6dcb0b5391d57af6a65a312a90648c0"
|
||||
],
|
||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
|
||||
"version": "==2.10"
|
||||
},
|
||||
"requests": {
|
||||
"hashes": [
|
||||
"sha256:27973dd4a904a4f13b263a19c866c13b92a39ed1c964655f025f3f8d3d75b804",
|
||||
"sha256:c210084e36a42ae6b9219e00e48287def368a26d03a048ddad7bfee44f75871e"
|
||||
],
|
||||
"index": "pypi",
|
||||
"version": "==2.25.1"
|
||||
},
|
||||
"sgmllib3k": {
|
||||
"hashes": [
|
||||
"sha256:7868fb1c8bfa764c1ac563d3cf369c381d1325d36124933a726f29fcdaa812e9"
|
||||
],
|
||||
"version": "==1.0.0"
|
||||
},
|
||||
"urllib3": {
|
||||
"hashes": [
|
||||
"sha256:19188f96923873c92ccb987120ec4acaa12f0461fa9ce5d3d0772bc965a39e08",
|
||||
"sha256:d8ff90d979214d7b4f8ce956e80f4028fc6860e4431f731ea4a8c08f23f99473"
|
||||
],
|
||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' and python_version < '4'",
|
||||
"version": "==1.26.2"
|
||||
}
|
||||
},
|
||||
"develop": {
|
||||
"feedparser": {
|
||||
"hashes": [
|
||||
"sha256:1b00a105425f492f3954fd346e5b524ca9cef3a4bbf95b8809470e9857aa1074",
|
||||
"sha256:f596c4b34fb3e2dc7e6ac3a8191603841e8d5d267210064e94d4238737452ddd"
|
||||
],
|
||||
"index": "pypi",
|
||||
"version": "==6.0.2"
|
||||
},
|
||||
"sgmllib3k": {
|
||||
"hashes": [
|
||||
"sha256:7868fb1c8bfa764c1ac563d3cf369c381d1325d36124933a726f29fcdaa812e9"
|
||||
],
|
||||
"version": "==1.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
38
anime-rss.py
Normal file
38
anime-rss.py
Normal file
@@ -0,0 +1,38 @@
|
||||
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))
|
||||
4
config.json
Normal file
4
config.json
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"torrentDownloadDir": "/media/ssd/temp/torrents",
|
||||
"showDownloadDir": "/media/ssd/temp/"
|
||||
}
|
||||
54
shows.json
Normal file
54
shows.json
Normal file
@@ -0,0 +1,54 @@
|
||||
{
|
||||
"Feeds": [
|
||||
{
|
||||
"URL": "https://subsplease.org/rss/?t&r=1080",
|
||||
"Shows": [
|
||||
{
|
||||
"Title": "Go-toubun no Hanayome S2",
|
||||
"Local": "02"
|
||||
},
|
||||
{
|
||||
"Title": "Jaku-Chara Tomozaki-kun",
|
||||
"Local": "01"
|
||||
},
|
||||
{
|
||||
"Title": "Mushoku Tensei",
|
||||
"Local": "01"
|
||||
},
|
||||
{
|
||||
"Title": "Ore dake Haireru Kakushi Dungeon",
|
||||
"Local": "01"
|
||||
},
|
||||
{
|
||||
"Title": "Tensei Shitara Slime Datta Ken",
|
||||
"Local": "25"
|
||||
},
|
||||
{
|
||||
"Title": "Wonder Egg Priority",
|
||||
"Local": "01"
|
||||
}
|
||||
],
|
||||
"Episode-Regex": "\\[SubsPlease\\] $SHOWS$ - (\\d{2,2}) \\(1080p\\) \\[[A-Z0-9]{8,8}\\].mkv"
|
||||
},
|
||||
{
|
||||
"URL": "https://nyaa.si/?page=rss&q=%5Bjackie%5D+Kaifuku+Jutsushi+no+Yarinaoshi+-&c=0_0&f=0",
|
||||
"Shows": [
|
||||
{
|
||||
"Title": "Kaifuku Jutsushi no Yarinaoshi",
|
||||
"Local": "01"
|
||||
}
|
||||
],
|
||||
"Episode-Regex": "\\[jackie\\] $SHOWS$ - (\\d{2,2}) \\[720p x264 AAC\\]\\[[A-Z0-9]{8,8}\\].mkv \\(Uncensored\\)"
|
||||
},
|
||||
{
|
||||
"URL": "https://nyaa.si/?page=rss&q=%5BDameDesuYo%5D+Shingeki+no+Kyojin+%28The+Final+Season%29+-+&c=0_0&f=0",
|
||||
"Shows": [
|
||||
{
|
||||
"Title": "Shingeki no Kyojin",
|
||||
"Local": "64"
|
||||
}
|
||||
],
|
||||
"Episode-Regex": "\\[DameDesuYo\\] $SHOWS$ \\(The Final Season\\) - (\\d{2,2})v0 \\(1920x1080 10bit AAC\\) \\[[A-Z0-9]{8,8}\\].mkv"
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user