From 22231c6e9f387515ab989c5d90e36591faa54524 Mon Sep 17 00:00:00 2001 From: Garfield69 Date: Sat, 23 Oct 2021 05:33:58 +1300 Subject: [PATCH] add shareisland-api #8682 --- .../Definitions/shareisland-api.yml | 181 ++++++++++++++++++ 1 file changed, 181 insertions(+) create mode 100644 src/Jackett.Common/Definitions/shareisland-api.yml diff --git a/src/Jackett.Common/Definitions/shareisland-api.yml b/src/Jackett.Common/Definitions/shareisland-api.yml new file mode 100644 index 000000000..841bcf7f4 --- /dev/null +++ b/src/Jackett.Common/Definitions/shareisland-api.yml @@ -0,0 +1,181 @@ +--- +id: shareisland-api +name: Shareisland (API) +description: "A general italian tracker" +language: it-IT +type: private +encoding: UTF-8 +links: + - https://shareisland.org/ +legacylinks: + - http://shareisland.org/ + - http://www.shareisland.org/ + +caps: + categorymappings: + - {id: 1, cat: Movies, desc: "Movie"} + - {id: 2, cat: TV, desc: "Serie TV"} + - {id: 15, cat: Books/EBook, desc: "Ebook"} + - {id: 17, cat: Books/Mags, desc: "Riviste e Giornali"} + - {id: 19, cat: XXX, desc: "XXX"} + - {id: 3, cat: Audio, desc: "Music"} + - {id: 7, cat: PC/Games, desc: "Games"} + - {id: 23, cat: PC, desc: "Software"} + + modes: + search: [q] + tv-search: [q, season, ep, imdbid, tvdbid] + movie-search: [q, imdbid, tmdbid] + music-search: [q] + book-search: [q] + +settings: + - name: apikey + type: text + label: APIKey + - name: info_key + type: info + label: About your API key + default: "Find or Generate a new API Token by accessing your Shareisland account My Security page and clicking on the API Token tab." + - name: freeleech + type: checkbox + label: Search freeleech only + default: false + - name: sort + type: select + label: Sort requested from site + default: created_at + options: + created_at: created + seeders: seeders + size: size + name: title + - name: type + type: select + label: Order requested from site + default: desc + options: + desc: desc + asc: asc + +search: + paths: + # https://hdinnovations.github.io/UNIT3D-Community-Edition-Docs/api_endpoints.html + - path: /api/torrents/filter + response: + type: json + attribute: attributes + + inputs: + # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php + api_token: "{{ .Config.apikey }}" + name: "{{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}" + tmdb: "{{ .Query.TMDBID }}" + imdb: "{{ .Query.IMDBIDShort }}" + tvdb: "{{ .Query.TVDBID }}" + sortField: "{{ .Config.sort }}" + sortDirection: "{{ .Config.type }}" + perPage: 100 + page: 1 + $raw: "{{ range .Categories }}categories[]={{.}}&{{end}}{{ if .Config.freeleech }}free=1{{ else }}{{ end }}" + + keywordsfilters: + - name: diacritics + args: replace + - name: re_replace # S01 to 1 + args: ["(?i)\\bS0*(\\d+)\\b", "$1"] + - name: re_replace # S01E01 to 1 1 + args: ["(?i)\\bS0*(\\d+)E0*(\\d+)\\b", "$1 $2"] + + rows: + selector: data + count: + selector: meta.total + + fields: + category: + selector: category + case: + "Movie": 1 + "Serie TV": 2 + "Ebook": 15 + "Riviste e Giornali": 17 + "XXX": 19 + "Music": 3 + "Games": 7 + "Software": 23 + title: + selector: name + filters: + - name: re_replace # replace special characters with " " (space) + args: ["[\\[!\"#$%&'()*+,\\-.\\/:;<=>?@[\\]^_`{|}~]", " "] + - name: diacritics + args: replace + - name: re_replace # replace multiple spaces + args: ["[ ]{2,}", " "] + # normalize to SXXEYY format + - name: re_replace # S01 E01 to S01E01 + args: ["(?i)\\bS(\\d+)\\sE(\\d+)\\b", "S$1E$2"] + - name: re_replace # 01x01 to S01E01 + args: ["(?i)(\\d{2})x(\\d+)", "S$1E$2"] + - name: re_replace # 1x01 to S01E01 + args: ["(?i)\\b(\\d{1})x(\\d+)", "S0$1E$2"] + - name: re_replace # Stagione X --> S0X + args: ["(?i)\\bStagion[ei]\\s?(\\d{1})\\b|\\bSeason'?s?\\s?(\\d{1})\\b", "S0$1$2"] + - name: re_replace # Stagione XX --> SXX + args: ["(?i)\\bStagion[ei]\\s?(\\d{2,})\\b|\\bSeason'?s?\\s?(\\d{2,})\\b", "S$1$2"] + - name: re_replace # Episodio 4 to E4 + args: ["(?i)\\b(?:[\\/\\|]?Episodio\\s?(\\d+)|Puntata\\s?(\\d+))", "E$1$2"] + - name: re_replace # Episodi 4 5 to E04-05 + args: ["(?i)\\b(?:Puntate\\s*)(\\d+)\\s?(\\d+)", "E0$1-0$2"] + - name: re_replace # rimozioni varie + args: ["(?i)(Serie completa|Completat?a?|in pausa)", ""] + details: + selector: details_link + download: + selector: download_link + poster: + selector: poster + filters: + - name: replace + args: ["https://via.placeholder.com/90x135", ""] + - name: replace + args: ["https://via.placeholder.com/400x600", ""] + imdbid: + selector: imdb_id + tmdbid: + selector: tmdb_id + tvdbid: + selector: tvdb_id + files: + selector: num_file + seeders: + selector: seeders + leechers: + selector: leechers + grabs: + selector: times_completed + date: + # 2021-10-18T00:34:50.000000Z" + selector: created_at + size: + selector: size + downloadvolumefactor: + # api returns 0=false, 1=true + selector: freeleech + case: + 0: 1 # not free + 1: 0 # freeleech + uploadvolumefactor: + # api returns 0=false, 1=true + selector: double_upload + case: + 0: 1 # normal + 1: 2 # double +# global MR is 0.4 but torrents must be seeded for 7 days regardless of ratio +# minimumratio: +# text: 0.4 + minimumseedtime: + # 7 day (as seconds = 7 x 24 x 60 x 60) + text: 604800 +# json UNIT3D 5.3.0