mirror of
https://github.com/Prowlarr/Indexers.git
synced 2026-04-28 12:23:37 +01:00
Added Indexers: definitions/v11/bitsearch.yml definitions/v11/nostradamus.yml definitions/v11/slobitmedia-api.yml definitions/v11/teamflix.yml Removed Indexers: definitions/v11/fluxzone.yml Modified Indexers: definitions/v11/docspedia.yml definitions/v11/generationfree-api.yml definitions/v11/tapochek.yml definitions/v11/world-torrent.yml
256 lines
7.8 KiB
YAML
256 lines
7.8 KiB
YAML
---
|
|
id: generationfree-api
|
|
name: Generation-Free (API)
|
|
description: "Generation-Free (GF-Free) is a FRENCH Private Torrent Tracker for MOVIES / TV / GENERAL"
|
|
language: fr-FR
|
|
type: private
|
|
encoding: UTF-8
|
|
links:
|
|
- https://generation-free.org/
|
|
legacylinks:
|
|
- https://generation-free.biz/
|
|
|
|
caps:
|
|
categorymappings:
|
|
- {id: 1, cat: Movies, desc: "Films"}
|
|
- {id: 2, cat: TV, desc: "Séries"}
|
|
- {id: 3, cat: Books, desc: "Ebook"}
|
|
- {id: 4, cat: Console, desc: "Jeux"}
|
|
- {id: 5, cat: PC, desc: "Logiciel"}
|
|
- {id: 6, cat: Audio, desc: "Musique"}
|
|
- {id: 8, cat: TV/Sport, desc: "Sport"}
|
|
|
|
modes:
|
|
search: [q]
|
|
tv-search: [q, season, ep, imdbid, tvdbid, tmdbid]
|
|
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 <a href=\"https://generation-free.org/\" target=\"_blank\">Generation-Free</a> account <i>My Settings</i> page and clicking on the <b>API Key</b> tab."
|
|
- name: freeleech
|
|
type: checkbox
|
|
label: Search freeleech only
|
|
default: false
|
|
- name: single_file_release_use_filename
|
|
type: checkbox
|
|
label: Use filename as title for single file releases
|
|
default: true
|
|
- 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: vfq
|
|
type: checkbox
|
|
label: Replace VFQ with FRENCH
|
|
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
|
|
- name: info_activity
|
|
type: info
|
|
label: Account Inactivity
|
|
default: "Accounts inactive for 45 days are automatically deleted (all ranks included). To remain active, simply log in and participate (downloads, forums, shoutbox, games). Accounts created solely to build up numbers will be deactivated. As a free tracker with a limited number of spots, we regularly delete inactive accounts."
|
|
- name: page_for_test
|
|
type: select
|
|
label: Page for TEST
|
|
default: 1
|
|
options:
|
|
1: "1"
|
|
2: "2"
|
|
3: "3"
|
|
4: "4"
|
|
5: "5"
|
|
- name: info_page
|
|
type: info
|
|
label: About TEST page
|
|
default: "Generation-Free's API only delivers torrents that are at least 12 hours old. Therefore, when there are more than 100 torrents loaded to the site in a day, the indexer TEST may fail with 0 results. To allow the TEST to successed you will need to select another page to fetch."
|
|
|
|
login:
|
|
path: /api/torrents
|
|
method: get
|
|
inputs: {} # TODO: remove in v10
|
|
error:
|
|
- selector: a[href*="/login"]
|
|
message:
|
|
text: "The API key was not accepted by {{ .Config.sitelink }}."
|
|
- selector: :root:contains("Account is Banned")
|
|
|
|
search:
|
|
paths:
|
|
# https://hdinnovations.github.io/UNIT3D/torrent_api.html
|
|
# https://github.com/HDInnovations/UNIT3D/blob/master/app/Http/Controllers/API/TorrentController.php#L657
|
|
- path: api/torrents/filter
|
|
response:
|
|
type: json
|
|
|
|
headers:
|
|
Authorization: ["Bearer {{ .Config.apikey }}"]
|
|
|
|
inputs:
|
|
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
|
|
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
|
|
name: "{{ .Keywords }}"
|
|
seasonNumber: "{{ .Query.Season }}"
|
|
episodeNumber: "{{ .Query.Ep }}"
|
|
imdbId: "{{ .Query.IMDBIDShort }}"
|
|
tmdbId: "{{ .Query.TMDBID }}"
|
|
tvdbId: "{{ .Query.TVDBID }}"
|
|
"free[]": "{{ if .Config.freeleech }}100{{ else }}{{ end }}"
|
|
sortField: "{{ .Config.sort }}"
|
|
sortDirection: "{{ .Config.type }}"
|
|
perPage: 100
|
|
page: "{{ .Config.page_for_test }}"
|
|
|
|
keywordsfilters:
|
|
- name: re_replace
|
|
args: ["\\.", " "]
|
|
|
|
rows:
|
|
selector: data
|
|
attribute: attributes
|
|
|
|
fields:
|
|
category:
|
|
selector: category_id
|
|
title_optional:
|
|
selector: name
|
|
title_filename:
|
|
selector: "files[0].name"
|
|
optional: true
|
|
files:
|
|
selector: num_file
|
|
title_phase1:
|
|
text: "{{ if and (.Config.single_file_release_use_filename) (eq .Result.files \"1\") (.Result.title_filename) }}{{ .Result.title_filename }}{{ else }}{{ .Result.title_optional }}{{ end }}"
|
|
title_vfq:
|
|
text: "{{ .Result.title_phase1 }}"
|
|
filters:
|
|
- name: re_replace
|
|
args: ["(?i)\\b(VFQ)\\b", "FRENCH"]
|
|
title_phase2:
|
|
text: "{{ if .Config.vfq }}{{ .Result.title_vfq }}{{ else }}{{ .Result.title_phase1 }}{{ end }}"
|
|
title_vostfr:
|
|
text: "{{ .Result.title_phase2 }}"
|
|
filters:
|
|
- name: re_replace
|
|
args: ["(?i)\\b(vostfr|subfrench)\\b", "ENGLISH"]
|
|
title_phase3:
|
|
text: "{{ if .Config.vostfr }}{{ .Result.title_vostfr }}{{ else }}{{ .Result.title_phase2 }}{{ end }}"
|
|
title_multilang:
|
|
text: "{{ .Result.title_phase3 }}"
|
|
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_phase3 }}{{ end }}"
|
|
details:
|
|
selector: details_link
|
|
download:
|
|
selector: download_link
|
|
poster:
|
|
selector: meta.poster
|
|
filters:
|
|
- name: replace
|
|
args: ["https://via.placeholder.com/90x135", ""]
|
|
imdbid:
|
|
selector: imdb_id
|
|
tmdbid:
|
|
selector: tmdb_id
|
|
tvdbid:
|
|
selector: tvdb_id
|
|
genre:
|
|
selector: meta.genres
|
|
filters:
|
|
- name: replace
|
|
args: [" & ", "_&_"]
|
|
_internal:
|
|
selector: internal
|
|
case:
|
|
False: "{{ .False }}"
|
|
True: "{{ .True }}"
|
|
description:
|
|
text: "{{ if .Result._internal }}Internal{{ else }}{{ end }}{{ if and .Result._internal .Result.genre }} | {{ else }}{{ end }}{{ .Result.genre }}"
|
|
seeders:
|
|
selector: seeders
|
|
leechers:
|
|
selector: leechers
|
|
grabs:
|
|
selector: times_completed
|
|
date:
|
|
# "created_at": "2021-10-18T00:34:50.000000Z" is returned by Newtonsoft.Json.Linq as 18/10/2021 00:34:50
|
|
selector: created_at
|
|
filters:
|
|
- name: append
|
|
args: " +00:00" # GMT
|
|
- name: dateparse
|
|
args: "MM/dd/yyyy HH:mm:ss zzz"
|
|
size:
|
|
selector: size
|
|
_featured:
|
|
selector: featured
|
|
case:
|
|
False: "{{ .False }}"
|
|
True: "{{ .True }}"
|
|
downloadvolumefactor_freeleech:
|
|
# api returns 0%, 25%, 50%, 75%, 100%
|
|
selector: freeleech
|
|
case:
|
|
0%: 1 # not free
|
|
25%: 0.75
|
|
50%: 0.5
|
|
75%: 0.25
|
|
100%: 0 # freeleech
|
|
"*": 0 # catch errors
|
|
downloadvolumefactor:
|
|
text: "{{ if .Result._featured }}0{{ else }}{{ .Result.downloadvolumefactor_freeleech }}{{ end }}"
|
|
uploadvolumefactor_double_upload:
|
|
# api returns False, True
|
|
selector: double_upload
|
|
case:
|
|
False: 1 # normal
|
|
True: 2 # double
|
|
uploadvolumefactor:
|
|
text: "{{ if .Result._featured }}2{{ else }}{{ .Result.uploadvolumefactor_double_upload }}{{ end }}"
|
|
# global MR is 0.5 but torrents must be seeded for 3 days regardless of ratio
|
|
# minimumratio:
|
|
# text: 0.5
|
|
minimumseedtime:
|
|
# 3 days (as seconds = 3 x 24 x 60 x 60)
|
|
text: 259200
|
|
# json UNIT3D 9.2.0 (custom)
|