diff --git a/README.md b/README.md index ed5cf601c..b46a28205 100644 --- a/README.md +++ b/README.md @@ -302,7 +302,6 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht * Carp-Hunter * Carpathians * CartoonChaos (CC) - * CasaTorrent [![(invite needed)][inviteneeded]](#) * Cathode-Ray.Tube (CRT) * CCFBits [![(invite needed)][inviteneeded]](#) * CeskeForum @@ -529,6 +528,7 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht * Swarmazon * Tapochek * Tasmanit [![(invite needed)][inviteneeded]](#) + * Team CT Game (TCTG) * TeamHD * TeamOS * TEKNO3D [![(invite needed)][inviteneeded]](#) diff --git a/src/Jackett.Common/Definitions/casatorrent.yml b/src/Jackett.Common/Definitions/casatorrent.yml deleted file mode 100644 index 2c4585a6f..000000000 --- a/src/Jackett.Common/Definitions/casatorrent.yml +++ /dev/null @@ -1,213 +0,0 @@ ---- -id: casatorrent -name: Casa-Torrent -description: "Casa-Torrent is a FRENCH Private Torrent Tracker for MOVIES / TV / GENERAL" -language: fr-FR -type: private -encoding: UTF-8 -links: - - https://tctg.in/ -legacylinks: - - https://teamctgame.co/ - - http://teamctgame.xyz/ - - https://teamctgame.xyz/ - -caps: - categorymappings: - - {id: 65, cat: Movies/HD, desc: "BD: BD"} - - {id: 68, cat: Books/Mags, desc: "Ebooks: Presse"} - - {id: 90, cat: Audio/Audiobook, desc: "Ebooks: Audio books"} - - {id: 56, cat: Books/EBook, desc: "Ebooks: Ebooks"} - - {id: 95, cat: Books/Comics, desc: "Ebooks: Mangas"} - - {id: 84, cat: XXX, desc: "Ebooks: XXX"} - - {id: 54, cat: Movies/3D, desc: "Films: 3D"} - - {id: 53, cat: Movies/HD, desc: "Films: 4K"} - - {id: 77, cat: Movies/UHD, desc: "Films: 4K-HDR"} - - {id: 82, cat: Movies/UHD, desc: "Films: 4K-light"} - - {id: 50, cat: Movies/UHD, desc: "Films: 4K-Remux"} - - {id: 61, cat: Movies, desc: "Films: Animation"} - - {id: 48, cat: Movies/BluRay, desc: "Films: BDRip / BRRip"} - - {id: 78, cat: Movies/DVD, desc: "Films: DVD-R"} - - {id: 47, cat: Movies/DVD, desc: "Films: DVDRip"} - - {id: 71, cat: Movies/BluRay, desc: "Films: Full Bluray"} - - {id: 63, cat: Movies/HD, desc: "Films: HD TV"} - - {id: 52, cat: Movies/HD, desc: "Films: HD.1080p"} - - {id: 51, cat: Movies/HD, desc: "Films: HD.720p"} - - {id: 80, cat: Movies/HD, desc: "Films: HDLiGHT / M-HD"} - - {id: 87, cat: Movies/HD, desc: "Films: HDRiP"} - - {id: 60, cat: Movies, desc: "Films: Pack"} - - {id: 96, cat: Movies, desc: "Films: Remux"} - - {id: 75, cat: TV, desc: "Films: TVRiP"} - - {id: 98, cat: Movies, desc: "Films: VFSTFR"} - - {id: 89, cat: Movies, desc: "Films: VO"} - - {id: 55, cat: Movies, desc: "Films: VOSTFR"} - - {id: 58, cat: Movies/WEB-DL, desc: "Films: Web - DL"} - - {id: 57, cat: Movies/WEB-DL, desc: "Films: WebRip"} - - {id: 72, cat: Movies/HD, desc: "Films: x265"} - - {id: 1, cat: XXX, desc: "Films: XXX"} - - {id: 97, cat: Console, desc: "Jeux : Android"} - - {id: 81, cat: Console, desc: "Jeux : Consoles"} - - {id: 66, cat: PC/Games, desc: "Jeux: PC"} - - {id: 62, cat: PC/0day, desc: "Logiciels: Windows"} - - {id: 99, cat: Other, desc: "Logiciels: Graph / Wallpaper"} - - {id: 94, cat: TV/HD, desc: "Series: 4K HDR"} - - {id: 93, cat: TV/Anime, desc: "Series: Animés"} - - {id: 86, cat: TV/HD, desc: "Series: Episode HD"} - - {id: 101, cat: TV/HD, desc: "Series: Episode HD Vostfr"} - - {id: 85, cat: TV/SD, desc: "Series: Episode SD"} - - {id: 102, cat: TV/SD, desc: "Series: Episode SD Vostfr"} - - {id: 100, cat: TV/HD, desc: "Series: Tv - Pack HD"} - - {id: 103, cat: TV/HD, desc: "Series: Tv - Pack HD Vostfr"} - - {id: 59, cat: TV/SD, desc: "Series: Tv - Pack SD"} - - {id: 104, cat: TV/SD, desc: "Series: Tv - Pack SD Vostfr"} - - {id: 88, cat: TV, desc: "Spectacles: Tous"} - - {id: 83, cat: TV, desc: "TV: Emissions"} - - {id: 73, cat: TV/Documentary, desc: "TV: Documentaires"} - - {id: 74, cat: TV/Sport, desc: "TV: Sports"} - - modes: - search: [q] - tv-search: [q, season, ep] - movie-search: [q] - book-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: multilang - type: checkbox - label: Replace MULTI by another language in release name - default: false - - name: multilanguage - type: select - label: Replace MULTI by this language - default: FRENCH - options: - FRENCH: FRENCH - MULTI.FRENCH: MULTI.FRENCH - ENGLISH: ENGLISH - MULTI.ENGLISH: MULTI.ENGLISH - VOSTFR: VOSTFR - MULTI.VOSTFR: MULTI.VOSTFR - - name: vostfr - type: checkbox - label: Replace VOSTFR with ENGLISH - default: false - - name: sort - type: select - label: Sort requested from site - default: id - options: - id: created - seeders: seeders - size: size - name: title - - name: type - type: select - label: Order requested from site - default: desc - options: - desc: desc - asc: asc - -login: - path: account-login.php - method: post - inputs: - username: "{{ .Config.username }}" - password: "{{ .Config.password }}" - error: - - selector: p#msgError - test: - path: torrents-search.php - selector: a[href="account-logout.php"] - -search: - paths: - - path: torrents-search.php - inputs: - $raw: "{{ range .Categories }}c{{.}}=1&{{end}}" - search: "{{ .Keywords }}" - incldead: 1 - freeleech: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}" - lang: 0 - sort: "{{ .Config.sort }}" - order: "{{ .Config.type }}" - keywordsfilters: - - name: re_replace - args: ["(\\w+)", " +$1"] # prepend + to each word - - rows: - selector: table.ttable_headinner > tbody > tr.t-row - - fields: - category: - selector: a[href^="torrents.php?cat="] - attribute: href - filters: - - name: querystring - args: cat - title_phase1: - selector: a[href^="torrents-details.php?id="] b - title_multilang: - text: "{{ .Result.title_phase1 }}" - filters: - - name: re_replace - args: ["(?i)(\\smulti\\s)", " {{ .Config.multilanguage }} "] - title_phase2: - text: "{{ if .Config.multilang }}{{ .Result.title_multilang }}{{ else }}{{ .Result.title_phase1 }}{{ end }}" - title_vostfr: - text: "{{ .Result.title_phase2 }}" - filters: - - name: re_replace - args: ["(?i)(\\svostfr\\s)", " ENGLISH "] - - name: re_replace - args: ["(?i)(\\ssubfrench\\s)", " ENGLISH "] - title: - text: "{{ if .Config.vostfr }}{{ .Result.title_vostfr }}{{ else }}{{ .Result.title_phase2 }}{{ end }}" - details: - selector: a[href^="torrents-details.php?id="] - attribute: href - download: - selector: a[href^="download.php?id="] - attribute: href - poster: - selector: img[src*="/uploads/images/"] - attribute: src - grabs: - selector: a[onmouseover][href^="torrents-details.php?id="] - attribute: onmouseover - filters: - - name: regexp - args: "Snatched: (\\d+)(.*?)Torrents per page: setting to 100 on your account profile. + - name: multilang + type: checkbox + label: Replace MULTI by another language in release name + default: false + - name: multilanguage + type: select + label: Replace MULTI by this language + default: FRENCH + options: + FRENCH: FRENCH + MULTI.FRENCH: MULTI.FRENCH + ENGLISH: ENGLISH + MULTI.ENGLISH: MULTI.ENGLISH + VOSTFR: VOSTFR + MULTI.VOSTFR: MULTI.VOSTFR + - name: vostfr + type: checkbox + label: Replace VOSTFR with ENGLISH + default: false + - 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: form + form: form[action="takelogin.php"] + captcha: + type: image + selector: img[alt="CAPTCHA"] + input: imagestring + inputs: + username: "{{ .Config.username }}" + password: "{{ .Config.password }}" + logout: "" + securelogin: "" + error: + - selector: td.embedded:has(h2:contains("Erreur")) # invalid captcha + - selector: td.embedded:has(h2:contains("Échec")) # invalid uid or pwd + message: + selector: td.text + test: + path: index.php + selector: a[href="logout.php"] + +search: + paths: + - path: torrents.php + inputs: + $raw: "{{ range .Categories }}cat{{.}}=1&{{end}}" + search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}" + # 0 incldead, 1 active, 2 dead + incldead: 0 + # 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x50%, 7 30% + spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}" + inclbookmarked: 0 + # 0 title, 1 descr, 3 uploader, 4 imdburl + search_area: "{{ if .Query.IMDBID }}4{{ else }}0{{ end }}" + # 0 AND, 1 OR, 2 exact + search_mode: 0 + sort: "{{ .Config.sort }}" + type: "{{ .Config.type }}" + + rows: + selector: table.torrents > tbody > tr:has(a[href^="download.php?id="]) + + fields: + category: + selector: a[href^="?cat="] + attribute: href + filters: + - name: querystring + args: cat + title_phase1: + selector: a[href^="details.php?id="] b + title_multilang: + text: "{{ .Result.title_phase1 }}" + filters: + - name: re_replace + args: ["(?i)(\\smulti\\s)", " {{ .Config.multilanguage }} "] + title_phase2: + text: "{{ if .Config.multilang }}{{ .Result.title_multilang }}{{ else }}{{ .Result.title_phase1 }}{{ end }}" + title_vostfr: + text: "{{ .Result.title_phase2 }}" + filters: + - name: re_replace + args: ["(?i)(\\svostfr\\s)", " ENGLISH "] + - name: re_replace + args: ["(?i)(\\ssubfrench\\s)", " ENGLISH "] + title: + text: "{{ if .Config.vostfr }}{{ .Result.title_vostfr }}{{ else }}{{ .Result.title_phase2 }}{{ end }}" + details: + selector: a[href^="details.php?id="] + attribute: href + download: + selector: a[href^="download.php?id="] + attribute: href + date_elapsed: + # time type: time elapsed (default) + selector: td:nth-child(4) > span[title] + attribute: title + optional: true + filters: + - name: append + args: " +01:00" # CET + - name: dateparse + args: "2006-01-02 15:04:05 -07:00" + date_added: + # time added + selector: td:nth-child(4):not(:has(span)) + optional: true + filters: + - name: append + args: " +01:00" # CET + - name: dateparse + args: "2006-01-0215:04:05 -07:00" + date: + text: "{{ if or .Result.date_elapsed .Result.date_added }}{{ or .Result.date_elapsed .Result.date_added }}{{ else }}now{{ end }}" + size: + selector: td:nth-child(5) + seeders: + selector: td:nth-child(6) + leechers: + selector: td:nth-child(7) + grabs: + selector: td:nth-child(8) + downloadvolumefactor: + case: + img.pro_free: 0 + img.pro_free2up: 0 + img.pro_50pctdown: 0.5 + img.pro_50pctdown2up: 0.5 + img.pro_30pctdown: 0.3 + "*": 1 + uploadvolumefactor: + case: + img.pro_50pctdown2up: 2 + img.pro_free2up: 2 + img.pro_2up: 2 + "*": 1 + minimumratio: + text: 1.0 +# NexusPHP Standard v1.5 Beta 4 diff --git a/src/Jackett.Common/Services/IndexerManagerService.cs b/src/Jackett.Common/Services/IndexerManagerService.cs index e729a9f02..bc4690a71 100644 --- a/src/Jackett.Common/Services/IndexerManagerService.cs +++ b/src/Jackett.Common/Services/IndexerManagerService.cs @@ -43,6 +43,7 @@ namespace Jackett.Common.Services {"audiobooktorrents", "abtorrents"}, {"baibako", "rudub"}, {"broadcastthenet", "broadcasthenet"}, + {"casatorrent", "teamctgame"}, {"icetorrent", "speedapp"}, {"kickasstorrent-kathow", "kickasstorrents-ws"}, {"leaguehd", "lemonhd"}, diff --git a/src/Jackett.Updater/Program.cs b/src/Jackett.Updater/Program.cs index bfb1b1866..c982a296c 100644 --- a/src/Jackett.Updater/Program.cs +++ b/src/Jackett.Updater/Program.cs @@ -297,6 +297,7 @@ namespace Jackett.Updater "Definitions/btstornet.yml", "Definitions/btworld.yml", "Definitions/btxpress.yml", + "Definitions/casatorrent.yml", // renamed to teamctgame "Definitions/casstudiotv.yml", "Definitions/channelx.yml", "Definitions/cili180.yml", // renamed to liaorencili