---
id: funkytorrents
name: FunkyTorrents
description: "FunkyTorrents (FT) is a Private Torrent Tracker for MUSIC"
language: en-US
type: private
encoding: UTF-8
links:
  - https://funkytorrents.com/
legacylinks:
  - http://funkytorrents.com/

caps:
  categorymappings:
    - {id: 1, cat: PC/0day, desc: "Apps"}
    - {id: 2, cat: Books/EBook, desc: "eBooks"}
    - {id: 3, cat: Movies, desc: "Movie"}
    - {id: 33, cat: Audio/Video, desc: "Music DVDs"}
    - {id: 5, cat: Audio/Video, desc: "Music Vids"}
    - {id: 4, cat: Audio, desc: "OST"}
    - {id: 19, cat: Audio, desc: "Music Alternative"}
    - {id: 28, cat: Audio, desc: "Music Ambient"}
    - {id: 12, cat: Audio, desc: "Music Classical"}
    - {id: 17, cat: Audio, desc: "Music Dance"}
    - {id: 16, cat: Audio, desc: "Music Drum 'n' Bass"}
    - {id: 20, cat: Audio, desc: "Music Electronic"}
    - {id: 14, cat: Audio, desc: "Music Emo"}
    - {id: 23, cat: Audio, desc: "Music Experimental"}
    - {id: 34, cat: Audio, desc: "Music Funk"}
    - {id: 18, cat: Audio, desc: "Music Hardcore"}
    - {id: 13, cat: Audio, desc: "Music House"}
    - {id: 31, cat: Audio, desc: "Music IDM"}
    - {id: 21, cat: Audio, desc: "Music Indie"}
    - {id: 26, cat: Audio, desc: "Music Industrial"}
    - {id: 25, cat: Audio, desc: "Music Jazz/Blues/Soul"}
    - {id: 37, cat: Audio, desc: "Music Lo-Fi"}
    - {id: 6, cat: Audio, desc: "Music Metal"}
    - {id: 22, cat: Audio, desc: "Music Misc"}
    - {id: 7, cat: Audio, desc: "Music Pop/RnB"}
    - {id: 29, cat: Audio, desc: "Music Post-Rock"}
    - {id: 30, cat: Audio, desc: "Music Psychedelic"}
    - {id: 8, cat: Audio, desc: "Music Punk"}
    - {id: 9, cat: Audio, desc: "Music Rap/Hip-Hop"}
    - {id: 35, cat: Audio, desc: "Music Reggae"}
    - {id: 10, cat: Audio, desc: "Music Rock"}
    - {id: 15, cat: Audio, desc: "Music Ska"}
    - {id: 32, cat: Audio, desc: "Music Techno"}
    - {id: 11, cat: Audio, desc: "Music Trance"}
    - {id: 36, cat: Audio, desc: "Music Trip-Hop"}
    - {id: 24, cat: Audio, desc: "Music World/Ethnic"}
    - {id: 3010, cat: Audio/MP3, desc: "Music MP3"}
    - {id: 3040, cat: Audio/Lossless, desc: "Music Lossless"}

  modes:
    search: [q]
    movie-search: [q]
    music-search: [q, artist]
    book-search: [q]

settings:
  - name: username
    type: text
    label: Username
  - name: password
    type: password
    label: Password
  - name: freeleech
    type: checkbox
    label: Search freeleech only
    default: false
  - name: info_activity
    type: info
    label: Account Inactivity
    default: "Inactive users will be removed in 180 days, users that haven't downloaded/uploaded anything will be removed in 90 days after registration. You can park your account in your Profile to prevent it from being deleted because of inactivity if you go away on for example a vacation. When the account has been parked limits are put on the account, for example you cannot use the tracker and browse some of the pages."

login:
  path: takelogin.php
  method: post
  inputs:
    username: "{{ .Config.username }}"
    password: "{{ .Config.password }}"
  error:
    - selector: td.embedded:has(h2:contains("failed"))
  test:
    path: /
    selector: a[href="logout.php"]

search:
  paths:
    - path: browse.php
  inputs:
    # cat search doesn't work if our custom MP3 and Lossless cats are selected
    # $raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
    cat: 0
    search: "{{ if .Query.Artist }}{{ .Query.Artist }}{{ else }}{{ .Keywords }}{{ end }}"
    # 0 active, 1 incldead, 2 dead
    incldead: 1
    # 0 all, 1 not documented, 2 free
    free: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"

  rows:
    selector: table.mainouter > tbody > tr > td.outer > table > tbody > tr.mouse_out

  fields:
    description:
      selector: td:nth-child(2) > font
    title:
      selector: td:nth-child(2)
      remove: font
    details:
      selector: a[href^="details.php?id="]
      attribute: href
    category:
      selector: a[href^="browse.php?cat="]
      attribute: href
      filters:
        - name: querystring
          args: cat
    category|append:
      optional: true
      case:
        a[href="/browse.php?ext=1&bitrate=Lossless"]: 3040
        a[href="/browse.php?ext=1&format=MP3"]: 3010
    download:
      selector: a[href^="download.php"]
      attribute: href
    files:
      selector: td:nth-child(5)
    date:
      selector: td:nth-child(7)
      filters:
        - name: append
          args: " +00:00" # GMT
        - name: dateparse
          args: "yyyy-MM-ddHH:mm:ss zzz"
    size:
      selector: td:nth-child(8)
    grabs:
      selector: td:nth-child(9)
    seeders:
      selector: td:nth-child(10)
    leechers:
      selector: td:nth-child(11)
    downloadvolumefactor:
      case:
        img[alt="Free Leech"]: 0
        "*": 1
    uploadvolumefactor:
      text: 1
    minimumratio:
      text: 0.6
# engine tbd
