diff --git a/README.md b/README.md index f04057723..c571e1019 100644 --- a/README.md +++ b/README.md @@ -195,6 +195,7 @@ Developer note: The software implements the [Torznab](https://github.com/Sonarr/ * FileList (FL) * Femdomcult * Freedom-HD (Freedom Paradise) + * FreeTorrent * FullMixMusic * FunFile (FF) * FunkyTorrents (FT) diff --git a/src/Jackett.Common/Definitions/freetorrent.yml b/src/Jackett.Common/Definitions/freetorrent.yml new file mode 100644 index 000000000..085dff6e1 --- /dev/null +++ b/src/Jackett.Common/Definitions/freetorrent.yml @@ -0,0 +1,125 @@ +--- + site: freetorrent + name: FreeTorrent + description: "FreeTorrent is a Private Torrent Tracker for HD MOVIES / TV" + language: en-us + type: private + encoding: UTF-8 + links: + - https://freetorrent.tk/ + + caps: + categorymappings: + - {id: 1, cat: Movies, desc: "Movies"} + - {id: 2, cat: TV, desc: "TV"} + - {id: 3, cat: Audio, desc: "Music"} + - {id: 4, cat: PC/0day, desc: "Software"} + - {id: 5, cat: Books, desc: "Ebook"} + - {id: 6, cat: PC/Games, desc: "Games"} + - {id: 7, cat: TV, desc: "Animations"} + - {id: 8, cat: PC, desc: "Linux"} + - {id: 9, cat: PC/Mac, desc: "MacOS"} + - {id: 10, cat: PC/Phone-Android, desc: "Android app"} + - {id: 11, cat: PC/Phone-Android, desc: "Android ROMs"} + - {id: 12, cat: TV/Documentary, desc: "Documentaries"} + - {id: 13, cat: TV, desc: "Shows"} + + modes: + search: [q] + tv-search: [q, season, ep, imdbid] + movie-search: [q, imdbid] + + login: + path: login + method: form + inputs: + username: "{{ .Config.username }}" + password: "{{ .Config.password }}" + error: + - selector: form[action*="/login"] .text-red + test: + path: torrents + + search: + paths: + - path: filterTorrents + inputs: + $raw: "{{range .Categories}}categories[]={{.}}&{{end}}" + search: "{{if .Query.IMDBID}}{{else}}{{ .Keywords }}{{end}}" + uploader: "" + imdb: "{{ .Query.IMDBIDShort }}" + tvdb: "" + tmdb: "" + mal: "" + sort: created_at + direction: desc + qty: 100 + rows: + selector: table > tbody > tr + fields: + category: + selector: a[href*="/categories/"] + attribute: href + filters: + - name: regexp + args: "/categories/.*?\\.(\\d+)" + title: + selector: a.view-torrent + download: + selector: a[href*="/download/"] + attribute: href + details: + selector: a.view-torrent + attribute: href + size: + selector: td:nth-child(5) + seeders: + selector: td:nth-child(7) + leechers: + selector: td:nth-child(8) + grabs: + selector: td:nth-child(6) + filters: + - name: regexp + args: ([\d\.]+) + imdb: + optional: true + selector: a[href^="https://www.imdb.com/title/"] + attribute: href + date: + selector: time + filters: + # translations for Turkish|Estonian|Danish|Italian|Polish|Norwegian|Portoguese|Czech|Russian|Romanian|Spanish|French|German|Bulgarian|Dutch + - name: re_replace + args: ["(önce|tagasi|geleden|fa|temu|siden|atrás|nazpět|назад|acum|hace|il y a|vor|преди)", "ago"] + - name: re_replace + args: ["(dakika|minut|minuto|minuta|minutt|минута|Minute|minuut)", "minute"] + - name: re_replace + args: ["(dakika|minutit|minutter|minuti|minuty|minutos|минуты|минут|Minuten|минути|minuten)", "minutes"] + - name: re_replace + args: ["(saat|tund|time|ora|godzina|hora|hodina|час|oră|heure|Stunde|uur)", "hour"] + - name: re_replace + args: ["(saat|tundi|timer|ore|godziny|horas|hodiny|hoden|часа|часов|ore|heures|Stunden)", "hours"] + - name: re_replace + args: ["(gün|päev|dag|giorno|dzień|dia|den|день|zi|día|jour|Tag|ден)", "day"] + - name: re_replace + args: ["(gün|päeva|dage|giorni|dni|dias|dny|дня|дней|zile|días|jours|Tagen|дни|dagen)", "days"] + - name: re_replace + args: ["(hafta|nädal|uge|settimana|tydzień|uke|semana|týden|неделю|săptămână|semaine|Woche|седмица)", "week"] + - name: re_replace + args: ["(hafta|nädalat|uger|settimane|tygodnie|uker|semanas|týdny|недели|недель|săptămâni|semaines|Wochen|седмици|weken)", "weeks"] + - name: re_replace + args: [" (ay|kuu|måned|mese|miesiąc|mês|měsíc|месяц|lună|mes|mois|Monat|месец|maand)", "month"] + - name: re_replace + args: [" (ay|kuud|måneder|mesi|miesiące|meses|měsíce|месяца|месяцев|luni|meses|mois|Monaten|месеца|maanden)", "months"] + downloadvolumefactor: + case: + "i[data-original-title=\"100% Free\"]": "0" # Single Torrent Freeleech + "i[data-original-title=\"Global FreeLeech\"]": "0" # Global Freeleech + "i[data-original-title=\"Freeleech\"]": "0" # Freeleech + "*": "1" + uploadvolumefactor: + case: + "i[data-original-title=\"Double upload\"]": "2" # Single Torrent Double Upload + "i[data-original-title=\"Double Upload\"]": "2" # Global Double Upload + "*": "1"