diff --git a/README.md b/README.md
index fe6c11ab0..d6351d7a4 100644
--- a/README.md
+++ b/README.md
@@ -573,6 +573,7 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
* UnlimitZ
* Vizuk
* WDT (Wrestling Desires Torrents / Ultimate Wrestling Torrents)
+ * White Angel
* wOOt [![(invite needed)][inviteneeded]](#)
* World-In-HD
* x-ite.me (XM)
diff --git a/src/Jackett.Common/Definitions/whiteangel.yml b/src/Jackett.Common/Definitions/whiteangel.yml
new file mode 100644
index 000000000..3aad76831
--- /dev/null
+++ b/src/Jackett.Common/Definitions/whiteangel.yml
@@ -0,0 +1,178 @@
+---
+id: whiteangel
+name: White Angel
+description: "White Angel is a HUNGARIAN Private Tracker for MOVIES / TV"
+language: hu-HU
+type: private
+encoding: ISO-8859-2
+links:
+ - https://white-angel.hu/
+
+caps:
+ categorymappings:
+ - {id: 39, cat: Books/EBook, desc: "E-book"}
+ - {id: 53, cat: XXX, desc: "Film (XXX)"}
+ - {id: 72, cat: TV/Anime, desc: "Film (Animáció)"}
+ - {id: 44, cat: Movies/SD, desc: "Film (Cam Hun)"}
+ - {id: 40, cat: Movies/DVD, desc: "Film (DVD Eng)"}
+ - {id: 41, cat: Movies/DVD, desc: "Film (DVD Hun)"}
+ - {id: 57, cat: Movies/HD, desc: "Film (HD Eng)"}
+ - {id: 38, cat: Movies/HD, desc: "Film (HD Hun)"}
+ - {id: 42, cat: Movies/SD, desc: "Film (Xvid Eng)"}
+ - {id: 73, cat: Movies/SD, desc: "Film (Xvid Eng-Hun)"}
+ - {id: 43, cat: Movies/SD, desc: "Film (Xvid Hun)"}
+ - {id: 69, cat: XXX/x264, desc: "Film (XXX HD)"}
+ - {id: 63, cat: Movies/SD, desc: "Film (Cam Eng)"}
+ - {id: 71, cat: Audio/Audiobook, desc: "Hangos könyv"}
+ - {id: 45, cat: PC/Games, desc: "Játék ISO"}
+ - {id: 46, cat: Console/PS3, desc: "Játék Ps2"}
+ - {id: 66, cat: PC/Games, desc: "Játék Rip"}
+ - {id: 47, cat: Console/XBox, desc: "Játék Xbox"}
+ - {id: 70, cat: XXX/Other, desc: "Játék XXX"}
+ - {id: 48, cat: Other, desc: "Képek"}
+ - {id: 65, cat: TV/Anime, desc: "Mese Eng"}
+ - {id: 49, cat: TV/Anime, desc: "Mese Hun"}
+ - {id: 50, cat: PC/Mobile-Other, desc: "Mobil"}
+ - {id: 52, cat: TV, desc: "Sorozat (Hun Xvid)"}
+ - {id: 59, cat: TV, desc: "Sorozat (Xvid Eng)"}
+ - {id: 68, cat: PC/ISO, desc: "Win/Program/ISO"}
+ - {id: 51, cat: PC/0day, desc: "Win/Program/Rip"}
+ - {id: 54, cat: XXX/ImageSet, desc: "XXX/Kép"}
+ - {id: 55, cat: Audio, desc: "Zene/Eng"}
+ - {id: 56, cat: Audio, desc: "Zene/Hun"}
+
+ modes:
+ search: [q]
+ tv-search: [q, season, ep, imdbid]
+ movie-search: [q, imdbid]
+ book-search: [q]
+ music-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: sort
+ type: select
+ label: Sort requested from site
+ default: 4
+ options:
+ 1: title
+ 4: added
+ 5: size
+ 7: seeders
+ - 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 Torrentek száma egy oldalon: setting to 100 on your account profile.
+
+login:
+ path: takelogin.php
+ method: post
+ inputs:
+ username: "{{ .Config.username }}"
+ password: "{{ .Config.password }}"
+ error:
+ - selector: table:contains("bejelentkezés nem sikerült")
+ test:
+ path: index.php
+ selector: a[href^="logout.php?k="]
+
+search:
+ paths:
+ - path: browse.php
+ inputs:
+ $raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
+ search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}" # for dashboard imdbid search
+ # 0 active, 1 all, 2 deadonly, 3 freeleech, 4 x2, 5 myuploads, 6 requests, 7 seedbox
+ incldead: "{{ if .Config.freeleech }}3{{ else }}1{{ end }}"
+ sort: "{{ .Config.sort }}"
+ type: "{{ .Config.type }}"
+
+ rows:
+ selector: table[cellpadding="5"] tbody tr:has(a[href^="download.php?torrent="])
+
+ fields:
+ category:
+ selector: a[href^="browse.php?cat="]
+ attribute: href
+ filters:
+ - name: querystring
+ args: cat
+ title_default:
+ # can be abbreviated
+ selector: a[href^="javascript:torrent"] b
+ title_optional:
+ # usually full length
+ selector: a[href^="javascript:torrent"]
+ attribute: title
+ optional: true
+ title:
+ text: "{{ if .Result.title_optional }}{{ .Result.title_optional }}{{ else }}{{ .Result.title_default }}{{ end }}"
+ id:
+ selector: a[href^="javascript:torrent"]
+ attribute: href
+ filters:
+ - name: regexp
+ args: (\d+)
+ details:
+ text: "details.php?id={{ .Result.id }}"
+ poster:
+ selector: a[onmouseover]
+ attribute: onmouseover
+ filters:
+ - name: regexp
+ args: "src=(.*?) "
+ - name: prepend
+ args: "https:"
+ download:
+ selector: a[href^="download.php?torrent="]
+ attribute: href
+ imdbid:
+ selector: a[href*="imdb.com/title/tt"]
+ attribute: href
+ date:
+ selector: td:nth-last-child(5)
+ filters:
+ - name: append
+ args: " +01:00" # CET
+ - name: replace
+ args: ["\xA0", " "]
+ - name: dateparse
+ args: "2006-01-02 15:04:05 -07:00"
+ size:
+ selector: td:nth-last-child(4)
+ grabs:
+ selector: td:nth-last-child(3)
+ seeders:
+ selector: td:nth-last-child(2)
+ leechers:
+ selector: td:last-child
+ downloadvolumefactor:
+ case:
+ img[src="pic/ingyen.gif"]: 0
+ "*": 1
+ uploadvolumefactor:
+ case:
+ "font:contains(\"[x2]\")": 2
+ "*": 1
+ minimumratio:
+ text: 1.0
+ minimumseedtime:
+ # 1 day (as seconds = 1 x 24 x 60 x 60)
+ text: 86400
+# engine n/a