torrent-town: new engine resolves #13571

new cats new selectors new login
This commit is contained in:
Garfield69
2022-10-04 16:25:45 +13:00
parent 280572b3aa
commit 641a2f39da

View File

@@ -10,58 +10,62 @@ links:
caps: caps:
categorymappings: categorymappings:
# Movie
- {id: 28, cat: Movies/SD, desc: "Movie SD"}
- {id: 166, cat: Movies/HD, desc: "Movie HD"}
- {id: 170, cat: Movies/UHD, desc: "Movie U-HD"}
- {id: 172, cat: Movies/BluRay, desc: "Movie Bluray"}
- {id: 183, cat: Movies, desc: "Movie Remux"}
- {id: 175, cat: Movies, desc: "Movie Kids"}
- {id: 155, cat: Movies/DVD, desc: "Movie DVD"}
- {id: 171, cat: Movies/3D, desc: "Movie Pack 3-D"}
- {id: 130, cat: Movies/HD, desc: "Movie Packs"}
- {id: 186, cat: Movies/Foreign, desc: "Movie Englisch"}
# Serien
- {id: 158, cat: TV/SD, desc: "Serien SD-Folgen"}
- {id: 167, cat: TV/HD, desc: "Serien HD-Folgen"}
- {id: 60, cat: TV/SD, desc: "Serien Packs-SD"}
- {id: 177, cat: TV/HD, desc: "Serien Packs-HD"}
- {id: 185, cat: TV, desc: "Serien TV-Shows"}
- {id: 157, cat: TV/UHD, desc: "Serien U-HD"}
- {id: 187, cat: TV/Foreign, desc: "Serien Englisch"}
# Musik
- {id: 159, cat: Audio/Audiobook, desc: "Musik Hörbuch"}
- {id: 174, cat: Audio, desc: "Musik Soundtracks"}
- {id: 48, cat: Audio/MP3, desc: "Musik mp3"}
- {id: 53, cat: Audio/Lossless, desc: "Musik Flac"}
- {id: 52, cat: Audio, desc: "Musik Pack"}
- {id: 109, cat: Audio/Video, desc: "Musik Musik Videos"}
# Software # Software
- {id: 12, cat: PC/0day, desc: "Appz Windows"} - {id: 39, cat: PC, desc: "Appz Linux"}
- {id: 179, cat: PC/Mac, desc: "Appz Mac"} - {id: 48, cat: PC/Mac, desc: "Appz Mac"}
- {id: 178, cat: PC, desc: "Appz Linux"} - {id: 45, cat: PC, desc: "Appz Other"}
- {id: 184, cat: PC/Mobile-Other, desc: "Appz Handy"} - {id: 49, cat: PC/0day, desc: "Appz Windows"}
- {id: 11, cat: PC/Mobile-Other, desc: "Appz Sonstiges"}
# Sport
- {id: 62, cat: TV/Sport, desc: "Sport Fussball"}
- {id: 161, cat: TV/Sport, desc: "Sport Formel 1"}
- {id: 174, cat: TV/Sport, desc: "Sport Wrestling"}
# Game
- {id: 17, cat: PC/Games, desc: "Game Windows"}
- {id: 131, cat: Console, desc: "Game Konsole"}
- {id: 24, cat: Console, desc: "Game Wimmelbild"}
# Ebooks
- {id: 163, cat: Books/Other, desc: "Paper Zeitungen"}
- {id: 63, cat: Books/Comics, desc: "Paper Comic"}
- {id: 96, cat: Books/EBook, desc: "Paper E-Book"}
# Doku # Doku
- {id: 181, cat: TV/Documentary, desc: "Doku SD"} - {id: 40, cat: TV/Documentary, desc: "Doku HD"}
- {id: 182, cat: TV/Documentary, desc: "Doku HD"} - {id: 41, cat: TV/Documentary, desc: "Doku SD"}
# Game
- {id: 83, cat: Console, desc: "Game Konsolen"}
- {id: 51, cat: PC/Games, desc: "Game Mac"}
- {id: 52, cat: PC/Games, desc: "Game PC"}
- {id: 98, cat: Console, desc: "Game Wimmelbild"}
- {id: 50, cat: PC/Games, desc: "Game Linux"}
# Movie
- {id: 30, cat: Movies/HD, desc: "Movie 1080p"}
- {id: 64, cat: Movies/3D, desc: "Movie 3D"}
- {id: 28, cat: Movies/HD, desc: "Movie 720p"}
- {id: 63, cat: Movies/BluRay, desc: "Movie Bluray"}
- {id: 32, cat: Movies/DVD, desc: "Movie DVD / HD2DVD"}
- {id: 85, cat: Movies, desc: "Movie Int."}
- {id: 99, cat: Movies/HD, desc: "Movie Packs"}
- {id: 33, cat: Movies/SD, desc: "Movie SD x264"}
- {id: 36, cat: Movies/SD, desc: "Movie SD XviD"}
- {id: 31, cat: Movies/UHD, desc: "Movie U-HD"}
- {id: 86, cat: Movies/HD, desc: "Movie x265"}
# Musik
- {id: 57, cat: Audio, desc: "Musik Alben"}
- {id: 81, cat: Audio, desc: "Musik Charts"}
- {id: 53, cat: Audio/Lossless, desc: "Musik Flac"}
- {id: 88, cat: Audio/Other, desc: "Musik Misc"}
- {id: 54, cat: Audio/Video, desc: "Musik MusikVideo"}
- {id: 84, cat: Audio, desc: "Musik Packs"}
- {id: 87, cat: Audio/Other, desc: "Musik Sampler"}
# Serien
- {id: 67, cat: TV/HD, desc: "Serien Folgen HD"}
- {id: 70, cat: TV/SD, desc: "Serien Folgen SD"}
- {id: 68, cat: TV/HD, desc: "Serien Pack HD"}
- {id: 69, cat: TV/SD, desc: "Serien Pack SD"}
# Sport
- {id: 76, cat: TV/Sport, desc: "Sport HD"}
- {id: 74, cat: TV/Sport, desc: "Sport SD"}
# Other
- {id: 91, cat: Audio/Audiobook, desc: "Unsorted - A-Book"}
- {id: 90, cat: TV/Anime, desc: "Unsorted - Anime"}
- {id: 92, cat: Books/EBook, desc: "Unsorted - E-Book DE."}
- {id: 93, cat: Books/EBook, desc: "Unsorted - E-Book INT."}
- {id: 94, cat: Books/Comics, desc: "Unsorted - E-Paper"}
- {id: 95, cat: Other, desc: "Unsorted - Kids"}
- {id: 96, cat: PC/Mobile-Other, desc: "Unsorted - Mobile"}
- {id: 97, cat: Other, desc: "Unsorted - Other"}
# XXX # XXX
- {id: 176, cat: XXX/x264, desc: "XXX HD"} - {id: 78, cat: XXX/x264, desc: "XXX HD"}
- {id: 76, cat: XXX/SD, desc: "XXX SD"} - {id: 76, cat: XXX/Other, desc: "XXX Other"}
- {id: 76, cat: XXX/DVD, desc: "XXX DVD"} - {id: 79, cat: XXX/Pack, desc: "XXX Packs"}
- {id: 75, cat: XXX/Pack, desc: "XXX Pack"} - {id: 77, cat: XXX/SD, desc: "XXX SD"}
modes: modes:
search: [q] search: [q]
@@ -77,9 +81,18 @@ settings:
- name: password - name: password
type: password type: password
label: Password label: Password
- name: pin - name: freeleech
type: text type: checkbox
label: Pin label: Filter FreeLeech only
default: false
- name: onlyupload
type: checkbox
label: Filter OnlyUpload only
default: false
- name: info_free
type: info
label: About Freeleech and OnlyUpload at Torrent-Town
default: <li>FreeLeech are torrents where neither the download or upload is counted. (On the Jackett dashboard search results these are tagged as NoUpload).</li><li>OnlyUpload are torrents where download is not counted but upload is. Good for building your Ratio up. (On the Jackett dashboard search results these are tagged as Freeleech).</li>
- name: sort - name: sort
type: select type: select
label: Sort requested from site label: Sort requested from site
@@ -98,92 +111,86 @@ settings:
asc: asc asc: asc
login: login:
path: login.php path: takelogin.php
method: form method: post
form: form[action="/login.php"]
cookies: ["JAVA=OK"] # avoid jscheck redirect
inputs: inputs:
username: "{{ .Config.username }}" username: "{{ .Config.username }}"
password: "{{ .Config.password }}" password: "{{ .Config.password }}"
pin: "{{ .Config.pin }}"
error: error:
- selector: div#login_error - selector: .tablea:contains("Fehler")
test: test:
path: selection.php path: index.php
selector: a[href="logout.php"]
download:
selectors:
- selector: a[href^="downloads.php?torrent="]
attribute: href
search: search:
paths: paths:
- path: selection.php - path: browse.php
inputs: inputs:
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}" $raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
showsearch: 1
search: "{{ .Keywords }}" search: "{{ .Keywords }}"
# 0 name, 1 descr, 2 both # 0 active, 1 all, 2 dead
blah: 0 incldead: 1
orderby: "{{ .Config.sort }}" orderby: "{{ .Config.sort }}"
sort: "{{ .Config.type }}" sort: "{{ .Config.type }}"
# site does not support imdbid search from the browse.php page or return imdb links in results
rows: rows:
selector: div.selection_wrap selector: "table.tableinborder[cellspacing=\"1\"][cellpadding=\"0\"]:not(:has(a[href=\"index.php\"])) > tbody > tr{{ if .Config.onlyupload }}:has(img[src=\"pic/oupic.gif\"]){{ else }}{{ end }}"
fields: fields:
category_p1: category:
selector: div.kat_cat_pic_name selector: a[href^="browse.php?cat="]
category_p2: attribute: href
selector: div.kat_cat_pic_name_b filters:
categorydesc: - name: querystring
text: "{{ .Result.category_p1 }} {{ .Result.category_p2 }}" args: cat
title: title:
selector: a.selection_a selector: a[href^="details.php"]
details: details:
selector: a.selection_a selector: a[href^="details.php"]
attribute: href attribute: href
download: download:
selector: a.selection_a selector: a[href^="details.php"]
attribute: href attribute: href
filters:
- name: replace
args: ["details.php?id=", "download_ssl.php?torrent="]
poster: poster:
selector: div[id^="details"] img selector: img[id="img-1"]
attribute: src attribute: src
size: size:
selector: div.selection_unter_ag selector: td.tablea table tbody tr:nth-child(2) td:nth-child(1) b:nth-child(1)
date_day: files:
# Heute 13:30:04 selector: td.tablea table tbody tr:nth-child(2) td:nth-child(1) b:nth-child(2)
# Gestern 09:10:10 seeders:
selector: div.selection_unter_ab:not(:contains(".")) selector: td.tablea table tbody tr:nth-child(2) td:nth-child(2) b:nth-child(1)
optional: true leechers:
selector: td.tablea table tbody tr:nth-child(2) td:nth-child(2) > b:nth-of-type(2)
grabs:
selector: td.tablea table tbody tr:nth-child(2) td:nth-child(3) b:nth-child(1)
date:
selector: td.tablea table tbody tr:nth-child(2) td:nth-child(5)
filters: filters:
- name: replace
args: ["Heute", "Today"]
- name: replace
args: ["Gestern", "Yesterday"]
date_year:
# 30.02.2018 um 23:12:50
selector: div.selection_unter_ab:contains(".")
optional: true
filters:
- name: replace
args: [" um", ""]
- name: append - name: append
args: " +01:00" # CET args: " +01:00" # CET
- name: replace
args: ["\xA0", " "]
- name: dateparse - name: dateparse
args: "02.01.2006 15:04:05 -07:00" args: "02.01.2006 15:04:05 -07:00"
date:
text: "{{ if or .Result.date_year .Result.date_day }}{{ or .Result.date_year .Result.date_day }}{{ else }}now{{ end }}"
seeders:
selector: div.selection_unter_aa
leechers:
selector: div.selection_unter_aaa
downloadvolumefactor: downloadvolumefactor:
case: case:
":root:has(div.onlyup)": 0 img[src="pic/oupic.gif"]: 0 # only upload is counted
"*": 1 "*": 1
uploadvolumefactor: uploadvolumefactor:
text: 1 case:
img[src="pic/freeleech.gif"]: 0 # nothing is counted
"*": 1
minimumratio: minimumratio:
text: 1.0 text: 0.7
minimumseedtime: minimumseedtime:
# 2 days (as seconds = 2 x 24 x 60 x 60) # 2 days (as seconds = 2 x 24 x 60 x 60)
text: 172800 text: 172800
# 3xT # engine n/a