diff --git a/README.md b/README.md index fb0a0aac0..b549253d5 100644 --- a/README.md +++ b/README.md @@ -46,6 +46,7 @@ Prior versions of Jackett are no longer supported. * Bangumi Moe * BigFANGroup * BitRu + * BitSearch (Solid Torrents) * BluDV * BlueRoms * BT.etree diff --git a/src/Jackett.Common/Definitions/bitsearch.yml b/src/Jackett.Common/Definitions/bitsearch.yml new file mode 100644 index 000000000..93ba35274 --- /dev/null +++ b/src/Jackett.Common/Definitions/bitsearch.yml @@ -0,0 +1,167 @@ +--- +id: bitsearch +replaces: + - solidtorrents +name: BitSearch +description: "BitSearch (Solid Torrents) is a Public torrent meta-search engine" +language: en-US +type: public +encoding: UTF-8 +links: + - https://bitsearch.to/ + - https://solidtorrents.to/ +legacylinks: + - https://bitsearch.nocensor.cloud/ + - https://bitsearch.mrunblock.bond/ + +caps: + categories: + AudioBook: Audio/Audiobook + eBook: Books/EBook + "Ebook/Course": Books/EBook + Games: PC/Games + "Games/PC": PC/Games + Movies: Movies + Music: Audio + "Music/Album": Audio + "Music/mp3": Audio/MP3 + "Music/Lossless": Audio/Lossless + "Music/Video": Audio/Video + Other: Other + "Other/Android": PC/Mobile-Android + "Other/Archive": Other + "Other/Audio": Audio + "Other/Database": PC + "Other/DiskImage": PC/ISO + "Other/Document": Books/Comics + "Other/Image": Other/Misc + "Other/Program": PC/0day + "Other/Sourcecode": PC + "Other/Source Code": PC + "Other/Video": TV + Softwares: PC/0day + "Softwares/Mac": PC/Mac + "Softwares/Windows": PC/0day + TV: TV + Unknown: Other + XXX: XXX + + modes: + search: [q] + tv-search: [q, season, ep] + movie-search: [q] + music-search: [q] + book-search: [q] + +settings: + - name: sort + type: select + label: Sort requested from site + default: date + options: + date: created + seeders: seeders + size: size + - name: type + type: select + label: Order requested from site + default: desc + options: + desc: desc + asc: asc + +search: + paths: + # https://bitsearch.to/search?q=&sort=date&order=desc&limit=100 + - path: "{{ if .Keywords }}search?q={{ .Keywords }}&sort={{ .Config.sort }}&order={{ .Config.type }}&limit=100{{ else }}latest{{ end }}" + + keywordsfilters: + - name: re_replace + args: ["\\.", " "] + + rows: + selector: li.search-result:has(a.dl-magnet) + + fields: + category: + selector: a.category + title: + selector: h5 a + details: + selector: h5 a + attribute: href + magnet: + selector: a[href^="magnet:?xt"] + attribute: href + grabs_dot: + selector: div.stats div:has(img[alt="Download"]):contains(".") + optional: true + filters: + - name: replace + args: [".", ""] + - name: replace + args: ["K", "00"] + - name: re_replace + args: ["[MB]", "00000"] # 'billion' too long for Jackett table cell + grabs_nodot: + selector: div.stats div:has(img[alt="Download"]):not(:contains(".")) + optional: true + filters: + - name: replace + args: ["K", "000"] + - name: re_replace + args: ["[MB]", "000000"] + grabs: + text: "{{ if or .Result.grabs_dot .Result.grabs_nodot }}{{ or .Result.grabs_dot .Result.grabs_nodot }}{{ else }}0{{ end }}" + size: + selector: div.stats div:has(img[alt="Size"]) + seeders_dot: + selector: div.stats div:has(img[alt="Seeder"]):contains(".") + optional: true + filters: + - name: replace + args: [".", ""] + - name: replace + args: ["K", "00"] + - name: re_replace + args: ["[MB]", "00000"] + seeders_nodot: + selector: div.stats div:has(img[alt="Seeder"]):not(:contains(".")) + optional: true + filters: + - name: replace + args: ["K", "000"] + - name: re_replace + args: ["[MB]", "000000"] + seeders: + text: "{{ if or .Result.seeders_dot .Result.seeders_nodot }}{{ or .Result.seeders_dot .Result.seeders_nodot }}{{ else }}0{{ end }}" + leechers_dot: + selector: div.stats div:has(img[alt="Leecher"]):contains(".") + optional: true + filters: + - name: replace + args: [".", ""] + - name: replace + args: ["K", "00"] + - name: re_replace + args: ["[MB]", "00000"] + leechers_nodot: + selector: div.stats div:has(img[alt="Leecher"]):not(:contains(".")) + optional: true + filters: + - name: replace + args: ["K", "000"] + - name: re_replace + args: ["[MB]", "000000"] + leechers: + text: "{{ if or .Result.leechers_dot .Result.leechers_nodot }}{{ or .Result.leechers_dot .Result.leechers_nodot }}{{ else }}0{{ end }}" + date: + selector: div.stats div:has(img[alt="Date"]) + filters: + - name: dateparse + args: "MMM d, yyyy" + downloadvolumefactor: + text: 0 + uploadvolumefactor: + text: 1 +# engine n/a diff --git a/src/Jackett.Updater/Program.cs b/src/Jackett.Updater/Program.cs index 66909f248..793dd2eb5 100644 --- a/src/Jackett.Updater/Program.cs +++ b/src/Jackett.Updater/Program.cs @@ -309,7 +309,6 @@ namespace Jackett.Updater "Definitions/bitme.yml", "Definitions/bitnova.yml", "Definitions/bitofvalor.yml", - "Definitions/bitsearch.yml", "Definitions/bitsexy.yml", "Definitions/bitspyder.yml", "Definitions/bitstream.yml", @@ -669,7 +668,7 @@ namespace Jackett.Updater "Definitions/skytorrentsclone.yml", // renamed to skytorrents-lol "Definitions/skytorrentsclone2.yml", // renamed to skytorrents-to "Definitions/slosoul.yml", - "Definitions/solidtorrents.yml", + "Definitions/solidtorrents.yml", // merged with bitsearch "Definitions/soundpark.yml", "Definitions/spacetorrent.yml", "Definitions/speed-share.yml",