---
  site: yggtorrent
  name: YGGtorrent
  description: "YGGTorrent is a FRENCH Semi-Private Torrent Tracker for 0DAY / GENERAL"
  language: fr-fr
  type: semi-private
  encoding: UTF-8
  links:
    - https://ww2.yggtorrent.is/
  legacylinks:
    - https://yggtorrent.is/
    - https://yggtorrent.com/
    - https://ww1.yggtorrent.com/
    - https://ww1.yggtorrent.is/

  caps:
    categorymappings:
      - {id: 2145, cat: TV, desc: "Film/Vidéo"}
      - {id: 2178, cat: TV/Anime, desc: "Film/Vidéo : Animation"}
      - {id: 2179, cat: TV/Anime, desc: "Film/Vidéo : Animation Série"}
      - {id: 2180, cat: TV, desc: "Film/Vidéo : Concert"}
      - {id: 2181, cat: TV, desc: "Film/Vidéo : Documentaire"}
      - {id: 2182, cat: TV, desc: "Film/Vidéo : Emission TV"}
      - {id: 2183, cat: Movies, desc: "Film/Vidéo : Film"}
      - {id: 2184, cat: TV, desc: "Film/Vidéo : Série TV"}
      - {id: 2185, cat: TV, desc: "Film/Vidéo : Spectacle"}
      - {id: 2186, cat: TV, desc: "Film/Vidéo : Sport"}
      - {id: 2187, cat: TV, desc: "Film/Vidéo : Vidéo-clips"}
      - {id: 2139, cat: Audio, desc: "Audio"}
      - {id: 2147, cat: Audio, desc: "Audio : Karaoké"}
      - {id: 2148, cat: Audio, desc: "Audio : Musique"}
      - {id: 2150, cat: Audio, desc: "Audio : Podcast Radio"}
      - {id: 2149, cat: Audio, desc: "Audio : Samples"}
      - {id: 2144, cat: PC, desc: "Application"}
      - {id: 2177, cat: PC, desc: "Application : Autre"}
      - {id: 2176, cat: PC, desc: "Application : Formation"}
      - {id: 2171, cat: PC, desc: "Application : Linux"}
      - {id: 2172, cat: PC, desc: "Application : MacOS"}
      - {id: 2174, cat: PC, desc: "Application : Smartphone"}
      - {id: 2175, cat: PC, desc: "Application : Tablette"}
      - {id: 2173, cat: PC, desc: "Application : Windows"}
      - {id: 2142, cat: PC/Games, desc: "Jeu vidéo"}
      - {id: 2167, cat: PC/Games, desc: "Jeu vidéo : Autre"}
      - {id: 2159, cat: PC/Games, desc: "Jeu vidéo : Linux"}
      - {id: 2160, cat: PC/Games, desc: "Jeu vidéo : MacOS"}
      - {id: 2162, cat: PC/Games, desc: "Jeu vidéo : Microsoft"}
      - {id: 2163, cat: PC/Games, desc: "Jeu vidéo : Nintendo"}
      - {id: 2165, cat: PC/Games, desc: "Jeu vidéo : Smartphone"}
      - {id: 2164, cat: PC/Games, desc: "Jeu vidéo : Sony"}
      - {id: 2166, cat: PC/Games, desc: "Jeu vidéo : Tablette"}
      - {id: 2161, cat: PC/Games, desc: "Jeu vidéo : Windows"}
      - {id: 2140, cat: Books, desc: "eBook"}
      - {id: 2151, cat: Books, desc: "eBook : Audio"}
      - {id: 2152, cat: Books, desc: "eBook : Bds"}
      - {id: 2153, cat: Books, desc: "eBook : Comics"}
      - {id: 2154, cat: Books, desc: "eBook : Livres"}
      - {id: 2155, cat: Books, desc: "eBook : Mangas"}
      - {id: 2156, cat: Books, desc: "eBook : Presse"}
      - {id: 2141, cat: Other, desc: "Emulation"}
      - {id: 2157, cat: Other, desc: "Emulation : Emulateurs"}
      - {id: 2158, cat: Other, desc: "Emulation : Roms"}
      - {id: 2143, cat: Other, desc: "GPS"}
      - {id: 2168, cat: Other, desc: "GPS : Applications"}
      - {id: 2169, cat: Other, desc: "GPS : Cartes"}
      - {id: 2170, cat: Other, desc: "GPS : Divers"}
      - {id: 2188, cat: XXX, desc: "XXX"}
      - {id: 2189, cat: XXX, desc: "XXX : Films"}
      - {id: 2190, cat: XXX, desc: "XXX : Hentai"}
      - {id: 2191, cat: XXX, desc: "XXX : Images"}

    modes:
      search: [q]
      tv-search: [q, season, ep]
      movie-search: [q]

  settings:
    - name: username
      type: text
      label: Username
    - name: password
      type: password
      label: Password
    - name: category
      type: select
      label: Catégorie
      default: all
      options:
        all : "Tous"
        2145 : "Film/Vidéo"
        2139 : "Audio"
        2144 : "Application"
        2142 : "Jeu vidéo"
        2140 : "eBook"
        2141 : "Emulation"
        2143 : "GPS"
        2188 : "XXX"
    - name: filter_title
      type: checkbox
      label: Try to normalize releases names by moving year after the title
      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"
  login:
    method: form
    path: /
    form: form[action$="/user/login"]
    inputs:
      id: "{{ .Config.username }}"
      pass: "{{ .Config.password }}"
      submit: ""
    error:
      - selector: "#login_msg_pass[style=\"\"][style] > center"
    test:
      path: /
      selector: a[href$="/user/logout"]

  search:
    paths:
      - path: "/engine/search?category={{ .Config.category }}&name={{ .Keywords }}&description=&file=&uploader=&sub_category=&do=search"
      - path: "/engine/search?category={{ .Config.category }}&name={{ .Keywords }}&description=&file=&uploader=&sub_category=&do=search&page=50"

    rows:
      selector: "table.table > tbody > tr"
    fields:
      _id:
        selector: ":nth-child(2) > a"
        attribute: href
        filters:
          - name: regexp
            args: "/(\\d+)-"
      title_normal:
        selector: ":nth-child(2) > a"
      title_filtered:
        selector: ":nth-child(2) > a"
        filters:
          - name: re_replace
            args: ["(?i)^(?:(.+?)((?:[\\.\\-\\s_\\[]+(?:imax|(?:dvd|bd|tv)(?:rip|scr)|bluray(?:\\-?rip)?|720\\s*p?|1080\\s*p?|vof?|vost(?:fr)?|multi|vf(?:f|q)?[1-3]?|(?:true)?french|eng?)[\\.\\-\\s_\\]]*)*)([\\(\\[]?(?:20|1[7-9])\\d{2}[\\)\\]]?)(.*)$|(.*))$", "$1 $3 $2 $4 $5"]
          - name: replace
            args: [".", " "]
          - name: trim
          - name: re_replace
            args: ["(?i)\\s(mkv|avi|divx|xvid|mp4)$", ""]
          - name: re_replace
            args: ["(\\s{2,5})", " "]
          - name: trim
      title_phase1:
        text: "{{if .Config.filter_title }}{{ .Result.title_filtered }}{{else}}{{ .Result.title_normal }}{{end}}"
      title_multilang:
        text: "{{ .Result.title_phase1 }}"
        filters:
          - name: re_replace
            args: ["[\\.\\s\\[\\-][Mm][Uu][Ll][Tt][Ii][\\.\\s\\]\\-]", ".{{ .Config.multilanguage }}."]
      title:
        text: "{{if .Config.multilang }}{{ .Result.title_multilang }}{{else}}{{ .Result.title_phase1 }}{{end}}"
      details:
        selector: ":nth-child(2) > a"
        attribute: href
      category:
        selector: ":nth-child(2) > a"
        case:
          "a[href*=\"/filmvidéo/animation/\"]" : 2178
          "a[href*=\"/filmvidéo/animation-série/\"]" : 2179
          "a[href*=\"/filmvidéo/concert/\"]" : 2180
          "a[href*=\"/filmvidéo/documentaire/\"]" : 2181
          "a[href*=\"/filmvidéo/emission-tv/\"]" : 2182
          "a[href*=\"/filmvidéo/film/\"]" : 2183
          "a[href*=\"/filmvidéo/série-tv/\"]" : 2184
          "a[href*=\"/filmvidéo/spectacle/\"]" : 2185
          "a[href*=\"/filmvidéo/sport/\"]" : 2186
          "a[href*=\"/filmvidéo/vidéo-clips/\"]" : 2187
          "a[href*=\"/audio/karaoké/\"]" : 2147
          "a[href*=\"/audio/musique/\"]" : 2148
          "a[href*=\"/audio/podcast-radio/\"]" : 2150
          "a[href*=\"/audio/samples/\"]" : 2149
          "a[href*=\"/application/autre/\"]" : 2177
          "a[href*=\"/application/formation/\"]" : 2176
          "a[href*=\"/application/linux/\"]" : 2171
          "a[href*=\"/application/macos/\"]" : 2172
          "a[href*=\"/application/smartphone/\"]" : 2174
          "a[href*=\"/application/tablette/\"]" : 2175
          "a[href*=\"/application/windows/\"]" : 2173
          "a[href*=\"/jeu-vidéo/autre/\"]" : 2167
          "a[href*=\"/jeu-vidéo/linux/\"]" : 2159
          "a[href*=\"/jeu-vidéo/macos/\"]" : 2160
          "a[href*=\"/jeu-vidéo/microsoft/\"]" : 2162
          "a[href*=\"/jeu-vidéo/nintendo/\"]" : 2163
          "a[href*=\"/jeu-vidéo/smartphone/\"]" : 2165
          "a[href*=\"/jeu-vidéo/sony/\"]" : 2164
          "a[href*=\"/jeu-vidéo/tablette/\"]" : 2166
          "a[href*=\"/jeu-vidéo/windows/\"]" : 2161
          "a[href*=\"/ebook/audio/\"]" : 2151
          "a[href*=\"/ebook/bds/\"]" : 2152
          "a[href*=\"/ebook/comics/\"]" : 2153
          "a[href*=\"/ebook/livres/\"]" : 2154
          "a[href*=\"/ebook/mangas/\"]" : 2155
          "a[href*=\"/ebook/presse/\"]" : 2156
          "a[href*=\"/emulation/emulateurs/\"]" : 2157
          "a[href*=\"/emulation/roms/\"]" : 2158
          "a[href*=\"/gps/applications/\"]" : 2168
          "a[href*=\"/gps/cartes/\"]" : 2169
          "a[href*=\"/gps/divers/\"]" : 2170
          "a[href*=\"/xxx/films/\"]" : 2189
          "a[href*=\"/xxx/hentai/\"]" : 2190
          "a[href*=\"/xxx/images/\"]" : 2191
      comments:
        optional: true
        selector: "td:nth-child(1) > a[href$=\"#comments\"]"
        attribute: href
      download:
        text: "/engine/download_torrent?id={{ .Result._id }}"
      date:
        selector: "td:nth-child(5)"
        filters:
          - name: replace
            args: ["il y a ", ""]
          - name: replace
            args: [ " jours", " days"]
          - name: replace
            args: [ " jour", " day"]
          - name: replace
            args: [ " heures", " hours"]
          - name: replace
            args: [ " heure", " hour"]
          - name: replace
            args: [ " semaines", " weeks"]
          - name: replace
            args: [ " semaine", " week"]
          - name: replace
            args: [ " mois", " month"]
          - name: replace
            args: [ " ans", " years"]
          - name: replace
            args: [ " an", " year"]
          - name: append
            args: " ago"
      size:
        selector: "td:nth-child(6)"
        filters:
          - name: replace
            args: ["o", "B"]
      grabs:
        selector: "td:nth-child(7)"
      seeders:
        text: 0
      seeders:
        selector: "td:nth-child(8)"
        optional: true
      leechers:
        text: 0
      leechers:
        selector: "td:nth-child(*)"
        optional: true
      downloadvolumefactor:
        text: "1"
      uploadvolumefactor:
        text: "1"
