mirror of
https://github.com/Jackett/Jackett.git
synced 2025-09-09 21:24:42 +02:00
Compare commits
21 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
6c661a4974 | ||
![]() |
7a49ddda3a | ||
![]() |
5e4cb3581d | ||
![]() |
968c2ca3a6 | ||
![]() |
af4fb5c6a0 | ||
![]() |
fc7d5a0e35 | ||
![]() |
2a7c693917 | ||
![]() |
838ad77d7f | ||
![]() |
3978ba6c04 | ||
![]() |
60554c25d9 | ||
![]() |
bd03c903d0 | ||
![]() |
113e5d658c | ||
![]() |
f9b4b5a76c | ||
![]() |
2f378210d9 | ||
![]() |
e5de468899 | ||
![]() |
204d96bcec | ||
![]() |
9e37b1429a | ||
![]() |
6b61e22f95 | ||
![]() |
c3dffe42be | ||
![]() |
796947fd6f | ||
![]() |
77b1da3089 |
@@ -25,9 +25,9 @@ Developer note: The software implements the [Torznab](https://github.com/Sonarr/
|
||||
* Anime Tosho
|
||||
* AniRena
|
||||
* AudioBookBay
|
||||
* BTstor.net
|
||||
* btbit
|
||||
* BTDB
|
||||
* BT-Scene
|
||||
* cpasbien
|
||||
* ETTV
|
||||
* ExtraTorrent.ag
|
||||
@@ -53,14 +53,16 @@ Developer note: The software implements the [Torznab](https://github.com/Sonarr/
|
||||
* RARBG
|
||||
* RuTor
|
||||
* ShowRSS
|
||||
* SkyTorrentsClone
|
||||
* sukebei.Nyaa.si
|
||||
* sukebei-Pantsu
|
||||
* The Pirate Bay
|
||||
* TNTVillage <!-- maintained by bonny1992 -->
|
||||
* Tokyo Toshokan
|
||||
* Torlock
|
||||
* TorrentCouch
|
||||
* Torrent Downloads
|
||||
* TorrentGalaxy.org (TGx)
|
||||
* TorrentGalaxy.org
|
||||
* Torrent9
|
||||
* Torrentz2
|
||||
* World Wide Torrents
|
||||
|
@@ -135,22 +135,22 @@
|
||||
selector: a[href^="/download.php"]
|
||||
attribute: href
|
||||
files:
|
||||
selector: td:nth-child(7)
|
||||
selector: td:nth-child(5)
|
||||
grabs:
|
||||
selector: td:nth-child(6)
|
||||
selector: td:nth-child(4)
|
||||
size:
|
||||
selector: td:nth-child(8)
|
||||
selector: td:nth-child(6)
|
||||
filters:
|
||||
- name: replace
|
||||
args: [".", ""]
|
||||
- name: replace
|
||||
args: [",", "."]
|
||||
seeders:
|
||||
selector: td:nth-child(3) > a
|
||||
selector: td:nth-child(2) > a
|
||||
leechers:
|
||||
selector: td:nth-child(4)
|
||||
selector: td:nth-child(3)
|
||||
date:
|
||||
selector: td:nth-child(9)
|
||||
selector: td:nth-child(10)
|
||||
filters:
|
||||
- name: split
|
||||
args: ["by", 0]
|
||||
|
@@ -1,94 +0,0 @@
|
||||
---
|
||||
site: bt-scene
|
||||
name: BT-Scene
|
||||
description: "BT-Scene (BTS) is a Public site for MOVIES / TV / GENERAL"
|
||||
language: us-en
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://bt-scene.cc/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: Movies, desc: "Movies"}
|
||||
- {id: 2, cat: TV, desc: "Series"}
|
||||
- {id: 3, cat: Audio, desc: "Music"}
|
||||
- {id: 4, cat: PC/Games, desc: "Games"}
|
||||
- {id: 5, cat: PC/0day, desc: "Software"}
|
||||
- {id: 6, cat: TV/Anime, desc: "Anime"}
|
||||
- {id: 7, cat: Books, desc: "Ebooks"}
|
||||
- {id: 8, cat: Other, desc: "Misc"}
|
||||
- {id: 9, cat: XXX, desc: "Porn"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
|
||||
settings:
|
||||
- name: category
|
||||
type: select
|
||||
label: Category
|
||||
default: "0"
|
||||
options:
|
||||
"0" : "All"
|
||||
"1": "Movies"
|
||||
"2": "Series"
|
||||
"3": "Music"
|
||||
"4": "Games"
|
||||
"5": "Software"
|
||||
"6": "Anime"
|
||||
"7": "Ebooks"
|
||||
"8": "Misc"
|
||||
"9": "Porn"
|
||||
|
||||
search:
|
||||
# https://bt-scene.cc/cat/id/1/
|
||||
# https://bt-scene.cc/results_.php?q=midnight+texas+s01e10&advcat=2
|
||||
keywordsfilters:
|
||||
# replace space between keywords with +
|
||||
- name: re_replace
|
||||
args: [" ", "+"]
|
||||
paths:
|
||||
- path: "{{ if .Keywords }}results_.php?q={{ .Keywords }}&advcat={{ .Config.category }}{{else}}indexfull/{{end}}"
|
||||
rows:
|
||||
selector: table.tor > tbody > tr[id^="_"]
|
||||
filters:
|
||||
- name: andmatch
|
||||
fields:
|
||||
title:
|
||||
selector: td[class^="tname"] > a
|
||||
details:
|
||||
selector: td[class^="tname"] > a
|
||||
attribute: href
|
||||
category:
|
||||
selector: td[class^="tname"] > div.subinfo > a[href^="/cat/id"]
|
||||
optional: true
|
||||
attribute: href
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["[^\\d+]", ""]
|
||||
download:
|
||||
# build "/torrentget.php?id=5730447" from "_5730447"
|
||||
selector: tr
|
||||
attribute: id
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["_", ""]
|
||||
- name: prepend
|
||||
args: "/torrentget.php?id="
|
||||
size:
|
||||
selector: td[class^="tsize"]
|
||||
seeders:
|
||||
selector: td[class^="tseeds"]
|
||||
leechers:
|
||||
selector: td[class^="tpeers"]
|
||||
date:
|
||||
selector: td[class^="ttime"]
|
||||
filters:
|
||||
- name: append
|
||||
args: " ago"
|
||||
downloadvolumefactor:
|
||||
text: "0"
|
||||
uploadvolumefactor:
|
||||
text: "1"
|
78
src/Jackett.Common/Definitions/btstornet.yml
Normal file
78
src/Jackett.Common/Definitions/btstornet.yml
Normal file
@@ -0,0 +1,78 @@
|
||||
---
|
||||
site: btstornet
|
||||
name: BTstor.net
|
||||
description: "BTstor.net is a Public BT-Scene clone for MOVIES / TV / GENERAL"
|
||||
language: us-en
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://btstor.net/
|
||||
|
||||
caps:
|
||||
categories:
|
||||
"anime": TV/Anime
|
||||
"books": Books
|
||||
"games": PC/Games
|
||||
"movies": Movies
|
||||
"music": Audio
|
||||
"other": Other
|
||||
"shows": TV
|
||||
"software": PC
|
||||
"video": Movies
|
||||
"xxx": XXX
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
|
||||
settings: []
|
||||
|
||||
download:
|
||||
selector: "#dlt_"
|
||||
|
||||
search:
|
||||
# https://btstor.net/
|
||||
# https://btstor.net/q/midnight+texas+s01e10/date/
|
||||
keywordsfilters:
|
||||
# replace space between keywords with +
|
||||
- name: re_replace
|
||||
args: [" ", "+"]
|
||||
paths:
|
||||
- path: "{{ if .Keywords }}q/{{ .Keywords }}/date/{{else}}/{{end}}"
|
||||
rows:
|
||||
selector: table.tor > tbody > tr[class$="_tr"]
|
||||
filters:
|
||||
- name: andmatch
|
||||
fields:
|
||||
title:
|
||||
selector: td.tname_index > a
|
||||
details:
|
||||
selector: td.tname_index > a
|
||||
attribute: href
|
||||
category:
|
||||
# src="https://btstor.net/templates/btscene/images/shows.png"
|
||||
selector: td.tname_index > img
|
||||
attribute: src
|
||||
filters:
|
||||
- name: replace
|
||||
args: [".png", ""]
|
||||
- name: split
|
||||
args: ["/", 6]
|
||||
download:
|
||||
selector: td.tname_index > a
|
||||
attribute: href
|
||||
size:
|
||||
selector: td.tsize_index
|
||||
seeders:
|
||||
selector: td.tseeds_index
|
||||
leechers:
|
||||
selector: td.tpeers_index
|
||||
date:
|
||||
selector: td.tupd_index
|
||||
filters:
|
||||
- name: timeago
|
||||
downloadvolumefactor:
|
||||
text: "0"
|
||||
uploadvolumefactor:
|
||||
text: "1"
|
@@ -35,6 +35,8 @@
|
||||
- path: "{{ if .Keywords }}search/{{ .Keywords }}/{{else}}new/{{end}}"
|
||||
rows:
|
||||
selector: table.data tr.odd
|
||||
filters:
|
||||
- name: andmatch
|
||||
fields:
|
||||
category:
|
||||
selector: span.uploader_block strong a
|
||||
|
@@ -11,89 +11,91 @@
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: Movies, desc: "Movies"}
|
||||
- {id: 84, cat: Movies, desc: "N ees (2016, 2017)"}
|
||||
- {id: 14, cat: Movies/SD, desc: "DVDRip-BDRip-BRRip (e?? 2015) FREE"}
|
||||
- {id: 16, cat: Movies/SD, desc: "In Avouri (CAM) FREE"}
|
||||
- {id: 17, cat: Movies/BluRay, desc: "B LU-RAY"}
|
||||
- {id: 44, cat: Movies, desc: "E English Movies"}
|
||||
- {id: 76, cat: Movies, desc: "N tokimanter"}
|
||||
- {id: 82, cat: Movies, desc: "I EATP"}
|
||||
- {id: 84, cat: Movies, desc: "Movies New (2017, 2018)"}
|
||||
- {id: 14, cat: Movies/SD, desc: "Movies DVDRip-BDRip-BRRip (up to 2016) FREE"}
|
||||
- {id: 16, cat: Movies/SD, desc: "Movies (CAM) FREE"}
|
||||
- {id: 17, cat: Movies/BluRay, desc: "Movies BLU-RAY"}
|
||||
- {id: 44, cat: Movies, desc: "Movies Greek"}
|
||||
- {id: 76, cat: Movies, desc: "Movies Documentaries"}
|
||||
- {id: 82, cat: Movies, desc: "Movies Theater"}
|
||||
|
||||
- {id: 52, cat: TV, desc: "series"}
|
||||
- {id: 53, cat: TV/SD, desc: ", O Enes"}
|
||||
- {id: 70, cat: TV/HD, desc: "O Enes (720p)"}
|
||||
- {id: 54, cat: TV, desc: "E English"}
|
||||
- {id: 86, cat: TV, desc: "O Enes Complete Seasons"}
|
||||
- {id: 92, cat: TV, desc: "O Enes Complete Seasons (720p)"}
|
||||
- {id: 87, cat: TV, desc: "E English Complete Seasons"}
|
||||
- {id: 63, cat: TV, desc: "Y ychagogikes Emissions"}
|
||||
- {id: 52, cat: TV, desc: "TV Series"}
|
||||
- {id: 53, cat: TV/SD, desc: "TV Series Foreign"}
|
||||
- {id: 70, cat: TV/HD, desc: "TV Series Foreign (720p)"}
|
||||
- {id: 54, cat: TV, desc: "TV Series Greek"}
|
||||
- {id: 86, cat: TV, desc: "TV Series Foreign Complete Seasons"}
|
||||
- {id: 92, cat: TV, desc: "TV Series Foreign Complete Seasons (720p)"}
|
||||
- {id: 87, cat: TV, desc: "TV Series Greek Complete Seasons"}
|
||||
- {id: 63, cat: TV, desc: "TV Series Recreational"}
|
||||
- {id: 83, cat: TV/Sport, desc: "TV Sports"}
|
||||
|
||||
- {id: 55, cat: Movies, desc: "Children"}
|
||||
- {id: 38, cat: Movies, desc: "M etaglotismena (Movies)"}
|
||||
- {id: 39, cat: Movies, desc: "M e Subtitled (Movies)"}
|
||||
- {id: 93, cat: Movies, desc: "M etaglotismena (Series)"}
|
||||
- {id: 94, cat: Movies, desc: "M e Subtitled (Series)"}
|
||||
- {id: 45, cat: Movies, desc: "I absent Anime"}
|
||||
- {id: 98, cat: Movies, desc: "M etaglotismena 3D"}
|
||||
- {id: 64, cat: Movies, desc: "M music for Children"}
|
||||
- {id: 38, cat: Movies, desc: "Children (Movies)"}
|
||||
- {id: 39, cat: Movies, desc: "Children Subtitled (Movies)"}
|
||||
- {id: 93, cat: Movies, desc: "Children (TV Series)"}
|
||||
- {id: 94, cat: Movies, desc: "Children Subtitled (TV Series)"}
|
||||
- {id: 45, cat: Movies, desc: "Children Anime"}
|
||||
- {id: 98, cat: Movies, desc: "Children 3D"}
|
||||
- {id: 64, cat: Movies, desc: "Children Music"}
|
||||
|
||||
- {id: 7, cat: Audio, desc: "Foreign music"}
|
||||
- {id: 21, cat: Audio, desc: "N ees Releases"}
|
||||
- {id: 46, cat: Audio, desc: "P. Alai Releases"}
|
||||
- {id: 32, cat: Audio, desc: "D. iskografies"}
|
||||
- {id: 20, cat: Audio, desc: "In ylloges"}
|
||||
- {id: 102, cat: Audio, desc: "M AGICO Radio"}
|
||||
- {id: 81, cat: Audio, desc: "K araoke"}
|
||||
- {id: 95, cat: Audio, desc: "Soundtrack"}
|
||||
- {id: 7, cat: Audio, desc: "Music Foreign"}
|
||||
- {id: 21, cat: Audio, desc: "Music Foreign New Releases"}
|
||||
- {id: 46, cat: Audio, desc: "Music Foreign Old Releases"}
|
||||
- {id: 32, cat: Audio, desc: "Music Foreign Discographies"}
|
||||
- {id: 20, cat: Audio, desc: "Music Foreign Collections"}
|
||||
- {id: 102, cat: Audio, desc: "Music Foreign MAGICO Radio"}
|
||||
- {id: 81, cat: Audio, desc: "Music Foreign Karaoke"}
|
||||
- {id: 95, cat: Audio, desc: "Music Foreign Soundtrack"}
|
||||
|
||||
- {id: 47, cat: Audio, desc: "Greek music"}
|
||||
- {id: 48, cat: Audio, desc: "N ees Releases"}
|
||||
- {id: 49, cat: Audio, desc: "P. Alai Releases"}
|
||||
- {id: 51, cat: Audio, desc: "D. iskografies"}
|
||||
- {id: 50, cat: Audio, desc: "In ylloges"}
|
||||
- {id: 101, cat: Audio, desc: "M AGICO Radio"}
|
||||
- {id: 97, cat: Audio, desc: "Live Cd 's"}
|
||||
- {id: 57, cat: Audio, desc: "P empetika"}
|
||||
- {id: 58, cat: Audio, desc: "D. imotika"}
|
||||
- {id: 59, cat: Audio, desc: "K exception of preservatives"}
|
||||
- {id: 60, cat: Audio, desc: "N isiotika"}
|
||||
- {id: 62, cat: Audio, desc: "P. ontiaka"}
|
||||
- {id: 80, cat: Audio, desc: "K araoke"}
|
||||
- {id: 96, cat: Audio, desc: "Soundtracks"}
|
||||
- {id: 47, cat: Audio, desc: "Music Greek"}
|
||||
- {id: 48, cat: Audio, desc: "Music Greek New Releases"}
|
||||
- {id: 49, cat: Audio, desc: "Music Greek Old Releases"}
|
||||
- {id: 51, cat: Audio, desc: "Music Greek Discographies"}
|
||||
- {id: 50, cat: Audio, desc: "Music Greek Collections"}
|
||||
- {id: 101, cat: Audio, desc: "Music Greek MAGICO Radio"}
|
||||
- {id: 97, cat: Audio, desc: "Music Greek Live Cd's"}
|
||||
- {id: 57, cat: Audio, desc: "Music Greek Rebetika"}
|
||||
- {id: 58, cat: Audio, desc: "Music Greek Primary"}
|
||||
- {id: 59, cat: Audio, desc: "Music Greek Cretan"}
|
||||
- {id: 60, cat: Audio, desc: "Music Greek Island"}
|
||||
- {id: 62, cat: Audio, desc: "Music Greek Pontian"}
|
||||
- {id: 80, cat: Audio, desc: "Music Greek Karaoke"}
|
||||
- {id: 96, cat: Audio, desc: "Music Greek Soundtracks"}
|
||||
|
||||
- {id: 73, cat: Audio, desc: "seasonal Music"}
|
||||
- {id: 74, cat: Audio, desc: "X ristougenna"}
|
||||
- {id: 79, cat: Audio, desc: "P. ascha"}
|
||||
- {id: 75, cat: Audio, desc: "A pokriatika"}
|
||||
- {id: 78, cat: Audio, desc: "A Tariff Valentine"}
|
||||
- {id: 73, cat: Audio, desc: "Music Seasonal"}
|
||||
- {id: 74, cat: Audio, desc: "Music Seasonal Xmas"}
|
||||
- {id: 79, cat: Audio, desc: "Music Seasonal Easter"}
|
||||
- {id: 75, cat: Audio, desc: "Music Seasonal Halloween"}
|
||||
- {id: 78, cat: Audio, desc: "Music Seasonal Valentines"}
|
||||
|
||||
- {id: 33, cat: Books, desc: "Books"}
|
||||
- {id: 41, cat: Books, desc: "E nglis"}
|
||||
- {id: 65, cat: Books, desc: "K omix"}
|
||||
- {id: 43, cat: Books, desc: "P. periods"}
|
||||
- {id: 72, cat: Books, desc: "P. aidika"}
|
||||
- {id: 66, cat: Books, desc: "L. exika - Educational"}
|
||||
- {id: 42, cat: Books, desc: "O enoglossa"}
|
||||
- {id: 67, cat: Books, desc: "E. Konya-Photos"}
|
||||
- {id: 41, cat: Books, desc: "Books Greek"}
|
||||
- {id: 65, cat: Books, desc: "Books Comics"}
|
||||
- {id: 43, cat: Books, desc: "Books Periodicals"}
|
||||
- {id: 105, cat: Books, desc: "Books Audio"}
|
||||
- {id: 72, cat: Books, desc: "Books Children"}
|
||||
- {id: 66, cat: Books, desc: "Books Educational"}
|
||||
- {id: 42, cat: Books, desc: "Books Foreign"}
|
||||
- {id: 67, cat: Books, desc: "Books Photos"}
|
||||
|
||||
- {id: 6, cat: PC, desc: "programs"}
|
||||
- {id: 18, cat: PC/0day, desc: "PC"}
|
||||
- {id: 40, cat: PC/Phone-Android, desc: "Android"}
|
||||
- {id: 19, cat: PC/Mac, desc: "Mac"}
|
||||
- {id: 6, cat: PC, desc: "Programs"}
|
||||
- {id: 18, cat: PC/0day, desc: "Programs PC"}
|
||||
- {id: 40, cat: PC/Phone-Android, desc: "Programs Android"}
|
||||
- {id: 19, cat: PC/Mac, desc: "Programs Mac"}
|
||||
|
||||
- {id: 2, cat: PC/Games, desc: "Games"}
|
||||
- {id: 27, cat: PC/Games, desc: "PC"}
|
||||
- {id: 68, cat: PC/Phone-Android, desc: "Android"}
|
||||
- {id: 27, cat: PC/Games, desc: "Games PC"}
|
||||
- {id: 68, cat: PC/Phone-Android, desc: "Games Android"}
|
||||
|
||||
- {id: 88, cat: Other, desc: "Design / Tutorials / Accessories"}
|
||||
- {id: 89, cat: Other, desc: "Photoshop Tutorials"}
|
||||
- {id: 91, cat: Other, desc: "Illustrator Tutorials"}
|
||||
- {id: 90, cat: Other, desc: "After Effects Tutorials"}
|
||||
- {id: 88, cat: Other, desc: "Tutorials / Design / Accessories"}
|
||||
- {id: 89, cat: Other, desc: "Tutorials Photoshop"}
|
||||
- {id: 91, cat: Other, desc: "Tutorials Illustrator"}
|
||||
- {id: 90, cat: Other, desc: "Tutorials After Effects"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
|
||||
login:
|
||||
path: /?p=home&pid=1
|
||||
@@ -135,7 +137,7 @@
|
||||
error:
|
||||
- selector: div#show_error font
|
||||
rows:
|
||||
selector: div#content > div.torrent-box[id^="torrent_"]
|
||||
selector: div#content > div.torrent-box[id^="torrent_"], tr:has(a[href*="?p=torrents&pid=10&action=details"])
|
||||
filters:
|
||||
- name: andmatch
|
||||
fields:
|
||||
@@ -145,7 +147,7 @@
|
||||
- name: replace
|
||||
args: ["Grey's Anatomy", "Greys Anatomy"]
|
||||
category:
|
||||
selector: div.categoryImage > a
|
||||
selector: a[href*="?p=torrents&pid=10&cid="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
@@ -157,6 +159,7 @@
|
||||
selector: a[href*="?p=torrents&pid=10&action=download"]
|
||||
attribute: href
|
||||
imdb:
|
||||
optional: true
|
||||
selector: a[href^="http://www.imdb.com/title/tt"]
|
||||
attribute: href
|
||||
size:
|
||||
@@ -172,6 +175,7 @@
|
||||
selector: a[rel="fancybox"]
|
||||
attribute: href
|
||||
description:
|
||||
optional: true
|
||||
selector: div.torrentDetails > div:has(span.floatright)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
@@ -217,5 +221,17 @@
|
||||
args: ["Κυριακή", "Sunday"]
|
||||
- name: dateparse
|
||||
args: "02-01-2006 15:04"
|
||||
|
||||
|
||||
date:
|
||||
# <br /> Uploaded Saturday at 21:09 by
|
||||
optional: true
|
||||
selector: td.torrent_name
|
||||
remove: div, a, span
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["Uploaded ", ""]
|
||||
- name: replace
|
||||
args: [" by", ""]
|
||||
- name: replace
|
||||
args: ["at ", ""]
|
||||
- name: dateparse
|
||||
args: "02-01-2006 15:04"
|
||||
|
77
src/Jackett.Common/Definitions/skytorrentsclone.yml
Normal file
77
src/Jackett.Common/Definitions/skytorrentsclone.yml
Normal file
@@ -0,0 +1,77 @@
|
||||
---
|
||||
site: skytorrentsclone
|
||||
name: SkyTorrentsClone
|
||||
description: "SkyTorrents.lol is a Public SkyTorrents clone for TV / MOVIES / GENERAL"
|
||||
language: en-us
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://www.skytorrents.lol/
|
||||
|
||||
caps:
|
||||
categories:
|
||||
# category=
|
||||
"album": Audio
|
||||
"ebook": Books
|
||||
"movie": Movies
|
||||
"show": TV
|
||||
# type=
|
||||
"audio": Audio
|
||||
"doc": Books
|
||||
"games": PC/Games
|
||||
"software": PC
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
|
||||
settings: []
|
||||
|
||||
search:
|
||||
# https://www.skytorrents.lol/?query=mr+mercedes+s02e05&sort=created
|
||||
# https://www.skytorrents.lol/top100
|
||||
paths:
|
||||
- path: "{{ if .Keywords }}?query={{ .Keywords }}&sort=created{{else}}top100{{end}}"
|
||||
- path: "{{ if .Keywords }}?query={{ .Keywords }}&sort=created&page=2{{else}}{{end}}"
|
||||
- path: "{{ if .Keywords }}?query={{ .Keywords }}&sort=created&page=3{{else}}{{end}}"
|
||||
- path: "{{ if .Keywords }}?query={{ .Keywords }}&sort=created&page=4{{else}}{{end}}"
|
||||
rows:
|
||||
selector: tr.result
|
||||
fields:
|
||||
title:
|
||||
selector: td a
|
||||
category:
|
||||
# try category=
|
||||
optional: true
|
||||
selector: a.label[href*="category="]
|
||||
category:
|
||||
# try type=
|
||||
optional: true
|
||||
selector: a.label[href*="type="]
|
||||
details:
|
||||
selector: td a
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="//itorrents"]
|
||||
attribute: href
|
||||
magnet:
|
||||
selector: a[href^="magnet:?"]
|
||||
attribute: href
|
||||
size:
|
||||
selector: td:nth-child(2)
|
||||
files:
|
||||
selector: td:nth-child(3)
|
||||
date:
|
||||
# 20 Minutes ago
|
||||
selector: td:nth-child(4)
|
||||
filters:
|
||||
- name: timeago
|
||||
seeders:
|
||||
selector: td:nth-child(5)
|
||||
leechers:
|
||||
selector: td:nth-child(6)
|
||||
downloadvolumefactor:
|
||||
text: "0"
|
||||
uploadvolumefactor:
|
||||
text: "1"
|
@@ -302,13 +302,24 @@
|
||||
- name: dateparse
|
||||
args: "02/01/2006 15:04:05"
|
||||
size:
|
||||
selector: td:nth-child(5)
|
||||
# seems size might be floating as the 4th or 5th td so lets try matching the size-unit
|
||||
optional: true
|
||||
selector: td.ttable_col2:contains(" GB")
|
||||
size:
|
||||
optional: true
|
||||
selector: td.ttable_col2:contains(" MB")
|
||||
size:
|
||||
optional: true
|
||||
selector: td.ttable_col2:contains(" kB")
|
||||
size:
|
||||
optional: true
|
||||
selector: td.ttable_col2:contains(" B")
|
||||
grabs:
|
||||
selector: font[color^=orange]
|
||||
selector: td.ttable_col1 > font[color^=orange]
|
||||
seeders:
|
||||
selector: font[color^=green]
|
||||
selector: td.ttable_col1 > b > font[color^=green]
|
||||
leechers:
|
||||
selector: td.ttable_col1 > font[color^=red]
|
||||
selector: td.ttable_col2 > font[color^=red]
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[src="images/free.gif"]: "0"
|
||||
|
56
src/Jackett.Common/Definitions/torrentcouch.yml
Normal file
56
src/Jackett.Common/Definitions/torrentcouch.yml
Normal file
@@ -0,0 +1,56 @@
|
||||
---
|
||||
site: torrentcouch
|
||||
name: TorrentCouch
|
||||
description: "TorrentCounch is a Public TV tracker"
|
||||
language: en-us
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://torrentcouch.com/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: TV, desc: "TV"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
|
||||
settings: []
|
||||
|
||||
download:
|
||||
selector: tr td a[href*="/files/download/"]
|
||||
|
||||
search:
|
||||
# https://torrentcouch.com/?s=expanse
|
||||
paths:
|
||||
- path: /
|
||||
inputs:
|
||||
s: "{{.Keywords}}"
|
||||
rows:
|
||||
selector: article
|
||||
fields:
|
||||
title:
|
||||
selector: h2 a
|
||||
category:
|
||||
text: "1"
|
||||
details:
|
||||
selector: h2 a
|
||||
attribute: href
|
||||
description:
|
||||
selector: p
|
||||
download:
|
||||
selector: h2 a
|
||||
attribute: href
|
||||
size:
|
||||
text: "500 MB"
|
||||
seeders:
|
||||
text: "999"
|
||||
leechers:
|
||||
text: "999"
|
||||
date:
|
||||
text: now
|
||||
downloadvolumefactor:
|
||||
text: "0"
|
||||
uploadvolumefactor:
|
||||
text: "1"
|
@@ -1,6 +1,6 @@
|
||||
---
|
||||
site: torrentgalaxyorg
|
||||
name: TGx
|
||||
name: TorrentGalaxy.org
|
||||
description: "TorrentGalaxy.org (TGx) is a Public site for TV / MOVIES / GENERAL"
|
||||
language: en-us
|
||||
type: public
|
||||
|
@@ -62,6 +62,9 @@
|
||||
search:
|
||||
paths:
|
||||
- path: torrents.php
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
args: ["S(\\d{2})E(\\d{2})", "$1 $2"]
|
||||
inputs:
|
||||
search: "{{ .Keywords }}"
|
||||
category: "0"
|
||||
|
@@ -114,6 +114,7 @@
|
||||
FRENCH : "FRENCH"
|
||||
MULTI.FRENCH: "MULTI.FRENCH"
|
||||
ENGLISH: "ENGLISH"
|
||||
MULTI.ENGLISH: "MULTI.ENGLISH"
|
||||
login:
|
||||
method: form
|
||||
path: /
|
||||
|
@@ -13,10 +13,11 @@
|
||||
"anime": TV/Anime
|
||||
"app": PC
|
||||
"book": Books
|
||||
"files": Other/Misc
|
||||
"game": PC/Games
|
||||
"movies": Movies
|
||||
"music": Audio
|
||||
"other": Other/Misc
|
||||
"other": Other
|
||||
"tv": TV
|
||||
|
||||
modes:
|
||||
|
@@ -10,7 +10,6 @@ using NLog;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using static Jackett.Common.Models.IndexerConfig.ConfigurationData;
|
||||
@@ -177,10 +176,9 @@ namespace Jackett.Common.Indexers
|
||||
//TODO: Remove this section once users have moved off DPAPI
|
||||
private bool MigratedFromDPAPI(JToken jsonConfig)
|
||||
{
|
||||
bool runningOnDotNetCore = RuntimeInformation.FrameworkDescription.IndexOf("core", StringComparison.OrdinalIgnoreCase) >= 0;
|
||||
bool isWindows = Environment.OSVersion.Platform == PlatformID.Win32NT;
|
||||
|
||||
if (!isWindows && runningOnDotNetCore)
|
||||
if (!isWindows && DotNetCoreUtil.IsRunningOnDotNetCore)
|
||||
{
|
||||
// User isn't running Windows, but is running on .NET Core framework, no access to the DPAPI, so don't bother trying to migrate
|
||||
return false;
|
||||
|
@@ -156,7 +156,9 @@ namespace Jackett.Common.Indexers
|
||||
var release = new ReleaseInfo();
|
||||
release.Title = string.Format("{0} [480p]", title);
|
||||
release.PublishDate = releasedate;
|
||||
release.Link = new Uri(p480.QuerySelector(".hs-torrent-link > a").GetAttribute("href"));
|
||||
var torrentlink = new Uri(p480.QuerySelector(".hs-torrent-link > a").GetAttribute("href"));
|
||||
release.Link = torrentlink;
|
||||
release.Guid = torrentlink;
|
||||
release.MagnetUri = new Uri(p480.QuerySelector(".hs-magnet-link > a").GetAttribute("href"));
|
||||
release.Files = 1;
|
||||
release.Category = new List<int> { TorznabCatType.TVAnime.ID };
|
||||
@@ -175,7 +177,9 @@ namespace Jackett.Common.Indexers
|
||||
var release = new ReleaseInfo();
|
||||
release.Title = string.Format("{0} [720p]", title);
|
||||
release.PublishDate = releasedate;
|
||||
release.Link = new Uri(p720.QuerySelector(".hs-torrent-link > a").GetAttribute("href"));
|
||||
var torrentlink = new Uri(p720.QuerySelector(".hs-torrent-link > a").GetAttribute("href"));
|
||||
release.Link = torrentlink;
|
||||
release.Guid = torrentlink;
|
||||
release.MagnetUri = new Uri(p720.QuerySelector(".hs-magnet-link > a").GetAttribute("href"));
|
||||
release.Files = 1;
|
||||
release.Category = new List<int> { TorznabCatType.TVAnime.ID };
|
||||
@@ -194,7 +198,9 @@ namespace Jackett.Common.Indexers
|
||||
var release = new ReleaseInfo();
|
||||
release.Title = string.Format("{0} [1080p]", title);
|
||||
release.PublishDate = releasedate;
|
||||
release.Link = new Uri(p1080.QuerySelector(".hs-torrent-link > a").GetAttribute("href"));
|
||||
var torrentlink = new Uri(p1080.QuerySelector(".hs-torrent-link > a").GetAttribute("href"));
|
||||
release.Link = torrentlink;
|
||||
release.Guid = torrentlink;
|
||||
release.MagnetUri = new Uri(p1080.QuerySelector(".hs-magnet-link > a").GetAttribute("href"));
|
||||
release.Files = 1;
|
||||
release.Category = new List<int> { TorznabCatType.TVAnime.ID };
|
||||
|
@@ -133,7 +133,7 @@ namespace Jackett.Common.Indexers
|
||||
{ "returnto", "/" }
|
||||
};
|
||||
|
||||
CookieHeader = ""; // cookie reset needed in order to relogin
|
||||
configData.CookieHeader.Cookie = ""; // cookie reset needed in order to relogin
|
||||
|
||||
var preRequest = await RequestStringWithCookiesAndRetry(LoginUrl);
|
||||
|
||||
@@ -182,7 +182,7 @@ namespace Jackett.Common.Indexers
|
||||
}
|
||||
|
||||
var response = await RequestStringWithCookiesAndRetry(urlSearch);
|
||||
if (response.Status == System.Net.HttpStatusCode.Forbidden || CookieHeader.Contains("pass=deleted"))
|
||||
if (response.Status == System.Net.HttpStatusCode.Forbidden || CookieHeader.Contains("pass=deleted") || response.Content.Contains("Access limits exceeded."))
|
||||
{
|
||||
// re-login
|
||||
await ApplyConfiguration(null);
|
||||
|
@@ -59,7 +59,7 @@ namespace Jackett.Common.Indexers
|
||||
|
||||
TorznabCaps.SupportsImdbSearch = true;
|
||||
|
||||
webclient.requestDelay = 2.0; // 0.5 requests per second (2 causes problems)
|
||||
webclient.requestDelay = 2.1; // The api has a 1req/2s limit.
|
||||
|
||||
AddCategoryMapping(4, TorznabCatType.XXX, "XXX (18+)");
|
||||
AddCategoryMapping(14, TorznabCatType.MoviesSD, "Movies/XVID");
|
||||
|
28
src/Jackett.Common/Utils/DotNetCoreUtil.cs
Normal file
28
src/Jackett.Common/Utils/DotNetCoreUtil.cs
Normal file
@@ -0,0 +1,28 @@
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace Jackett.Common.Utils
|
||||
{
|
||||
public static class DotNetCoreUtil
|
||||
{
|
||||
public static bool IsRunningOnDotNetCore
|
||||
{
|
||||
get
|
||||
{
|
||||
bool runningOnDotNetCore = false;
|
||||
|
||||
try
|
||||
{
|
||||
runningOnDotNetCore = RuntimeInformation.FrameworkDescription.IndexOf("core", StringComparison.OrdinalIgnoreCase) >= 0;
|
||||
}
|
||||
catch
|
||||
{
|
||||
//Issue only appears to occur for small number of users on Mono
|
||||
runningOnDotNetCore = false;
|
||||
}
|
||||
|
||||
return runningOnDotNetCore;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@@ -4,8 +4,6 @@ using Jackett.Common.Utils;
|
||||
using Jackett.Server.Services;
|
||||
using NLog;
|
||||
using System;
|
||||
using System.Linq;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace Jackett.Server
|
||||
{
|
||||
@@ -113,8 +111,8 @@ namespace Jackett.Server
|
||||
{
|
||||
logger.Info("Overriding port to " + consoleOptions.Port);
|
||||
serverConfig.Port = consoleOptions.Port;
|
||||
bool isWindows = RuntimeInformation.IsOSPlatform(OSPlatform.Windows);
|
||||
if (isWindows)
|
||||
|
||||
if (EnvironmentUtil.IsWindows)
|
||||
{
|
||||
if (ServerUtil.IsUserAdministrator())
|
||||
{
|
||||
@@ -137,7 +135,7 @@ namespace Jackett.Server
|
||||
{
|
||||
logger.Info("Overriding external access to " + consoleOptions.ListenPublic);
|
||||
serverConfig.AllowExternal = consoleOptions.ListenPublic;
|
||||
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
|
||||
if (EnvironmentUtil.IsWindows)
|
||||
{
|
||||
if (ServerUtil.IsUserAdministrator())
|
||||
{
|
||||
|
@@ -47,9 +47,7 @@ namespace Jackett.Server
|
||||
{
|
||||
if (string.IsNullOrEmpty(options.Client))
|
||||
{
|
||||
bool runningOnDotNetCore = RuntimeInformation.FrameworkDescription.IndexOf("Core", StringComparison.OrdinalIgnoreCase) >= 0;
|
||||
|
||||
if (runningOnDotNetCore)
|
||||
if (DotNetCoreUtil.IsRunningOnDotNetCore)
|
||||
{
|
||||
options.Client = "httpclientnetcore";
|
||||
}
|
||||
|
@@ -1,5 +1,6 @@
|
||||
using Jackett.Common.Models.Config;
|
||||
using Jackett.Common.Services.Interfaces;
|
||||
using Jackett.Common.Utils;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.AspNetCore.WebUtilities;
|
||||
using NLog;
|
||||
@@ -121,10 +122,8 @@ namespace Jackett.Server.Services
|
||||
logger.Error(e, "Error while reading the issue file");
|
||||
}
|
||||
|
||||
bool runningOnDotNetCore = RuntimeInformation.FrameworkDescription.IndexOf("Core", StringComparison.OrdinalIgnoreCase) >= 0;
|
||||
|
||||
Type monotype = Type.GetType("Mono.Runtime");
|
||||
if (monotype != null && !runningOnDotNetCore)
|
||||
if (monotype != null && !DotNetCoreUtil.IsRunningOnDotNetCore)
|
||||
{
|
||||
MethodInfo displayName = monotype.GetMethod("GetDisplayName", BindingFlags.NonPublic | BindingFlags.Static);
|
||||
var monoVersion = "unknown";
|
||||
|
@@ -275,6 +275,7 @@ namespace Jackett.Updater
|
||||
"Definitions/torrentkim.yml",
|
||||
"Definitions/horriblesubs.yml",
|
||||
"Definitions/idope.yml",
|
||||
"Definitions/bt-scene.yml",
|
||||
};
|
||||
|
||||
foreach (var oldFile in oldFiles)
|
||||
|
Reference in New Issue
Block a user