diff --git a/README.md b/README.md
index 2f486b836..d95c311d0 100644
--- a/README.md
+++ b/README.md
@@ -544,6 +544,7 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
* TeamOS
* TEKNO3D [![(invite needed)][inviteneeded]](#)
* teracod (Movie Zone)
+ * The Crazy Ones
* The Falling Angels (TFA)
* The Geeks
* The New Retro
diff --git a/src/Jackett.Common/Definitions/thecrazyones.yml b/src/Jackett.Common/Definitions/thecrazyones.yml
new file mode 100644
index 000000000..0d1a0052e
--- /dev/null
+++ b/src/Jackett.Common/Definitions/thecrazyones.yml
@@ -0,0 +1,213 @@
+---
+id: thecrazyones
+name: The Crazy Ones
+description: "The Crazy Ones is a Private GERMAN tracker for MOVIES / TV / GENERAL"
+language: de-DE
+type: private
+encoding: UTF-8
+links:
+ - https://thecrazyones.hopto.org/
+
+caps:
+ categorymappings:
+ # Anime
+ - {id: 123, cat: TV/Anime, desc: "Anime Alles"}
+ # Movie
+ - {id: 122, cat: Movies/UHD, desc: "Movie 4K"}
+ - {id: 114, cat: Movies/DVD, desc: "Movie DVD"}
+ - {id: 118, cat: Movies, desc: "Movie Klassiker"}
+ - {id: 124, cat: Movies, desc: "Movie Pack"}
+ - {id: 28, cat: Movies/SD, desc: "Movie SD"}
+ - {id: 32, cat: Movies/HD, desc: "Movie HD"}
+ - {id: 26, cat: Movies/3D, desc: "Movie 3D"}
+ # Serien
+ - {id: 139, cat: TV/HD, desc: "Serien HD"}
+ - {id: 57, cat: TV/SD, desc: "Serien SD"}
+ - {id: 60, cat: TV, desc: "Serien Klassiker"}
+ - {id: 152, cat: TV/SD, desc: "Serien DVD"}
+ - {id: 59, cat: TV, desc: "Serien Pack"}
+ # Doku
+ - {id: 121, cat: TV/Documentary, desc: "Doku Pack"}
+ - {id: 14, cat: TV/Documentary, desc: "Doku HD"}
+ - {id: 15, cat: TV/Documentary, desc: "Doku SD"}
+ # Software
+ - {id: 11, cat: PC/Other, desc: "App Other"}
+ - {id: 9, cat: PC, desc: "App Linux"}
+ - {id: 12, cat: PC/0day, desc: "App Win"}
+ - {id: 10, cat: PC/Mac, desc: "App Mac"}
+ # Game
+ - {id: 120, cat: Console/PS3, desc: "Game PlayStation"}
+ - {id: 16, cat: Console, desc: "Game Wimmelbild"}
+ - {id: 17, cat: PC/Games, desc: "Game PC"}
+ - {id: 20, cat: Console/PSP, desc: "Game PSP"}
+ - {id: 22, cat: Console/Wii, desc: "Game Wii"}
+ - {id: 24, cat: Console/XBox, desc: "Game XBOX"}
+ # Music
+ - {id: 48, cat: Audio, desc: "Music Album"}
+ - {id: 52, cat: Audio, desc: "Music Pack"}
+ - {id: 55, cat: Audio/Video, desc: "Music Video"}
+ - {id: 125, cat: Audio, desc: "Music Mixe"}
+ - {id: 49, cat: Audio, desc: "Charts"}
+ - {id: 54, cat: Audio, desc: "Music Pack"}
+ - {id: 126, cat: Audio, desc: "Pack mp"}
+ # Sport
+ - {id: 61, cat: TV/Sport, desc: "Sport Other"}
+ # Sonstiges
+ - {id: 63, cat: Audio/Audiobook, desc: "Sonstiges A-Book"}
+ - {id: 96, cat: Books/EBook, desc: "Sonstiges E-Book"}
+ - {id: 69, cat: Books, desc: "Sonstiges Tutorial"}
+ - {id: 71, cat: Books/Other, desc: "Sonstiges Other"}
+ # Internt'l
+ - {id: 102, cat: TV/SD, desc: "Internt'l Serie SD"}
+ - {id: 103, cat: Movies/SD, desc: "Internt'l Movie SD"}
+ - {id: 106, cat: Books/EBook, desc: "Internt'l E-Book"}
+ - {id: 115, cat: Movies/DVD, desc: "Internt'l DVD"}
+ - {id: 98, cat: Movies/HD, desc: "Internt'l Movie HD"}
+ - {id: 99, cat: TV/HD, desc: "Internt'l Serie HD"}
+ - {id: 105, cat: TV/Documentary, desc: "Internt'l Doku"}
+ - {id: 104, cat: TV/Documentary, desc: "Internt'l Misc"}
+ - {id: 107, cat: Audio/Audiobook, desc: "Internt'l A-Book"}
+ # XXX
+ - {id: 75, cat: XXX/Pack, desc: "XXX Pack"}
+ - {id: 113, cat: XXX/DVD, desc: "XXX DVD"}
+ - {id: 73, cat: XXX/x264, desc: "XXX HD"}
+ - {id: 76, cat: XXX/SD, desc: "XXX SD"}
+
+ modes:
+ search: [q]
+ tv-search: [q, season, ep]
+ movie-search: [q]
+ music-search: [q]
+ book-search: [q]
+
+settings:
+ - name: username
+ type: text
+ label: Username
+ - name: password
+ type: password
+ label: Password
+ - name: pin
+ type: text
+ label: Pin
+ - name: freeleech
+ type: checkbox
+ label: Filter freeleech only
+ default: false
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: added
+ options:
+ added: created
+ seeds: seeders
+ size: size
+ name: title
+ - name: type
+ type: select
+ label: Order requested from site
+ default: desc
+ options:
+ desc: desc
+ asc: asc
+ - name: info_tpp
+ type: info
+ label: Results Per Page
+ default: For best results, change the Anzahl der Torrents beim Durchsuchen Torrents per page: setting to 60 on your account profile. The default is 15.
+
+login:
+ path: login.php
+ method: form
+ form: form[action="/login.php"]
+ cookies: ["JAVA=OK"] # avoid jscheck redirect
+ inputs:
+ username: "{{ .Config.username }}"
+ password: "{{ .Config.password }}"
+ pin: "{{ .Config.pin }}"
+ error:
+ - selector: div#login_error
+ test:
+ path: index.php
+ selector: a[href="logout.php"]
+
+search:
+ paths:
+ - path: selection.php
+ inputs:
+ $raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
+ search: "{{ .Keywords }}"
+ # 0 name, 1 descr, 2 both
+ blah: 0
+ orderby: "{{ .Config.sort }}"
+ sort: "{{ .Config.type }}"
+
+ rows:
+ selector: "div.selection_wrap{{ if .Config.freeleech }}:has(:root:has(div.onlyup)){{ else }}{{ end }}"
+
+ fields:
+ category_p1:
+ selector: div.kat_cat_pic_name
+ category_p2:
+ selector: div.kat_cat_pic_name_b
+ categorydesc:
+ text: "{{ .Result.category_p1 }} {{ .Result.category_p2 }}"
+ title:
+ selector: a.selection_a
+ filters:
+ - name: re_replace
+ args: ["^\\[[\\w ]*\\]\\s?", ""]
+ details:
+ selector: a.selection_a
+ attribute: href
+ download:
+ selector: a[href^="download_ssl.php?torrent="]
+ attribute: href
+ poster:
+ selector: div[id^="details"] img
+ attribute: src
+ size:
+ selector: div.selection_unter_ad
+ grabs:
+ selector: div.selection_unter_ae
+ date_day:
+ # Heute 13:30:04
+ # Gestern 09:10:10
+ selector: div.selection_unter_ab:not(:contains("."))
+ optional: true
+ filters:
+ - name: replace
+ args: ["Heute", "Today"]
+ - name: replace
+ args: ["Gestern", "Yesterday"]
+ - name: append
+ args: " +01:00" # CET
+ date_year:
+ # 30.02.2018 um 23:12:50
+ selector: div.selection_unter_ab:contains(".")
+ optional: true
+ filters:
+ - name: replace
+ args: [" um", ""]
+ - name: append
+ args: " +01:00" # CET
+ - name: dateparse
+ args: "dd.MM.yyyy HH:mm:ss zzz"
+ date:
+ text: "{{ if or .Result.date_year .Result.date_day }}{{ or .Result.date_year .Result.date_day }}{{ else }}now{{ end }}"
+ seeders:
+ selector: div.selection_unter_aa
+ leechers:
+ selector: div.selection_unter_aaa
+ downloadvolumefactor:
+ case:
+ ":root:has(div.onlyup)": 0
+ "*": 1
+ uploadvolumefactor:
+ text: 1
+# global MR is 0.7 but torrents must be seeded for 2 days regardless of ratio
+# minimumratio:
+# text: 0.7
+ minimumseedtime:
+ # 2 days (as seconds = 2 x 24 x 60 x 60)
+ text: 172800
+# 3xT