From c2756e6ce41499e2f989d6ab32eafa244f8f809e Mon Sep 17 00:00:00 2001 From: Garfield69 Date: Thu, 26 Dec 2024 07:04:09 +1300 Subject: [PATCH] dark-shadow: > JSON resolves #7892 --- .../Definitions/dark-shadow.yml | 197 +++++++----------- 1 file changed, 75 insertions(+), 122 deletions(-) diff --git a/src/Jackett.Common/Definitions/dark-shadow.yml b/src/Jackett.Common/Definitions/dark-shadow.yml index 6deda1161..5d3dde67c 100644 --- a/src/Jackett.Common/Definitions/dark-shadow.yml +++ b/src/Jackett.Common/Definitions/dark-shadow.yml @@ -13,56 +13,40 @@ legacylinks: caps: categorymappings: - # Movie - - {id: 32, cat: Movies/HD, desc: "Filme HD"} - - {id: 114, cat: Movies/UHD, desc: "Filme UHD"} - - {id: 140, cat: Movies/BluRay, desc: "Filme BluRay"} - - {id: 28, cat: Movies/SD, desc: "Filme SD"} - - {id: 145, cat: Movies/SD, desc: "Filme all SD"} - - {id: 138, cat: Movies, desc: "Filme Pack's"} - # Serien - - {id: 57, cat: TV/HD, desc: "Serien HD"} - - {id: 139, cat: TV/UHD, desc: "Serien UHD"} - - {id: 60, cat: TV/SD, desc: "Serien SD"} - - {id: 59, cat: TV, desc: "Serien Pack's"} - # Audio - - {id: 110, cat: Audio/MP3, desc: "Audio MP3"} - - {id: 48, cat: Audio/Lossless, desc: "Audio Flac"} - - {id: 52, cat: Audio, desc: "Audio Pack"} - - {id: 63, cat: Audio/Audiobook, desc: "Audio Hörbuch"} - - {id: 120, cat: Audio/Video, desc: "Audio Videos"} - # Apps - - {id: 12, cat: PC/0day, desc: "Apps Windows"} - - {id: 125, cat: PC/Mac, desc: "Apps Mac-OSX"} - - {id: 11, cat: PC/Mobile-Other, desc: "Apps Mobil"} - - {id: 141, cat: PC/ISO, desc: "Apps Other"} - # Doku - - {id: 14, cat: TV/Documentary, desc: "Doku HD"} - - {id: 15, cat: TV/Documentary, desc: "Doku SD"} - - {id: 123, cat: TV/Documentary, desc: "Doku Pack's"} - # Spiel - - {id: 17, cat: PC/Games, desc: "Spiel PC"} - - {id: 24, cat: Console, desc: "Spiel Konsole"} - - {id: 126, cat: Console/Other, desc: "Spiel Mobil"} - - {id: 121, cat: Console, desc: "Spiel Wimmelbild"} - # Sport - - {id: 61, cat: TV/Sport, desc: "Sport HD"} - - {id: 62, cat: TV/Sport, desc: "Sport SD"} - - {id: 144, cat: TV/Sport, desc: "Sport Wrestling"} - # ePaper - - {id: 96, cat: Books/Mags, desc: "ePaper Zeitungen"} - - {id: 136, cat: Books/EBook, desc: "ePaper E-Book"} - - {id: 137, cat: Books/Comics, desc: "ePaper Comics"} - # XXX - - {id: 143, cat: XXX/x264, desc: "XXX HD / SD"} - - {id: 75, cat: XXX/Pack, desc: "XXX Pack's"} - - {id: 142, cat: XXX/ImageSet, desc: "XXX Pic's"} - # Internal - - {id: 128, cat: Movies/HD, desc: "Internal Film HD"} - - {id: 129, cat: Movies/SD, desc: "Internal Film SD"} - - {id: 130, cat: TV/HD, desc: "Internal Serien HD"} - - {id: 131, cat: TV/SD, desc: "Internal Serie SD"} - - {id: 132, cat: Other, desc: "Internal Sonstiges"} + - {id: 32, cat: Movies/HD, desc: "Filme > HD"} + - {id: 28, cat: Movies/SD, desc: "Filme > SD"} + - {id: 114, cat: Movies/UHD, desc: "Filme > UHD"} + - {id: 140, cat: Movies/BluRay, desc: "Filme > BluRay"} + - {id: 138, cat: Movies, desc: "Filme > Pack's"} + - {id: 57, cat: TV/HD, desc: "Serien > HD"} + - {id: 60, cat: TV/SD, desc: "Serien > SD"} + - {id: 139, cat: TV/UHD, desc: "Serien > UHD"} + - {id: 59, cat: TV, desc: "Serien > Pack's"} + - {id: 110, cat: Audio/MP3, desc: "Audio > MP3"} + - {id: 48, cat: Audio/Lossless, desc: "Audio > Flac"} + - {id: 52, cat: Audio, desc: "Audio > Pack"} + - {id: 63, cat: Audio/Audiobook, desc: "Audio > Hörbuch"} + - {id: 120, cat: Audio/Video, desc: "Audio > Videos"} + - {id: 12, cat: PC/0day, desc: "Apps > Windows"} + - {id: 125, cat: PC/Mac, desc: "Apps > Mac-OSX"} + - {id: 11, cat: PC/Mobile-Other, desc: "Apps > Mobil"} + - {id: 141, cat: PC/ISO, desc: "Apps > Other"} + - {id: 14, cat: TV/Documentary, desc: "Doku > HD"} + - {id: 15, cat: TV/Documentary, desc: "Doku > SD"} + - {id: 123, cat: TV/Documentary, desc: "Doku > Pack's"} + - {id: 17, cat: PC/Games, desc: "Spiel > PC"} + - {id: 24, cat: Console, desc: "Spiel > Konsole"} + - {id: 126, cat: Console/Other, desc: "Spiel > Mobil"} + - {id: 121, cat: Console, desc: "Spiel > Wimmelbild"} + - {id: 61, cat: TV/Sport, desc: "Sport > HD"} + - {id: 62, cat: TV/Sport, desc: "Sport > SD"} + - {id: 144, cat: TV/Sport, desc: "Sport > Wrestling"} + - {id: 96, cat: Books/Mags, desc: "ePaper > Zeitungen"} + - {id: 136, cat: Books/EBook, desc: "ePaper > E-Book"} + - {id: 137, cat: Books/Comics, desc: "ePaper > Comics"} + - {id: 143, cat: XXX/x264, desc: "XXX > HD / SD"} + - {id: 75, cat: XXX/Pack, desc: "XXX > Pack's"} + - {id: 142, cat: XXX/ImageSet, desc: "XXX > Pic's"} modes: search: [q] @@ -82,26 +66,18 @@ settings: - name: password type: password label: Password - - name: sort - type: select - label: Sort requested from site - default: added - options: - added: created - seeds: seeders - size: size - name: title - - name: type - type: select - label: Order requested from site - default: desc - options: - desc: desc - asc: asc - name: info_activity type: info label: Account Inactivity default: "Inactive accounts will be deactivated after 7 weeks and deleted after another 3 weeks." + - name: onlyupload + type: checkbox + label: Search OnlyUpload + default: false + - name: info_free + type: info + label: About OnlyUpload at Dark-Shadow + default: "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)." login: path: login.php @@ -119,85 +95,62 @@ login: search: paths: + # https://dark-shadow.me//selection.php?ajax=true&search=&page=1&visible=no&free=no&c32=1&c28=1 - path: selection.php + response: + type: json + inputs: - $raw: "{{ range .Categories }}c{{.}}=1&{{end}}" + ajax: true search: "{{ .Keywords }}" - # 0 name, 1 descr, 2 both - blah: 0 - orderby: "{{ .Config.sort }}" - sort: "{{ .Config.type }}" - keywordsfilters: - # prefix and postfix percent wildcard as well as replacing spaces between words - - name: re_replace - args: ["\\W+", "%"] - - name: re_replace - args: ["^(.+)$", "%$1%"] + page: 1 + # visible: all active+inactive, yes active, no inactive + # visible: all (the default is all which ajax simply drops the parm) + # free: all all+onlyup, yes onlyup, no without onlyup the default is all which ajax simply drops the parm) + free: "{{ if .Config.onlyupload }}yes{{ else }}{{ end }}" + $raw: "{{ range .Categories }}c{{.}}=1&{{end}}" rows: - selector: div.selection_wrap + selector: $ fields: - category_p1: - selector: div.kat_cat_pic_name - category_p2: - selector: div.kat_cat_pic_name_b categorydesc: - text: "{{ .Result.category_p1 }} {{ .Result.category_p2 }}" + selector: category + filters: + - name: replace + args: [">", ">"] title: - selector: a.selection_a + selector: name filters: # remove [REQ] and anything else in [] that prefixes titles - name: re_replace args: ["^(\\[.*\\])(.*)", "$2"] + _id: + selector: id details: - selector: a.selection_a - attribute: href + text: "details.php?id={{ .Result._id }}" download: - selector: a[href^="download"] - attribute: href + selector: download_link poster: - selector: div[id^="details"] img - attribute: src + selector: cover size: - selector: div.selection_unter_ad - grabs: - selector: div.selection_unter_ae - date_day: - # Heute 13:30:04 - # Gestern 09:10:10 - selector: div.selection_unter_ab:not(:contains(".")) - optional: true + selector: size + date: + # 25.12.2024 16:02 + selector: added filters: - - name: replace - args: ["Heute", "Today"] - - name: replace - args: ["Gestern", "Yesterday"] - - name: append - args: " +01:00" # CET - date_year: - # 30.02.2018 um 23:12:50 - selector: div.selection_unter_ab:contains(".") - optional: true - filters: - - name: replace - args: [" um", ""] - name: append args: " +01:00" # CET - name: dateparse - args: "dd.MM.yyyy HH:mm:ss zzz" - date: - text: "{{ if or .Result.date_year .Result.date_day }}{{ or .Result.date_year .Result.date_day }}{{ else }}now{{ end }}" - description: - selector: selection_unter_af + args: "dd.MM.yyyy HH:mm zzz" seeders: - selector: div.selection_unter_aa + selector: seeders leechers: - selector: div.selection_unter_aaa + selector: leechers + _onlyup: + selector: free_button downloadvolumefactor: - case: - ":root:has(div.onlyup)": 0 # GLobal Freeleech event - "*": 1 + text: "{{ if .Result._onlyup }}0{{ else }}1{{ end }}" uploadvolumefactor: text: 1 minimumratio: @@ -205,4 +158,4 @@ search: minimumseedtime: # 36 hours (as seconds = 36 x 60 x 60) text: 129600 -# 3xT +# JSON