mirror of
https://github.com/Jackett/Jackett.git
synced 2025-09-12 06:57:05 +02:00
Compare commits
53 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
943ddba22b | ||
![]() |
79fa4da2bf | ||
![]() |
da7589838f | ||
![]() |
2a4be14998 | ||
![]() |
c81a2163ce | ||
![]() |
d3ada91c3a | ||
![]() |
653dcca2af | ||
![]() |
c2a24cae22 | ||
![]() |
babd49c082 | ||
![]() |
1007366471 | ||
![]() |
e747d4e2fa | ||
![]() |
efab277714 | ||
![]() |
7f8cfa7eca | ||
![]() |
6abc8adcd1 | ||
![]() |
8e1d171937 | ||
![]() |
9f433dd0de | ||
![]() |
65da3e83af | ||
![]() |
21250c275f | ||
![]() |
e612c111c6 | ||
![]() |
e24c95d4e2 | ||
![]() |
2920caf7c0 | ||
![]() |
f73a047ed9 | ||
![]() |
313ade66f4 | ||
![]() |
392a0d7b7e | ||
![]() |
324afbcd0f | ||
![]() |
7f003427fd | ||
![]() |
a89246c9a7 | ||
![]() |
69b01c34f8 | ||
![]() |
a41bf6ebe4 | ||
![]() |
5bf224d84d | ||
![]() |
03af2a6d1d | ||
![]() |
aee7bba3ce | ||
![]() |
29b1304967 | ||
![]() |
81029b3019 | ||
![]() |
62caeb3f4d | ||
![]() |
fba3e1922f | ||
![]() |
0aacf6344d | ||
![]() |
9d3d8ea18d | ||
![]() |
4da3921e21 | ||
![]() |
fed41d5b68 | ||
![]() |
15841e26a8 | ||
![]() |
22a5f46276 | ||
![]() |
eb5642f293 | ||
![]() |
98297b2d85 | ||
![]() |
d900ac065f | ||
![]() |
469620d88b | ||
![]() |
461594e336 | ||
![]() |
63f1870319 | ||
![]() |
ba9710cd7c | ||
![]() |
44c814417c | ||
![]() |
d1290fc226 | ||
![]() |
fa88fa8af8 | ||
![]() |
318b3667ff |
15
.gitattributes
vendored
15
.gitattributes
vendored
@@ -2,13 +2,12 @@
|
||||
* text=auto
|
||||
* text eol=lf
|
||||
|
||||
# Explicitly declare text files you want to always be normalized and converted
|
||||
# to native line endings on checkout.
|
||||
|
||||
# Declare files that will always have LF line endings on checkout.
|
||||
|
||||
# Declare files that will always have CRLF line endings on checkout.
|
||||
|
||||
# Denote all files that are truly binary and should not be modified.
|
||||
*.png binary
|
||||
*.eot binary
|
||||
*.ico binary
|
||||
*.jpg binary
|
||||
*.otf binary
|
||||
*.png binary
|
||||
*.ttf binary
|
||||
*.woff binary
|
||||
*.woff2 binary
|
||||
|
@@ -18,7 +18,7 @@ Developer note: The software implements the [Torznab](https://github.com/Sonarr/
|
||||
|
||||
|
||||
#### Supported Systems
|
||||
* Windows 7SP1 or greater using .NET 4.6.1 or above [Download here](https://dotnet.microsoft.com/download/dotnet-framework/net461)
|
||||
* Windows 7SP1 or greater
|
||||
* Linux [supported operating systems here](https://github.com/dotnet/core/blob/master/release-notes/2.1/2.1-supported-os.md#linux)
|
||||
* macOS 10.13 or greater
|
||||
|
||||
@@ -152,6 +152,7 @@ Developer note: The software implements the [Torznab](https://github.com/Sonarr/
|
||||
* AlexFilm
|
||||
* AniDUB
|
||||
* ArenaBG
|
||||
* BaibaKo
|
||||
* BookTracker
|
||||
* CasStudioTV
|
||||
* Crazy's Corner
|
||||
@@ -220,7 +221,6 @@ Developer note: The software implements the [Torznab](https://github.com/Sonarr/
|
||||
* Audiobook Torrents (ABT)
|
||||
* Avistaz (AsiaTorrents)
|
||||
* Awesome-HD (AHD)
|
||||
* BaibaKo
|
||||
* BIGTorrent
|
||||
* BIT-HDTV
|
||||
* BJ-Share (BJ)
|
||||
@@ -284,6 +284,7 @@ Developer note: The software implements the [Torznab](https://github.com/Sonarr/
|
||||
* EfectoDoppler
|
||||
* Elite-Tracker
|
||||
* Empornium (EMP)
|
||||
* EpubLibre
|
||||
* Ethor.net (Thor's Land)
|
||||
* ExoticaZ (YourExotic)
|
||||
* ExtremeTorrents
|
||||
@@ -336,6 +337,7 @@ Developer note: The software implements the [Torznab](https://github.com/Sonarr/
|
||||
* HacheDe
|
||||
* Hebits
|
||||
* Hon3y HD
|
||||
* Horror Site
|
||||
* HuSh
|
||||
* ICE Torrent
|
||||
* IPTorrents (IPT)
|
||||
|
@@ -182,6 +182,7 @@ function displayConfiguredIndexersList(indexers) {
|
||||
indexersTable.find("table").dataTable(
|
||||
{
|
||||
"stateSave": true,
|
||||
"stateDuration": 0,
|
||||
"pageLength": -1,
|
||||
"lengthMenu": [[10, 20, 50, 100, 250, 500, -1], [10, 20, 50, 100, 250, 500, "All"]],
|
||||
"order": [[0, "asc"]],
|
||||
@@ -253,6 +254,7 @@ function displayUnconfiguredIndexersList() {
|
||||
indexersTable.find("table").DataTable(
|
||||
{
|
||||
"stateSave": true,
|
||||
"stateDuration": 0,
|
||||
"fnStateSaveParams": function (oSettings, sValue) {
|
||||
sValue.search.search = ""; // don't save the search filter content
|
||||
return sValue;
|
||||
@@ -955,6 +957,7 @@ function updateSearchResultTable(element, results) {
|
||||
|
||||
"dom": "lfr<\"dataTables_deadfilter\">tip",
|
||||
"stateSave": true,
|
||||
"stateDuration": 0,
|
||||
"bAutoWidth": false,
|
||||
"pageLength": 20,
|
||||
"lengthMenu": [[10, 20, 50, 100, 250, 500, -1], [10, 20, 50, 100, 250, 500, "All"]],
|
||||
@@ -1082,6 +1085,7 @@ function bindUIButtons() {
|
||||
table.DataTable(
|
||||
{
|
||||
"stateSave": true,
|
||||
"stateDuration": 0,
|
||||
"bAutoWidth": false,
|
||||
"pageLength": 20,
|
||||
"lengthMenu": [[10, 20, 50, -1], [10, 20, 50, "All"]],
|
||||
|
@@ -691,6 +691,6 @@
|
||||
</script>
|
||||
|
||||
<script type="text/javascript" src="../libs/api.js?changed=2017083001"></script>
|
||||
<script type="text/javascript" src="../custom.js?changed=20200301"></script>
|
||||
<script type="text/javascript" src="../custom.js?changed=20200316"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
@@ -44,12 +44,12 @@
|
||||
- {id: 3, cat: Movies, desc: "Movies/SVCD/VCD"}
|
||||
- {id: 4, cat: Movies/Foreign, desc: "Movies/Dubs/Dual Audio"}
|
||||
- {id: 42, cat: Movies/HD, desc: "Movies/HD"}
|
||||
- {id: 54, cat: Movies, desc: "Movies/h.264/x264"}
|
||||
- {id: 54, cat: Movies/HD, desc: "Movies/h.264/x264"}
|
||||
- {id: 55, cat: Movies, desc: "Movies/Mp4"}
|
||||
- {id: 66, cat: Movies/3D, desc: "Movies/3D"}
|
||||
- {id: 70, cat: Movies, desc: "Movies/HEVC/x265"}
|
||||
- {id: 70, cat: Movies/HD, desc: "Movies/HEVC/x265"}
|
||||
- {id: 73, cat: Movies, desc: "Movies/Bollywood"}
|
||||
- {id: 76, cat: Movies, desc: "Movies/UHD"}
|
||||
- {id: 76, cat: Movies/UHD, desc: "Movies/UHD"}
|
||||
|
||||
#TV
|
||||
- {id: 5, cat: TV, desc: "TV/DVD"}
|
||||
@@ -138,7 +138,7 @@
|
||||
"asc": "asc"
|
||||
|
||||
download:
|
||||
# the .torrent url is on the on the details page
|
||||
# the .torrent url is on the on the details page
|
||||
selector: ul li a[href^="{{ .Config.downloadlink }}"]
|
||||
attribute: href
|
||||
|
||||
@@ -148,7 +148,7 @@
|
||||
- path: "{{if or (.Query.Album) (.Query.Artist) (.Keywords) }}sort-search{{else}}cat/Movies{{end}}{{if or (.Query.Album) (.Query.Artist) }}/{{ or (.Query.Album) (.Query.Artist) }}{{else}}/{{ .Keywords }}{{end}}{{if or (.Query.Album) (.Query.Artist) (.Keywords) }}/{{else}}{{end}}{{ .Config.sort }}/{{ .Config.type }}/1/"
|
||||
- path: "{{if or (.Query.Album) (.Query.Artist) (.Keywords) }}sort-search{{else}}cat/TV{{end}}{{if or (.Query.Album) (.Query.Artist) }}/{{ or (.Query.Album) (.Query.Artist) }}{{else}}/{{ .Keywords }}{{end}}{{if or (.Query.Album) (.Query.Artist) (.Keywords) }}/{{else}}{{end}}{{ .Config.sort }}/{{ .Config.type }}/{{if or (.Query.Album) (.Query.Artist) (.Keywords) }}2{{else}}1{{end}}/"
|
||||
- path: "{{if or (.Query.Album) (.Query.Artist) (.Keywords) }}sort-search{{else}}cat/Music{{end}}{{if or (.Query.Album) (.Query.Artist) }}/{{ or (.Query.Album) (.Query.Artist) }}{{else}}/{{ .Keywords }}{{end}}{{if or (.Query.Album) (.Query.Artist) (.Keywords) }}/{{else}}{{end}}{{ .Config.sort }}/{{ .Config.type }}/{{if or (.Query.Album) (.Query.Artist) (.Keywords) }}3{{else}}1{{end}}/"
|
||||
keywordsfilters:
|
||||
keywordsfilters:
|
||||
- name: replace # use this as a workaround till #893 is implemented
|
||||
args: ["Greys Anatomy", "Grey's Anatomy"]
|
||||
|
||||
|
@@ -14,7 +14,7 @@
|
||||
categorymappings:
|
||||
# HRS
|
||||
- {id: 34, cat: Movies/HD, desc: "1080p HRS x264"}
|
||||
- {id: 47, cat: Movies/HD, desc: "2160p 4k UltraHD HRS"}
|
||||
- {id: 47, cat: Movies/UHD, desc: "2160p 4k UltraHD HRS"}
|
||||
- {id: 35, cat: TV, desc: "Serie TV HRS"}
|
||||
- {id: 36, cat: Movies/SD, desc: "DVDRip HRS"}
|
||||
- {id: 41, cat: Movies/SD, desc: "BDRip 576p HRS"}
|
||||
@@ -38,7 +38,7 @@
|
||||
- {id: 42, cat: TV, desc: "Serie Tv Sub Ita"}
|
||||
- {id: 15, cat: TV/Documentary, desc: "documentaries"}
|
||||
- {id: 33, cat: TV, desc: "mp4"}
|
||||
- {id: 40, cat: TV/HD, desc: "2160p 4K UltraHD"}
|
||||
- {id: 40, cat: TV/UHD, desc: "2160p 4K UltraHD"}
|
||||
- {id: 38, cat: XXX, desc: "xXx"}
|
||||
- {id: 43, cat: Other, desc: "Arabic for social"}
|
||||
|
||||
|
@@ -1,9 +1,9 @@
|
||||
---
|
||||
site: baibako
|
||||
name: BaibaKo
|
||||
description: "BaibaKo is a RUSSIAN Private Torrent Tracker for TV"
|
||||
description: "BaibaKo is a RUSSIAN Semi-Private Torrent Tracker for TV"
|
||||
language: ru-ru
|
||||
type: private
|
||||
type: semi-private
|
||||
encoding: windows-1251
|
||||
links:
|
||||
- http://baibako.tv/ # site does not support https NET::ERR_CERT_AUTHORITY_INVALID
|
||||
|
@@ -56,6 +56,10 @@
|
||||
movie-search: [q]
|
||||
|
||||
settings:
|
||||
- name: info_alert
|
||||
type: info
|
||||
label: Alert about Cookie
|
||||
default: "If during your cookie save you get the following error:</br><b>The 'Value'='xzlogin,xzrecover,xzsignup' part of the cookie is invalid.</b></br>Then remove <b>acopendivids=xzlogin,xzrecover,xzsignup; </b> from the cookie string before proceeding to save."
|
||||
- name: cookie
|
||||
type: text
|
||||
label: Cookie
|
||||
|
@@ -24,7 +24,10 @@
|
||||
- {id: 16, cat: Movies/SD, desc: "Movies CAM"}
|
||||
- {id: 74, cat: Movies/DVD, desc: "Movies DvD-R"}
|
||||
- {id: 76, cat: Movies, desc: "Movies Packs"}
|
||||
- {id: 91, cat: Movies/Other, desc: "Movies Kids"}
|
||||
- {id: 115, cat: Movies/Other, desc: "Movies Kids"}
|
||||
- {id: 91, cat: Movies/Other, desc: "Movies Kids Inglês"}
|
||||
- {id: 113, cat: Movies/Other, desc: "Movies Kids PT-BR"}
|
||||
- {id: 114, cat: Movies/Other, desc: "Movies Kids PT-PT"}
|
||||
- {id: 77, cat: Movies/WEBDL, desc: "Movies WEB-DL"}
|
||||
- {id: 85, cat: Movies/DVD, desc: "Movies Custom-DVDR"}
|
||||
- {id: 14, cat: Movies/SD, desc: "Movies DVDRip/XViD"}
|
||||
@@ -49,13 +52,14 @@
|
||||
- {id: 7, cat: Audio, desc: "Music"}
|
||||
- {id: 20, cat: Audio/Video, desc: "Music MVideo"}
|
||||
- {id: 21, cat: Audio/MP3, desc: "Music MP3"}
|
||||
- {id: 33, cat: Audio/Other, desc: "Music MP4"}
|
||||
- {id: 33, cat: Audio/Video, desc: "Music MP4"}
|
||||
- {id: 32, cat: Audio/Lossless, desc: "Music FLAC"}
|
||||
- {id: 2, cat: Console, desc: "Games"}
|
||||
- {id: 78, cat: PC/Games, desc: "Games Linux"}
|
||||
- {id: 79, cat: PC/Mac, desc: "Games MacOSX"}
|
||||
- {id: 28, cat: Console/NDS, desc: "Games Nintendo DS"}
|
||||
- {id: 27, cat: PC/Games, desc: "Games PC/Windows"}
|
||||
- {id: 111, cat: Console, desc: "Games Nintendo Sw"}
|
||||
- {id: 80, cat: Console/PS3, desc: "Games PS2"}
|
||||
- {id: 81, cat: Console/PS3, desc: "Games PS3"}
|
||||
- {id: 82, cat: Console/PS4, desc: "Games PS4"}
|
||||
@@ -70,10 +74,10 @@
|
||||
- {id: 34, cat: PC/ISO, desc: "Applications Linux"}
|
||||
- {id: 44, cat: Other, desc: "Miscellaneous"}
|
||||
- {id: 54, cat: Audio/Audiobook, desc: "Books Audiobook"}
|
||||
- {id: 57, cat: Books, desc: "Books E-Books"}
|
||||
- {id: 57, cat: Books/Ebook, desc: "Books E-Books"}
|
||||
- {id: 58, cat: Books/Comics, desc: "Books Comics"}
|
||||
- {id: 59, cat: Books, desc: "Books Educational"}
|
||||
- {id: 60, cat: Books, desc: "Books Magazines/Journals"}
|
||||
- {id: 60, cat: Books/Magazines, desc: "Books Magazines/Journals"}
|
||||
- {id: 61, cat: Other, desc: "Pics/Wallpapers"}
|
||||
- {id: 62, cat: PC/Phone-Android, desc: "Android"}
|
||||
- {id: 63, cat: PC/Phone-IOS, desc: "iOS"}
|
||||
@@ -92,9 +96,9 @@
|
||||
- {id: 69, cat: XXX/Imageset, desc: "XXX-Pics/Wallpapers"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
search: [q, imdbid]
|
||||
tv-search: [q, season, ep, imdbid]
|
||||
movie-search: [q, imdbid]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
@@ -122,6 +126,10 @@
|
||||
options:
|
||||
"desc": "desc"
|
||||
"asc": "asc"
|
||||
- name: info_results
|
||||
type: info
|
||||
label: Search results
|
||||
default: "If you get 0 results check the log for error: <b>An error has occured!You can't view this page unless you read all your unread messages</b>, then access the site with your browser and <b>mark as read</b> all PMs."
|
||||
|
||||
login:
|
||||
path: ?p=home&pid=1
|
||||
@@ -155,9 +163,9 @@
|
||||
p: torrents
|
||||
pid: 32
|
||||
$raw: "{{ range .Categories }}cid[]={{.}}&{{end}}"
|
||||
keywords: "{{ .Keywords }}"
|
||||
search_type: name
|
||||
searchin: title
|
||||
keywords: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{else}}{{ .Keywords }}{{end}}"
|
||||
# name , description , both , uploader
|
||||
search_type: "{{ if .Query.IMDBID }}description{{else}}name{{end}}"
|
||||
"sortOptions[sortBy]": "{{ .Config.sort }}"
|
||||
"sortOptions[sortOrder]": "{{ .Config.type }}"
|
||||
error:
|
||||
@@ -193,28 +201,62 @@
|
||||
selector: a[rel="fancybox"]
|
||||
optional: true
|
||||
attribute: href
|
||||
imdb:
|
||||
# a href="http://tracker.btnext.com/data/torrents/imdb/tt0249677.jpg"
|
||||
optional: true
|
||||
selector: a[href*="/imdb/tt"]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "imdb/(.+?).jpg"
|
||||
- name: prepend
|
||||
args: "https://www.imdb.com/title/"
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
"img[title=\"FREE!\"]": 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
"*": 1
|
||||
text: 1
|
||||
date:
|
||||
selector: td.torrent_name > abbr.timeago
|
||||
optional: true
|
||||
attribute: data-time
|
||||
date:
|
||||
selector: td.torrent_name:not(:has(abbr.timeago))
|
||||
selector: td.torrent_name:not(:has(abbr.timeago)):not(:contains("day")):not(:contains("Domingo")):not(:contains("Sábado")):not(:contains("Sexta")):not(:contains("Quinta")):not(:contains("Quarta")):not(:contains("Terça")):not(:contains("Segunda")):not(:contains("ontem")):not(:contains("Hoje"))
|
||||
optional: true
|
||||
remove: span, a, br
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["Enviado ", ""] # Uploaded
|
||||
- name: replace
|
||||
args: ["Uploaded ", ""]
|
||||
- name: replace
|
||||
args: [" por", ""] # by
|
||||
- name: replace
|
||||
args: [" by", ""]
|
||||
- name: replace
|
||||
args: ["às ", ""] # at
|
||||
- name: replace
|
||||
args: ["at ", ""]
|
||||
- name: dateparse
|
||||
args: "02-01-2006 15:04"
|
||||
date:
|
||||
selector: td.torrent_name:not(:has(abbr.timeago)):contains("day"), td.torrent_name:not(:has(abbr.timeago)):contains("Domingo"), td.torrent_name:not(:has(abbr.timeago)):contains("Sábado"), td.torrent_name:not(:has(abbr.timeago)):contains("Quinta"), td.torrent_name:not(:has(abbr.timeago)):contains("Sexta"), td.torrent_name:not(:has(abbr.timeago)):contains("Quarta"), td.torrent_name:not(:has(abbr.timeago)):contains("Terça"), td.torrent_name:not(:has(abbr.timeago)):contains("Segunda"), td.torrent_name:not(:has(abbr.timeago)):contains("ontem"), td.torrent_name:not(:has(abbr.timeago)):contains("Hoje")
|
||||
optional: true
|
||||
remove: span, a, br
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["Enviado ", ""] # Uploaded
|
||||
- name: replace
|
||||
args: ["Uploaded ", ""]
|
||||
- name: replace
|
||||
args: [" por", ""] # by
|
||||
- name: replace
|
||||
args: [" by", ""]
|
||||
- name: replace
|
||||
args: ["às ", ""] # at
|
||||
- name: replace
|
||||
args: ["at ", ""]
|
||||
- name: replace
|
||||
args: ["Hoje", "Today"]
|
||||
- name: replace
|
||||
@@ -233,6 +275,5 @@
|
||||
args: ["Sábado", "Saturday"]
|
||||
- name: replace
|
||||
args: ["Domingo", "Sunday"]
|
||||
- name: dateparse
|
||||
args: "02-01-2006 15:04"
|
||||
- name: fuzzytime
|
||||
# TSUE 2.2
|
||||
|
@@ -38,9 +38,33 @@
|
||||
- {id: 110, cat: XXX, desc: "XXX"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
search: [q, imdbid]
|
||||
tv-search: [q, season, ep, imdbid]
|
||||
movie-search: [q, imdbid]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: "5"
|
||||
options:
|
||||
"5": "created"
|
||||
"8": "seeders"
|
||||
"6": "size"
|
||||
"2": "title"
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: "desc"
|
||||
options:
|
||||
"desc": "desc"
|
||||
"asc": "asc"
|
||||
|
||||
login:
|
||||
path: takelogin.php
|
||||
@@ -55,13 +79,18 @@
|
||||
paths:
|
||||
- path: browse.php
|
||||
inputs:
|
||||
$raw: "{{range .Categories}}c{{.}}=1&{{end}}"
|
||||
search: "{{ .Keywords }}"
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
search: "{{ if .Query.IMDBID }}https://www.imdb.com/title/{{ .Query.IMDBID }}{{else}}{{ .Keywords }}{{end}}"
|
||||
# 0 both 1 only active 2 only dead
|
||||
incldead: 0
|
||||
onlyname: 1
|
||||
onlyname2: true
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
|
||||
rows:
|
||||
selector: table[id!="torrent_ajanlo"] > tbody > tr[id]
|
||||
|
||||
fields:
|
||||
download:
|
||||
selector: a[href^="download.php/"]
|
||||
@@ -84,7 +113,7 @@
|
||||
selector: a[id][href^="details.php?"]
|
||||
attribute: href
|
||||
imdb:
|
||||
selector: a[href*="https://www.imdb.com/title/"]
|
||||
selector: a[href*="www.imdb.com/title/tt"]
|
||||
optional: true
|
||||
attribute: href
|
||||
banner:
|
||||
@@ -99,7 +128,7 @@
|
||||
selector: td:nth-child(7)
|
||||
filters:
|
||||
- name: regexp
|
||||
args: ([\d\.]+)
|
||||
args: (\d+)
|
||||
seeders:
|
||||
selector: td:nth-child(8)
|
||||
leechers:
|
||||
@@ -123,9 +152,10 @@
|
||||
args: ["hete", "week"]
|
||||
- name: timeago
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
"*": "1"
|
||||
text: 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
img[src="pic/double.png"]: "2"
|
||||
"*": "1"
|
||||
img[src="pic/double.png"]: 2
|
||||
img[src="pic/doubledouble2.png"]: 4
|
||||
"*": 1
|
||||
# TBDev & XBTT
|
||||
|
@@ -59,6 +59,7 @@
|
||||
search: [q, imdbid]
|
||||
tv-search: [q, season, ep, imdbid]
|
||||
movie-search: [q, imdbid]
|
||||
music-search: [q]
|
||||
|
||||
login:
|
||||
path: index.php?page=login
|
||||
@@ -81,8 +82,9 @@
|
||||
page: torrents
|
||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{else}}{{ .Keywords }}{{end}}"
|
||||
category: "{{ if .Categories }}{{ range .Categories }}{{.}};{{end}}{{else}}0{{end}}"
|
||||
# options: 0=title, 1=title&descr, 2=descr
|
||||
options: "{{ if .Query.IMDBID }}1{{else}}0{{end}}"
|
||||
# 0=title, 1=title&descr, 2=descr
|
||||
options: "{{ if .Query.IMDBID }}2{{else}}0{{end}}"
|
||||
# 0 all 1 activeonly 2 deadonly
|
||||
active: 0
|
||||
order: "{{ .Config.sort }}"
|
||||
by: "{{ .Config.type }}"
|
||||
|
@@ -31,9 +31,9 @@
|
||||
- {id: 21, cat: Books, desc: "Book"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
search: [q, imdbid]
|
||||
tv-search: [q, season, ep, imdbid]
|
||||
movie-search: [q, imdbid]
|
||||
|
||||
settings:
|
||||
- name: cookie
|
||||
@@ -67,17 +67,19 @@
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href^="/logout.php"]
|
||||
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: browse.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
search: "{{ .Keywords }}"
|
||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{else}}{{ .Keywords }}{{end}}"
|
||||
# 0 onlyactive 1 all 4 requests 5 onlydead 6 polish 8 free 10 doubleup 11 premier 13 VOD
|
||||
incldead: 1
|
||||
# 0 title 1 descr
|
||||
blah: 0
|
||||
blah: "{{ if .Query.IMDBID }}1{{else}}0{{end}}"
|
||||
gatunek: 0
|
||||
quality: none
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
|
||||
@@ -98,13 +100,17 @@
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php/"]
|
||||
attribute: href
|
||||
attribute: href
|
||||
banner:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: onmouseover
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "src=(.+?) "
|
||||
imdb:
|
||||
optional: true
|
||||
selector: a[href*="www.imdb.com/title/tt"]
|
||||
attribute: href
|
||||
description:
|
||||
optional: true
|
||||
selector: img[src="pic/Poland.png"]
|
||||
|
@@ -12,20 +12,21 @@
|
||||
categorymappings:
|
||||
# Documentaire
|
||||
- {id: 96, cat: TV/Documentary, desc: "Docus TV"}
|
||||
- {id: 124, cat: TV/Documentary, desc: "Docus Formation Video"}
|
||||
# Films
|
||||
- {id: 49, cat: Movies/3D, desc: "Films 3D"}
|
||||
- {id: 1, cat: XXX, desc: "3X"}
|
||||
- {id: 48, cat: XXX, desc: "3X HD1080p"}
|
||||
- {id: 47, cat: XXX, desc: "3X HD720p"}
|
||||
- {id: 50, cat: Movies/UHD, desc: "Films 4K"}
|
||||
- {id: 51, cat: Movies/UHD, desc: "Films 4K UHDTV"}
|
||||
- {id: 51, cat: TV/UHD, desc: "Films 4K UHDTV"}
|
||||
- {id: 57, cat: Movies/BluRay, desc: "Films BDRip"}
|
||||
- {id: 56, cat: Movies/BluRay, desc: "Films Blu-Ray"}
|
||||
- {id: 58, cat: Movies/BluRay, desc: "Films BRRip"}
|
||||
- {id: 66, cat: Movies, desc: "Films CamTS"}
|
||||
- {id: 59, cat: Movies/DVD, desc: "Films DVDR"}
|
||||
- {id: 60, cat: Movies/DVD, desc: "Films DVDRip"}
|
||||
- {id: 98, cat: Movies, desc: "Films Film Animées"}
|
||||
- {id: 98, cat: TV/Anime, desc: "Films Film Animées"}
|
||||
- {id: 65, cat: Movies, desc: "Films FSCR"}
|
||||
- {id: 52, cat: Movies/HD, desc: "Films HD 720p"}
|
||||
- {id: 53, cat: Movies/HD, desc: "Films HD1080p"}
|
||||
@@ -124,7 +125,7 @@
|
||||
options:
|
||||
"desc": "desc"
|
||||
"asc": "asc"
|
||||
|
||||
|
||||
login:
|
||||
method: cookie
|
||||
inputs:
|
||||
@@ -149,13 +150,17 @@
|
||||
# http://crazyspirits.com/torrents-search.php?c101=1&c102=1&c103=1&c104=1&c105=1&c106=1&search=&cat=0&incldead=0&freeleech=0&lang=0
|
||||
- path: torrents-search.php
|
||||
inputs:
|
||||
$raw: "{{range .Categories}}c{{.}}=1&{{end}}"
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
search: "{{ .Keywords }}"
|
||||
# 0 active 1 incldead 2 onlydead
|
||||
incldead: 1
|
||||
# 0 all 1 inclfree 2 onlyfree
|
||||
freeleech: 0
|
||||
# 0 all 1 french 2 english etc
|
||||
lang: 0
|
||||
sort: "{{ .Config.sort }}"
|
||||
order: "{{ .Config.type }}"
|
||||
# imdb search not supported and imdb links not in results.
|
||||
|
||||
rows:
|
||||
selector: table.border_table > tbody > tr.t-row
|
||||
@@ -192,13 +197,13 @@
|
||||
attribute: onmouseover
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "Taille : </b>(.*?)<br"
|
||||
args: "Taille : </b>(.*?)<br"
|
||||
date:
|
||||
selector: a[onmouseover][href^="torrents-details.php?id="]
|
||||
attribute: onmouseover
|
||||
filters:
|
||||
- name: regexp
|
||||
args: " Le : </b>(.*?)<br"
|
||||
args: " Le : </b>(.*?)<br"
|
||||
- name: dateparse
|
||||
args: "02-01-2006"
|
||||
downloadvolumefactor:
|
||||
@@ -206,6 +211,5 @@
|
||||
img[src="images/Torrents/free.png"]: 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
"*": 1
|
||||
text: 1
|
||||
# TT3.0
|
||||
|
@@ -100,15 +100,17 @@
|
||||
search:
|
||||
paths:
|
||||
# http://www.crnaberza.com/browse.php?c52=1&c20=1&c34=1&incldead=1&search=star+trek
|
||||
- path: browse.php
|
||||
- path: browse.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
search: "{{ .Keywords }}"
|
||||
searchin: title
|
||||
# 0 title 1 descr 2 both
|
||||
blah: 0
|
||||
# 0 active 1 incldead 2 onlydead
|
||||
incldead: 1
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
# does not support searching imdbid and does not return imdb links
|
||||
|
||||
rows:
|
||||
selector: tr:has(td.trowtorrent)
|
||||
|
@@ -22,7 +22,7 @@
|
||||
- {id: 38, cat: Movies/HD, desc: "HD-LQ"}
|
||||
- {id: 3, cat: PC/Games, desc: "Hry"}
|
||||
- {id: 2, cat: Audio, desc: "Hudba"}
|
||||
- {id: 34, cat: Audio/Video, desc: "Hudba DVD/HD"}
|
||||
- {id: 34, cat: Audio/Video, desc: "Hudební video"}
|
||||
- {id: 6, cat: Books, desc: "Knihy"}
|
||||
- {id: 13, cat: Console, desc: "Konzole"}
|
||||
- {id: 32, cat: Audio, desc: "Mluvené slovo"}
|
||||
@@ -30,7 +30,6 @@
|
||||
- {id: 4, cat: Other, desc: "Ostatní"}
|
||||
- {id: 25, cat: TV, desc: "Seriály"}
|
||||
- {id: 29, cat: Audio, desc: "Soundtrack"}
|
||||
- {id: 19, cat: Audio/Video, desc: "Videoklipy"}
|
||||
- {id: 24, cat: XXX, desc: "xXx"}
|
||||
|
||||
modes:
|
||||
@@ -74,12 +73,14 @@
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
s: "{{ .Keywords }}"
|
||||
# 0 approved 1 all 2 not approved
|
||||
t: 1
|
||||
o: "{{ .Config.sort }}"
|
||||
# does not support imdbid search and does not return imdb links
|
||||
|
||||
rows:
|
||||
selector: tr.torr_hover
|
||||
|
||||
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
args: ["S[0-9]{2}([^E]|$)", ""] # remove season tag without episode (search doesn't support it)
|
||||
@@ -93,17 +94,17 @@
|
||||
- name: diacritics
|
||||
args: replace
|
||||
- name: replace
|
||||
args: ["1080i", "1080p"]
|
||||
args: ["1080i", "1080p"]
|
||||
- name: replace
|
||||
args: ["720i", "720p"]
|
||||
args: ["720i", "720p"]
|
||||
- name: replace
|
||||
args: ["pLQ", "p"]
|
||||
args: ["pLQ", "p"]
|
||||
- name: replace
|
||||
args: ["pHD", "p"]
|
||||
args: ["pHD", "p"]
|
||||
- name: replace
|
||||
args: ["serie", ""]
|
||||
args: ["serie", ""]
|
||||
- name: replace
|
||||
args: ["Serie", ""]
|
||||
args: ["Serie", ""]
|
||||
- name: re_replace
|
||||
args: ["(\\d{2})\\.", "S$1"]
|
||||
- name: re_replace
|
||||
@@ -152,7 +153,7 @@
|
||||
args: [ "|", 2 ]
|
||||
- name: append
|
||||
args: " +02:00"
|
||||
- name: dateparse
|
||||
- name: dateparse
|
||||
args: "2.1.2006 15:04 -07:00"
|
||||
seeders:
|
||||
selector: td:nth-child(7) span
|
||||
|
@@ -26,9 +26,9 @@
|
||||
- {id: 8, cat: TV, desc: "TV shows"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
search: [q, imdbid]
|
||||
tv-search: [q, season, ep, imdbid]
|
||||
movie-search: [q, imdbid]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
@@ -69,10 +69,14 @@
|
||||
- path: browse.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
search: "{{ .Keywords }}"
|
||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{else}}{{ .Keywords }}{{end}}"
|
||||
# active 1 incldead 2 onlydead
|
||||
incldead: 1
|
||||
# 1 = look in description
|
||||
Lysing: "{{ if .Query.IMDBID }}1{{else}}{{end}}"
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
# does not return imdb links
|
||||
|
||||
rows:
|
||||
selector: table[class="torrentlist"] > tbody > tr:has(a[href*="details.php?id="])
|
||||
|
@@ -12,7 +12,7 @@
|
||||
categorymappings:
|
||||
- {id: 60, cat: Movies/HD, desc: "MicroHD 720p"}
|
||||
- {id: 77, cat: Movies/HD, desc: "MicroHD 1080p"}
|
||||
- {id: 78, cat: Movies/HD, desc: "MicroHD 4k"}
|
||||
- {id: 78, cat: Movies/HD, desc: "MicroHD 4K"}
|
||||
- {id: 64, cat: TV/HD, desc: "Pack Series"}
|
||||
- {id: 65, cat: TV/HD, desc: "Pack Series VOSE"}
|
||||
- {id: 80, cat: Movies/BluRay, desc: "BDRip X265 1080p"}
|
||||
@@ -43,13 +43,13 @@
|
||||
- {id: 48, cat: Movies/BluRay, desc: "BR-Rip/HD-Rip"}
|
||||
- {id: 17, cat: Movies/BluRay, desc: "BD-Rip"}
|
||||
- {id: 5, cat: TV/Anime, desc: "Anime"}
|
||||
- {id: 34, cat: PC/Games, desc: "Juegos Pc"}
|
||||
- {id: 7, cat: PC/0day, desc: "Software Pc"}
|
||||
- {id: 34, cat: PC/Games, desc: "Juegos PC"}
|
||||
- {id: 7, cat: PC/0day, desc: "Software PC"}
|
||||
- {id: 35, cat: Console, desc: "Juegos Sony"}
|
||||
- {id: 36, cat: PC/Games, desc: "Juegos Microsoft"}
|
||||
- {id: 37, cat: Console/NDS, desc: "Juegos Nintendo"}
|
||||
- {id: 45, cat: Audio/MP3, desc: "Music MP3"}
|
||||
- {id: 44, cat: Audio/Lossless, desc: "Music flac"}
|
||||
- {id: 44, cat: Audio/Lossless, desc: "Music FLAC"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
@@ -84,7 +84,7 @@
|
||||
type: info
|
||||
label: Results Per Page
|
||||
default: For best results, change the <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
|
||||
|
||||
|
||||
login:
|
||||
method: cookie
|
||||
inputs:
|
||||
@@ -99,11 +99,14 @@
|
||||
inputs:
|
||||
page: "torrents"
|
||||
category: "{{ range .Categories }}{{.}};{{end}}"
|
||||
search: "{{ if .Keywords }}{{ .Keywords }}{{else}}{{end}}"
|
||||
search: "{{ .Keywords }}"
|
||||
# 0 all 1 activeonly 2 deadonly
|
||||
active: 0
|
||||
# 0 title 1 title&desc 2 descr 3 uploaders 5 gold 6 silver 9 2x 10 3x 11 4x
|
||||
options: 0
|
||||
order: "{{ .Config.sort }}"
|
||||
by: "{{ .Config.type }}"
|
||||
# does not support imdbid search and does not supply imdb link in results.
|
||||
|
||||
rows:
|
||||
selector: table.table.table-bordered > tbody > tr:has(a[href^="download.php?id="])
|
||||
|
@@ -74,7 +74,8 @@
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
tv-search: [q]
|
||||
movie-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
@@ -125,11 +126,15 @@
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
search: "{{ .Keywords }}"
|
||||
cat: 0
|
||||
# 0 active 1 incldead 2 onlydead
|
||||
incldead: 1
|
||||
# 0 all 1 notfree 2 onlyfree
|
||||
freeleech: 0
|
||||
# 0 all 1 english 2 french etc
|
||||
lang: 0
|
||||
sort: "{{ .Config.sort }}"
|
||||
order: "{{ .Config.type }}"
|
||||
# does not support imdbid search and does not return imdb link in results
|
||||
|
||||
rows:
|
||||
selector: table.ttable_headinner tr.t-row
|
||||
|
@@ -14,70 +14,70 @@
|
||||
categorymappings:
|
||||
# Films
|
||||
- {id: 1, cat: Movies, desc: "Films"}
|
||||
- {id: 13, cat: Movies, desc: "Films BD-Rip / BRRip"}
|
||||
- {id: 15, cat: Movies, desc: "Films DVD-Rip"}
|
||||
- {id: 18, cat: Movies, desc: "Films HD 720p"}
|
||||
- {id: 19, cat: Movies, desc: "Films WEB-DL / WEB-Rip"}
|
||||
- {id: 20, cat: Movies, desc: "Films HD 1080p"}
|
||||
- {id: 26, cat: Movies, desc: "Films mHD 720p"}
|
||||
- {id: 27, cat: Movies, desc: "Films mHD 1080p"}
|
||||
- {id: 28, cat: Movies, desc: "Films x265"}
|
||||
- {id: 30, cat: Movies, desc: "Films Blu-Ray (complet)"}
|
||||
- {id: 31, cat: Movies, desc: "Films 3D"}
|
||||
- {id: 32, cat: Movies, desc: "Films 4K UHD"}
|
||||
- {id: 33, cat: Movies, desc: "Films Québécois SD"}
|
||||
- {id: 34, cat: Movies, desc: "Films Québécois HD"}
|
||||
- {id: 35, cat: Movies, desc: "Films Québécois DVD-R"}
|
||||
- {id: 37, cat: Movies, desc: "Films DVD-R"}
|
||||
- {id: 38, cat: Movies, desc: "Films V.O.S.T. SD"}
|
||||
- {id: 39, cat: Movies, desc: "Films V.O.S.T. HD"}
|
||||
- {id: 40, cat: Movies, desc: "Films V.O. SD"}
|
||||
- {id: 41, cat: Movies, desc: "Films V.O. HD"}
|
||||
- {id: 13, cat: Movies/BluRay, desc: "Films BD-Rip / BRRip"}
|
||||
- {id: 15, cat: Movies/DVD, desc: "Films DVD-Rip"}
|
||||
- {id: 18, cat: Movies/HD, desc: "Films HD 720p"}
|
||||
- {id: 19, cat: Movies/WEBDL, desc: "Films WEB-DL / WEB-Rip"}
|
||||
- {id: 20, cat: Movies/HD, desc: "Films HD 1080p"}
|
||||
- {id: 26, cat: Movies/HD, desc: "Films mHD 720p"}
|
||||
- {id: 27, cat: Movie/HD, desc: "Films mHD 1080p"}
|
||||
- {id: 28, cat: Movies/HD, desc: "Films x265"}
|
||||
- {id: 30, cat: Movies/BluRay, desc: "Films Blu-Ray (complet)"}
|
||||
- {id: 31, cat: Movies/3D, desc: "Films 3D"}
|
||||
- {id: 32, cat: Movies/UHD, desc: "Films 4K UHD"}
|
||||
- {id: 33, cat: Movies/SD, desc: "Films Québécois SD"}
|
||||
- {id: 34, cat: Movies/HD, desc: "Films Québécois HD"}
|
||||
- {id: 35, cat: Movies/DVD, desc: "Films Québécois DVD-R"}
|
||||
- {id: 37, cat: Movies/DVD, desc: "Films DVD-R"}
|
||||
- {id: 38, cat: Movies/SD, desc: "Films V.O.S.T. SD"}
|
||||
- {id: 39, cat: MovieS/HD, desc: "Films V.O.S.T. HD"}
|
||||
- {id: 40, cat: Movies/SD, desc: "Films V.O. SD"}
|
||||
- {id: 41, cat: Movies/HD, desc: "Films V.O. HD"}
|
||||
- {id: 42, cat: Movies, desc: "Films TV-Rip"}
|
||||
# 4K LIGHT
|
||||
- {id: 95, cat: Movies, desc: "4K LIGHT"}
|
||||
# Séries-Télé
|
||||
- {id: 16, cat: TV, desc: "Séries-Télé"}
|
||||
- {id: 17, cat: TV, desc: "Séries-Télé TV Pack SD"}
|
||||
- {id: 21, cat: TV, desc: "Séries-Télé SD"}
|
||||
- {id: 22, cat: TV, desc: "Séries-Télé HD"}
|
||||
- {id: 23, cat: TV, desc: "Séries-Télé TV Pack HD"}
|
||||
- {id: 45, cat: TV, desc: "Séries-Télé Québécois SD"}
|
||||
- {id: 46, cat: TV, desc: "Séries-Télé Québécois HD"}
|
||||
- {id: 47, cat: TV, desc: "Séries-Télé V.O.S.T. SD"}
|
||||
- {id: 48, cat: TV, desc: "Séries-TéléV.O.S.T. HD"}
|
||||
- {id: 49, cat: TV, desc: "Séries-Télé Émissions TV SD"}
|
||||
- {id: 50, cat: TV, desc: "Séries-Télé Émissions TV HD"}
|
||||
- {id: 17, cat: TV/SD, desc: "Séries-Télé TV Pack SD"}
|
||||
- {id: 21, cat: TV/SD, desc: "Séries-Télé SD"}
|
||||
- {id: 22, cat: TV/HD, desc: "Séries-Télé HD"}
|
||||
- {id: 23, cat: TV/HD, desc: "Séries-Télé TV Pack HD"}
|
||||
- {id: 45, cat: TV/SD, desc: "Séries-Télé Québécois SD"}
|
||||
- {id: 46, cat: TV/HD, desc: "Séries-Télé Québécois HD"}
|
||||
- {id: 47, cat: TV/SD, desc: "Séries-Télé V.O.S.T. SD"}
|
||||
- {id: 48, cat: TV/HD, desc: "Séries-TéléV.O.S.T. HD"}
|
||||
- {id: 49, cat: TV/SD, desc: "Séries-Télé Émissions TV SD"}
|
||||
- {id: 50, cat: TV/HD, desc: "Séries-Télé Émissions TV HD"}
|
||||
- {id: 51, cat: TV, desc: "Séries-Télé Blu-Ray"}
|
||||
- {id: 52, cat: TV, desc: "Séries-Télé DVD-R"}
|
||||
- {id: 94, cat: TV, desc: "Séries-Télé x265 - TV"}
|
||||
- {id: 94, cat: TV/HD, desc: "Séries-Télé x265 - TV"}
|
||||
# Musique
|
||||
- {id: 2, cat: Audio, desc: "Musique"}
|
||||
- {id: 54, cat: Audio, desc: "Musique MP3"}
|
||||
- {id: 55, cat: Audio, desc: "Musique FLAC"}
|
||||
- {id: 54, cat: Audio/MP3, desc: "Musique MP3"}
|
||||
- {id: 55, cat: Audio/Lossless, desc: "Musique FLAC"}
|
||||
- {id: 56, cat: Audio, desc: "Musique DSD"}
|
||||
- {id: 57, cat: Audio, desc: "Musique Karaoke"}
|
||||
- {id: 58, cat: Audio, desc: "Musique Autres"}
|
||||
# Jeux
|
||||
- {id: 3, cat: PC/Games, desc: "Jeux"}
|
||||
- {id: 59, cat: PC/Games, desc: "Jeux PC"}
|
||||
- {id: 60, cat: PC/Games, desc: "Jeux Consoles"}
|
||||
- {id: 60, cat: Console, desc: "Jeux Consoles"}
|
||||
- {id: 84, cat: PC/Games, desc: "Jeux Android"}
|
||||
# Livres
|
||||
- {id: 6, cat: Books, desc: "Livres"}
|
||||
- {id: 61, cat: Books, desc: "Livres epub"}
|
||||
- {id: 61, cat: Books/Ebook, desc: "Livres epub"}
|
||||
- {id: 62, cat: Books, desc: "Livres pdf"}
|
||||
- {id: 63, cat: Books, desc: "Livres Journaux"}
|
||||
- {id: 64, cat: Books, desc: "Livres Magazines"}
|
||||
- {id: 64, cat: Books/Magazines, desc: "Livres Magazines"}
|
||||
- {id: 65, cat: Books, desc: "Livres Bandes Dessinées"}
|
||||
- {id: 66, cat: Books, desc: "Livres Multi-Format"}
|
||||
- {id: 85, cat: Books, desc: "Livres Audio"}
|
||||
- {id: 85, cat: Audio/Audiobook, desc: "Livres Audio"}
|
||||
# Logiciels
|
||||
- {id: 67, cat: PC, desc: "Logiciels"}
|
||||
- {id: 68, cat: PC, desc: "Logiciels Windows"}
|
||||
- {id: 69, cat: PC, desc: "Logiciels Mac"}
|
||||
- {id: 68, cat: PC/0day, desc: "Logiciels Windows"}
|
||||
- {id: 69, cat: PC/Mac, desc: "Logiciels Mac"}
|
||||
- {id: 86, cat: PC, desc: "Logiciels Linux"}
|
||||
- {id: 87, cat: PC, desc: "Logiciels Android"}
|
||||
- {id: 87, cat: PC/Phone-Android, desc: "Logiciels Android"}
|
||||
# Spectacles
|
||||
- {id: 70, cat: TV/Other, desc: "Spectacles"}
|
||||
- {id: 71, cat: TV/Other, desc: "Spectacles Humour"}
|
||||
@@ -198,11 +198,13 @@
|
||||
page: torrents
|
||||
search: "{{ .Keywords }}"
|
||||
category: "{{ range .Categories }}{{.}};{{end}}"
|
||||
# 0 title 1 title&descr 2 descr
|
||||
options: 0
|
||||
active: "{{ .Config.active }}"
|
||||
gold: "{{ .Config.gold }}"
|
||||
order: "{{ .Config.sort }}"
|
||||
by: "{{ .Config.type }}"
|
||||
# does not support imdbid search and does not ruturn imdb link in results
|
||||
|
||||
rows:
|
||||
selector: table > tbody > tr > td > table.lista > tbody > tr:has(td[onmouseover="this.className='post'"])
|
||||
|
@@ -81,11 +81,16 @@
|
||||
|
||||
search:
|
||||
paths:
|
||||
# http://estone.cc/letoltes.php?kereses_nev=wide&miben=0&cimke=&cat=0&submit.x=40&submit.y=9
|
||||
- path: letoltes.php
|
||||
method: get
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}kat[]={{.}}&{{end}}{{ .Config.sort }}={{ .Config.type }}"
|
||||
kereses_nev: "{{ .Keywords }}"
|
||||
# 0 name 1 performer 2 director
|
||||
miben: 0
|
||||
# genre
|
||||
cimke: ""
|
||||
# does not support imdbid search and does not return imdb link in results
|
||||
|
||||
rows:
|
||||
selector: body > div[id^="torrent_"]
|
||||
|
@@ -10,24 +10,25 @@
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 10, cat: Movies/DVD, desc: "Dvd rip"}
|
||||
- {id: 111, cat: Movies/DVD, desc: "DVD Promo"}
|
||||
- {id: 118, cat: Movies, desc: "Kids"}
|
||||
- {id: 113, cat: XXX, desc: "DVD xxx"}
|
||||
- {id: 129, cat: Movies/HD, desc: "Hd DVD"}
|
||||
- {id: 130, cat: Movies/UHD, desc: "4K Films"}
|
||||
- {id: 143, cat: Movies/HD, desc: "Divx 720P"}
|
||||
- {id: 114, cat: Audio, desc: "Muziek"}
|
||||
- {id: 10, cat: Movies/DVD, desc: "Film DVD"}
|
||||
- {id: 111, cat: Movies/DVD, desc: "DVD Promo/R5"}
|
||||
- {id: 118, cat: Movies/DVD, desc: "Kids DVD"}
|
||||
- {id: 113, cat: XXX, desc: "DVD XXX"}
|
||||
- {id: 108, cat: XXX, desc: "Xvid XXX"}
|
||||
- {id: 129, cat: Movies/HD, desc: "HD DVD"}
|
||||
- {id: 130, cat: Movies/UHD, desc: "Films 4K"}
|
||||
- {id: 143, cat: Movies/HD, desc: "DivX 720P"}
|
||||
- {id: 114, cat: Audio/MP3, desc: "Muziek MP3"}
|
||||
- {id: 140, cat: Books, desc: "E-Book"}
|
||||
- {id: 105, cat: TV/Documentary, desc: "Documentaire"}
|
||||
- {id: 115, cat: PC, desc: "pc apps"}
|
||||
- {id: 120, cat: PC/Games, desc: "Pc Games"}
|
||||
- {id: 115, cat: PC, desc: "PC apps"}
|
||||
- {id: 120, cat: PC/Games, desc: "PC Games"}
|
||||
- {id: 106, cat: Other, desc: "Overig"}
|
||||
- {id: 131, cat: Console/NDS, desc: "Nintendo Ds"}
|
||||
- {id: 132, cat: TV/HD, desc: "HD Serie"}
|
||||
- {id: 116, cat: PC/Mac, desc: "Mac"}
|
||||
- {id: 125, cat: Movies, desc: "Xvid rip"}
|
||||
- {id: 123, cat: Movies, desc: "Xvid Tc"}
|
||||
- {id: 116, cat: PC/Mac, desc: "Mac Software"}
|
||||
- {id: 125, cat: Movies, desc: "DiVX Rip"}
|
||||
- {id: 123, cat: Movies/SD, desc: "DiVX Cam"}
|
||||
- {id: 108, cat: XXX, desc: "18+"}
|
||||
- {id: 142, cat: XXX, desc: "HD XXX"}
|
||||
- {id: 139, cat: TV, desc: "TV Series"}
|
||||
@@ -85,6 +86,7 @@
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
search: "{{ .Keywords }}"
|
||||
incldead: 1
|
||||
# does not support imdbid search and does not return imdb link in results
|
||||
|
||||
rows:
|
||||
selector: table.mainouter
|
||||
@@ -108,7 +110,7 @@
|
||||
attribute: href
|
||||
banner:
|
||||
selector: div[id^="Style"] img
|
||||
attribute: src
|
||||
attribute: src
|
||||
size:
|
||||
selector: a[href^="details_bestanden.php?torrent_id="]
|
||||
filters:
|
||||
|
@@ -49,10 +49,36 @@
|
||||
- {id: 23, cat: TV/Sport, desc: "TV/Sport"}
|
||||
- {id: 51, cat: Console, desc: "Games/Misc"}
|
||||
- {id: 1, cat: PC/0day, desc: "Appz/PC ISO"}
|
||||
- {id: 55, cat: Movies/UHD, desc: "Movies/4K"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
search: [q, imdbid]
|
||||
tv-search: [q, season, ep, imdbid]
|
||||
movie-search: [q, imdbid]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: "4"
|
||||
options:
|
||||
"4": "created"
|
||||
"7": "seeders"
|
||||
"5": "size"
|
||||
"1": "title"
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: "desc"
|
||||
options:
|
||||
"desc": "desc"
|
||||
"asc": "asc"
|
||||
|
||||
login:
|
||||
path: takelogin.php
|
||||
@@ -64,7 +90,7 @@
|
||||
- selector: td.embedded:has(h2:contains("failed"))
|
||||
test:
|
||||
path: browse_old.php
|
||||
|
||||
|
||||
ratio:
|
||||
path: browse_old.php
|
||||
selector: img[title="Reitings:"]+font
|
||||
@@ -73,13 +99,16 @@
|
||||
paths:
|
||||
- path: browse_old.php
|
||||
inputs:
|
||||
$raw: "{{range .Categories}}c{{.}}=1&{{end}}"
|
||||
search: "{{ .Query.Keywords }}"
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{else}}{{ .Keywords }}{{end}}"
|
||||
# 0 active 1 incldead 2 onlydead
|
||||
incldead: 1
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
|
||||
rows:
|
||||
selector: tr.browse_actions
|
||||
filters:
|
||||
- name: andmatch
|
||||
|
||||
fields:
|
||||
title:
|
||||
selector: a[href^="details.php?id="]
|
||||
@@ -113,7 +142,7 @@
|
||||
- name: regexp
|
||||
args: (\d+)
|
||||
date:
|
||||
selector: td:nth-child(2) > small:nth-last-child(2)
|
||||
selector: td:nth-child(2) > small:nth-last-child(2), td:nth-child(2) > small
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["Šodien", "Today"]
|
||||
@@ -121,12 +150,13 @@
|
||||
args: ["Vakar", "Yesterday"]
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[alt="Free"]: "0"
|
||||
"*": "1"
|
||||
img[alt="Free"]: 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
img[alt="x2"]: "2"
|
||||
"*": "1"
|
||||
img[alt="x2"]: 2
|
||||
"*": 1
|
||||
description:
|
||||
selector: td:nth-child(2) > small:nth-last-child(1)
|
||||
remove: a[href^="details.php?id="]
|
||||
# engine n/a
|
||||
|
@@ -35,9 +35,9 @@
|
||||
- {id: 32, cat: Audio/Audiobook, desc: " Luister Boeken"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
search: [q, imdbid]
|
||||
tv-search: [q, season, ep, imdbid]
|
||||
movie-search: [q, imdbid]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
@@ -83,8 +83,9 @@
|
||||
- path: browse.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
search: "{{ .Keywords }}"
|
||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{else}}{{ .Keywords }}{{end}}"
|
||||
incldead: 1
|
||||
# does not return imdb link in results
|
||||
|
||||
rows:
|
||||
selector: table.mainouter
|
||||
@@ -106,6 +107,9 @@
|
||||
download:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
banner:
|
||||
selector: img[src*="/covers/"]
|
||||
attribute: src
|
||||
size:
|
||||
selector: td:nth-child(4) table tr td:nth-child(2)
|
||||
filters:
|
||||
@@ -163,7 +167,9 @@
|
||||
optional: true
|
||||
selector: td:nth-child(4) table tr:nth-child(3) td:nth-child(5) font font b
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
case:
|
||||
img[src="pic/freedlfsu.gif"]: 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
# engine n/a
|
||||
|
@@ -260,6 +260,7 @@
|
||||
langue: "{{ .Config.torrentlanguage }}"
|
||||
# freeleech oui (yes) non (no) peuimporte (ignore)
|
||||
tl: "peuimporte"
|
||||
# does bot support imdbid search and does not return imdb link in results.
|
||||
|
||||
rows:
|
||||
selector: table.sortable tbody tr
|
||||
@@ -322,6 +323,5 @@
|
||||
img[src$="/images/Torrents/TLibre.png"]: "0"
|
||||
"*": "1"
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
"*": "1"
|
||||
text: 1
|
||||
# TT3.00 FRENCH
|
||||
|
@@ -28,6 +28,7 @@
|
||||
- {id: 117, cat: PC, desc: "Applications: Appli-autre"}
|
||||
- {id: 67, cat: TV/OTHER, desc: "Autres: Emission TV"}
|
||||
- {id: 141, cat: TV/OTHER, desc: "Autres: Noel"}
|
||||
- {id: 142, cat: TV/Sport, desc: "Autres: Emission sport"}
|
||||
- {id: 90, cat: Books/Ebook, desc: "BD: Livres"}
|
||||
- {id: 132, cat: TV/Documentary, desc: "Documentaires: BluRay"}
|
||||
- {id: 133, cat: TV/Documentary, desc: "Documentaires: 4k"}
|
||||
@@ -35,7 +36,6 @@
|
||||
- {id: 15, cat: TV/Documentary, desc: "Documentaires: HD"}
|
||||
- {id: 14, cat: TV/Documentary, desc: "Documentaires: DivX"}
|
||||
- {id: 76, cat: TV/Documentary, desc: "Documentaires: TVRip/HDTV"}
|
||||
- {id: 118, cat: TV/Documentary, desc: "Documentaires: Sport"}
|
||||
- {id: 139, cat: TV/Documentary, desc: "Documentaires: Noel"}
|
||||
- {id: 138, cat: Books/Ebook, desc: "E-Books: Noel"}
|
||||
- {id: 53, cat: Books/Ebook, desc: "E-Books: Livre Anglais"}
|
||||
@@ -63,8 +63,8 @@
|
||||
- {id: 71, cat: Movies/WEBDL, desc: "Films: WEB-DL"}
|
||||
- {id: 69, cat: Movies/3D, desc: "Films: Film 3D"}
|
||||
- {id: 65, cat: Movies, desc: "Films: VO"}
|
||||
- {id: 1, cat: Movies/HD, desc: "Films: Remux Bluray 4K"}
|
||||
- {id: 130, cat: Movies/UHD, desc: "Films: HD720P"}
|
||||
- {id: 1, cat: Movies/UHD, desc: "Films: Remux Bluray 4K"}
|
||||
- {id: 130, cat: Movies/HD, desc: "Films: HD720P"}
|
||||
- {id: 102, cat: Movies/WEBDL, desc: "Films: WEB-DL 720P"}
|
||||
- {id: 103, cat: Movies/HD, desc: "Films: Film-HDRIP"}
|
||||
- {id: 111, cat: Movies/WEBDL, desc: "Films: WEBRip-720P"}
|
||||
@@ -172,11 +172,10 @@
|
||||
|
||||
download:
|
||||
before:
|
||||
path: "list_thanks.php"
|
||||
method: "get"
|
||||
path: list_thanks.php
|
||||
inputs:
|
||||
id: "{{ .DownloadUri.Query.id }}"
|
||||
to: "give"
|
||||
to: give
|
||||
torrent: "{{ .DownloadUri.Query.id }}"
|
||||
selector: a[href^="download.php?id="]
|
||||
attribute: href
|
||||
@@ -192,12 +191,15 @@
|
||||
# multi cats unsupported, defaulting to all
|
||||
cat: 0
|
||||
search: "{{ .Keywords }}"
|
||||
# 0 active 1 incldead 2 onlydead
|
||||
incldead: 1
|
||||
# 0 all 1 notfree 2 freeonly
|
||||
freeleech: 0
|
||||
inclexternal: 0
|
||||
# 0 all 1 French 2 English 3 etc
|
||||
lang: 0
|
||||
sort: "{{ .Config.sort }}"
|
||||
order: "{{ .Config.type }}"
|
||||
# does not support imdbid search and does not return imdb link in results
|
||||
|
||||
rows:
|
||||
selector: table.ttable_headinner > tbody > tr.t-row
|
||||
@@ -239,6 +241,5 @@
|
||||
img[src="images/fl.gif"]: 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
"*": 1
|
||||
text: 1
|
||||
# engine n/a
|
||||
|
@@ -27,15 +27,15 @@
|
||||
# VIDEOTECA
|
||||
- {id: 22, cat: Movies/SD, desc: "Movie BDRip"}
|
||||
- {id: 23, cat: Movies/SD, desc: "Movie DvdRip"}
|
||||
- {id: 23, cat: Movies/SD, desc: "Movie WEBRip"}
|
||||
- {id: 95, cat: Movies/SD, desc: "Movie WEBRip"}
|
||||
- {id: 24, cat: Movies/DVD, desc: "Movie DVD-R 5"}
|
||||
- {id: 25, cat: Movies/DVD, desc: "Movie DVD-R 9"}
|
||||
- {id: 26, cat: Movies/HD, desc: "Movie Blu-Ray HD"}
|
||||
- {id: 27, cat: Movies/3D, desc: "Movie 3D-SBS"}
|
||||
- {id: 96, cat: Movies/HD, desc: "Movie x265 HEVC"}
|
||||
- {id: 28, cat: Movies/Foreign, desc: "Movie Subbet-ita"}
|
||||
- {id: 27, cat: Movies/UHD, desc: "Movie 4K Ultra HD"}
|
||||
- {id: 96, cat: Movies/HD, desc: "Movie HD Hevc"}
|
||||
- {id: 28, cat: Movies/Foreign, desc: "Movie Subbed-ita"}
|
||||
- {id: 73, cat: Movies/SD, desc: "Movie MP4"}
|
||||
- {id: 29, cat: Movies/Foreign, desc: "Movie Ligua Originale"}
|
||||
- {id: 29, cat: Movies/Foreign, desc: "Movie Lingua Originale"}
|
||||
# ANIMAZIONE
|
||||
- {id: 32, cat: TV/Anime, desc: "Anime Disney"}
|
||||
- {id: 33, cat: TV/Anime, desc: "Anime"}
|
||||
@@ -56,11 +56,13 @@
|
||||
- {id: 45, cat: Audio, desc: "Musica Compilation"}
|
||||
- {id: 46, cat: Audio/Video, desc: "Musica Video Clip"}
|
||||
- {id: 58, cat: Audio, desc: "Musica Discografie"}
|
||||
- {id: 97, cat: Audio/Lossless, desc: "Musica Flac"}
|
||||
# SALA GIOCHI
|
||||
- {id: 47, cat: PC/Games, desc: "PC Games"}
|
||||
- {id: 48, cat: Console/PS3, desc: "PC Giochi PS2-PS3"}
|
||||
- {id: 49, cat: Console/Wii, desc: "PC Giochi Nintendo Wii"}
|
||||
- {id: 50, cat: Console/Xbox, desc: "PC Giochi Xbox"}
|
||||
- {id: 51, cat: Console/PSP, desc: "PC Giochi PSP"}
|
||||
- {id: 52, cat: Console/3DS, desc: "PC Giochi DS-DS3"}
|
||||
# SOFTWARE
|
||||
- {id: 54, cat: PC, desc: "PC Programmi Windows"}
|
||||
@@ -117,10 +119,10 @@
|
||||
download:
|
||||
before:
|
||||
path: thanks.php
|
||||
method: "post"
|
||||
method: post
|
||||
inputs:
|
||||
infohash: "{{ .DownloadUri.Query.id }}"
|
||||
thanks: "1"
|
||||
thanks: 1
|
||||
rndval: "1487013827343"
|
||||
selector: a[href^="download.php?id="]
|
||||
attribute: href
|
||||
@@ -160,6 +162,7 @@
|
||||
args: ["(?i)\\bS0*(\\d+)\\b", "$1"]
|
||||
- name: re_replace # S01E01 to 1 1
|
||||
args: ["(?i)\\bS0*(\\d+)E0*(\\d+)\\b", "$1 $2"]
|
||||
# does not support imdbid search and does not return imdb link in results
|
||||
|
||||
rows:
|
||||
selector: div.b-content > table > tbody > tr > td > table.lista > tbody > tr:has(a[href^="index.php?page=torrent-details&id="])
|
||||
|
@@ -98,7 +98,7 @@
|
||||
- {id: 130, cat: Movies/3D, desc: "H265 3D"}
|
||||
- {id: 128, cat: Movies/HD, desc: "H265 Animación"}
|
||||
- {id: 129, cat: Movies/HD, desc: "H265 Documentales"}
|
||||
- {id: 125, cat: Movies, desc: "UHD"}
|
||||
- {id: 125, cat: Movies/UHD, desc: "UHD"}
|
||||
- {id: 131, cat: Movies/UHD, desc: "UHD Películas"}
|
||||
- {id: 132, cat: TV/UHD, desc: "UHD Series"}
|
||||
|
||||
|
@@ -10,33 +10,33 @@
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 24, cat: TV/Anime , desc: "Anime"}
|
||||
- {id: 25, cat: PC/0day , desc: "Appz"}
|
||||
- {id: 47, cat: Movies/HD , desc: "AVCHD"}
|
||||
- {id: 24, cat: TV/Anime, desc: "Anime"}
|
||||
- {id: 25, cat: PC/0day, desc: "Appz"}
|
||||
- {id: 47, cat: Movies/HD, desc: "AVCHD"}
|
||||
- {id: 26, cat: Movies/BluRay , desc: "Bluray"}
|
||||
- {id: 54, cat: Movies/HD , desc: "dbREMUX"}
|
||||
- {id: 41, cat: Movies/HD , desc: "Documentaries"}
|
||||
- {id: 50, cat: Movies/HD , desc: "FourGHD"}
|
||||
- {id: 44, cat: Movies/HD , desc: "HDME"}
|
||||
- {id: 54, cat: Movies/HD, desc: "dbREMUX"}
|
||||
- {id: 41, cat: Movies/HD, desc: "Documentaries"}
|
||||
- {id: 50, cat: Movies/HD, desc: "FourGHD"}
|
||||
- {id: 44, cat: Movies/HD, desc: "HDME"}
|
||||
- {id: 28, cat: Audio/Lossless, desc: "HQ Music"}
|
||||
- {id: 48, cat: Movies/HD , desc: "iCandy"}
|
||||
- {id: 45, cat: Movies/HD , desc: "INtL"}
|
||||
- {id: 29, cat: Other , desc: "Misc"}
|
||||
- {id: 48, cat: Movies/HD, desc: "iCandy"}
|
||||
- {id: 45, cat: Movies/HD, desc: "INtL"}
|
||||
- {id: 29, cat: Other, desc: "Misc"}
|
||||
- {id: 49, cat: PC/Phone-Other, desc: "Mobile"}
|
||||
- {id: 30, cat: Movies/HD , desc: "Movie 1080i"}
|
||||
- {id: 31, cat: Movies/HD , desc: "Movie 1080p"}
|
||||
- {id: 32, cat: Movies/HD , desc: "Movie 720p"}
|
||||
- {id: 33, cat: Audio/Video , desc: "Music Videos"}
|
||||
- {id: 34, cat: TV , desc: "Packs"}
|
||||
- {id: 53, cat: Movies/HD , desc: "Remux"}
|
||||
- {id: 56, cat: Movies/HD , desc: "RUXi"}
|
||||
- {id: 55, cat: Movies/HD , desc: "SiNiSteR"}
|
||||
- {id: 36, cat: TV/Sport , desc: "Sports"}
|
||||
- {id: 37, cat: TV/HD , desc: "TV Series 1080i"}
|
||||
- {id: 38, cat: TV/HD , desc: "TV Series 1080p"}
|
||||
- {id: 39, cat: TV/HD , desc: "TV Series 720p"}
|
||||
- {id: 57, cat: Movies , desc: "UHD 2160p"}
|
||||
- {id: 40, cat: XXX , desc: "XXX"}
|
||||
- {id: 30, cat: Movies/HD, desc: "Movie 1080i"}
|
||||
- {id: 31, cat: Movies/HD, desc: "Movie 1080p"}
|
||||
- {id: 32, cat: Movies/HD, desc: "Movie 720p"}
|
||||
- {id: 33, cat: Audio/Video, desc: "Music Videos"}
|
||||
- {id: 34, cat: TV, desc: "Packs"}
|
||||
- {id: 53, cat: Movies/HD, desc: "Remux"}
|
||||
- {id: 56, cat: Movies/HD, desc: "RUXi"}
|
||||
- {id: 55, cat: Movies/HD, desc: "SiNiSteR"}
|
||||
- {id: 36, cat: TV/Sport, desc: "Sports"}
|
||||
- {id: 37, cat: TV/HD, desc: "TV Series 1080i"}
|
||||
- {id: 38, cat: TV/HD, desc: "TV Series 1080p"}
|
||||
- {id: 39, cat: TV/HD, desc: "TV Series 720p"}
|
||||
- {id: 57, cat: Movies/UHD, desc: "UHD 2160p"}
|
||||
- {id: 40, cat: XXX, desc: "XXX"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
|
@@ -14,7 +14,7 @@
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 2001, cat: Movies/HD, desc: "Кино HD"}
|
||||
- {id: 5006, cat: Movies/HD, desc: "Кино 4K"}
|
||||
- {id: 5006, cat: Movies/UHD, desc: "Кино 4K"}
|
||||
- {id: 2007, cat: Movies/Other, desc: "Анимация"}
|
||||
- {id: 2006, cat: TV/HD, desc: "Сериалы"}
|
||||
- {id: 5005, cat: TV/Sport, desc: "Спорт"}
|
||||
|
153
src/Jackett.Common/Definitions/horrorsite.yml
Normal file
153
src/Jackett.Common/Definitions/horrorsite.yml
Normal file
@@ -0,0 +1,153 @@
|
||||
---
|
||||
site: horrorsite
|
||||
name: Horror Site
|
||||
description: "Horror Site is a Hungarian Private site for MOVIES / TV"
|
||||
language: hu-hu
|
||||
type: private
|
||||
encoding: iso-8859-1
|
||||
links:
|
||||
- https://horror-site.net/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 76, cat: PC/Phone-Android, desc: "Android"}
|
||||
- {id: 81, cat: Movies/BluRay, desc: "BDRip"}
|
||||
- {id: 82, cat: Movies/SD, desc: "Cam"}
|
||||
- {id: 61, cat: Books, desc: "eBook/Hun"}
|
||||
- {id: 80, cat: Movies, desc: "Film /PACK"}
|
||||
- {id: 38, cat: Movies/DVD, desc: "Film/DVD-R/Hun"}
|
||||
- {id: 71, cat: Movies/HD, desc: "Film/HD/Hun"}
|
||||
- {id: 40, cat: Movies/SD, desc: "Film/XviD/Eng"}
|
||||
- {id: 39, cat: Movies/SD, desc: "Film/XviD/Hun"}
|
||||
- {id: 59, cat: XXX, desc: "Film/XXX"}
|
||||
- {id: 52, cat: PC/Games, desc: "Játék/RIP/ISO"}
|
||||
- {id: 75, cat: Other, desc: "Képek"}
|
||||
- {id: 74, cat: XXX, desc: "Képek/XXX"}
|
||||
- {id: 47, cat: Audio/Video, desc: "Klip"}
|
||||
- {id: 50, cat: Audio/MP3, desc: "Mp3/Eng"}
|
||||
- {id: 49, cat: Audio/MP3, desc: "Mp3/Hun"}
|
||||
- {id: 45, cat: PC, desc: "Program ISO /RIP"}
|
||||
- {id: 43, cat: TV, desc: "Rajzfilm/Hun"}
|
||||
- {id: 57, cat: TV, desc: "Sorozat/Eng"}
|
||||
- {id: 58, cat: TV, desc: "Sorozat/Hun"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: "4"
|
||||
options:
|
||||
"4": "created"
|
||||
"7": "seeders"
|
||||
"5": "size"
|
||||
"1": "title"
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: "2"
|
||||
options:
|
||||
"2": "desc"
|
||||
"1": "asc"
|
||||
- name: info
|
||||
type: info
|
||||
label: Results Per Page
|
||||
default: For best results, change the <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
|
||||
|
||||
login:
|
||||
path: takelogin.php
|
||||
method: post
|
||||
inputs:
|
||||
post_kuldes: engedelyezve
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: table.browse:contains("hiba")
|
||||
test:
|
||||
path: /
|
||||
selector: a[href="/logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: browse.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
search: "{{ .Keywords }}"
|
||||
# 0 active 1 active&dead 2 dead 3 recomended 4 double 5 free
|
||||
incldead: 1
|
||||
# 0 name 1 descr 2 both
|
||||
blah: 0
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
# does not support imdbid search
|
||||
|
||||
rows:
|
||||
selector: table > tbody > tr.sor:has(a[href^="/download.php/"])
|
||||
# error:
|
||||
# - selector: div.content:contains("Meg van vonva a letöltési jogod")
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="browse.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: title
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="/download.php/"]
|
||||
attribute: href
|
||||
imdb:
|
||||
selector: a[href*="www.imdb.com/title/tt"]
|
||||
optional: true
|
||||
attribute: href
|
||||
banner:
|
||||
selector: a[onmouseover]
|
||||
optional: true
|
||||
attribute: onmouseover
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "src=(.+?) "
|
||||
files:
|
||||
selector: td:nth-last-child(8)
|
||||
date:
|
||||
selector: td:nth-last-child(6)
|
||||
filters:
|
||||
- name: regexp
|
||||
args: (\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2})
|
||||
- name: replace
|
||||
args: ["\xA0", " "]
|
||||
- name: dateparse
|
||||
args: "2006-01-02 15:04:05"
|
||||
size:
|
||||
selector: td:nth-last-child(5) > u
|
||||
grabs:
|
||||
selector: td:nth-last-child(4)
|
||||
seeders:
|
||||
selector: td:nth-last-child(3)
|
||||
leechers:
|
||||
selector: td:nth-last-child(2)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[src="../pic/freedownload.gif"]: 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
# img[src="../pic/????????.gif"]: 2 # there is a double (according to incldead=4) but not found at this time.
|
||||
"*": 1
|
||||
# engine n/a
|
@@ -15,26 +15,26 @@
|
||||
- {id: 41, cat: Movies/SD, desc: "Film/Hun/SD"}
|
||||
- {id: 15, cat: Movies/DVD, desc: "Film/Hun/DVD-R"}
|
||||
- {id: 27, cat: Movies/HD, desc: "Film/Hun/HD"}
|
||||
- {id: 44, cat: Movies/HD, desc: "Film/Hun/UHD"}
|
||||
- {id: 44, cat: Movies/UHD, desc: "Film/Hun/UHD"}
|
||||
- {id: 2, cat: Books, desc: "eBook/Hun"}
|
||||
- {id: 7, cat: TV/SD, desc: "Sorozat/Eng"}
|
||||
- {id: 39, cat: TV/HD, desc: "Sorozat/Eng/HD"}
|
||||
- {id: 42, cat: Movies/SD, desc: "Film/Eng/SD"}
|
||||
- {id: 14, cat: Movies/DVD, desc: "Film/Eng/DVD-R"}
|
||||
- {id: 25, cat: Movies/HD, desc: "Film/Eng/HD"}
|
||||
- {id: 45, cat: Movies/HD, desc: "Film/Eng/UHD"}
|
||||
- {id: 45, cat: Movies/UHD, desc: "Film/Eng/UHD"}
|
||||
- {id: 1, cat: Books, desc: "eBook/Eng"}
|
||||
- {id: 38, cat: Audio/Audiobook, desc: "Hangoskönyv"}
|
||||
- {id: 21, cat: XXX, desc: "XXX"}
|
||||
- {id: 4, cat: PC/ISO, desc: "Program/ISO"}
|
||||
- {id: 19, cat: Audio/Other, desc: "Zene/Hun"}
|
||||
- {id: 19, cat: Audio/MP3, desc: "Zene/Hun"}
|
||||
- {id: 37, cat: Audio/Lossless, desc: "Lossless/Hun"}
|
||||
- {id: 9, cat: PC/Games, desc: "Játék/ISO"}
|
||||
- {id: 43, cat: Console, desc: "Játék/Konzol"}
|
||||
- {id: 29, cat: Other, desc: "Képek"}
|
||||
- {id: 28, cat: XXX/Imageset, desc: "XXX Képek"}
|
||||
- {id: 3, cat: PC/0day, desc: "Program/Egyéb"}
|
||||
- {id: 18, cat: Audio/Other, desc: "Zene/Eng"}
|
||||
- {id: 18, cat: Audio/MP3, desc: "Zene/Eng"}
|
||||
- {id: 26, cat: Audio/Lossless, desc: "Lossless/Eng"}
|
||||
- {id: 11, cat: PC/Games, desc: "Játék/Rip"}
|
||||
- {id: 13, cat: PC/Phone-Other, desc: "Mobil"}
|
||||
@@ -45,13 +45,37 @@
|
||||
tv-search: [q, season, ep, imdbid]
|
||||
movie-search: [q, imdbid]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: "4"
|
||||
options:
|
||||
"4": "created"
|
||||
"7": "seeders"
|
||||
"5": "size"
|
||||
"1": "title"
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: "desc"
|
||||
options:
|
||||
"desc": "desc"
|
||||
"asc": "asc"
|
||||
|
||||
login:
|
||||
path: login.php
|
||||
method: post
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
notsecure: "1"
|
||||
notsecure: 1
|
||||
error:
|
||||
- selector: div.login_error_content_text
|
||||
test:
|
||||
@@ -63,7 +87,10 @@
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{else}}{{ .Keywords }}{{end}}"
|
||||
t: all
|
||||
# 0 active 1 both 2 dead
|
||||
incldead: 1
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
|
||||
rows:
|
||||
selector: table.torrenttable > tbody > tr:has(td.torrentmain)
|
||||
@@ -123,8 +150,9 @@
|
||||
filters:
|
||||
- name: replace
|
||||
args: [".", ""]
|
||||
- name: replace
|
||||
args: [" ", ""]
|
||||
remove: div.uploader, div.moderation, a.leftborder
|
||||
|
||||
date:
|
||||
selector: td.center.date
|
||||
filters:
|
||||
@@ -142,5 +170,6 @@
|
||||
"*" : 1
|
||||
description:
|
||||
selector: div.contenttext
|
||||
optional: true
|
||||
remove: div.contenttitle
|
||||
# engine tbd
|
||||
# custom v2.0b
|
||||
|
@@ -23,9 +23,9 @@
|
||||
- {id: 13, cat: XXX, desc: "XXX"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
search: [q, imdbid]
|
||||
tv-search: [q, season, ep, imdbid]
|
||||
movie-search: [q, imdbid]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
@@ -69,13 +69,14 @@
|
||||
test:
|
||||
path: browse.php
|
||||
selector: a[href^="logout.php"]
|
||||
|
||||
|
||||
search:
|
||||
paths:
|
||||
# https://polishsource.cz/browse.php?search=tt1598778&incldead=1&scene=0&pl=0&sub=&search_in=nfo
|
||||
- path: browse.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
search: "{{ .Keywords }}"
|
||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{else}}{{ .Keywords }}{{end}}"
|
||||
# 0 onlyactive 1 all 2 onlydead
|
||||
incldead: 1
|
||||
# 0 all 1 scene 2 notscene 3 internal
|
||||
@@ -85,7 +86,7 @@
|
||||
# subcat blank=all
|
||||
sub: ""
|
||||
# title both nfo
|
||||
search_in: title
|
||||
search_in: "{{ if .Query.IMDBID }}nfo{{else}}title{{end}}"
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
|
||||
|
@@ -18,7 +18,7 @@
|
||||
- {id: 55, cat: Books, desc: "Comics"}
|
||||
- {id: 5, cat: Movies/HD, desc: "Movies/720p HD"}
|
||||
- {id: 8, cat: Movies/HD, desc: "Movies/1080p HD"}
|
||||
- {id: 15, cat: Movies/HD, desc: "Movies/Ultra-HD"}
|
||||
- {id: 15, cat: Movies/UHD, desc: "Movies/Ultra-HD"}
|
||||
- {id: 44, cat: Movies, desc: "Movies/Packs"}
|
||||
- {id: 69, cat: Books, desc: "E Books"}
|
||||
- {id: 12, cat: Books, desc: "E Learning"}
|
||||
@@ -35,9 +35,33 @@
|
||||
- {id: 9, cat: XXX, desc: "XXX"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
search: [q, imdbid]
|
||||
tv-search: [q, season, ep, imdbid]
|
||||
movie-search: [q, imdbid]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: "4"
|
||||
options:
|
||||
"4": "created"
|
||||
"7": "seeders"
|
||||
"5": "size"
|
||||
"1": "title"
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: "desc"
|
||||
options:
|
||||
"desc": "desc"
|
||||
"asc": "asc"
|
||||
|
||||
login:
|
||||
path: loginproc/
|
||||
@@ -55,16 +79,22 @@
|
||||
|
||||
search:
|
||||
paths:
|
||||
# https://ptfiles.net/browse.php?search=tt3612126&incldead=1&title=1
|
||||
- path: browse.php
|
||||
inputs:
|
||||
$raw: "{{range .Categories}}c{{.}}=1&{{end}}"
|
||||
search: "{{ .Keywords }}"
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{else}}{{ .Keywords }}{{end}}"
|
||||
# 0 active 1 both 2 dead 3 needseed
|
||||
incldead: 0
|
||||
onlyname: 1
|
||||
onlyname2: true
|
||||
# 0 title 1 descr 2 both 3 genre
|
||||
title: "{{ if .Query.IMDBID }}1{{else}}0{{end}}"
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
|
||||
rows:
|
||||
# for some users (don't know why) the table is called tablethree instead of tortable
|
||||
selector: table#tortable > tbody > tr.rowhead, table#tablethree > tbody > tr.rowhead
|
||||
|
||||
fields:
|
||||
# column 3 will be the wait time for new users
|
||||
download:
|
||||
@@ -124,3 +154,4 @@
|
||||
filters:
|
||||
- name: trim
|
||||
args: "/"
|
||||
# TBDev Custom
|
||||
|
@@ -28,7 +28,7 @@
|
||||
- {id: 5, cat: Movies, desc: "Filmy Kreslené"}
|
||||
- {id: 19, cat: Movies/HD, desc: "HD Filmy"}
|
||||
- {id: 29, cat: Movies/3D, desc: "3D Blu-ray"}
|
||||
- {id: 43, cat: Movies/HD, desc: "UHD Filmy"}
|
||||
- {id: 43, cat: Movies/UHD, desc: "UHD Filmy"}
|
||||
- {id: 28, cat: Movies/BluRay, desc: "Blu-ray"}
|
||||
- {id: 18, cat: PC/Games, desc: "Hry na Windows"}
|
||||
- {id: 30, cat: PC/Games, desc: "Hry na Konzole"}
|
||||
@@ -85,9 +85,9 @@
|
||||
- name: diacritics
|
||||
args: replace
|
||||
- name: replace
|
||||
args: ["serie", ""]
|
||||
args: ["serie", ""]
|
||||
- name: replace
|
||||
args: ["Serie", ""]
|
||||
args: ["Serie", ""]
|
||||
- name: re_replace
|
||||
args: ["(\\d{2})\\.", "S$1"]
|
||||
- name: re_replace
|
||||
|
@@ -10,59 +10,59 @@
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
# App
|
||||
- {id: 12, cat: PC/0day, desc: "App Win"}
|
||||
- {id: 10, cat: PC/Mac, desc: "App Mac"}
|
||||
# App
|
||||
- {id: 12, cat: PC/0day, desc: "App Win"}
|
||||
- {id: 10, cat: PC/Mac, desc: "App Mac"}
|
||||
- {id: 127, cat: PC/Phone-Android, desc: "App Android"}
|
||||
# Doku
|
||||
- {id: 177, cat: TV/Documentary, desc: "Doku HD "}
|
||||
# Doku
|
||||
- {id: 177, cat: TV/Documentary, desc: "Doku HD "}
|
||||
- {id: 178, cat: TV/Documentary, desc: "Doku SD "}
|
||||
# Game
|
||||
- {id: 263, cat: Console/Other, desc: "Game Sonstiege"}
|
||||
- {id: 264, cat: Console, desc: "Game PDA / Handy"}
|
||||
- {id: 265, cat: Console/PSP, desc: "Game PlayStation"}
|
||||
- {id: 299, cat: Console, desc: "Game Wimmelbild"}
|
||||
# Game
|
||||
- {id: 263, cat: Console/Other, desc: "Game Sonstiege"}
|
||||
- {id: 264, cat: Console, desc: "Game PDA / Handy"}
|
||||
- {id: 265, cat: Console/PSP, desc: "Game PlayStation"}
|
||||
- {id: 299, cat: Console, desc: "Game Wimmelbild"}
|
||||
- {id: 17, cat: PC/Games, desc: "Game PC"}
|
||||
# Movie
|
||||
- {id: 277, cat: Movies, desc: "Movie Pack"}
|
||||
- {id: 300, cat: Movies/3D, desc: "Movie 3D"}
|
||||
- {id: 258, cat: Movies/Uhd, desc: "Movie UHD "}
|
||||
- {id: 262, cat: Movies/DVD, desc: "Movie DVD-R"}
|
||||
- {id: 301, cat: Movies/BluRay, desc: "Movie Bluray"}
|
||||
- {id: 28, cat: Movies/SD, desc: "Movie SD "}
|
||||
# Movie
|
||||
- {id: 277, cat: Movies, desc: "Movie Pack"}
|
||||
- {id: 300, cat: Movies/3D, desc: "Movie 3D"}
|
||||
- {id: 258, cat: Movies/UHD, desc: "Movie UHD "}
|
||||
- {id: 262, cat: Movies/DVD, desc: "Movie DVD-R"}
|
||||
- {id: 301, cat: Movies/BluRay, desc: "Movie Bluray"}
|
||||
- {id: 28, cat: Movies/SD, desc: "Movie SD "}
|
||||
- {id: 32, cat: Movies/HD, desc: "Movie HD "}
|
||||
# Music
|
||||
- {id: 48, cat: Audio, desc: "Music Album"}
|
||||
- {id: 288, cat: Audio, desc: "Music Discographie"}
|
||||
- {id: 201, cat: Audio/Lossless, desc: "Music FLAC"}
|
||||
- {id: 121, cat: Audio/MP3, desc: "Music MP3"}
|
||||
- {id: 124, cat: Audio, desc: "Music Mixe"}
|
||||
- {id: 55, cat: Audio/Video, desc: "Music Video SD"}
|
||||
- {id: 53, cat: Audio, desc: "Music Sampler"}
|
||||
- {id: 52, cat: Audio, desc: "Music Pack"}
|
||||
- {id: 49, cat: Audio, desc: "Music Charts/Single"}
|
||||
# Music
|
||||
- {id: 48, cat: Audio, desc: "Music Album"}
|
||||
- {id: 288, cat: Audio, desc: "Music Discographie"}
|
||||
- {id: 201, cat: Audio/Lossless, desc: "Music FLAC"}
|
||||
- {id: 121, cat: Audio/MP3, desc: "Music MP3"}
|
||||
- {id: 124, cat: Audio, desc: "Music Mixe"}
|
||||
- {id: 55, cat: Audio/Video, desc: "Music Video SD"}
|
||||
- {id: 53, cat: Audio, desc: "Music Sampler"}
|
||||
- {id: 52, cat: Audio, desc: "Music Pack"}
|
||||
- {id: 49, cat: Audio, desc: "Music Charts/Single"}
|
||||
- {id: 303, cat: Audio, desc: "Music Soundtrack"}
|
||||
# Tv Serien
|
||||
- {id: 286, cat: TV/Anime, desc: "Tv Serien Anime HD"}
|
||||
- {id: 226, cat: TV/SD, desc: "Tv Serien SD"}
|
||||
- {id: 209, cat: TV/HD, desc: "Tv Serien HD "}
|
||||
- {id: 287, cat: TV/Anime, desc: "Tv Serien Anime SD"}
|
||||
# Tv Serien
|
||||
- {id: 286, cat: TV/Anime, desc: "Tv Serien Anime HD"}
|
||||
- {id: 226, cat: TV/SD, desc: "Tv Serien SD"}
|
||||
- {id: 209, cat: TV/HD, desc: "Tv Serien HD "}
|
||||
- {id: 287, cat: TV/Anime, desc: "Tv Serien Anime SD"}
|
||||
- {id: 273, cat: TV, desc: "Tv Serien Pack"}
|
||||
# Sport
|
||||
- {id: 62, cat: TV/Sport, desc: "Sport SD "}
|
||||
# Sport
|
||||
- {id: 62, cat: TV/Sport, desc: "Sport SD "}
|
||||
- {id: 282, cat: TV/Sport, desc: "Sport HD"}
|
||||
# Sonstiges
|
||||
- {id: 216, cat: Books, desc: "Sonstiges Pdf"}
|
||||
- {id: 202, cat: Books/Magazines, desc: "Sonstiges Magazine"}
|
||||
- {id: 217, cat: Books, desc: "Sonstiges EPaper"}
|
||||
- {id: 269, cat: Books, desc: "Sonstiges Hörspiel"}
|
||||
- {id: 63, cat: Audio/Audiobook, desc: "Sonstiges A-Book"}
|
||||
# Sonstiges
|
||||
- {id: 216, cat: Books, desc: "Sonstiges Pdf"}
|
||||
- {id: 202, cat: Books/Magazines, desc: "Sonstiges Magazine"}
|
||||
- {id: 217, cat: Books, desc: "Sonstiges EPaper"}
|
||||
- {id: 269, cat: Books, desc: "Sonstiges Hörspiel"}
|
||||
- {id: 63, cat: Audio/Audiobook, desc: "Sonstiges A-Book"}
|
||||
- {id: 96, cat: Books/Ebook, desc: "Sonstiges E-Book"}
|
||||
# XXX
|
||||
- {id: 73, cat: XXX, desc: "XXX HD "}
|
||||
- {id: 75, cat: XXX, desc: "XXX Pack"}
|
||||
- {id: 76, cat: XXX, desc: "XXX SD "}
|
||||
- {id: 147, cat: XXX, desc: "XXX Bilder//Clips"}
|
||||
# XXX
|
||||
- {id: 73, cat: XXX, desc: "XXX HD "}
|
||||
- {id: 75, cat: XXX, desc: "XXX Pack"}
|
||||
- {id: 76, cat: XXX, desc: "XXX SD "}
|
||||
- {id: 147, cat: XXX, desc: "XXX Bilder//Clips"}
|
||||
- {id: 302, cat: XXX, desc: "XXX DVD-R"}
|
||||
|
||||
modes:
|
||||
|
@@ -10,7 +10,7 @@
|
||||
legacylinks:
|
||||
- https://torrent-turk.org/
|
||||
- https://torrent-turk.co/
|
||||
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 149, cat: Movies, desc: "Movies/Turkish"}
|
||||
@@ -27,7 +27,7 @@
|
||||
- {id: 161, cat: Movies/DVD, desc: "Movies/Foreign/DVD5-DVD9"}
|
||||
- {id: 162, cat: Movies/WEBDL, desc: "Movies/Foreign/BRRip-HDRip-DVDRip-WebDL"}
|
||||
- {id: 163, cat: Movies/Other, desc: "Movies/Foreign/Boxset"}
|
||||
|
||||
|
||||
- {id: 164, cat: TV, desc: "TV"}
|
||||
- {id: 165, cat: TV, desc: "TV/Turkish"}
|
||||
- {id: 166, cat: TV, desc: "TV/Foreign"}
|
||||
@@ -35,7 +35,7 @@
|
||||
- {id: 185, cat: TV/Documentary, desc: "TV/Documentary"}
|
||||
- {id: 168, cat: TV/Other, desc: "TV/Other"}
|
||||
- {id: 169, cat: TV/Other, desc: "TV/Boxset"}
|
||||
|
||||
|
||||
- {id: 191, cat: TV, desc: "TV/BluTv"}
|
||||
- {id: 192, cat: TV, desc: "TV/BluTv Series"}
|
||||
- {id: 193, cat: Movies, desc: "TV/BluTv Film"}
|
||||
@@ -57,12 +57,12 @@
|
||||
- {id: 179, cat: PC, desc: "OS"}
|
||||
- {id: 180, cat: PC/Games, desc: "PC/Games"}
|
||||
- {id: 181, cat: Console, desc: "Playstation"}
|
||||
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
@@ -89,7 +89,11 @@
|
||||
options:
|
||||
"desc": "desc"
|
||||
"asc": "asc"
|
||||
|
||||
- name: info_results
|
||||
type: info
|
||||
label: Search results
|
||||
default: "If you are getting the error: <b>An error has occured!You can't view this page unless you read all your unread messages</b>, then access the site with your browser and <b>mark as read</b> all PMs."
|
||||
|
||||
login:
|
||||
path: ?p=home&pid=1
|
||||
method: form
|
||||
@@ -111,11 +115,11 @@
|
||||
test:
|
||||
path: ?p=torrents&type=bookmarks&pid=508
|
||||
selector: a#logout
|
||||
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: /
|
||||
keywordsfilters:
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
args: ["[^a-zA-Z0-9]+", "%25"]
|
||||
inputs:
|
||||
@@ -129,6 +133,7 @@
|
||||
"sortOptions[sortOrder]": "{{ .Config.type }}"
|
||||
error:
|
||||
- selector: div.error:not(:contains("Hiçbir sonuç bulunamadı."))
|
||||
# does not support imdbid search and does not return imdb link in results.
|
||||
|
||||
rows:
|
||||
selector: table#torrents_table_classic > tbody > tr:has(td.torrent_name)
|
||||
@@ -150,7 +155,7 @@
|
||||
attribute: href
|
||||
date:
|
||||
optional: true
|
||||
# Uploaded 30-01-2019 15:02 by
|
||||
# Uploaded 30-01-2019 15:02 by
|
||||
selector: td.torrent_name:not(:contains(" at "))
|
||||
filters:
|
||||
- name: regexp
|
||||
|
@@ -38,9 +38,9 @@
|
||||
- {id: 56, cat: XXX, desc: "XXX"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
search: [q, imdbid]
|
||||
tv-search: [q, season, ep, imdbid]
|
||||
movie-search: [q, imdbid]
|
||||
|
||||
settings:
|
||||
- name: cookie
|
||||
@@ -81,11 +81,11 @@
|
||||
- path: browse.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
search: "{{ .Keywords }}"
|
||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{else}}{{ .Keywords }}{{end}}"
|
||||
# 0 onlyactive 1 all 2 onlydead 3 free
|
||||
incldead: 1
|
||||
# 0 title 1 descr 2 both
|
||||
titlesearch: 0
|
||||
titlesearch: "{{ if .Query.IMDBID }}1{{else}}0{{end}}"
|
||||
# 0 all 1 polish 2 not polish
|
||||
polish: 0
|
||||
cat_film: ""
|
||||
@@ -114,6 +114,10 @@
|
||||
download:
|
||||
selector: a[href^="download.php/"]
|
||||
attribute: href
|
||||
imdb:
|
||||
optional: true
|
||||
selector: a[href*="www.imdb.com/title/tt"]
|
||||
attribute: href
|
||||
description:
|
||||
text: ""
|
||||
description:
|
||||
|
@@ -42,8 +42,8 @@
|
||||
- {id: 20, cat: Movies/DVD, desc: "Filme DVDR"}
|
||||
- {id: 120, cat: Movies/Foreign, desc: "Filme Int."}
|
||||
- {id: 119, cat: Movies, desc: "Filme Remux"}
|
||||
- {id: 121, cat: Movies/HD, desc: "Filme UHD"}
|
||||
- {id: 124, cat: Movies/HD, desc: "Filme UHD Remux"}
|
||||
- {id: 121, cat: Movies/UHD, desc: "Filme UHD"}
|
||||
- {id: 124, cat: Movies/UHD, desc: "Filme UHD Remux"}
|
||||
- {id: 36, cat: Movies/HD, desc: "Filme SD"}
|
||||
# Serien
|
||||
- {id: 112, cat: TV/Anime, desc: "Serien Anime"}
|
||||
@@ -115,7 +115,7 @@
|
||||
- selector: "#login_box_desc"
|
||||
test:
|
||||
path: my.php
|
||||
|
||||
|
||||
ratio:
|
||||
path: my.php
|
||||
selector: td.navi_top:contains("Deine Ratio:")
|
||||
|
@@ -7,11 +7,12 @@
|
||||
encoding: UTF-8
|
||||
followredirect: true
|
||||
links:
|
||||
- https://torrentview5.net/
|
||||
- https://torrentview6.net/
|
||||
legacylinks:
|
||||
- https://torrentview.net/
|
||||
- https://torrentview3.net/
|
||||
- https://torrentview4.net/
|
||||
- https://torrentview5.net/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
@@ -50,9 +50,9 @@
|
||||
- {id: 24, cat: TV, desc: "Teens"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
search: [q, imdbid]
|
||||
tv-search: [q, season, ep, imdbid]
|
||||
movie-search: [q, imdbid]
|
||||
music-search: [q]
|
||||
|
||||
login:
|
||||
@@ -74,10 +74,10 @@
|
||||
- path: index.php
|
||||
inputs:
|
||||
page: torrents
|
||||
search: "{{ if .Keywords }}{{ .Keywords }}{{else}}{{end}}"
|
||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{else}}{{ .Keywords }}{{end}}"
|
||||
category: "{{ if .Categories }}{{ range .Categories }}{{.}};{{end}}{{else}}0{{end}}"
|
||||
# 0 filename 1 file&descr 2 descr
|
||||
options: 0
|
||||
# 0=title, 1=title&descr, 2=descr
|
||||
options: "{{ if .Query.IMDBID }}2{{else}}0{{end}}"
|
||||
# 0 all 1 activeonly 2 deadonly
|
||||
active: 0
|
||||
order: "{{ .Config.sort }}"
|
||||
|
@@ -18,7 +18,7 @@
|
||||
- {id: 11, cat: Movies/SD, desc: "DVD-R"}
|
||||
- {id: 60, cat: Movies/HD, desc: "HDTV"}
|
||||
- {id: 62, cat: Movies/SD, desc: "SD"}
|
||||
- {id: 89, cat: Movies/HD, desc: "UHD"}
|
||||
- {id: 89, cat: Movies/UHD, desc: "UHD"}
|
||||
- {id: 91, cat: Movies, desc: "Packs"}
|
||||
|
||||
# Serien
|
||||
@@ -27,7 +27,7 @@
|
||||
- {id: 77, cat: TV/SD, desc: "Serien-SD"}
|
||||
- {id: 78, cat: TV/HD, desc: "Serien-720p"}
|
||||
- {id: 79, cat: TV/HD, desc: "Serien-1080p"}
|
||||
- {id: 95, cat: TV/HD, desc: "Serien-2160p"}
|
||||
- {id: 95, cat: TV/UHD, desc: "Serien-2160p"}
|
||||
|
||||
# Games
|
||||
- {id: 4, cat: PC/Games, desc: "Windows"}
|
||||
|
@@ -24,7 +24,11 @@
|
||||
- {id: 34, cat: Movies/DVD, desc: "Film/DVD-HUN"}
|
||||
- {id: 10, cat: Movies/HD, desc: "Film/HD-DVD/Külf"}
|
||||
- {id: 7, cat: Movies/SD, desc: "Film/SD-X264-HUN"}
|
||||
- {id: 27, cat: Movies/SD, desc: "Film/SD-X264-HUN Mese"}
|
||||
- {id: 25, cat: TV/SD, desc: "Sorozat/SD-HUN"}
|
||||
- {id: 8, cat: Movies/SD, desc: "Film/SD-X264"}
|
||||
- {id: 28, cat: Movies/SD, desc: "Film/SD-X264 Mese/Külf."}
|
||||
- {id: 26, cat: TV/SD, desc: "Sorozat/SD"}
|
||||
- {id: 15, cat: XXX, desc: "Film/XXX-SD"}
|
||||
- {id: 16, cat: XXX, desc: "Film/XXX-HD"}
|
||||
- {id: 40, cat: XXX, desc: "Film/XXX-DVD"}
|
||||
@@ -34,12 +38,8 @@
|
||||
- {id: 45, cat: Console, desc: "Game/Konzol"}
|
||||
- {id: 18, cat: Other, desc: "Képek"}
|
||||
- {id: 17, cat: XXX, desc: "Képek/XXX"}
|
||||
- {id: 27, cat: Books, desc: "Mese/Hun"}
|
||||
- {id: 28, cat: Books, desc: "Mese/Külf."}
|
||||
- {id: 24, cat: PC/Phone-Other, desc: "Program/Mobil"}
|
||||
- {id: 1, cat: PC/0day, desc: "Program/PC"}
|
||||
- {id: 25, cat: TV/SD, desc: "Sorozat/SD-HUN"}
|
||||
- {id: 26, cat: TV/SD, desc: "Sorozat/SD"}
|
||||
- {id: 44, cat: TV/HD, desc: "Sorozat/HD-HUN"}
|
||||
- {id: 46, cat: TV/HD, desc: "Sorozat/HD"}
|
||||
- {id: 48, cat: TV/UHD, desc: "Sorozat/4K-HUN"}
|
||||
@@ -48,9 +48,9 @@
|
||||
- {id: 12, cat: Audio, desc: "Zene/Külf."}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
search: [q, imdbid]
|
||||
tv-search: [q, season, ep, imdbid]
|
||||
movie-search: [q, imdbid]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
@@ -100,8 +100,9 @@
|
||||
args: ["[^a-zA-Z0-9]+", "%"]
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
keywords: "{{ .Keywords }}"
|
||||
search_type: t_name
|
||||
keywords: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{else}}{{ .Keywords }}{{end}}"
|
||||
# t_name , t_description , t_both , t_uploader
|
||||
search_type: "{{ if .Query.IMDBID }}t_description{{else}}t_name{{end}}"
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
|
||||
@@ -121,6 +122,10 @@
|
||||
filters:
|
||||
- name: regexp
|
||||
args: img src=\\'(.*?)\\'
|
||||
imdb:
|
||||
optional: true
|
||||
selector: a[href*="www.imdb.com/title/tt"]
|
||||
attribute: href
|
||||
details:
|
||||
selector: a[href*="details.php?id="][onmouseover]
|
||||
attribute: href
|
||||
@@ -151,6 +156,7 @@
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[src="./pic/freedownload.gif"]: 0
|
||||
img[src="./pic/silverdownload.gif"]: 0.5
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
|
@@ -45,6 +45,7 @@ namespace Jackett.Common.Indexers
|
||||
Language = "en-us";
|
||||
Type = "private";
|
||||
TorznabCaps.SupportsImdbMovieSearch = true;
|
||||
TorznabCaps.SupportsImdbTVSearch = true;
|
||||
AddCategoryMapping(1, TorznabCatType.TVAnime); // Anime
|
||||
AddCategoryMapping(2, TorznabCatType.MoviesBluRay); // Blu-ray
|
||||
AddCategoryMapping(4, TorznabCatType.TVDocumentary); // Documentaries
|
||||
@@ -115,7 +116,11 @@ namespace Jackett.Common.Indexers
|
||||
protected override async Task<IEnumerable<ReleaseInfo>> PerformQuery(TorznabQuery query)
|
||||
{
|
||||
var releases = new List<ReleaseInfo>();
|
||||
var qc = new NameValueCollection();
|
||||
var cats = MapTorznabCapsToTrackers(query, true);
|
||||
var qc = new NameValueCollection
|
||||
{
|
||||
{"cat", cats.Count == 1 ? cats[0] : "0"}
|
||||
};
|
||||
var results = new List<WebClientStringResult>();
|
||||
var search = new UriBuilder(SearchUrl);
|
||||
if (query.IsImdbQuery)
|
||||
@@ -137,7 +142,6 @@ namespace Jackett.Common.Indexers
|
||||
results.Add(await RequestStringWithCookiesAndRetry(search.ToString()));
|
||||
}
|
||||
|
||||
var trackerCats = MapTorznabCapsToTrackers(query, true);
|
||||
var parser = new HtmlParser();
|
||||
foreach (var result in results)
|
||||
try
|
||||
@@ -146,6 +150,8 @@ namespace Jackett.Common.Indexers
|
||||
foreach (var child in dom.QuerySelectorAll("#needseed"))
|
||||
child.Remove();
|
||||
var table = dom.QuerySelector("table[align=center] + br + table > tbody");
|
||||
if (table == null) // No results, so skip this search
|
||||
continue;
|
||||
foreach (var row in table.Children.Skip(1))
|
||||
{
|
||||
var release = new ReleaseInfo();
|
||||
@@ -167,10 +173,6 @@ namespace Jackett.Common.Indexers
|
||||
var catNum = catQuery["cat"];
|
||||
release.Category = MapTrackerCatToNewznab(catNum);
|
||||
|
||||
// This tracker cannot search multiple cats at a time
|
||||
// so search all cats then filter out results from different cats
|
||||
if (trackerCats.Any() && !trackerCats.Contains(catNum))
|
||||
continue;
|
||||
var dateString = row.Children[5].TextContent.Trim();
|
||||
var pubDate = DateTime.ParseExact(dateString, "yyyy-MM-ddHH:mm:ss", CultureInfo.InvariantCulture);
|
||||
release.PublishDate = DateTime.SpecifyKind(pubDate, DateTimeKind.Local);
|
||||
|
@@ -1102,7 +1102,12 @@ namespace Jackett.Common.Indexers
|
||||
case "strdump":
|
||||
// for debugging
|
||||
var DebugData = Data.Replace("\r", "\\r").Replace("\n", "\\n").Replace("\xA0", "\\xA0");
|
||||
logger.Debug(string.Format("CardigannIndexer ({0}): strdump: {1}", ID, DebugData));
|
||||
var strTag = (string)Filter.Args;
|
||||
if (strTag != null)
|
||||
strTag = string.Format("({0}):", strTag);
|
||||
else
|
||||
strTag = ":";
|
||||
logger.Debug(string.Format("CardigannIndexer ({0}): strdump{1} {2}", ID, strTag, DebugData));
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
@@ -40,6 +40,7 @@ namespace Jackett.Common.Indexers
|
||||
Type = "private";
|
||||
|
||||
TorznabCaps.SupportsImdbMovieSearch = true;
|
||||
TorznabCaps.SupportsImdbTVSearch = true;
|
||||
|
||||
AddCategoryMapping(27, TorznabCatType.TVAnime, "Animation/Animes");
|
||||
AddCategoryMapping(90, TorznabCatType.TVAnime, "Animes - 3D");
|
||||
@@ -187,8 +188,7 @@ namespace Jackett.Common.Indexers
|
||||
|
||||
foreach (var row in rows.Skip(1))
|
||||
{
|
||||
var qTags = row.Children[1].QuerySelector("div:has(span[style=\"float: right;\"])");
|
||||
if (qTags == null)
|
||||
if (row.Children.Length != 9)
|
||||
continue; // not a torrent line
|
||||
|
||||
var cat = row.Children[0].QuerySelector("a").GetAttribute("href").Split('=')[1];
|
||||
@@ -201,6 +201,7 @@ namespace Jackett.Common.Indexers
|
||||
var seeders = row.Children[6].QuerySelector("a").TextContent;
|
||||
var leechers = row.Children[7].QuerySelector("a").TextContent;
|
||||
|
||||
var qTags = row.Children[1].QuerySelector("div:has(span[style=\"float: right;\"])");
|
||||
var dlVolumeFactor = 1.0;
|
||||
if (qTags.QuerySelector("img[alt^=\"TORRENT GRATUIT\"]") != null)
|
||||
dlVolumeFactor = 0.0;
|
||||
|
186
src/Jackett.Common/Indexers/EpubLibre.cs
Normal file
186
src/Jackett.Common/Indexers/EpubLibre.cs
Normal file
@@ -0,0 +1,186 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Threading.Tasks;
|
||||
using AngleSharp.Html.Parser;
|
||||
using Jackett.Common.Models;
|
||||
using Jackett.Common.Models.IndexerConfig;
|
||||
using Jackett.Common.Services.Interfaces;
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using NLog;
|
||||
using WebClient = Jackett.Common.Utils.Clients.WebClient;
|
||||
|
||||
namespace Jackett.Common.Indexers
|
||||
{
|
||||
// ReSharper disable once UnusedType.Global
|
||||
// ReSharper disable once UnusedMember.Global
|
||||
public class EpubLibre : BaseWebIndexer
|
||||
{
|
||||
private string SearchUrl => SiteLink + "catalogo/index/{0}/nuevo/todos/sin/todos/{1}/ajax";
|
||||
private string SobrecargaUrl => SiteLink + "inicio/sobrecarga";
|
||||
private const int MaxItemsPerPage = 18;
|
||||
private const int MaxSearchPageLimit = 6; // 18 items per page * 6 pages = 108
|
||||
private readonly Dictionary<string, string> _apiHeaders = new Dictionary<string, string>
|
||||
{
|
||||
{"X-Requested-With", "XMLHttpRequest"},
|
||||
};
|
||||
private readonly Dictionary<string, string> _languages = new Dictionary<string, string>
|
||||
{
|
||||
{"1", "español"},
|
||||
{"2", "catalán"},
|
||||
{"3", "euskera"},
|
||||
{"4", "gallego"},
|
||||
{"5", "inglés"},
|
||||
{"6", "francés"},
|
||||
{"7", "alemán"},
|
||||
{"8", "sueco"},
|
||||
{"9", "mandarín"},
|
||||
{"10", "italiano"},
|
||||
{"11", "portugués"},
|
||||
{"12", "esperanto"}
|
||||
};
|
||||
|
||||
public EpubLibre(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps)
|
||||
: base("EpubLibre",
|
||||
description: "Más libros, Más libres",
|
||||
link: "https://epublibre.org/",
|
||||
caps: new TorznabCapabilities(TorznabCatType.BooksEbook),
|
||||
configService: configService,
|
||||
client: wc,
|
||||
logger: l,
|
||||
p: ps,
|
||||
configData: new ConfigurationData())
|
||||
{
|
||||
Encoding = Encoding.UTF8;
|
||||
Language = "es-es";
|
||||
Type = "public";
|
||||
}
|
||||
|
||||
public override async Task<IndexerConfigurationStatus> ApplyConfiguration(JToken configJson)
|
||||
{
|
||||
base.LoadValuesFromJson(configJson);
|
||||
var releases = await PerformQuery(new TorznabQuery());
|
||||
await ConfigureIfOK(string.Empty, releases.Any(), () =>
|
||||
throw new Exception("Could not find any release from this URL"));
|
||||
return IndexerConfigurationStatus.Completed;
|
||||
}
|
||||
|
||||
protected override async Task<IEnumerable<ReleaseInfo>> PerformQuery(TorznabQuery query)
|
||||
{
|
||||
var releases = new List<ReleaseInfo>();
|
||||
|
||||
var searchString = "--";
|
||||
var maxPages = 2; // we scrape only 2 pages for recent torrents
|
||||
if (!string.IsNullOrWhiteSpace(query.GetQueryString()))
|
||||
{
|
||||
searchString = Uri.EscapeUriString(query.GetQueryString());
|
||||
maxPages = MaxSearchPageLimit;
|
||||
}
|
||||
|
||||
var lastPublishDate = DateTime.Now;
|
||||
for (var page = 0; page < maxPages; page++)
|
||||
{
|
||||
var searchUrl = string.Format(SearchUrl, page * MaxItemsPerPage, searchString);
|
||||
var result = await RequestStringWithCookies(searchUrl, null, null, _apiHeaders);
|
||||
|
||||
try
|
||||
{
|
||||
var json = JsonConvert.DeserializeObject<dynamic>(result.Content);
|
||||
var parser = new HtmlParser();
|
||||
var doc = parser.ParseDocument((string)json["contenido"]);
|
||||
|
||||
var rows = doc.QuerySelectorAll("div.span2");
|
||||
foreach (var row in rows)
|
||||
{
|
||||
var title = row.QuerySelector("h2").TextContent + " - " +
|
||||
row.QuerySelector("h1").TextContent;
|
||||
if (!CheckTitleMatchWords(query.GetQueryString(), title))
|
||||
continue; // skip if it doesn't contain all words
|
||||
|
||||
var banner = new Uri(row.QuerySelector("img[id=catalog]").GetAttribute("src"));
|
||||
var qLink = row.QuerySelector("a");
|
||||
var comments = new Uri(qLink.GetAttribute("href"));
|
||||
|
||||
var qTooltip = parser.ParseDocument(qLink.GetAttribute("data-content"));
|
||||
// we get the language from the last class tag => class="pull-right sprite idioma_5"
|
||||
var languageId = qTooltip.QuerySelector("div.pull-right").GetAttribute("class").Split('_')[1];
|
||||
title += $" [{_languages[languageId]}] [epub]";
|
||||
var qDesc = qTooltip.QuerySelectorAll("div.row-fluid > div");
|
||||
var description = $"Rev: {qDesc[0].TextContent} Páginas: {qDesc[1].TextContent} Puntación: {qDesc[2].TextContent} Likes: {qDesc[3].TextContent}";
|
||||
|
||||
// publish date is not available in the torrent list, but we add a relative date so we can sort
|
||||
lastPublishDate = lastPublishDate.AddMinutes(-1);
|
||||
|
||||
var release = new ReleaseInfo
|
||||
{
|
||||
Title = title,
|
||||
Comments = comments,
|
||||
Link = comments,
|
||||
Guid = comments,
|
||||
PublishDate = lastPublishDate,
|
||||
BannerUrl = banner,
|
||||
Description = description,
|
||||
Category = new List<int> {TorznabCatType.BooksEbook.ID},
|
||||
Size = 5242880, // 5 MB
|
||||
Seeders = 1,
|
||||
Peers = 2,
|
||||
MinimumRatio = 1,
|
||||
MinimumSeedTime = 172800, // 48 hours
|
||||
DownloadVolumeFactor = 0,
|
||||
UploadVolumeFactor = 1
|
||||
};
|
||||
releases.Add(release);
|
||||
}
|
||||
|
||||
if (rows.Length < MaxItemsPerPage)
|
||||
break; // this is the last page
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
OnParseError(result.Content, ex);
|
||||
}
|
||||
}
|
||||
|
||||
return releases;
|
||||
}
|
||||
|
||||
public override async Task<byte[]> Download(Uri link)
|
||||
{
|
||||
var result = await RequestStringWithCookies(link.AbsoluteUri);
|
||||
if (SobrecargaUrl.Equals(result.RedirectingTo))
|
||||
throw new Exception("El servidor se encuentra sobrecargado en estos momentos. / The server is currently overloaded.");
|
||||
try {
|
||||
var parser = new HtmlParser();
|
||||
var doc = parser.ParseDocument(result.Content);
|
||||
var magnetLink = doc.QuerySelector("a[id=en_desc]").GetAttribute("href");
|
||||
return Encoding.UTF8.GetBytes(magnetLink);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
OnParseError(result.Content, ex);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
// TODO: merge this method with query.MatchQueryStringAND
|
||||
private static bool CheckTitleMatchWords(string queryStr, string title)
|
||||
{
|
||||
// this code split the words, remove words with 2 letters or less, remove accents and lowercase
|
||||
var queryMatches = Regex.Matches(queryStr, @"\b[\w']*\b");
|
||||
var queryWords = from m in queryMatches.Cast<Match>()
|
||||
where !string.IsNullOrEmpty(m.Value) && m.Value.Length > 2
|
||||
select Encoding.UTF8.GetString(Encoding.GetEncoding("ISO-8859-8").GetBytes(m.Value.ToLower()));
|
||||
|
||||
var titleMatches = Regex.Matches(title, @"\b[\w']*\b");
|
||||
var titleWords = from m in titleMatches.Cast<Match>()
|
||||
where !string.IsNullOrEmpty(m.Value) && m.Value.Length > 2
|
||||
select Encoding.UTF8.GetString(Encoding.GetEncoding("ISO-8859-8").GetBytes(m.Value.ToLower()));
|
||||
titleWords = titleWords.ToArray();
|
||||
|
||||
return queryWords.All(word => titleWords.Contains(word));
|
||||
}
|
||||
}
|
||||
}
|
@@ -5,7 +5,6 @@ using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using AngleSharp.Dom;
|
||||
using AngleSharp.Html.Parser;
|
||||
using Jackett.Common.Models;
|
||||
using Jackett.Common.Models.IndexerConfig;
|
||||
@@ -89,7 +88,7 @@ namespace Jackett.Common.Indexers
|
||||
var loginPage = await RequestStringWithCookies(SiteLink, string.Empty);
|
||||
|
||||
var result = await RequestLoginAndFollowRedirect(LoginUrl, pairs, loginPage.Cookies, true, SiteLink, SiteLink);
|
||||
await ConfigureIfOK(result.Cookies, result.Content != null && result.Content.Contains("logout.php"), () =>
|
||||
await ConfigureIfOK(result.Cookies, result.Content?.Contains("logout.php") == true, () =>
|
||||
{
|
||||
var parser = new HtmlParser();
|
||||
var dom = parser.ParseDocument(result.Content);
|
||||
@@ -105,7 +104,6 @@ namespace Jackett.Common.Indexers
|
||||
var releases = new List<ReleaseInfo>();
|
||||
var searchString = query.GetQueryString();
|
||||
var searchUrl = BrowseUrl;
|
||||
var trackerCats = MapTorznabCapsToTrackers(query);
|
||||
var queryCollection = new NameValueCollection();
|
||||
|
||||
// Tracker can only search OR return things in categories
|
||||
@@ -117,21 +115,11 @@ namespace Jackett.Common.Indexers
|
||||
else
|
||||
{
|
||||
foreach (var cat in MapTorznabCapsToTrackers(query))
|
||||
{
|
||||
queryCollection.Add("c" + cat, "1");
|
||||
}
|
||||
|
||||
queryCollection.Add("incldead", "0");
|
||||
}
|
||||
|
||||
searchUrl += "?" + queryCollection.GetQueryString();
|
||||
|
||||
await ProcessPage(releases, searchUrl);
|
||||
return releases;
|
||||
}
|
||||
|
||||
private async Task ProcessPage(List<ReleaseInfo> releases, string searchUrl)
|
||||
{
|
||||
var response = await RequestStringWithCookiesAndRetry(searchUrl, null, BrowseUrl);
|
||||
if (response.IsRedirect)
|
||||
{
|
||||
@@ -146,7 +134,9 @@ namespace Jackett.Common.Indexers
|
||||
var parser = new HtmlParser();
|
||||
var dom = parser.ParseDocument(results);
|
||||
|
||||
var rows = dom.QuerySelectorAll(".browsetable").Last().QuerySelectorAll("tr"); //the class for the table changed
|
||||
var rows = dom.QuerySelectorAll(".browsetable").LastOrDefault()?.QuerySelectorAll("tr");
|
||||
if (rows == null)
|
||||
return releases;
|
||||
foreach (var row in rows.Skip(1))
|
||||
{
|
||||
var release = new ReleaseInfo();
|
||||
@@ -159,9 +149,7 @@ namespace Jackett.Common.Indexers
|
||||
|
||||
// If we search an get no results, we still get a table just with no info.
|
||||
if (string.IsNullOrWhiteSpace(release.Title))
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
// Check if the release has been assigned a category
|
||||
var category = row.QuerySelector("td:nth-of-type(1) a");
|
||||
@@ -193,6 +181,8 @@ namespace Jackett.Common.Indexers
|
||||
{
|
||||
OnParseError(results, ex);
|
||||
}
|
||||
|
||||
return releases;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -1,10 +1,10 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Specialized;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Threading.Tasks;
|
||||
using AngleSharp.Dom;
|
||||
using AngleSharp.Html.Parser;
|
||||
using Jackett.Common.Models;
|
||||
using Jackett.Common.Models.IndexerConfig;
|
||||
@@ -41,6 +41,8 @@ namespace Jackett.Common.Indexers
|
||||
Encoding = Encoding.UTF8;
|
||||
Language = "en-us";
|
||||
Type = "private";
|
||||
TorznabCaps.SupportsImdbMovieSearch = true;
|
||||
TorznabCaps.SupportsImdbTVSearch = true;
|
||||
|
||||
AddCategoryMapping(15, TorznabCatType.MoviesBluRay); // Movie / Blu-ray
|
||||
AddMultiCategoryMapping(TorznabCatType.MoviesHD,
|
||||
@@ -79,7 +81,7 @@ namespace Jackett.Common.Indexers
|
||||
};
|
||||
|
||||
// Send Post
|
||||
var response = await RequestLoginAndFollowRedirect(LoginUrl, pairs, loginPage.Cookies, true, null, LoginUrl);
|
||||
var response = await RequestLoginAndFollowRedirect(LoginUrl, pairs, loginPage.Cookies, true, referer: LoginUrl);
|
||||
|
||||
await ConfigureIfOK(response.Cookies, response.Content?.Contains("logout.php") == true, () =>
|
||||
{
|
||||
@@ -99,13 +101,19 @@ namespace Jackett.Common.Indexers
|
||||
var queryCollection = new NameValueCollection
|
||||
{
|
||||
{"active", "0"},
|
||||
{"options", "0"},
|
||||
{"category", string.Join(";", MapTorznabCapsToTrackers(query))}
|
||||
};
|
||||
|
||||
var searchString = query.GetQueryString();
|
||||
if (!string.IsNullOrWhiteSpace(searchString))
|
||||
queryCollection.Add("search", searchString);
|
||||
if (query.IsImdbQuery)
|
||||
{
|
||||
queryCollection.Add("options", "2");
|
||||
queryCollection.Add("search", query.ImdbIDShort);
|
||||
}
|
||||
else
|
||||
{
|
||||
queryCollection.Add("options", "0");
|
||||
queryCollection.Add("search", query.GetQueryString());
|
||||
}
|
||||
|
||||
var response = await RequestStringWithCookiesAndRetry(SearchUrl + queryCollection.GetQueryString());
|
||||
|
||||
@@ -119,7 +127,7 @@ namespace Jackett.Common.Indexers
|
||||
{
|
||||
// this tracker has horrible markup, find the result rows by looking for the style tag before each one
|
||||
var prev = row.PreviousElementSibling;
|
||||
if (prev == null || prev.NodeName.ToLowerInvariant() != "style")
|
||||
if (prev == null || !string.Equals(prev.NodeName, "style", StringComparison.OrdinalIgnoreCase))
|
||||
continue;
|
||||
|
||||
var release = new ReleaseInfo();
|
||||
@@ -131,12 +139,16 @@ namespace Jackett.Common.Indexers
|
||||
release.Comments = new Uri(SiteLink + qLink.GetAttribute("href"));
|
||||
release.Guid = release.Comments;
|
||||
|
||||
var imdbLink = row.Children[1].QuerySelector("a[href*=imdb]");
|
||||
if(imdbLink != null)
|
||||
release.Imdb = ParseUtil.GetImdbID(imdbLink.GetAttribute("href").Split('/').Last());
|
||||
|
||||
var qDownload = row.Children[3].FirstElementChild;
|
||||
release.Link = new Uri(SiteLink + qDownload.GetAttribute("href"));
|
||||
|
||||
var dateStr = row.Children[4].TextContent.Trim();
|
||||
//"July 11, 2015, 13:34:09", "Today|Yesterday at 20:04:23"
|
||||
release.PublishDate = DateTimeUtil.FromUnknown(dateStr.Replace("at", string.Empty));
|
||||
release.PublishDate = DateTimeUtil.FromUnknown(dateStr);
|
||||
var sizeStr = row.Children[5].TextContent;
|
||||
release.Size = ReleaseInfo.GetBytes(sizeStr);
|
||||
release.Seeders = ParseUtil.CoerceInt(row.Children[7].TextContent);
|
||||
|
@@ -422,7 +422,7 @@ namespace Jackett.Common.Indexers
|
||||
|
||||
// Building our tracker query
|
||||
parameters.Add("incldead", "1");
|
||||
parameters.Add("fullsearch", "0");
|
||||
parameters.Add("fullsearch", ConfigData.UseFullSearch.Value ? "1" : "0");
|
||||
parameters.Add("scenerelease", "0");
|
||||
|
||||
// If search term provided
|
||||
|
@@ -7,6 +7,7 @@ namespace Jackett.Common.Models.IndexerConfig.Bespoke
|
||||
public StringItem Password { get; private set; }
|
||||
public DisplayItem PagesWarning { get; private set; }
|
||||
public StringItem Pages { get; private set; }
|
||||
public BoolItem UseFullSearch { get; private set; }
|
||||
public DisplayItem SecurityWarning { get; private set; }
|
||||
public BoolItem Latency { get; private set; }
|
||||
public BoolItem Browser { get; private set; }
|
||||
@@ -31,6 +32,7 @@ namespace Jackett.Common.Models.IndexerConfig.Bespoke
|
||||
Password = new StringItem { Name = "Password", Value = "" };
|
||||
PagesWarning = new DisplayItem("<b>Preferences Configuration</b> (<i>Tweak your search settings</i>),<br /><br /> <ul><li><b>Max Pages to Process</b> let you specify how many page (max) Jackett can process when doing a search. Setting a value <b>higher than 4 is dangerous</b> for you account ! (<b>Result of too many requests to tracker...that <u>will be suspect</u></b>).</li></ul>") { Name = "Preferences" };
|
||||
Pages = new StringItem { Name = "Max Pages to Process (Required)", Value = "4" };
|
||||
UseFullSearch = new BoolItem { Name = "Enable search in description.", Value = false };
|
||||
SecurityWarning = new DisplayItem("<b>Security Configuration</b> (<i>Read this area carefully !</i>),<br /><br /> <ul><li><b>Latency Simulation</b> will simulate human browsing with Jacket by pausing Jacket for an random time between each request, to fake a real content browsing.</li><li><b>Browser Simulation</b> will simulate a real human browser by injecting additionals headers when doing requests to tracker.<b>You must enable it to use this provider!</b></li></ul>") { Name = "Security" };
|
||||
Latency = new BoolItem() { Name = "Latency Simulation (Optional)", Value = false };
|
||||
Browser = new BoolItem() { Name = "Browser Simulation (Forced)", Value = true };
|
||||
|
@@ -9,9 +9,9 @@ namespace Jackett.Common.Utils
|
||||
public const string Rfc1123ZPattern = "ddd, dd MMM yyyy HH':'mm':'ss z";
|
||||
|
||||
private static readonly Regex _TimeAgoRegexp = new Regex(@"(?i)\bago", RegexOptions.Compiled);
|
||||
private static readonly Regex _TodayRegexp = new Regex(@"(?i)\btoday([\s,]*|$)", RegexOptions.Compiled);
|
||||
private static readonly Regex _TomorrowRegexp = new Regex(@"(?i)\btomorrow([\s,]*|$)", RegexOptions.Compiled);
|
||||
private static readonly Regex _YesterdayRegexp = new Regex(@"(?i)\byesterday([\s,]*|$)", RegexOptions.Compiled);
|
||||
private static readonly Regex _TodayRegexp = new Regex(@"(?i)\btoday(?:[\s,]+(?:at){0,1}\s*|[\s,]*|$)", RegexOptions.Compiled);
|
||||
private static readonly Regex _TomorrowRegexp = new Regex(@"(?i)\btomorrow(?:[\s,]+(?:at){0,1}\s*|[\s,]*|$)", RegexOptions.Compiled);
|
||||
private static readonly Regex _YesterdayRegexp = new Regex(@"(?i)\byesterday(?:[\s,]+(?:at){0,1}\s*|[\s,]*|$)", RegexOptions.Compiled);
|
||||
private static readonly Regex _DaysOfWeekRegexp = new Regex(@"(?i)\b(monday|tuesday|wednesday|thursday|friday|saturday|sunday)\s+at\s+", RegexOptions.Compiled);
|
||||
private static readonly Regex _MissingYearRegexp = new Regex(@"^(\d{1,2}-\d{1,2})(\s|$)", RegexOptions.Compiled);
|
||||
private static readonly Regex _MissingYearRegexp2 = new Regex(@"^(\d{1,2}\s+\w{3})\s+(\d{1,2}\:\d{1,2}.*)$", RegexOptions.Compiled); // 1 Jan 10:30
|
||||
@@ -287,28 +287,9 @@ namespace Jackett.Common.Utils
|
||||
}
|
||||
}
|
||||
|
||||
private static TimeSpan ParseTimeSpan(string time)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(time))
|
||||
return TimeSpan.Zero;
|
||||
|
||||
var offset = TimeSpan.Zero;
|
||||
if (time.EndsWith("AM"))
|
||||
{
|
||||
time = time.Substring(0, time.Length - 2);
|
||||
if (time.StartsWith("12")) // 12:15 AM becomes 00:15
|
||||
time = "00" + time.Substring(2);
|
||||
}
|
||||
else if (time.EndsWith("PM"))
|
||||
{
|
||||
time = time.Substring(0, time.Length - 2);
|
||||
offset = TimeSpan.FromHours(12);
|
||||
}
|
||||
|
||||
var ts = TimeSpan.Parse(time);
|
||||
ts += offset;
|
||||
return ts;
|
||||
}
|
||||
|
||||
private static TimeSpan ParseTimeSpan(string time) =>
|
||||
string.IsNullOrWhiteSpace(time)
|
||||
? TimeSpan.Zero
|
||||
: DateTime.Parse(time).TimeOfDay;
|
||||
}
|
||||
}
|
||||
|
31
src/Jackett.Test/Utils/DateTimeUtilTests.cs
Normal file
31
src/Jackett.Test/Utils/DateTimeUtilTests.cs
Normal file
@@ -0,0 +1,31 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using NUnit.Framework;
|
||||
|
||||
namespace Jackett.Common.Utils.Tests
|
||||
{
|
||||
[TestFixture]
|
||||
public class DateTimeUtilTests
|
||||
{
|
||||
[Test]
|
||||
public void FromUnknownTest()
|
||||
{
|
||||
var today = DateTime.UtcNow.Date;
|
||||
var yesterday = today.AddDays(-1);
|
||||
var tomorrow = today.AddDays(1);
|
||||
var testCases = new Dictionary<string, DateTime>
|
||||
{
|
||||
{"today, at 1:00 PM", today.AddHours(13)},
|
||||
{"today at 12:00PM", today.AddHours(12)},
|
||||
{"Today", today},
|
||||
{"Today at 20:19:54", today.AddHours(20).AddMinutes(19).AddSeconds(54)},
|
||||
{"Today 22:29", today.AddHours(22).AddMinutes(29)},
|
||||
{"Yesterday\n 19:54:54", yesterday.AddHours(19).AddMinutes(54).AddSeconds(54)},
|
||||
{"Yesterday\n 11:55 PM", yesterday.AddHours(23).AddMinutes(55)}
|
||||
};
|
||||
|
||||
foreach (var testCase in testCases)
|
||||
Assert.AreEqual( testCase.Value, DateTimeUtil.FromUnknown(testCase.Key));
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user