--- id: abnormal name: Abnormal description: "General French Private Tracker" language: fr-FR type: private encoding: UTF-8 requestDelay: 2.1 links: - https://abn.lol/ legacylinks: - https://abnormal.ws caps: categorymappings: - {id: 1, cat: TV, desc: "Series"} - {id: 2, cat: Movies, desc: "Movies"} - {id: 3, cat: TV/Documentary, desc: "Documentaries"} - {id: 4, cat: TV/Anime, desc: "Anime"} - {id: 5, cat: PC/Games, desc: "Games"} - {id: 6, cat: PC, desc: "Applications"} - {id: 7, cat: Books/EBook, desc: "Ebooks"} - {id: 9, cat: TV, desc: "Emissions"} 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: 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 and SUBFRENCH with ENGLISH default: false - name: freeleech type: checkbox label: Search freeleech only default: false - name: sort type: select label: Sort requested from site default: Created options: Created: created Seeders: seeders Size: size ReleaseName: 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: "Accounts are automatically deactivated after 4 months of inactivity (no connection to the site)." login: method: form path: Home/Login form: "#account" inputs: Username: "{{ .Config.username }}" Password: "{{ .Config.password }}" RememberMe: true selectorinputs: __RequestVerificationToken: selector: input[name="__RequestVerificationToken"] attribute: value error: - selector: div.validation-summary-errors[data-valmsg-summary="true"] message: text: " - Bad username/password." test: path: / selector: form#logoutForm search: paths: - path: Torrent inputs: $raw: "{{ range .Categories }}SelectedCats={{.}}&{{end}}" Search: "{{ .Keywords }}" UserId: "" YearOperator: ≥ Year: "" RatingOperator: ≥ Rating: "" Pending: "" Pack: "" Scene: "" Freeleech: "{{ if .Config.freeleech }}true{{ else }}{{ end }}" SortOn: "{{ .Config.sort }}" SortOrder: "{{ .Config.type }}" rows: selector: table.table-rows > tbody > tr:has(a[href^="/Torrent/Download?ReleaseId="]) fields: category: selector: a[href^="/Torrent?SelectedCats="] attribute: href filters: - name: querystring args: SelectedCats title_phase1: selector: td.grid-release-column > a title_vostfr: text: "{{ .Result.title_phase1 }}" filters: - name: re_replace args: ["(?i)\\b(vostfr|subfrench)\\b", "ENGLISH"] title_phase2: text: "{{ if .Config.vostfr }}{{ .Result.title_vostfr }}{{ else }}{{ .Result.title_phase1 }}{{ end }}" title_multilang: text: "{{ .Result.title_phase2 }}" filters: - name: re_replace args: ["(?i)\\b(MULTI(?!.*(?:FRENCH|ENGLISH|VOSTFR)))\\b", "{{ .Config.multilanguage }}"] title: text: "{{ if .Config.multilang }}{{ .Result.title_multilang }}{{ else }}{{ .Result.title_phase2 }}{{ end }}" details: selector: a[href^="/Torrent/Details?ReleaseId="] attribute: href download: selector: a[href^="/Torrent/Download?ReleaseId="] attribute: href date: text: now size: selector: td:nth-child(6) filters: - name: re_replace args: [",", "."] - name: replace args: ["o", "B"] seeders: selector: td:nth-child(7) leechers: selector: td:nth-child(8) downloadvolumefactor: case: img[title="Freeleech"]: 0 "*": 1 uploadvolumefactor: case: "*": 1 minimumratio: text: 1.0 minimumseedtime: # 4 days (as seconds = 4 x 24 x 60 x 60) text: 345600 # Gazelle