mirror of
https://github.com/Jackett/Jackett.git
synced 2025-09-17 17:34:09 +02:00
desitorrents: fix broken grabs/date selector resolves #9849
refresh catagories add tv-search add movie-search add book-search add 2FA login option add sort config option fix login error detection add % to search string for wild card add category detection add date add MR and MST
This commit is contained in:
@@ -29,49 +29,70 @@ caps:
|
||||
- {id: 124, cat: Movies, desc: "Movies/Movie Packs"}
|
||||
- {id: 128, cat: Movies, desc: "Movies/Dubbed Audio"}
|
||||
- {id: 129, cat: Movies, desc: "Movies/Animated"}
|
||||
- {id: 140, cat: Movies, desc: "Movies/Short Films"}
|
||||
# tv shows
|
||||
- {id: 59, cat: TV, desc: "TV/Colors"}
|
||||
- {id: 60, cat: TV, desc: "TV/Sony"}
|
||||
- {id: 61, cat: TV, desc: "TV/& TV"}
|
||||
- {id: 62, cat: TV, desc: "TV/Starplus"}
|
||||
- {id: 63, cat: TV, desc: "TV/ZeeTV"}
|
||||
- {id: 97, cat: TV, desc: "TV/Life Ok"}
|
||||
- {id: 98, cat: TV, desc: "TV/Docu"}
|
||||
- {id: 61, cat: TV, desc: "TV/&TV"}
|
||||
- {id: 62, cat: TV, desc: "TV/StarPlus"}
|
||||
- {id: 63, cat: TV, desc: "TV/ZEE TV"}
|
||||
- {id: 97, cat: TV, desc: "TV/Life OK"}
|
||||
- {id: 98, cat: TV, desc: "TV/Documentary"}
|
||||
- {id: 101, cat: TV/Sport, desc: "TV/Sports"}
|
||||
- {id: 102, cat: TV/Other, desc: "TV/Others"}
|
||||
- {id: 113, cat: TV, desc: "TV/Pak Drama"}
|
||||
- {id: 125, cat: TV, desc: "TV/TV Packs"}
|
||||
- {id: 130, cat: TV, desc: "TV/Star Bharat"}
|
||||
- {id: 132, cat: TV, desc: "TV/SAB TV"}
|
||||
- {id: 132, cat: TV, desc: "TV/Sab TV"}
|
||||
- {id: 139, cat: TV, desc: "TV/Hollywood"}
|
||||
# music
|
||||
- {id: 67, cat: Audio/Video, desc: "Music Video"}
|
||||
- {id: 68, cat: Audio, desc: "Hindi Soundtrack"}
|
||||
- {id: 70, cat: Audio, desc: "Remix"}
|
||||
- {id: 71, cat: Audio, desc: "Ghazal"}
|
||||
- {id: 72, cat: Audio, desc: "Instrumental"}
|
||||
- {id: 105, cat: Audio, desc: "Telugu Music"}
|
||||
- {id: 106, cat: Audio, desc: "Tmil Music"}
|
||||
- {id: 107, cat: Audio, desc: "Punjabi Music"}
|
||||
- {id: 108, cat: Audio, desc: "Gujarati Music"}
|
||||
- {id: 109, cat: Audio, desc: "Compilations"}
|
||||
- {id: 118, cat: Audio, desc: "Kannada Music"}
|
||||
- {id: 126, cat: Audio, desc: "Marathi"}
|
||||
- {id: 127, cat: Audio, desc: "Lollywood"}
|
||||
- {id: 131, cat: Audio, desc: "Classical"}
|
||||
- {id: 67, cat: Audio/Video, desc: "Music/Video"}
|
||||
- {id: 68, cat: Audio, desc: "Music/Hindi Soundtrack"}
|
||||
- {id: 70, cat: Audio, desc: "Music/Remix"}
|
||||
- {id: 71, cat: Audio, desc: "Music/Ghazal"}
|
||||
- {id: 72, cat: Audio, desc: "Music/Instrumental"}
|
||||
- {id: 105, cat: Audio, desc: "Music/Telugu"}
|
||||
- {id: 106, cat: Audio, desc: "Music/Tamil"}
|
||||
- {id: 107, cat: Audio, desc: "Music/Punjabi"}
|
||||
- {id: 108, cat: Audio, desc: "Music/Gujarati"}
|
||||
- {id: 109, cat: Audio, desc: "Music/Compilations"}
|
||||
- {id: 118, cat: Audio, desc: "Music/Kannada"}
|
||||
- {id: 126, cat: Audio, desc: "Music/Marathi"}
|
||||
- {id: 127, cat: Audio, desc: "Music/Lollywood"}
|
||||
- {id: 131, cat: Audio, desc: "Music/Classical"}
|
||||
- {id: 134, cat: Audio, desc: "Music/Desi Pop"}
|
||||
- {id: 136, cat: Audio, desc: "Music/Bengali"}
|
||||
- {id: 137, cat: Audio, desc: "Music/Malayalam"}
|
||||
# games
|
||||
- {id: 78, cat: PC/Games, desc: "PC"}
|
||||
- {id: 79, cat: PC/Games, desc: "Mac"}
|
||||
- {id: 80, cat: PC/Games, desc: "IOS"}
|
||||
- {id: 81, cat: PC/Games, desc: "Android"}
|
||||
- {id: 83, cat: PC/Games, desc: "XBOX"}
|
||||
- {id: 86, cat: PC/Games, desc: "Playstation"}
|
||||
- {id: 78, cat: PC/Games, desc: "Games/PC"}
|
||||
- {id: 79, cat: PC/Games, desc: "Games/Mac"}
|
||||
- {id: 80, cat: PC/Games, desc: "Games/IOS"}
|
||||
- {id: 81, cat: PC/Games, desc: "Games/Android"}
|
||||
- {id: 83, cat: PC/Games, desc: "Games/XBOX"}
|
||||
- {id: 86, cat: PC/Games, desc: "Games/Playstation"}
|
||||
# books
|
||||
- {id: 92, cat: Books/Magazines, desc: "Books/Magazine"}
|
||||
- {id: 93, cat: Books/Ebook, desc: "Books/Novels"}
|
||||
- {id: 95, cat: Books, desc: "Books/Newspapers"}
|
||||
- {id: 133, cat: Audio/Audiobook, desc: "Books/Audiobooks"}
|
||||
# Sport
|
||||
- {id: 114, cat: TV/Sport, desc: "Sport/WWE"}
|
||||
- {id: 115, cat: TV/Sport, desc: "Sport/Cricket"}
|
||||
- {id: 116, cat: TV/Sport, desc: "Sport/Football"}
|
||||
# XXX
|
||||
- {id: 89, cat: XXX, desc: "Adult Videos"}
|
||||
- {id: 90, cat: XXX, desc: "Adult Pics"}
|
||||
# WEB
|
||||
- {id: 135, cat: TV, desc: "Web Series"}
|
||||
# Legact
|
||||
- {id: 30, cat: Other, desc: "Legacy"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
@@ -80,16 +101,35 @@ settings:
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: twofa
|
||||
type: text
|
||||
label: 2FA code
|
||||
- name: info_2fa
|
||||
type: info
|
||||
label: "About 2FA code"
|
||||
default: "Only fill in the <b>2FA code</b> box if you have enabled <b>2FA</b> on the Desitorrents Web Site. Otherwise just leave it empty."
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
# while the grabs and date columns are merged due (see #9849), the time sort on the website fails with "selected sorting wrong: time".
|
||||
# default: "time"
|
||||
default: "relevance"
|
||||
options:
|
||||
# "time": "created"
|
||||
"seeders": "seeders"
|
||||
"size": "size"
|
||||
"relevance": "title"
|
||||
|
||||
login:
|
||||
path: login.php?from=index1
|
||||
method: post
|
||||
inputs:
|
||||
action: "login"
|
||||
action: login
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
twofa: "{{ .Config.twofa }}"
|
||||
error:
|
||||
- selector: ":contains(\"-WARNING-\")"
|
||||
- selector: form#loginform:has(span.warning)
|
||||
test:
|
||||
path: ajax.php
|
||||
|
||||
@@ -98,11 +138,12 @@ search:
|
||||
- path: ajax.php?action=search_torrent_cats
|
||||
method: post
|
||||
inputs:
|
||||
search_string: "{{ .Keywords }}"
|
||||
selected_sorting: "relevance"
|
||||
# replace spaces with wildcard (percent symbol) as site's default search is exact string.
|
||||
search_string: "{{ re_replace .Keywords \"[\\s]+\" \"%\" }}"
|
||||
selected_sorting: "{{ .Config.sort }}"
|
||||
selected_group: ""
|
||||
search_username: ""
|
||||
selected_sub[]: "{{join .Categories \",\"}}"
|
||||
selected_sub[]: "{{ join .Categories \",\" }}"
|
||||
error:
|
||||
- selector: ":contains(\"Something was wrong with your request\")"
|
||||
preprocessingfilters:
|
||||
@@ -116,32 +157,123 @@ search:
|
||||
args: "<table>"
|
||||
- name: append
|
||||
args: "</table>"
|
||||
|
||||
rows:
|
||||
selector: table > tbody > tr
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: th:first-child
|
||||
case:
|
||||
img[src$="Bollywood Movies.png"]: 47
|
||||
img[src$="Bengali Movies.png"]: 48
|
||||
img[src$="Tamil Films.png"]: 49
|
||||
img[src$="Punjabi Movies.png"]: 51
|
||||
img[src$="Marathi Movies.png"]: 52
|
||||
img[src$="Malayalam Movies.png"]: 53
|
||||
img[src$="Kannada Movies.png"]: 54
|
||||
img[src$="Gujarati Movies.png"]: 55
|
||||
img[src$="Foreign Movies.png"]: 56
|
||||
img[src$="Pakistani Movies.png"]: 57
|
||||
img[src$="Hollywood Movies.png"]: 58
|
||||
img[src$="Telugu Movies.png"]: 103
|
||||
img[src$="south-dubbed.png"]: 104
|
||||
img[src$="docmentary.png"]: 110
|
||||
img[src$="Bhojpuri Movies.png"]: 117
|
||||
img[src$="Movie Packs.png"]: 124
|
||||
img[src$="Dubbed Movies.png"]: 128
|
||||
img[src$="Animated Movies.png"]: 129
|
||||
img[src$="Short Films.png"]: 140
|
||||
img[src$="Colors TV.png"]: 59
|
||||
img[src$="Sony TV.png"]: 60
|
||||
img[src$="AndTV.png"]: 61
|
||||
img[src$="Star Plus.png"]: 62
|
||||
img[src$="Zee TV.png"]: 63
|
||||
img[src$="Life OK.png"]: 97
|
||||
img[src$="Documentaries.png"]: 98
|
||||
img[src$="sports.png"]: 101
|
||||
img[src$="Others-png.png"]: 102
|
||||
img[src$="Pak-Drama.png"]: 113
|
||||
img[src$="TV Packs.png"]: 125
|
||||
img[src$="Star Bharat.png"]: 130
|
||||
img[src$="Sab TV.png"]: 132
|
||||
img[src$="Hollywood TV.png"]: 139
|
||||
img[src$="Music Videos.png"]: 67
|
||||
img[src$="Hindi Soundtracks.png"]: 68
|
||||
img[src$="Remix Music.png"]: 70
|
||||
img[src$="Ghazal Music.png"]: 71
|
||||
img[src$="Instrumental Music.png"]: 72
|
||||
img[src$="Telugu Music.png"]: 105
|
||||
img[src$="Tamil Music.png"]: 106
|
||||
img[src$="Punjabi Music.png"]: 107
|
||||
img[src$="Gujarati Music.png"]: 108
|
||||
img[src$="Music Compilations.png"]: 109
|
||||
img[src$="Kannada Music.png"]: 118
|
||||
img[src$="Marathi Gaane.png"]: 126
|
||||
img[src$="Lollywood Music.png"]: 127
|
||||
img[src$="Classical Music.png"]: 131
|
||||
img[src$="Desi Pop Music.png"]: 134
|
||||
img[src$="Bengali Music.png"]: 136
|
||||
img[src$="Malayalam Music.png"]: 137
|
||||
img[src$="PC Games.png"]: 78
|
||||
img[src$="Mac Games.png"]: 79 # unverified
|
||||
img[src$="IOS Games.png"]: 80 # unverified
|
||||
img[src$="Android Games.png"]: 81
|
||||
img[src$="XBOX Games.png"]: 83 # unverified
|
||||
img[src$="Playstation Games.png"]: 86 # unverified
|
||||
img[src$="Magazines.png"]: 92
|
||||
img[src$="Novels.png"]: 93
|
||||
img[src$="Newspapers.png"]: 95
|
||||
img[src$="AudioBooks.png"]: 133
|
||||
img[src$="WWE.png"]: 114
|
||||
img[src$="Cricket.png"]: 115
|
||||
img[src$="Football.png"]: 116
|
||||
img[src$="Adult Videos.png"]: 89 # unverified
|
||||
img[src$="Adult Pics.png"]: 90 # unverified
|
||||
img[src$="Web Series.png"]: 135
|
||||
img[src$="no.png"]: 30
|
||||
title:
|
||||
selector: th:nth-child(2) > a[href]
|
||||
selector: a[href^="/torrents.php?id="]
|
||||
details:
|
||||
selector: th:nth-child(2) > a[href]
|
||||
selector: a[href^="/torrents.php?id="]
|
||||
attribute: href
|
||||
files:
|
||||
selector: th:nth-child(8)
|
||||
# no standard for categories yet :(
|
||||
download:
|
||||
selector: th:nth-child(5) > a[href]
|
||||
selector: a[href^="/torrents.php?action=download&id="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: prepend
|
||||
args: "{{ .Config.sitelink }}"
|
||||
grabs:
|
||||
selector: th:nth-child(11)
|
||||
size:
|
||||
selector: th:nth-child(7)
|
||||
files:
|
||||
selector: th:nth-child(8)
|
||||
seeders:
|
||||
selector: th:nth-child(9)
|
||||
leechers:
|
||||
selector: th:nth-child(10)
|
||||
grabs:
|
||||
# issue #9849 the ajax stream contains <th>27</th<th>2020-10-05 03:55:34</th> (note the broken th terminator for grabs)
|
||||
selector: th:nth-child(11)
|
||||
filters:
|
||||
- name: regexp
|
||||
args: ^(\d+)\d{4}-
|
||||
date:
|
||||
# selector: th:nth-child(12) issue #9849
|
||||
selector: th:nth-child(11)
|
||||
filters:
|
||||
- name: regexp
|
||||
args: (\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2})
|
||||
- name: append
|
||||
args: " +00:00" # GMT
|
||||
- name: dateparse
|
||||
args: "2006-01-02 15:04:05 -07:00"
|
||||
downloadvolumefactor:
|
||||
text: "0"
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
text: "1"
|
||||
text: 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
minimumseedtime:
|
||||
# 3 days (as seconds = 3 x 24 x 60 x 60)
|
||||
text: 259200
|
||||
# engine n/a
|
||||
|
133
src/Jackett.Common/Definitions/morethantv.yml
Normal file
133
src/Jackett.Common/Definitions/morethantv.yml
Normal file
@@ -0,0 +1,133 @@
|
||||
---
|
||||
id: morethantv
|
||||
name: MoreThanTV
|
||||
description: "MoreThanTV is a Private torrent tracker for TV / MOVIES"
|
||||
language: en-us
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://www.morethantv.me/
|
||||
legacylinks:
|
||||
- https://www.morethan.tv/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: Movies, desc: "Movies"}
|
||||
- {id: 2, cat: TV, desc: "TV"}
|
||||
- {id: 3, cat: Other, desc: "Other"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q]
|
||||
movie-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
default: false
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: "time"
|
||||
options:
|
||||
"time": "created"
|
||||
"seeders": "seeders"
|
||||
"size": "size"
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: "desc"
|
||||
options:
|
||||
"desc": "desc"
|
||||
"asc": "asc"
|
||||
|
||||
login:
|
||||
path: login
|
||||
method: form
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
cinfo: "2550|1350|24|-60"
|
||||
keeploggedin: 1
|
||||
error:
|
||||
- selector: div.error
|
||||
test:
|
||||
path: torrents.php
|
||||
selector: "#nav_userinfo"
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: torrents.php
|
||||
inputs:
|
||||
$raw: "{{range .Categories}}filter_cat[{{.}}]=1&{{end}}"
|
||||
searchtext: ""
|
||||
title: "{{ .Keywords }}"
|
||||
order_by: "{{ .Config.sort }}"
|
||||
order_way: "{{ .Config.type }}"
|
||||
action: advanced
|
||||
filter_freeleech: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
|
||||
filelist: ""
|
||||
taglist: ""
|
||||
|
||||
rows:
|
||||
# exclude redbar torrents
|
||||
selector: table#torrent_table > tbody > tr[class^="torrent row"]
|
||||
|
||||
fields:
|
||||
download:
|
||||
selector: a[href^="/torrents.php?action=download&id="]
|
||||
attribute: href
|
||||
description:
|
||||
selector: div.tags
|
||||
title:
|
||||
selector: a[href^="/torrents.php?id="]
|
||||
category:
|
||||
selector: a[href*="filter_cat"]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "(\\d+)]=1"
|
||||
details:
|
||||
selector: a[href^="/torrents.php?id="]
|
||||
attribute: href
|
||||
banner:
|
||||
optional: true
|
||||
selector: td:nth-child(2) > script
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "src=\\\\\"(.*?)\\\\\""
|
||||
- name: re_replace
|
||||
args: ["\\\\(.)", "$1"]
|
||||
- name: replace
|
||||
args: ["/static/common/noartwork/noimage.png", ""]
|
||||
files:
|
||||
selector: td:nth-child(3)
|
||||
date:
|
||||
selector: td:nth-child(5) > span
|
||||
attribute: title
|
||||
filters:
|
||||
- name: append
|
||||
args: " -07:00" # PDT
|
||||
- name: dateparse
|
||||
args: "Jan 02 2006, 15:04 -07:00"
|
||||
size:
|
||||
selector: td:nth-child(6)
|
||||
grabs:
|
||||
selector: td:nth-child(7)
|
||||
seeders:
|
||||
selector: td:nth-child(8)
|
||||
leechers:
|
||||
selector: td:nth-child(9)
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
# minimumratio: the site is ratioless
|
||||
# Luminance
|
Reference in New Issue
Block a user