Repository: Jackett/Jackett
Pull request #15887: feat(matrix): Add Matrix Hungarian private tracker
Author: login: rpatterson
Created: 2025-03-04T16:47:29Z | Merged: 2025-03-05T05:12:00Z

#### Description

This is my first new indexer definition. This tracker has no explicit software type attribution in the footer nor elsewhere in the `/browse.php` page source. The only software type reference I can find is `<script
src="https://matrixworld.info/js/tbdev_hun.js"></script>`, so TBDev is my best guess.  I started with a few of the most recently added and modified definitions tagged with `# TBDev...` at the bottom and copied one.

I modified it as seemed most correct supplemented with [the Prowlarr Cardigann YML Definition docs](https://wiki.servarr.com/en/prowlarr/cardigann-yml-definition) and various `$ git grep ...` searches for relevant bits. For things like the categories and sort fields, I copied the relevant HTML from the indexer web UI and transformed it with editor tools into the corresponding indexer definition YAML, so they should be complete.

Finally, I tested the new definition in the Prowlarr UI:

- the edit form looks correct and saves successfully
- the view indexer modal looks correct and the indexer web UI link works
- searching with an empty query yields the same 100 results as the indexer web UI:
  - I found different examples for each of the fields/columns to demonstrate each is extracting real data
  - the details link works
  - the grab button works and adds the torrent to the client
  - the search XHR response JSON also looks correct and as complete as I can make it from the indexer HTML
- searching with a simple query returns the same result as in the indexer's web UI
- searching by a category also looks correct

I can't think of anything else to test, but LMK if there's more. I'd like to get this as correct as I reasonably can to save time on the indexer definition PRs I intend to be submitting next.



Diff:
diff --git a/README.md b/README.md
index 16ec6fbb282fc..8625157bf75a6 100644
--- a/README.md
+++ b/README.md
@@ -449,6 +449,7 @@ Prior versions of Jackett are no longer supported.
  * Making Off
  * Mansão dos Animes (MDAN)
  * Malayabits
+ * Matrix
  * MegamixTracker
  * MeseVilág (Fairytale World)
  * MetalGuru [![(invite needed)][inviteneeded]](#)
diff --git a/src/Jackett.Common/Definitions/matrix.yml b/src/Jackett.Common/Definitions/matrix.yml
new file mode 100644
index 0000000000000..a55780472852e
--- /dev/null
+++ b/src/Jackett.Common/Definitions/matrix.yml
@@ -0,0 +1,189 @@
+---
+id: matrix
+name: Matrix
+description: "M.A.T.R.I.X is a HUNGARIAN Private Tracker for MOVIES / TV / GENERAL"
+language: hu-HU
+type: private
+encoding: UTF-8
+links:
+  - https://matrixworld.info/
+
+caps:
+  categorymappings:
+    - {id: 23, cat: Movies/Other, desc: "Animációk"}
+    - {id: 61, cat: Movies/Other, desc: "Cam/EN"}
+    - {id: 60, cat: Movies/Other, desc: "Cam/HU"}
+    - {id: 45, cat: Books/EBook, desc: "eBook/EN"}
+    - {id: 40, cat: Books/EBook, desc: "eBook/HU"}
+    - {id: 20, cat: Movies/DVD, desc: "Film/DVD9"}
+    - {id: 48, cat: Movies/HD, desc: "Film/EN/1080p"}
+    - {id: 32, cat: Movies/HD, desc: "Film/EN/720p"}
+    - {id: 38, cat: Movies/BluRay, desc: "Film/EN/Blu-ray"}
+    - {id: 27, cat: Movies/DVD, desc: "Film/EN/DVD-R"}
+    - {id: 24, cat: Movies/SD, desc: "Film/EN/SD"}
+    - {id: 34, cat: Movies/HD, desc: "Film/HU/1080p"}
+    - {id: 31, cat: Movies/HD, desc: "Film/HU/720p"}
+    - {id: 35, cat: Movies/BluRay, desc: "Film/HU/Blu-ray"}
+    - {id: 26, cat: Movies/DVD, desc: "Film/HU/DVD-R"}
+    - {id: 5, cat: Movies/SD, desc: "Film/HU/SD"}
+    - {id: 4, cat: PC/Games, desc: "Játékok/ISO"}
+    - {id: 39, cat: PC/Games, desc: "Játékok/Rip/Dox"}
+    - {id: 47, cat: Other, desc: "Klippek"}
+    - {id: 30, cat: Audio/Lossless, desc: "Lossless/EN"}
+    - {id: 29, cat: Audio/Lossless, desc: "Lossless/HU"}
+    - {id: 25, cat: Audio/MP3, desc: "MP3/EN"}
+    - {id: 6, cat: Audio/MP3, desc: "MP3/HU"}
+    - {id: 33, cat: PC, desc: "Program/egyéb"}
+    - {id: 1, cat: PC/ISO, desc: "Program/ISO"}
+    - {id: 36, cat: TV/HD, desc: "Sorozat/EN/HD"}
+    - {id: 49, cat: TV/SD, desc: "Sorozat/EN/SD"}
+    - {id: 28, cat: TV/HD, desc: "Sorozat/HU/HD"}
+    - {id: 7, cat: TV/SD, desc: "Sorozat/HU/SD"}
+    - {id: 9, cat: XXX, desc: "XXX"}
+    - {id: 44, cat: XXX/x264, desc: "XXX/HD"}
+    - {id: 43, cat: XXX/SD, desc: "XXX/SD"}
+
+  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: Filter freeleech only
+    default: false
+  - name: sort
+    type: select
+    label: Sort requested from site
+    default: 0
+    options:
+      0: created
+      1: title
+      4: size
+      6: 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 <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
+  - name: info_activity
+    type: info
+    label: Account Inactivity
+    default: "If you do not log in to the site for 6 months, the system will automatically delete it!"
+
+login:
+  path: takelogin.php
+  method: post
+  inputs:
+    username: "{{ .Config.username }}"
+    password: "{{ .Config.password }}"
+    logout: ""
+  error:
+    - selector: td.embedded:contains("Sikertelen bejelentkezés")
+  test:
+    path: /
+    selector: a[href$="logout.php"]
+
+search:
+  paths:
+    - path: browse.php
+  inputs:
+    $raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
+    search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
+    # 0 active only, 1 include dead, 2 only dead
+    incldead: 1
+    sort: "{{ .Config.sort }}"
+    type: "{{ .Config.type }}"
+
+  rows:
+    selector: "table.mainouter > tbody > tr > td > table tr:has(a[href^=\"download.php?id=\"]){{ if .Config.freeleech }}:has(img[src$=\"/pic/ingyentorrent.gif\"]){{ else }}{{ end }}"
+
+  fields:
+    category:
+      selector: a[href^="browse.php?cat="]
+      attribute: href
+      filters:
+        - name: querystring
+          args: cat
+    title:
+      # titles can be abbreviated so using the name from DL
+      selector: a[href^="download.php?id="]
+      attribute: href
+      filters:
+        - name: querystring
+          args: name
+        - name: replace
+          args: [".torrent", ""]
+    details:
+      selector: a[href^="details.php?id="]
+      attribute: href
+      filters:
+        - name: re_replace
+          args: ["&hit=1.+", ""]
+    download:
+      selector: a[href^="download.php?id="]
+      attribute: href
+    poster:
+      selector: a.torrent-link
+      attribute: data-cover
+    imdbid:
+      selector: a[href*="imdb.com/title/tt"]
+      attribute: href
+    files:
+      selector: td:nth-child(5) a
+    date:
+      selector: td:contains("Feltöltve:")
+      filters:
+        - name: regexp
+          args: "Feltöltve: (.+?)(\\(|$)"
+        - name: append
+          args: " +01:00" # CET
+        - name: dateparse
+          args: "yyyy-MM-dd HH:mm:ss zzz"
+    grabs:
+      selector: td:nth-child(7) b
+    size:
+      selector: td:nth-child(7)
+      filters:
+        - name: regexp
+          args: "(.+?B)"
+    seeders:
+      selector: td:nth-child(8)
+    leechers:
+      selector: td:nth-child(9)
+    genre:
+      selector: td:nth-child(2) > div > i > i
+      filters:
+        - name: regexp
+          args: "\\((.+)\\)"
+    description:
+      text: "{{ .Result.genre }}"
+    downloadvolumefactor:
+      case:
+        img[src$="/pic/ingyentorrent.gif"]: 0
+        "*": 1
+    uploadvolumefactor:
+      case:
+        img[src$="/pic/x2.gif"]: 2
+        "*": 1
+    minimumratio:
+      text: 1.0
+    minimumseedtime:
+      # 2 days (as seconds = 2 x 24 x 60 x 60)
+      text: 172800
+# TBDev


Reviews:
user: login: garfield69
body: Thank you for your contribution.
I will work my way through your indexer suggesting updates to bring it in line with our common standards, and correct coding issues (since its clear you have not tested this)
It may take several passes, as I test the indexer and check all options after you commit ;-)
state: CHANGES_REQUESTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-04T20:16:07Z
user: login: rpatterson
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-04T20:28:49Z
user: login: rpatterson
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-04T20:31:24Z
user: login: rpatterson
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-04T20:32:43Z
user: login: rpatterson
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-04T20:34:57Z
user: login: rpatterson
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-04T20:36:17Z
user: login: rpatterson
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-04T20:40:32Z
user: login: rpatterson
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-04T20:42:46Z
user: login: rpatterson
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-04T20:45:00Z
user: login: rpatterson
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-04T20:45:53Z
user: login: rpatterson
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-04T20:48:11Z
user: login: garfield69
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-04T21:02:45Z
user: login: rpatterson
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-04T21:15:25Z
user: login: garfield69
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-04T21:17:16Z
user: login: garfield69
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-04T21:23:10Z
user: login: rpatterson
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-04T21:25:31Z
user: login: rpatterson
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-04T21:27:41Z
user: login: garfield69
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-04T21:30:06Z
user: login: ilike2burnthing
body: Few minor additions/changes. Will actually test shortly.
state: CHANGES_REQUESTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-04T23:13:01Z
user: login: rpatterson
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-04T23:21:15Z
user: login: rpatterson
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-04T23:22:52Z
user: login: rpatterson
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-04T23:24:51Z
user: login: ilike2burnthing
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-04T23:36:52Z
user: login: rpatterson
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-04T23:38:53Z
user: login: rpatterson
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-04T23:40:13Z
user: login: ilike2burnthing
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-04T23:47:15Z
user: login: rpatterson
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-04T23:48:59Z
user: login: ilike2burnthing
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-05T00:33:47Z
user: login: rpatterson
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-05T00:35:38Z
user: login: rpatterson
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-05T00:36:54Z
user: login: ilike2burnthing
body: Ok, actual last two! 😛 
state: CHANGES_REQUESTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-05T01:23:58Z
user: login: ilike2burnthing
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-05T01:29:09Z
user: login: rpatterson
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-05T01:30:40Z
user: login: rpatterson
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-05T01:35:44Z
user: login: rpatterson
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-05T01:37:42Z
user: login: ilike2burnthing
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-05T01:41:13Z
user: login: ilike2burnthing
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-05T01:43:50Z
user: login: rpatterson
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-05T01:46:26Z
user: login: ilike2burnthing
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-05T01:47:38Z
user: login: rpatterson
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-05T01:51:56Z
user: login: rpatterson
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-05T01:55:23Z
user: login: ilike2burnthing
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-05T02:00:40Z
user: login: rpatterson
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-05T02:05:21Z
user: login: ilike2burnthing
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-05T02:26:24Z
user: login: ilike2burnthing
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-05T02:40:09Z
user: login: garfield69
state: APPROVED
author_association: CONTRIBUTOR
submitted_at: 2025-03-05T05:11:07Z
user: login: rpatterson
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-05T22:05:00Z
user: login: rpatterson
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-05T22:08:17Z

Review comments:
diff_hunk: @@ -88,6 +88,7 @@ Prior versions of Jackett are no longer supported.
  * LinuxTracker
  * Mac Torrents Download
  * Magnet Cat
+ * Matrix
path: README.md
user: login: garfield69
body: Please move this to the private section in the readme.
created_at: 2025-03-04T19:06:44Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,180 @@
+---
+id: matrix
+name: Matrix
+description: "M.A.T.R.I.X is a Hungarian Private Tracker for MOVIES / TV / GENERAL"
+language: hu-HU
+type: private
+encoding: UTF-8
+links:
+  - https://matrixworld.info/
+
+caps:
+  categorymappings:
+    - {id: 23, cat: Movies/Other, desc: "Animációk"}
+    - {id: 61, cat: Movies/Other, desc: "Cam/EN"}
+    - {id: 60, cat: Movies/Other, desc: "Cam/HU"}
+    - {id: 45, cat: Books/EBook, desc: "eBook/EN"}
+    - {id: 40, cat: Books/EBook, desc: "eBook/HU"}
+    - {id: 20, cat: Movies/DVD, desc: "Film/DVD9"}
+    - {id: 48, cat: Movies/HD, desc: "Film/EN/1080p"}
+    - {id: 32, cat: Movies/HD, desc: "Film/EN/720p"}
+    - {id: 38, cat: Movies/BluRay, desc: "Film/EN/Blu-ray"}
+    - {id: 27, cat: Movies/DVD, desc: "Film/EN/DVD-R"}
+    - {id: 24, cat: Movies/SD, desc: "Film/EN/SD"}
+    - {id: 34, cat: Movies/HD, desc: "Film/HU/1080p"}
+    - {id: 31, cat: Movies/HD, desc: "Film/HU/720p"}
+    - {id: 35, cat: Movies/BluRay, desc: "Film/HU/Blu-ray"}
+    - {id: 26, cat: Movies/DVD, desc: "Film/HU/DVD-R"}
+    - {id: 5, cat: Movies/SD, desc: "Film/HU/SD"}
+    - {id: 4, cat: PC/Games, desc: "Játékok/ISO"}
+    - {id: 39, cat: PC/Games, desc: "Játékok/Rip/Dox"}
+    - {id: 47, cat: Other, desc: "Klippek"}
+    - {id: 30, cat: Audio/Lossless, desc: "Lossless/EN"}
+    - {id: 29, cat: Audio/Lossless, desc: "Lossless/HU"}
+    - {id: 25, cat: Audio/MP3, desc: "MP3/EN"}
+    - {id: 6, cat: Audio/MP3, desc: "MP3/HU"}
+    - {id: 33, cat: PC, desc: "Program/egyéb"}
+    - {id: 1, cat: PC/ISO, desc: "Program/ISO"}
+    - {id: 36, cat: TV/HD, desc: "Sorozat/EN/HD"}
+    - {id: 49, cat: TV/SD, desc: "Sorozat/EN/SD"}
+    - {id: 28, cat: TV/HD, desc: "Sorozat/HU/HD"}
+    - {id: 7, cat: TV/SD, desc: "Sorozat/HU/SD"}
+    - {id: 9, cat: XXX, desc: "XXX"}
+    - {id: 44, cat: XXX/Other, desc: "XXX/HD"}
+    - {id: 43, cat: XXX/SD, desc: "XXX/SD"}
+
+  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: 0
+    options:
+      0: Uploaded
+      1: Name
+      2: Files
+      3: Comments
+      5: DLs
+      6: Seeders
+      7: Leechers
path: src/Jackett.Common/Definitions/matrix.yml
user: login: garfield69
body: ```suggestion
      0: created
      1: title
      4: size
      6: seeders
```
we usually do not bother listing every possible option, just the more commonly used ones, and we keep the naming consistent with our other indexers
created_at: 2025-03-04T19:11:32Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,180 @@
+---
+id: matrix
+name: Matrix
+description: "M.A.T.R.I.X is a Hungarian Private Tracker for MOVIES / TV / GENERAL"
+language: hu-HU
+type: private
+encoding: UTF-8
+links:
+  - https://matrixworld.info/
+
+caps:
+  categorymappings:
+    - {id: 23, cat: Movies/Other, desc: "Animációk"}
+    - {id: 61, cat: Movies/Other, desc: "Cam/EN"}
+    - {id: 60, cat: Movies/Other, desc: "Cam/HU"}
+    - {id: 45, cat: Books/EBook, desc: "eBook/EN"}
+    - {id: 40, cat: Books/EBook, desc: "eBook/HU"}
+    - {id: 20, cat: Movies/DVD, desc: "Film/DVD9"}
+    - {id: 48, cat: Movies/HD, desc: "Film/EN/1080p"}
+    - {id: 32, cat: Movies/HD, desc: "Film/EN/720p"}
+    - {id: 38, cat: Movies/BluRay, desc: "Film/EN/Blu-ray"}
+    - {id: 27, cat: Movies/DVD, desc: "Film/EN/DVD-R"}
+    - {id: 24, cat: Movies/SD, desc: "Film/EN/SD"}
+    - {id: 34, cat: Movies/HD, desc: "Film/HU/1080p"}
+    - {id: 31, cat: Movies/HD, desc: "Film/HU/720p"}
+    - {id: 35, cat: Movies/BluRay, desc: "Film/HU/Blu-ray"}
+    - {id: 26, cat: Movies/DVD, desc: "Film/HU/DVD-R"}
+    - {id: 5, cat: Movies/SD, desc: "Film/HU/SD"}
+    - {id: 4, cat: PC/Games, desc: "Játékok/ISO"}
+    - {id: 39, cat: PC/Games, desc: "Játékok/Rip/Dox"}
+    - {id: 47, cat: Other, desc: "Klippek"}
+    - {id: 30, cat: Audio/Lossless, desc: "Lossless/EN"}
+    - {id: 29, cat: Audio/Lossless, desc: "Lossless/HU"}
+    - {id: 25, cat: Audio/MP3, desc: "MP3/EN"}
+    - {id: 6, cat: Audio/MP3, desc: "MP3/HU"}
+    - {id: 33, cat: PC, desc: "Program/egyéb"}
+    - {id: 1, cat: PC/ISO, desc: "Program/ISO"}
+    - {id: 36, cat: TV/HD, desc: "Sorozat/EN/HD"}
+    - {id: 49, cat: TV/SD, desc: "Sorozat/EN/SD"}
+    - {id: 28, cat: TV/HD, desc: "Sorozat/HU/HD"}
+    - {id: 7, cat: TV/SD, desc: "Sorozat/HU/SD"}
+    - {id: 9, cat: XXX, desc: "XXX"}
+    - {id: 44, cat: XXX/Other, desc: "XXX/HD"}
+    - {id: 43, cat: XXX/SD, desc: "XXX/SD"}
+
+  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: 0
+    options:
+      0: Uploaded
+      1: Name
+      2: Files
+      3: Comments
+      5: DLs
+      6: Seeders
+      7: Leechers
+  - 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 <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
+
+login:
+  path: takelogin.php
+  method: post
+  inputs:
+    username: "{{ .Config.username }}"
+    password: "{{ .Config.password }}"
+  error:
+    - selector: h2:contains("Sikertelen bejelentkezés")
+      message:
+        text: "Error during login. Its likely your username or password is incorrect."
+  test:
+    path: /
+    selector: a[href="logout.php"]
+
+search:
+  paths:
+    - path: browse.php
+  inputs:
+    $raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
+    search: "{{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
+    # 0 active only, 1 include dead
path: src/Jackett.Common/Definitions/matrix.yml
user: login: garfield69
body: ```suggestion
    # 0 active only, 1 include dead, 2 only dead
```
created_at: 2025-03-04T19:12:11Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,180 @@
+---
+id: matrix
+name: Matrix
+description: "M.A.T.R.I.X is a Hungarian Private Tracker for MOVIES / TV / GENERAL"
+language: hu-HU
+type: private
+encoding: UTF-8
+links:
+  - https://matrixworld.info/
+
+caps:
+  categorymappings:
+    - {id: 23, cat: Movies/Other, desc: "Animációk"}
+    - {id: 61, cat: Movies/Other, desc: "Cam/EN"}
+    - {id: 60, cat: Movies/Other, desc: "Cam/HU"}
+    - {id: 45, cat: Books/EBook, desc: "eBook/EN"}
+    - {id: 40, cat: Books/EBook, desc: "eBook/HU"}
+    - {id: 20, cat: Movies/DVD, desc: "Film/DVD9"}
+    - {id: 48, cat: Movies/HD, desc: "Film/EN/1080p"}
+    - {id: 32, cat: Movies/HD, desc: "Film/EN/720p"}
+    - {id: 38, cat: Movies/BluRay, desc: "Film/EN/Blu-ray"}
+    - {id: 27, cat: Movies/DVD, desc: "Film/EN/DVD-R"}
+    - {id: 24, cat: Movies/SD, desc: "Film/EN/SD"}
+    - {id: 34, cat: Movies/HD, desc: "Film/HU/1080p"}
+    - {id: 31, cat: Movies/HD, desc: "Film/HU/720p"}
+    - {id: 35, cat: Movies/BluRay, desc: "Film/HU/Blu-ray"}
+    - {id: 26, cat: Movies/DVD, desc: "Film/HU/DVD-R"}
+    - {id: 5, cat: Movies/SD, desc: "Film/HU/SD"}
+    - {id: 4, cat: PC/Games, desc: "Játékok/ISO"}
+    - {id: 39, cat: PC/Games, desc: "Játékok/Rip/Dox"}
+    - {id: 47, cat: Other, desc: "Klippek"}
+    - {id: 30, cat: Audio/Lossless, desc: "Lossless/EN"}
+    - {id: 29, cat: Audio/Lossless, desc: "Lossless/HU"}
+    - {id: 25, cat: Audio/MP3, desc: "MP3/EN"}
+    - {id: 6, cat: Audio/MP3, desc: "MP3/HU"}
+    - {id: 33, cat: PC, desc: "Program/egyéb"}
+    - {id: 1, cat: PC/ISO, desc: "Program/ISO"}
+    - {id: 36, cat: TV/HD, desc: "Sorozat/EN/HD"}
+    - {id: 49, cat: TV/SD, desc: "Sorozat/EN/SD"}
+    - {id: 28, cat: TV/HD, desc: "Sorozat/HU/HD"}
+    - {id: 7, cat: TV/SD, desc: "Sorozat/HU/SD"}
+    - {id: 9, cat: XXX, desc: "XXX"}
+    - {id: 44, cat: XXX/Other, desc: "XXX/HD"}
+    - {id: 43, cat: XXX/SD, desc: "XXX/SD"}
+
+  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: 0
+    options:
+      0: Uploaded
+      1: Name
+      2: Files
+      3: Comments
+      5: DLs
+      6: Seeders
+      7: Leechers
+  - 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 <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
+
+login:
+  path: takelogin.php
+  method: post
+  inputs:
+    username: "{{ .Config.username }}"
+    password: "{{ .Config.password }}"
+  error:
+    - selector: h2:contains("Sikertelen bejelentkezés")
+      message:
+        text: "Error during login. Its likely your username or password is incorrect."
+  test:
+    path: /
+    selector: a[href="logout.php"]
+
+search:
+  paths:
+    - path: browse.php
+  inputs:
+    $raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
+    search: "{{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
path: src/Jackett.Common/Definitions/matrix.yml
user: login: garfield69
body: ```suggestion
    search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
```
search allows for tt12345678
created_at: 2025-03-04T19:14:00Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,180 @@
+---
+id: matrix
+name: Matrix
+description: "M.A.T.R.I.X is a Hungarian Private Tracker for MOVIES / TV / GENERAL"
+language: hu-HU
+type: private
+encoding: UTF-8
+links:
+  - https://matrixworld.info/
+
+caps:
+  categorymappings:
+    - {id: 23, cat: Movies/Other, desc: "Animációk"}
+    - {id: 61, cat: Movies/Other, desc: "Cam/EN"}
+    - {id: 60, cat: Movies/Other, desc: "Cam/HU"}
+    - {id: 45, cat: Books/EBook, desc: "eBook/EN"}
+    - {id: 40, cat: Books/EBook, desc: "eBook/HU"}
+    - {id: 20, cat: Movies/DVD, desc: "Film/DVD9"}
+    - {id: 48, cat: Movies/HD, desc: "Film/EN/1080p"}
+    - {id: 32, cat: Movies/HD, desc: "Film/EN/720p"}
+    - {id: 38, cat: Movies/BluRay, desc: "Film/EN/Blu-ray"}
+    - {id: 27, cat: Movies/DVD, desc: "Film/EN/DVD-R"}
+    - {id: 24, cat: Movies/SD, desc: "Film/EN/SD"}
+    - {id: 34, cat: Movies/HD, desc: "Film/HU/1080p"}
+    - {id: 31, cat: Movies/HD, desc: "Film/HU/720p"}
+    - {id: 35, cat: Movies/BluRay, desc: "Film/HU/Blu-ray"}
+    - {id: 26, cat: Movies/DVD, desc: "Film/HU/DVD-R"}
+    - {id: 5, cat: Movies/SD, desc: "Film/HU/SD"}
+    - {id: 4, cat: PC/Games, desc: "Játékok/ISO"}
+    - {id: 39, cat: PC/Games, desc: "Játékok/Rip/Dox"}
+    - {id: 47, cat: Other, desc: "Klippek"}
+    - {id: 30, cat: Audio/Lossless, desc: "Lossless/EN"}
+    - {id: 29, cat: Audio/Lossless, desc: "Lossless/HU"}
+    - {id: 25, cat: Audio/MP3, desc: "MP3/EN"}
+    - {id: 6, cat: Audio/MP3, desc: "MP3/HU"}
+    - {id: 33, cat: PC, desc: "Program/egyéb"}
+    - {id: 1, cat: PC/ISO, desc: "Program/ISO"}
+    - {id: 36, cat: TV/HD, desc: "Sorozat/EN/HD"}
+    - {id: 49, cat: TV/SD, desc: "Sorozat/EN/SD"}
+    - {id: 28, cat: TV/HD, desc: "Sorozat/HU/HD"}
+    - {id: 7, cat: TV/SD, desc: "Sorozat/HU/SD"}
+    - {id: 9, cat: XXX, desc: "XXX"}
+    - {id: 44, cat: XXX/Other, desc: "XXX/HD"}
+    - {id: 43, cat: XXX/SD, desc: "XXX/SD"}
+
+  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: 0
+    options:
+      0: Uploaded
+      1: Name
+      2: Files
+      3: Comments
+      5: DLs
+      6: Seeders
+      7: Leechers
+  - 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 <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
+
+login:
+  path: takelogin.php
+  method: post
+  inputs:
+    username: "{{ .Config.username }}"
+    password: "{{ .Config.password }}"
+  error:
+    - selector: h2:contains("Sikertelen bejelentkezés")
+      message:
+        text: "Error during login. Its likely your username or password is incorrect."
+  test:
+    path: /
+    selector: a[href="logout.php"]
+
+search:
+  paths:
+    - path: browse.php
+  inputs:
+    $raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
+    search: "{{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
+    # 0 active only, 1 include dead
+    incldead: 1
+    sort: "{{ .Config.sort }}"
+    type: "{{ .Config.type }}"
+
+  rows:
+    selector: table.mainouter > tbody > tr > td > table tr:has(a[href^="download.php?id="])
+
+  fields:
+    category:
+      selector: a[href^="browse.php?cat="]
+      attribute: href
+      filters:
+        - name: querystring
+          args: cat
+    title:
+      selector: a.torrent-link b
+    details:
+      selector: a[href^="details.php?id="]
+      attribute: href
+      filters:
+        - name: prepend
+          args: "details.php?id="
+        - name: querystring
+          args: id
+    download:
+      selector: a[href^="download.php?id="]
+      attribute: href
+    files:
+      selector: td:nth-child(5) a
+    date:
+      selector: td:contains("Feltöltve:")
+      filters:
+        - name: regexp
+          args: "Feltöltve: *([0-9]{4}-[0-9]{2}-[0-9]{2} +[0-9]{2}:[0-9]{2}:[0-9]{2})"
+        - name: append
+          args: " +01:00" # Europe/Budapest, CET
+        - name: dateparse
+          args: "yyyy-MM-dd HH:mm:ss zzz"
+    grabs:
+      selector: td:nth-child(7) b
+      filters:
+        - name: regexp
+          args: "([0-9]+) *[xX]"
+    size:
+      selector: td:nth-child(7)
+      filters:
+        - name: regexp
+          args: "([0-9]+\\.?[0-9]* *[kKmMgGtTpP]i?[bB])"
+    seeders:
+      selector: td:nth-child(8)
+    leechers:
+      selector: td:nth-child(9)
+    genre:
+      selector: td:nth-child(2) > div > i > i
+      filters:
+        - name: regexp
+          args: "\\((.+)\\)"
+    description:
+      text: "{{ .Result.genre }}"
+    downloadvolumefactor:
+      case:
+        img[src="https://matrixworld.info/pic/ingyentorrent.gif"]: 0
+        "*": 1
+    uploadvolumefactor:
+      case:
+        img[src="https://matrixworld.info/pic/x2.gif"]: 2
path: src/Jackett.Common/Definitions/matrix.yml
user: login: garfield69
body: ```suggestion
    downloadvolumefactor:
      case:
        img[src$="/pic/ingyentorrent.gif"]: 0
        "*": 1
    uploadvolumefactor:
      case:
        img[src$="/pic/x2.gif"]: 2
```
Avoid hardcoding sitelink in selectors. Saves having to do global replaces should the sitelink change
created_at: 2025-03-04T19:16:26Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,180 @@
+---
+id: matrix
+name: Matrix
+description: "M.A.T.R.I.X is a Hungarian Private Tracker for MOVIES / TV / GENERAL"
+language: hu-HU
+type: private
+encoding: UTF-8
+links:
+  - https://matrixworld.info/
+
+caps:
+  categorymappings:
+    - {id: 23, cat: Movies/Other, desc: "Animációk"}
+    - {id: 61, cat: Movies/Other, desc: "Cam/EN"}
+    - {id: 60, cat: Movies/Other, desc: "Cam/HU"}
+    - {id: 45, cat: Books/EBook, desc: "eBook/EN"}
+    - {id: 40, cat: Books/EBook, desc: "eBook/HU"}
+    - {id: 20, cat: Movies/DVD, desc: "Film/DVD9"}
+    - {id: 48, cat: Movies/HD, desc: "Film/EN/1080p"}
+    - {id: 32, cat: Movies/HD, desc: "Film/EN/720p"}
+    - {id: 38, cat: Movies/BluRay, desc: "Film/EN/Blu-ray"}
+    - {id: 27, cat: Movies/DVD, desc: "Film/EN/DVD-R"}
+    - {id: 24, cat: Movies/SD, desc: "Film/EN/SD"}
+    - {id: 34, cat: Movies/HD, desc: "Film/HU/1080p"}
+    - {id: 31, cat: Movies/HD, desc: "Film/HU/720p"}
+    - {id: 35, cat: Movies/BluRay, desc: "Film/HU/Blu-ray"}
+    - {id: 26, cat: Movies/DVD, desc: "Film/HU/DVD-R"}
+    - {id: 5, cat: Movies/SD, desc: "Film/HU/SD"}
+    - {id: 4, cat: PC/Games, desc: "Játékok/ISO"}
+    - {id: 39, cat: PC/Games, desc: "Játékok/Rip/Dox"}
+    - {id: 47, cat: Other, desc: "Klippek"}
+    - {id: 30, cat: Audio/Lossless, desc: "Lossless/EN"}
+    - {id: 29, cat: Audio/Lossless, desc: "Lossless/HU"}
+    - {id: 25, cat: Audio/MP3, desc: "MP3/EN"}
+    - {id: 6, cat: Audio/MP3, desc: "MP3/HU"}
+    - {id: 33, cat: PC, desc: "Program/egyéb"}
+    - {id: 1, cat: PC/ISO, desc: "Program/ISO"}
+    - {id: 36, cat: TV/HD, desc: "Sorozat/EN/HD"}
+    - {id: 49, cat: TV/SD, desc: "Sorozat/EN/SD"}
+    - {id: 28, cat: TV/HD, desc: "Sorozat/HU/HD"}
+    - {id: 7, cat: TV/SD, desc: "Sorozat/HU/SD"}
+    - {id: 9, cat: XXX, desc: "XXX"}
+    - {id: 44, cat: XXX/Other, desc: "XXX/HD"}
+    - {id: 43, cat: XXX/SD, desc: "XXX/SD"}
+
+  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: 0
+    options:
+      0: Uploaded
+      1: Name
+      2: Files
+      3: Comments
+      5: DLs
+      6: Seeders
+      7: Leechers
+  - 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 <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
+
+login:
+  path: takelogin.php
+  method: post
+  inputs:
+    username: "{{ .Config.username }}"
+    password: "{{ .Config.password }}"
+  error:
+    - selector: h2:contains("Sikertelen bejelentkezés")
+      message:
+        text: "Error during login. Its likely your username or password is incorrect."
+  test:
+    path: /
+    selector: a[href="logout.php"]
+
+search:
+  paths:
+    - path: browse.php
+  inputs:
+    $raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
+    search: "{{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
+    # 0 active only, 1 include dead
+    incldead: 1
+    sort: "{{ .Config.sort }}"
+    type: "{{ .Config.type }}"
+
+  rows:
+    selector: table.mainouter > tbody > tr > td > table tr:has(a[href^="download.php?id="])
+
+  fields:
+    category:
+      selector: a[href^="browse.php?cat="]
+      attribute: href
+      filters:
+        - name: querystring
+          args: cat
+    title:
+      selector: a.torrent-link b
+    details:
+      selector: a[href^="details.php?id="]
+      attribute: href
+      filters:
+        - name: prepend
+          args: "details.php?id="
+        - name: querystring
+          args: id
+    download:
+      selector: a[href^="download.php?id="]
+      attribute: href
+    files:
+      selector: td:nth-child(5) a
+    date:
+      selector: td:contains("Feltöltve:")
+      filters:
+        - name: regexp
+          args: "Feltöltve: *([0-9]{4}-[0-9]{2}-[0-9]{2} +[0-9]{2}:[0-9]{2}:[0-9]{2})"
+        - name: append
+          args: " +01:00" # Europe/Budapest, CET
+        - name: dateparse
+          args: "yyyy-MM-dd HH:mm:ss zzz"
+    grabs:
+      selector: td:nth-child(7) b
+      filters:
+        - name: regexp
+          args: "([0-9]+) *[xX]"
+    size:
+      selector: td:nth-child(7)
+      filters:
+        - name: regexp
+          args: "([0-9]+\\.?[0-9]* *[kKmMgGtTpP]i?[bB])"
+    seeders:
+      selector: td:nth-child(8)
+    leechers:
+      selector: td:nth-child(9)
+    genre:
+      selector: td:nth-child(2) > div > i > i
+      filters:
+        - name: regexp
+          args: "\\((.+)\\)"
+    description:
+      text: "{{ .Result.genre }}"
+    downloadvolumefactor:
+      case:
+        img[src="https://matrixworld.info/pic/ingyentorrent.gif"]: 0
+        "*": 1
+    uploadvolumefactor:
+      case:
+        img[src="https://matrixworld.info/pic/x2.gif"]: 2
+        "*": 1
+    # The web UI loads more rich detail, such as `description`,
+    # `poster`, etc., in an XHR but they're not available in the
+    # `browse.php` HTML.
+
path: src/Jackett.Common/Definitions/matrix.yml
user: login: garfield69
body: ```suggestion
```
unnecessary
created_at: 2025-03-04T19:17:37Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,180 @@
+---
+id: matrix
+name: Matrix
+description: "M.A.T.R.I.X is a Hungarian Private Tracker for MOVIES / TV / GENERAL"
path: src/Jackett.Common/Definitions/matrix.yml
user: login: garfield69
body: ```suggestion
description: "M.A.T.R.I.X is a HUNGARIAN Private Tracker for MOVIES / TV / GENERAL"
```
created_at: 2025-03-04T19:27:11Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,180 @@
+---
+id: matrix
+name: Matrix
+description: "M.A.T.R.I.X is a Hungarian Private Tracker for MOVIES / TV / GENERAL"
+language: hu-HU
+type: private
+encoding: UTF-8
+links:
+  - https://matrixworld.info/
+
+caps:
+  categorymappings:
+    - {id: 23, cat: Movies/Other, desc: "Animációk"}
+    - {id: 61, cat: Movies/Other, desc: "Cam/EN"}
+    - {id: 60, cat: Movies/Other, desc: "Cam/HU"}
+    - {id: 45, cat: Books/EBook, desc: "eBook/EN"}
+    - {id: 40, cat: Books/EBook, desc: "eBook/HU"}
+    - {id: 20, cat: Movies/DVD, desc: "Film/DVD9"}
+    - {id: 48, cat: Movies/HD, desc: "Film/EN/1080p"}
+    - {id: 32, cat: Movies/HD, desc: "Film/EN/720p"}
+    - {id: 38, cat: Movies/BluRay, desc: "Film/EN/Blu-ray"}
+    - {id: 27, cat: Movies/DVD, desc: "Film/EN/DVD-R"}
+    - {id: 24, cat: Movies/SD, desc: "Film/EN/SD"}
+    - {id: 34, cat: Movies/HD, desc: "Film/HU/1080p"}
+    - {id: 31, cat: Movies/HD, desc: "Film/HU/720p"}
+    - {id: 35, cat: Movies/BluRay, desc: "Film/HU/Blu-ray"}
+    - {id: 26, cat: Movies/DVD, desc: "Film/HU/DVD-R"}
+    - {id: 5, cat: Movies/SD, desc: "Film/HU/SD"}
+    - {id: 4, cat: PC/Games, desc: "Játékok/ISO"}
+    - {id: 39, cat: PC/Games, desc: "Játékok/Rip/Dox"}
+    - {id: 47, cat: Other, desc: "Klippek"}
+    - {id: 30, cat: Audio/Lossless, desc: "Lossless/EN"}
+    - {id: 29, cat: Audio/Lossless, desc: "Lossless/HU"}
+    - {id: 25, cat: Audio/MP3, desc: "MP3/EN"}
+    - {id: 6, cat: Audio/MP3, desc: "MP3/HU"}
+    - {id: 33, cat: PC, desc: "Program/egyéb"}
+    - {id: 1, cat: PC/ISO, desc: "Program/ISO"}
+    - {id: 36, cat: TV/HD, desc: "Sorozat/EN/HD"}
+    - {id: 49, cat: TV/SD, desc: "Sorozat/EN/SD"}
+    - {id: 28, cat: TV/HD, desc: "Sorozat/HU/HD"}
+    - {id: 7, cat: TV/SD, desc: "Sorozat/HU/SD"}
+    - {id: 9, cat: XXX, desc: "XXX"}
+    - {id: 44, cat: XXX/Other, desc: "XXX/HD"}
+    - {id: 43, cat: XXX/SD, desc: "XXX/SD"}
+
+  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: 0
+    options:
+      0: Uploaded
+      1: Name
+      2: Files
+      3: Comments
+      5: DLs
+      6: Seeders
+      7: Leechers
+  - 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 <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
+
+login:
+  path: takelogin.php
+  method: post
+  inputs:
+    username: "{{ .Config.username }}"
+    password: "{{ .Config.password }}"
+  error:
+    - selector: h2:contains("Sikertelen bejelentkezés")
+      message:
+        text: "Error during login. Its likely your username or password is incorrect."
+  test:
+    path: /
+    selector: a[href="logout.php"]
path: src/Jackett.Common/Definitions/matrix.yml
user: login: garfield69
body: ```suggestion
    selector: a[href$="logout.php"]
```
site uses the full address
created_at: 2025-03-04T19:31:49Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,180 @@
+---
+id: matrix
+name: Matrix
+description: "M.A.T.R.I.X is a Hungarian Private Tracker for MOVIES / TV / GENERAL"
+language: hu-HU
+type: private
+encoding: UTF-8
+links:
+  - https://matrixworld.info/
+
+caps:
+  categorymappings:
+    - {id: 23, cat: Movies/Other, desc: "Animációk"}
+    - {id: 61, cat: Movies/Other, desc: "Cam/EN"}
+    - {id: 60, cat: Movies/Other, desc: "Cam/HU"}
+    - {id: 45, cat: Books/EBook, desc: "eBook/EN"}
+    - {id: 40, cat: Books/EBook, desc: "eBook/HU"}
+    - {id: 20, cat: Movies/DVD, desc: "Film/DVD9"}
+    - {id: 48, cat: Movies/HD, desc: "Film/EN/1080p"}
+    - {id: 32, cat: Movies/HD, desc: "Film/EN/720p"}
+    - {id: 38, cat: Movies/BluRay, desc: "Film/EN/Blu-ray"}
+    - {id: 27, cat: Movies/DVD, desc: "Film/EN/DVD-R"}
+    - {id: 24, cat: Movies/SD, desc: "Film/EN/SD"}
+    - {id: 34, cat: Movies/HD, desc: "Film/HU/1080p"}
+    - {id: 31, cat: Movies/HD, desc: "Film/HU/720p"}
+    - {id: 35, cat: Movies/BluRay, desc: "Film/HU/Blu-ray"}
+    - {id: 26, cat: Movies/DVD, desc: "Film/HU/DVD-R"}
+    - {id: 5, cat: Movies/SD, desc: "Film/HU/SD"}
+    - {id: 4, cat: PC/Games, desc: "Játékok/ISO"}
+    - {id: 39, cat: PC/Games, desc: "Játékok/Rip/Dox"}
+    - {id: 47, cat: Other, desc: "Klippek"}
+    - {id: 30, cat: Audio/Lossless, desc: "Lossless/EN"}
+    - {id: 29, cat: Audio/Lossless, desc: "Lossless/HU"}
+    - {id: 25, cat: Audio/MP3, desc: "MP3/EN"}
+    - {id: 6, cat: Audio/MP3, desc: "MP3/HU"}
+    - {id: 33, cat: PC, desc: "Program/egyéb"}
+    - {id: 1, cat: PC/ISO, desc: "Program/ISO"}
+    - {id: 36, cat: TV/HD, desc: "Sorozat/EN/HD"}
+    - {id: 49, cat: TV/SD, desc: "Sorozat/EN/SD"}
+    - {id: 28, cat: TV/HD, desc: "Sorozat/HU/HD"}
+    - {id: 7, cat: TV/SD, desc: "Sorozat/HU/SD"}
+    - {id: 9, cat: XXX, desc: "XXX"}
+    - {id: 44, cat: XXX/Other, desc: "XXX/HD"}
+    - {id: 43, cat: XXX/SD, desc: "XXX/SD"}
+
+  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: 0
+    options:
+      0: Uploaded
+      1: Name
+      2: Files
+      3: Comments
+      5: DLs
+      6: Seeders
+      7: Leechers
+  - 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 <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
+
+login:
+  path: takelogin.php
+  method: post
+  inputs:
+    username: "{{ .Config.username }}"
+    password: "{{ .Config.password }}"
path: src/Jackett.Common/Definitions/matrix.yml
user: login: garfield69
body: ```suggestion
    password: "{{ .Config.password }}"
    logout: ""
```
prevent the 15 minute session logout, saves indexer having to login repeatedly between searches
created_at: 2025-03-04T19:37:18Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,180 @@
+---
+id: matrix
+name: Matrix
+description: "M.A.T.R.I.X is a Hungarian Private Tracker for MOVIES / TV / GENERAL"
+language: hu-HU
+type: private
+encoding: UTF-8
+links:
+  - https://matrixworld.info/
+
+caps:
+  categorymappings:
+    - {id: 23, cat: Movies/Other, desc: "Animációk"}
+    - {id: 61, cat: Movies/Other, desc: "Cam/EN"}
+    - {id: 60, cat: Movies/Other, desc: "Cam/HU"}
+    - {id: 45, cat: Books/EBook, desc: "eBook/EN"}
+    - {id: 40, cat: Books/EBook, desc: "eBook/HU"}
+    - {id: 20, cat: Movies/DVD, desc: "Film/DVD9"}
+    - {id: 48, cat: Movies/HD, desc: "Film/EN/1080p"}
+    - {id: 32, cat: Movies/HD, desc: "Film/EN/720p"}
+    - {id: 38, cat: Movies/BluRay, desc: "Film/EN/Blu-ray"}
+    - {id: 27, cat: Movies/DVD, desc: "Film/EN/DVD-R"}
+    - {id: 24, cat: Movies/SD, desc: "Film/EN/SD"}
+    - {id: 34, cat: Movies/HD, desc: "Film/HU/1080p"}
+    - {id: 31, cat: Movies/HD, desc: "Film/HU/720p"}
+    - {id: 35, cat: Movies/BluRay, desc: "Film/HU/Blu-ray"}
+    - {id: 26, cat: Movies/DVD, desc: "Film/HU/DVD-R"}
+    - {id: 5, cat: Movies/SD, desc: "Film/HU/SD"}
+    - {id: 4, cat: PC/Games, desc: "Játékok/ISO"}
+    - {id: 39, cat: PC/Games, desc: "Játékok/Rip/Dox"}
+    - {id: 47, cat: Other, desc: "Klippek"}
+    - {id: 30, cat: Audio/Lossless, desc: "Lossless/EN"}
+    - {id: 29, cat: Audio/Lossless, desc: "Lossless/HU"}
+    - {id: 25, cat: Audio/MP3, desc: "MP3/EN"}
+    - {id: 6, cat: Audio/MP3, desc: "MP3/HU"}
+    - {id: 33, cat: PC, desc: "Program/egyéb"}
+    - {id: 1, cat: PC/ISO, desc: "Program/ISO"}
+    - {id: 36, cat: TV/HD, desc: "Sorozat/EN/HD"}
+    - {id: 49, cat: TV/SD, desc: "Sorozat/EN/SD"}
+    - {id: 28, cat: TV/HD, desc: "Sorozat/HU/HD"}
+    - {id: 7, cat: TV/SD, desc: "Sorozat/HU/SD"}
+    - {id: 9, cat: XXX, desc: "XXX"}
+    - {id: 44, cat: XXX/Other, desc: "XXX/HD"}
+    - {id: 43, cat: XXX/SD, desc: "XXX/SD"}
+
+  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: 0
+    options:
+      0: Uploaded
+      1: Name
+      2: Files
+      3: Comments
+      5: DLs
+      6: Seeders
+      7: Leechers
+  - 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 <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
+
+login:
+  path: takelogin.php
+  method: post
+  inputs:
+    username: "{{ .Config.username }}"
+    password: "{{ .Config.password }}"
+  error:
+    - selector: h2:contains("Sikertelen bejelentkezés")
+      message:
+        text: "Error during login. Its likely your username or password is incorrect."
path: src/Jackett.Common/Definitions/matrix.yml
user: login: garfield69
body: ```suggestion
    - selector: td.embedded:contains("Sikertelen bejelentkezés")
```
let the site tell us exactly why login failed
created_at: 2025-03-04T19:43:53Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,180 @@
+---
+id: matrix
+name: Matrix
+description: "M.A.T.R.I.X is a Hungarian Private Tracker for MOVIES / TV / GENERAL"
+language: hu-HU
+type: private
+encoding: UTF-8
+links:
+  - https://matrixworld.info/
+
+caps:
+  categorymappings:
+    - {id: 23, cat: Movies/Other, desc: "Animációk"}
+    - {id: 61, cat: Movies/Other, desc: "Cam/EN"}
+    - {id: 60, cat: Movies/Other, desc: "Cam/HU"}
+    - {id: 45, cat: Books/EBook, desc: "eBook/EN"}
+    - {id: 40, cat: Books/EBook, desc: "eBook/HU"}
+    - {id: 20, cat: Movies/DVD, desc: "Film/DVD9"}
+    - {id: 48, cat: Movies/HD, desc: "Film/EN/1080p"}
+    - {id: 32, cat: Movies/HD, desc: "Film/EN/720p"}
+    - {id: 38, cat: Movies/BluRay, desc: "Film/EN/Blu-ray"}
+    - {id: 27, cat: Movies/DVD, desc: "Film/EN/DVD-R"}
+    - {id: 24, cat: Movies/SD, desc: "Film/EN/SD"}
+    - {id: 34, cat: Movies/HD, desc: "Film/HU/1080p"}
+    - {id: 31, cat: Movies/HD, desc: "Film/HU/720p"}
+    - {id: 35, cat: Movies/BluRay, desc: "Film/HU/Blu-ray"}
+    - {id: 26, cat: Movies/DVD, desc: "Film/HU/DVD-R"}
+    - {id: 5, cat: Movies/SD, desc: "Film/HU/SD"}
+    - {id: 4, cat: PC/Games, desc: "Játékok/ISO"}
+    - {id: 39, cat: PC/Games, desc: "Játékok/Rip/Dox"}
+    - {id: 47, cat: Other, desc: "Klippek"}
+    - {id: 30, cat: Audio/Lossless, desc: "Lossless/EN"}
+    - {id: 29, cat: Audio/Lossless, desc: "Lossless/HU"}
+    - {id: 25, cat: Audio/MP3, desc: "MP3/EN"}
+    - {id: 6, cat: Audio/MP3, desc: "MP3/HU"}
+    - {id: 33, cat: PC, desc: "Program/egyéb"}
+    - {id: 1, cat: PC/ISO, desc: "Program/ISO"}
+    - {id: 36, cat: TV/HD, desc: "Sorozat/EN/HD"}
+    - {id: 49, cat: TV/SD, desc: "Sorozat/EN/SD"}
+    - {id: 28, cat: TV/HD, desc: "Sorozat/HU/HD"}
+    - {id: 7, cat: TV/SD, desc: "Sorozat/HU/SD"}
+    - {id: 9, cat: XXX, desc: "XXX"}
+    - {id: 44, cat: XXX/Other, desc: "XXX/HD"}
+    - {id: 43, cat: XXX/SD, desc: "XXX/SD"}
+
+  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: 0
+    options:
+      0: Uploaded
+      1: Name
+      2: Files
+      3: Comments
+      5: DLs
+      6: Seeders
+      7: Leechers
+  - 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 <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
+
+login:
+  path: takelogin.php
+  method: post
+  inputs:
+    username: "{{ .Config.username }}"
+    password: "{{ .Config.password }}"
+  error:
+    - selector: h2:contains("Sikertelen bejelentkezés")
+      message:
+        text: "Error during login. Its likely your username or password is incorrect."
+  test:
+    path: /
+    selector: a[href="logout.php"]
+
+search:
+  paths:
+    - path: browse.php
+  inputs:
+    $raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
+    search: "{{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
+    # 0 active only, 1 include dead
+    incldead: 1
+    sort: "{{ .Config.sort }}"
+    type: "{{ .Config.type }}"
+
+  rows:
+    selector: table.mainouter > tbody > tr > td > table tr:has(a[href^="download.php?id="])
+
+  fields:
+    category:
+      selector: a[href^="browse.php?cat="]
+      attribute: href
+      filters:
+        - name: querystring
+          args: cat
+    title:
+      selector: a.torrent-link b
+    details:
+      selector: a[href^="details.php?id="]
+      attribute: href
+      filters:
+        - name: prepend
+          args: "details.php?id="
+        - name: querystring
+          args: id
path: src/Jackett.Common/Definitions/matrix.yml
user: login: garfield69
body: ```suggestion
    _id:
      selector: a[href^="download.php?id="]
      attribute: href
      filters:
        - name: querystring
          args: id
    details:
      text: "details.php?id={{ .Result._id }}"
```
your code was not valid
created_at: 2025-03-04T19:56:15Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,180 @@
+---
+id: matrix
+name: Matrix
+description: "M.A.T.R.I.X is a Hungarian Private Tracker for MOVIES / TV / GENERAL"
+language: hu-HU
+type: private
+encoding: UTF-8
+links:
+  - https://matrixworld.info/
+
+caps:
+  categorymappings:
+    - {id: 23, cat: Movies/Other, desc: "Animációk"}
+    - {id: 61, cat: Movies/Other, desc: "Cam/EN"}
+    - {id: 60, cat: Movies/Other, desc: "Cam/HU"}
+    - {id: 45, cat: Books/EBook, desc: "eBook/EN"}
+    - {id: 40, cat: Books/EBook, desc: "eBook/HU"}
+    - {id: 20, cat: Movies/DVD, desc: "Film/DVD9"}
+    - {id: 48, cat: Movies/HD, desc: "Film/EN/1080p"}
+    - {id: 32, cat: Movies/HD, desc: "Film/EN/720p"}
+    - {id: 38, cat: Movies/BluRay, desc: "Film/EN/Blu-ray"}
+    - {id: 27, cat: Movies/DVD, desc: "Film/EN/DVD-R"}
+    - {id: 24, cat: Movies/SD, desc: "Film/EN/SD"}
+    - {id: 34, cat: Movies/HD, desc: "Film/HU/1080p"}
+    - {id: 31, cat: Movies/HD, desc: "Film/HU/720p"}
+    - {id: 35, cat: Movies/BluRay, desc: "Film/HU/Blu-ray"}
+    - {id: 26, cat: Movies/DVD, desc: "Film/HU/DVD-R"}
+    - {id: 5, cat: Movies/SD, desc: "Film/HU/SD"}
+    - {id: 4, cat: PC/Games, desc: "Játékok/ISO"}
+    - {id: 39, cat: PC/Games, desc: "Játékok/Rip/Dox"}
+    - {id: 47, cat: Other, desc: "Klippek"}
+    - {id: 30, cat: Audio/Lossless, desc: "Lossless/EN"}
+    - {id: 29, cat: Audio/Lossless, desc: "Lossless/HU"}
+    - {id: 25, cat: Audio/MP3, desc: "MP3/EN"}
+    - {id: 6, cat: Audio/MP3, desc: "MP3/HU"}
+    - {id: 33, cat: PC, desc: "Program/egyéb"}
+    - {id: 1, cat: PC/ISO, desc: "Program/ISO"}
+    - {id: 36, cat: TV/HD, desc: "Sorozat/EN/HD"}
+    - {id: 49, cat: TV/SD, desc: "Sorozat/EN/SD"}
+    - {id: 28, cat: TV/HD, desc: "Sorozat/HU/HD"}
+    - {id: 7, cat: TV/SD, desc: "Sorozat/HU/SD"}
+    - {id: 9, cat: XXX, desc: "XXX"}
+    - {id: 44, cat: XXX/Other, desc: "XXX/HD"}
+    - {id: 43, cat: XXX/SD, desc: "XXX/SD"}
+
+  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: 0
+    options:
+      0: Uploaded
+      1: Name
+      2: Files
+      3: Comments
+      5: DLs
+      6: Seeders
+      7: Leechers
+  - 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 <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
+
+login:
+  path: takelogin.php
+  method: post
+  inputs:
+    username: "{{ .Config.username }}"
+    password: "{{ .Config.password }}"
+  error:
+    - selector: h2:contains("Sikertelen bejelentkezés")
+      message:
+        text: "Error during login. Its likely your username or password is incorrect."
+  test:
+    path: /
+    selector: a[href="logout.php"]
+
+search:
+  paths:
+    - path: browse.php
+  inputs:
+    $raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
+    search: "{{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
+    # 0 active only, 1 include dead
+    incldead: 1
+    sort: "{{ .Config.sort }}"
+    type: "{{ .Config.type }}"
+
+  rows:
+    selector: table.mainouter > tbody > tr > td > table tr:has(a[href^="download.php?id="])
+
+  fields:
+    category:
+      selector: a[href^="browse.php?cat="]
+      attribute: href
+      filters:
+        - name: querystring
+          args: cat
+    title:
+      selector: a.torrent-link b
+    details:
+      selector: a[href^="details.php?id="]
+      attribute: href
+      filters:
+        - name: prepend
+          args: "details.php?id="
+        - name: querystring
+          args: id
+    download:
+      selector: a[href^="download.php?id="]
+      attribute: href
+    files:
path: src/Jackett.Common/Definitions/matrix.yml
user: login: garfield69
body: ```suggestion
    poster:
      selector: a.torrent-link
      attribute: data-cover
    imdbid:
      selector: a[href*="imdb.com/title/tt"]
      attribute: href
    files:
```
add posters and imdbid
created_at: 2025-03-04T19:57:08Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,180 @@
+---
+id: matrix
+name: Matrix
+description: "M.A.T.R.I.X is a Hungarian Private Tracker for MOVIES / TV / GENERAL"
+language: hu-HU
+type: private
+encoding: UTF-8
+links:
+  - https://matrixworld.info/
+
+caps:
+  categorymappings:
+    - {id: 23, cat: Movies/Other, desc: "Animációk"}
+    - {id: 61, cat: Movies/Other, desc: "Cam/EN"}
+    - {id: 60, cat: Movies/Other, desc: "Cam/HU"}
+    - {id: 45, cat: Books/EBook, desc: "eBook/EN"}
+    - {id: 40, cat: Books/EBook, desc: "eBook/HU"}
+    - {id: 20, cat: Movies/DVD, desc: "Film/DVD9"}
+    - {id: 48, cat: Movies/HD, desc: "Film/EN/1080p"}
+    - {id: 32, cat: Movies/HD, desc: "Film/EN/720p"}
+    - {id: 38, cat: Movies/BluRay, desc: "Film/EN/Blu-ray"}
+    - {id: 27, cat: Movies/DVD, desc: "Film/EN/DVD-R"}
+    - {id: 24, cat: Movies/SD, desc: "Film/EN/SD"}
+    - {id: 34, cat: Movies/HD, desc: "Film/HU/1080p"}
+    - {id: 31, cat: Movies/HD, desc: "Film/HU/720p"}
+    - {id: 35, cat: Movies/BluRay, desc: "Film/HU/Blu-ray"}
+    - {id: 26, cat: Movies/DVD, desc: "Film/HU/DVD-R"}
+    - {id: 5, cat: Movies/SD, desc: "Film/HU/SD"}
+    - {id: 4, cat: PC/Games, desc: "Játékok/ISO"}
+    - {id: 39, cat: PC/Games, desc: "Játékok/Rip/Dox"}
+    - {id: 47, cat: Other, desc: "Klippek"}
+    - {id: 30, cat: Audio/Lossless, desc: "Lossless/EN"}
+    - {id: 29, cat: Audio/Lossless, desc: "Lossless/HU"}
+    - {id: 25, cat: Audio/MP3, desc: "MP3/EN"}
+    - {id: 6, cat: Audio/MP3, desc: "MP3/HU"}
+    - {id: 33, cat: PC, desc: "Program/egyéb"}
+    - {id: 1, cat: PC/ISO, desc: "Program/ISO"}
+    - {id: 36, cat: TV/HD, desc: "Sorozat/EN/HD"}
+    - {id: 49, cat: TV/SD, desc: "Sorozat/EN/SD"}
+    - {id: 28, cat: TV/HD, desc: "Sorozat/HU/HD"}
+    - {id: 7, cat: TV/SD, desc: "Sorozat/HU/SD"}
+    - {id: 9, cat: XXX, desc: "XXX"}
+    - {id: 44, cat: XXX/Other, desc: "XXX/HD"}
+    - {id: 43, cat: XXX/SD, desc: "XXX/SD"}
+
+  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: 0
+    options:
+      0: Uploaded
+      1: Name
+      2: Files
+      3: Comments
+      5: DLs
+      6: Seeders
+      7: Leechers
+  - 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 <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
+
+login:
+  path: takelogin.php
+  method: post
+  inputs:
+    username: "{{ .Config.username }}"
+    password: "{{ .Config.password }}"
+  error:
+    - selector: h2:contains("Sikertelen bejelentkezés")
+      message:
+        text: "Error during login. Its likely your username or password is incorrect."
+  test:
+    path: /
+    selector: a[href="logout.php"]
+
+search:
+  paths:
+    - path: browse.php
+  inputs:
+    $raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
+    search: "{{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
+    # 0 active only, 1 include dead
+    incldead: 1
+    sort: "{{ .Config.sort }}"
+    type: "{{ .Config.type }}"
+
+  rows:
+    selector: table.mainouter > tbody > tr > td > table tr:has(a[href^="download.php?id="])
+
+  fields:
+    category:
+      selector: a[href^="browse.php?cat="]
+      attribute: href
+      filters:
+        - name: querystring
+          args: cat
+    title:
+      selector: a.torrent-link b
+    details:
+      selector: a[href^="details.php?id="]
+      attribute: href
+      filters:
+        - name: prepend
+          args: "details.php?id="
+        - name: querystring
+          args: id
+    download:
+      selector: a[href^="download.php?id="]
+      attribute: href
+    files:
+      selector: td:nth-child(5) a
+    date:
+      selector: td:contains("Feltöltve:")
+      filters:
+        - name: regexp
+          args: "Feltöltve: *([0-9]{4}-[0-9]{2}-[0-9]{2} +[0-9]{2}:[0-9]{2}:[0-9]{2})"
+        - name: append
+          args: " +01:00" # Europe/Budapest, CET
+        - name: dateparse
+          args: "yyyy-MM-dd HH:mm:ss zzz"
+    grabs:
+      selector: td:nth-child(7) b
+      filters:
+        - name: regexp
+          args: "([0-9]+) *[xX]"
path: src/Jackett.Common/Definitions/matrix.yml
user: login: garfield69
body: ```suggestion
    grabs:
      selector: td:nth-child(7) b
```
the grabs, seeders and leechers processor automatically extracts just the number
created_at: 2025-03-04T20:00:07Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,180 @@
+---
+id: matrix
+name: Matrix
+description: "M.A.T.R.I.X is a Hungarian Private Tracker for MOVIES / TV / GENERAL"
+language: hu-HU
+type: private
+encoding: UTF-8
+links:
+  - https://matrixworld.info/
+
+caps:
+  categorymappings:
+    - {id: 23, cat: Movies/Other, desc: "Animációk"}
+    - {id: 61, cat: Movies/Other, desc: "Cam/EN"}
+    - {id: 60, cat: Movies/Other, desc: "Cam/HU"}
+    - {id: 45, cat: Books/EBook, desc: "eBook/EN"}
+    - {id: 40, cat: Books/EBook, desc: "eBook/HU"}
+    - {id: 20, cat: Movies/DVD, desc: "Film/DVD9"}
+    - {id: 48, cat: Movies/HD, desc: "Film/EN/1080p"}
+    - {id: 32, cat: Movies/HD, desc: "Film/EN/720p"}
+    - {id: 38, cat: Movies/BluRay, desc: "Film/EN/Blu-ray"}
+    - {id: 27, cat: Movies/DVD, desc: "Film/EN/DVD-R"}
+    - {id: 24, cat: Movies/SD, desc: "Film/EN/SD"}
+    - {id: 34, cat: Movies/HD, desc: "Film/HU/1080p"}
+    - {id: 31, cat: Movies/HD, desc: "Film/HU/720p"}
+    - {id: 35, cat: Movies/BluRay, desc: "Film/HU/Blu-ray"}
+    - {id: 26, cat: Movies/DVD, desc: "Film/HU/DVD-R"}
+    - {id: 5, cat: Movies/SD, desc: "Film/HU/SD"}
+    - {id: 4, cat: PC/Games, desc: "Játékok/ISO"}
+    - {id: 39, cat: PC/Games, desc: "Játékok/Rip/Dox"}
+    - {id: 47, cat: Other, desc: "Klippek"}
+    - {id: 30, cat: Audio/Lossless, desc: "Lossless/EN"}
+    - {id: 29, cat: Audio/Lossless, desc: "Lossless/HU"}
+    - {id: 25, cat: Audio/MP3, desc: "MP3/EN"}
+    - {id: 6, cat: Audio/MP3, desc: "MP3/HU"}
+    - {id: 33, cat: PC, desc: "Program/egyéb"}
+    - {id: 1, cat: PC/ISO, desc: "Program/ISO"}
+    - {id: 36, cat: TV/HD, desc: "Sorozat/EN/HD"}
+    - {id: 49, cat: TV/SD, desc: "Sorozat/EN/SD"}
+    - {id: 28, cat: TV/HD, desc: "Sorozat/HU/HD"}
+    - {id: 7, cat: TV/SD, desc: "Sorozat/HU/SD"}
+    - {id: 9, cat: XXX, desc: "XXX"}
+    - {id: 44, cat: XXX/Other, desc: "XXX/HD"}
+    - {id: 43, cat: XXX/SD, desc: "XXX/SD"}
+
+  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
path: src/Jackett.Common/Definitions/matrix.yml
user: login: garfield69
body: ```suggestion
    label: Filter freeleech only
```
since this site's search engine does not search for freeleech we will add the config option to filter for freeleech
created_at: 2025-03-04T20:09:15Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,180 @@
+---
+id: matrix
+name: Matrix
+description: "M.A.T.R.I.X is a Hungarian Private Tracker for MOVIES / TV / GENERAL"
+language: hu-HU
+type: private
+encoding: UTF-8
+links:
+  - https://matrixworld.info/
+
+caps:
+  categorymappings:
+    - {id: 23, cat: Movies/Other, desc: "Animációk"}
+    - {id: 61, cat: Movies/Other, desc: "Cam/EN"}
+    - {id: 60, cat: Movies/Other, desc: "Cam/HU"}
+    - {id: 45, cat: Books/EBook, desc: "eBook/EN"}
+    - {id: 40, cat: Books/EBook, desc: "eBook/HU"}
+    - {id: 20, cat: Movies/DVD, desc: "Film/DVD9"}
+    - {id: 48, cat: Movies/HD, desc: "Film/EN/1080p"}
+    - {id: 32, cat: Movies/HD, desc: "Film/EN/720p"}
+    - {id: 38, cat: Movies/BluRay, desc: "Film/EN/Blu-ray"}
+    - {id: 27, cat: Movies/DVD, desc: "Film/EN/DVD-R"}
+    - {id: 24, cat: Movies/SD, desc: "Film/EN/SD"}
+    - {id: 34, cat: Movies/HD, desc: "Film/HU/1080p"}
+    - {id: 31, cat: Movies/HD, desc: "Film/HU/720p"}
+    - {id: 35, cat: Movies/BluRay, desc: "Film/HU/Blu-ray"}
+    - {id: 26, cat: Movies/DVD, desc: "Film/HU/DVD-R"}
+    - {id: 5, cat: Movies/SD, desc: "Film/HU/SD"}
+    - {id: 4, cat: PC/Games, desc: "Játékok/ISO"}
+    - {id: 39, cat: PC/Games, desc: "Játékok/Rip/Dox"}
+    - {id: 47, cat: Other, desc: "Klippek"}
+    - {id: 30, cat: Audio/Lossless, desc: "Lossless/EN"}
+    - {id: 29, cat: Audio/Lossless, desc: "Lossless/HU"}
+    - {id: 25, cat: Audio/MP3, desc: "MP3/EN"}
+    - {id: 6, cat: Audio/MP3, desc: "MP3/HU"}
+    - {id: 33, cat: PC, desc: "Program/egyéb"}
+    - {id: 1, cat: PC/ISO, desc: "Program/ISO"}
+    - {id: 36, cat: TV/HD, desc: "Sorozat/EN/HD"}
+    - {id: 49, cat: TV/SD, desc: "Sorozat/EN/SD"}
+    - {id: 28, cat: TV/HD, desc: "Sorozat/HU/HD"}
+    - {id: 7, cat: TV/SD, desc: "Sorozat/HU/SD"}
+    - {id: 9, cat: XXX, desc: "XXX"}
+    - {id: 44, cat: XXX/Other, desc: "XXX/HD"}
+    - {id: 43, cat: XXX/SD, desc: "XXX/SD"}
+
+  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: 0
+    options:
+      0: Uploaded
+      1: Name
+      2: Files
+      3: Comments
+      5: DLs
+      6: Seeders
+      7: Leechers
+  - 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 <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
+
+login:
+  path: takelogin.php
+  method: post
+  inputs:
+    username: "{{ .Config.username }}"
+    password: "{{ .Config.password }}"
+  error:
+    - selector: h2:contains("Sikertelen bejelentkezés")
+      message:
+        text: "Error during login. Its likely your username or password is incorrect."
+  test:
+    path: /
+    selector: a[href="logout.php"]
+
+search:
+  paths:
+    - path: browse.php
+  inputs:
+    $raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
+    search: "{{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
+    # 0 active only, 1 include dead
+    incldead: 1
+    sort: "{{ .Config.sort }}"
+    type: "{{ .Config.type }}"
+
+  rows:
+    selector: table.mainouter > tbody > tr > td > table tr:has(a[href^="download.php?id="])
path: src/Jackett.Common/Definitions/matrix.yml
user: login: garfield69
body: ```suggestion
    selector: "table.mainouter > tbody > tr > td > table tr:has(a[href^=\"download.php?id=\"]){{ if .Config.freeleech }}:has(img[src$=\"/pic/ingyentorrent.gif\"]){{ else }}{{ end }}"
```
add the filter freeleech option
created_at: 2025-03-04T20:13:42Z
author_association: CONTRIBUTOR
diff_hunk: @@ -88,6 +88,7 @@ Prior versions of Jackett are no longer supported.
  * LinuxTracker
  * Mac Torrents Download
  * Magnet Cat
+ * Matrix
path: README.md
user: login: rpatterson
body: Oops, sorry for not reading that carefully. Fixed and pushed.
created_at: 2025-03-04T20:28:49Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,180 @@
+---
+id: matrix
+name: Matrix
+description: "M.A.T.R.I.X is a Hungarian Private Tracker for MOVIES / TV / GENERAL"
+language: hu-HU
+type: private
+encoding: UTF-8
+links:
+  - https://matrixworld.info/
+
+caps:
+  categorymappings:
+    - {id: 23, cat: Movies/Other, desc: "Animációk"}
+    - {id: 61, cat: Movies/Other, desc: "Cam/EN"}
+    - {id: 60, cat: Movies/Other, desc: "Cam/HU"}
+    - {id: 45, cat: Books/EBook, desc: "eBook/EN"}
+    - {id: 40, cat: Books/EBook, desc: "eBook/HU"}
+    - {id: 20, cat: Movies/DVD, desc: "Film/DVD9"}
+    - {id: 48, cat: Movies/HD, desc: "Film/EN/1080p"}
+    - {id: 32, cat: Movies/HD, desc: "Film/EN/720p"}
+    - {id: 38, cat: Movies/BluRay, desc: "Film/EN/Blu-ray"}
+    - {id: 27, cat: Movies/DVD, desc: "Film/EN/DVD-R"}
+    - {id: 24, cat: Movies/SD, desc: "Film/EN/SD"}
+    - {id: 34, cat: Movies/HD, desc: "Film/HU/1080p"}
+    - {id: 31, cat: Movies/HD, desc: "Film/HU/720p"}
+    - {id: 35, cat: Movies/BluRay, desc: "Film/HU/Blu-ray"}
+    - {id: 26, cat: Movies/DVD, desc: "Film/HU/DVD-R"}
+    - {id: 5, cat: Movies/SD, desc: "Film/HU/SD"}
+    - {id: 4, cat: PC/Games, desc: "Játékok/ISO"}
+    - {id: 39, cat: PC/Games, desc: "Játékok/Rip/Dox"}
+    - {id: 47, cat: Other, desc: "Klippek"}
+    - {id: 30, cat: Audio/Lossless, desc: "Lossless/EN"}
+    - {id: 29, cat: Audio/Lossless, desc: "Lossless/HU"}
+    - {id: 25, cat: Audio/MP3, desc: "MP3/EN"}
+    - {id: 6, cat: Audio/MP3, desc: "MP3/HU"}
+    - {id: 33, cat: PC, desc: "Program/egyéb"}
+    - {id: 1, cat: PC/ISO, desc: "Program/ISO"}
+    - {id: 36, cat: TV/HD, desc: "Sorozat/EN/HD"}
+    - {id: 49, cat: TV/SD, desc: "Sorozat/EN/SD"}
+    - {id: 28, cat: TV/HD, desc: "Sorozat/HU/HD"}
+    - {id: 7, cat: TV/SD, desc: "Sorozat/HU/SD"}
+    - {id: 9, cat: XXX, desc: "XXX"}
+    - {id: 44, cat: XXX/Other, desc: "XXX/HD"}
+    - {id: 43, cat: XXX/SD, desc: "XXX/SD"}
+
+  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: 0
+    options:
+      0: Uploaded
+      1: Name
+      2: Files
+      3: Comments
+      5: DLs
+      6: Seeders
+      7: Leechers
+  - 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 <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
+
+login:
+  path: takelogin.php
+  method: post
+  inputs:
+    username: "{{ .Config.username }}"
+    password: "{{ .Config.password }}"
+  error:
+    - selector: h2:contains("Sikertelen bejelentkezés")
+      message:
+        text: "Error during login. Its likely your username or password is incorrect."
+  test:
+    path: /
+    selector: a[href="logout.php"]
+
+search:
+  paths:
+    - path: browse.php
+  inputs:
+    $raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
+    search: "{{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
+    # 0 active only, 1 include dead
path: src/Jackett.Common/Definitions/matrix.yml
user: login: rpatterson
body: There's only a checkbox on the search form, IOW only two values. Should I still include the third `2` value in the comment?
created_at: 2025-03-04T20:31:24Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,180 @@
+---
+id: matrix
+name: Matrix
+description: "M.A.T.R.I.X is a Hungarian Private Tracker for MOVIES / TV / GENERAL"
+language: hu-HU
+type: private
+encoding: UTF-8
+links:
+  - https://matrixworld.info/
+
+caps:
+  categorymappings:
+    - {id: 23, cat: Movies/Other, desc: "Animációk"}
+    - {id: 61, cat: Movies/Other, desc: "Cam/EN"}
+    - {id: 60, cat: Movies/Other, desc: "Cam/HU"}
+    - {id: 45, cat: Books/EBook, desc: "eBook/EN"}
+    - {id: 40, cat: Books/EBook, desc: "eBook/HU"}
+    - {id: 20, cat: Movies/DVD, desc: "Film/DVD9"}
+    - {id: 48, cat: Movies/HD, desc: "Film/EN/1080p"}
+    - {id: 32, cat: Movies/HD, desc: "Film/EN/720p"}
+    - {id: 38, cat: Movies/BluRay, desc: "Film/EN/Blu-ray"}
+    - {id: 27, cat: Movies/DVD, desc: "Film/EN/DVD-R"}
+    - {id: 24, cat: Movies/SD, desc: "Film/EN/SD"}
+    - {id: 34, cat: Movies/HD, desc: "Film/HU/1080p"}
+    - {id: 31, cat: Movies/HD, desc: "Film/HU/720p"}
+    - {id: 35, cat: Movies/BluRay, desc: "Film/HU/Blu-ray"}
+    - {id: 26, cat: Movies/DVD, desc: "Film/HU/DVD-R"}
+    - {id: 5, cat: Movies/SD, desc: "Film/HU/SD"}
+    - {id: 4, cat: PC/Games, desc: "Játékok/ISO"}
+    - {id: 39, cat: PC/Games, desc: "Játékok/Rip/Dox"}
+    - {id: 47, cat: Other, desc: "Klippek"}
+    - {id: 30, cat: Audio/Lossless, desc: "Lossless/EN"}
+    - {id: 29, cat: Audio/Lossless, desc: "Lossless/HU"}
+    - {id: 25, cat: Audio/MP3, desc: "MP3/EN"}
+    - {id: 6, cat: Audio/MP3, desc: "MP3/HU"}
+    - {id: 33, cat: PC, desc: "Program/egyéb"}
+    - {id: 1, cat: PC/ISO, desc: "Program/ISO"}
+    - {id: 36, cat: TV/HD, desc: "Sorozat/EN/HD"}
+    - {id: 49, cat: TV/SD, desc: "Sorozat/EN/SD"}
+    - {id: 28, cat: TV/HD, desc: "Sorozat/HU/HD"}
+    - {id: 7, cat: TV/SD, desc: "Sorozat/HU/SD"}
+    - {id: 9, cat: XXX, desc: "XXX"}
+    - {id: 44, cat: XXX/Other, desc: "XXX/HD"}
+    - {id: 43, cat: XXX/SD, desc: "XXX/SD"}
+
+  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: 0
+    options:
+      0: Uploaded
+      1: Name
+      2: Files
+      3: Comments
+      5: DLs
+      6: Seeders
+      7: Leechers
+  - 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 <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
+
+login:
+  path: takelogin.php
+  method: post
+  inputs:
+    username: "{{ .Config.username }}"
+    password: "{{ .Config.password }}"
+  error:
+    - selector: h2:contains("Sikertelen bejelentkezés")
+      message:
+        text: "Error during login. Its likely your username or password is incorrect."
+  test:
+    path: /
+    selector: a[href="logout.php"]
+
+search:
+  paths:
+    - path: browse.php
+  inputs:
+    $raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
+    search: "{{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
path: src/Jackett.Common/Definitions/matrix.yml
user: login: rpatterson
body: Ah, I copied this from other indexer definitions. Are those other definitions wrong/broken? If not, what does the version before your change mean/do?
created_at: 2025-03-04T20:32:42Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,180 @@
+---
+id: matrix
+name: Matrix
+description: "M.A.T.R.I.X is a Hungarian Private Tracker for MOVIES / TV / GENERAL"
+language: hu-HU
+type: private
+encoding: UTF-8
+links:
+  - https://matrixworld.info/
+
+caps:
+  categorymappings:
+    - {id: 23, cat: Movies/Other, desc: "Animációk"}
+    - {id: 61, cat: Movies/Other, desc: "Cam/EN"}
+    - {id: 60, cat: Movies/Other, desc: "Cam/HU"}
+    - {id: 45, cat: Books/EBook, desc: "eBook/EN"}
+    - {id: 40, cat: Books/EBook, desc: "eBook/HU"}
+    - {id: 20, cat: Movies/DVD, desc: "Film/DVD9"}
+    - {id: 48, cat: Movies/HD, desc: "Film/EN/1080p"}
+    - {id: 32, cat: Movies/HD, desc: "Film/EN/720p"}
+    - {id: 38, cat: Movies/BluRay, desc: "Film/EN/Blu-ray"}
+    - {id: 27, cat: Movies/DVD, desc: "Film/EN/DVD-R"}
+    - {id: 24, cat: Movies/SD, desc: "Film/EN/SD"}
+    - {id: 34, cat: Movies/HD, desc: "Film/HU/1080p"}
+    - {id: 31, cat: Movies/HD, desc: "Film/HU/720p"}
+    - {id: 35, cat: Movies/BluRay, desc: "Film/HU/Blu-ray"}
+    - {id: 26, cat: Movies/DVD, desc: "Film/HU/DVD-R"}
+    - {id: 5, cat: Movies/SD, desc: "Film/HU/SD"}
+    - {id: 4, cat: PC/Games, desc: "Játékok/ISO"}
+    - {id: 39, cat: PC/Games, desc: "Játékok/Rip/Dox"}
+    - {id: 47, cat: Other, desc: "Klippek"}
+    - {id: 30, cat: Audio/Lossless, desc: "Lossless/EN"}
+    - {id: 29, cat: Audio/Lossless, desc: "Lossless/HU"}
+    - {id: 25, cat: Audio/MP3, desc: "MP3/EN"}
+    - {id: 6, cat: Audio/MP3, desc: "MP3/HU"}
+    - {id: 33, cat: PC, desc: "Program/egyéb"}
+    - {id: 1, cat: PC/ISO, desc: "Program/ISO"}
+    - {id: 36, cat: TV/HD, desc: "Sorozat/EN/HD"}
+    - {id: 49, cat: TV/SD, desc: "Sorozat/EN/SD"}
+    - {id: 28, cat: TV/HD, desc: "Sorozat/HU/HD"}
+    - {id: 7, cat: TV/SD, desc: "Sorozat/HU/SD"}
+    - {id: 9, cat: XXX, desc: "XXX"}
+    - {id: 44, cat: XXX/Other, desc: "XXX/HD"}
+    - {id: 43, cat: XXX/SD, desc: "XXX/SD"}
+
+  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: 0
+    options:
+      0: Uploaded
+      1: Name
+      2: Files
+      3: Comments
+      5: DLs
+      6: Seeders
+      7: Leechers
+  - 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 <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
+
+login:
+  path: takelogin.php
+  method: post
+  inputs:
+    username: "{{ .Config.username }}"
+    password: "{{ .Config.password }}"
+  error:
+    - selector: h2:contains("Sikertelen bejelentkezés")
+      message:
+        text: "Error during login. Its likely your username or password is incorrect."
+  test:
+    path: /
+    selector: a[href="logout.php"]
+
+search:
+  paths:
+    - path: browse.php
+  inputs:
+    $raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
+    search: "{{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
+    # 0 active only, 1 include dead
+    incldead: 1
+    sort: "{{ .Config.sort }}"
+    type: "{{ .Config.type }}"
+
+  rows:
+    selector: table.mainouter > tbody > tr > td > table tr:has(a[href^="download.php?id="])
+
+  fields:
+    category:
+      selector: a[href^="browse.php?cat="]
+      attribute: href
+      filters:
+        - name: querystring
+          args: cat
+    title:
+      selector: a.torrent-link b
+    details:
+      selector: a[href^="details.php?id="]
+      attribute: href
+      filters:
+        - name: prepend
+          args: "details.php?id="
+        - name: querystring
+          args: id
+    download:
+      selector: a[href^="download.php?id="]
+      attribute: href
+    files:
+      selector: td:nth-child(5) a
+    date:
+      selector: td:contains("Feltöltve:")
+      filters:
+        - name: regexp
+          args: "Feltöltve: *([0-9]{4}-[0-9]{2}-[0-9]{2} +[0-9]{2}:[0-9]{2}:[0-9]{2})"
+        - name: append
+          args: " +01:00" # Europe/Budapest, CET
+        - name: dateparse
+          args: "yyyy-MM-dd HH:mm:ss zzz"
+    grabs:
+      selector: td:nth-child(7) b
+      filters:
+        - name: regexp
+          args: "([0-9]+) *[xX]"
+    size:
+      selector: td:nth-child(7)
+      filters:
+        - name: regexp
+          args: "([0-9]+\\.?[0-9]* *[kKmMgGtTpP]i?[bB])"
+    seeders:
+      selector: td:nth-child(8)
+    leechers:
+      selector: td:nth-child(9)
+    genre:
+      selector: td:nth-child(2) > div > i > i
+      filters:
+        - name: regexp
+          args: "\\((.+)\\)"
+    description:
+      text: "{{ .Result.genre }}"
+    downloadvolumefactor:
+      case:
+        img[src="https://matrixworld.info/pic/ingyentorrent.gif"]: 0
+        "*": 1
+    uploadvolumefactor:
+      case:
+        img[src="https://matrixworld.info/pic/x2.gif"]: 2
path: src/Jackett.Common/Definitions/matrix.yml
user: login: rpatterson
body: Yeah, I definitely hate hardcoding the base URL, but the image URLs in the HTML are abosolute and this didn't work before I changed it to absolute paths. I didn't know or forgot about the `$` syntax. Thanks!
created_at: 2025-03-04T20:34:56Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,180 @@
+---
+id: matrix
+name: Matrix
+description: "M.A.T.R.I.X is a Hungarian Private Tracker for MOVIES / TV / GENERAL"
+language: hu-HU
+type: private
+encoding: UTF-8
+links:
+  - https://matrixworld.info/
+
+caps:
+  categorymappings:
+    - {id: 23, cat: Movies/Other, desc: "Animációk"}
+    - {id: 61, cat: Movies/Other, desc: "Cam/EN"}
+    - {id: 60, cat: Movies/Other, desc: "Cam/HU"}
+    - {id: 45, cat: Books/EBook, desc: "eBook/EN"}
+    - {id: 40, cat: Books/EBook, desc: "eBook/HU"}
+    - {id: 20, cat: Movies/DVD, desc: "Film/DVD9"}
+    - {id: 48, cat: Movies/HD, desc: "Film/EN/1080p"}
+    - {id: 32, cat: Movies/HD, desc: "Film/EN/720p"}
+    - {id: 38, cat: Movies/BluRay, desc: "Film/EN/Blu-ray"}
+    - {id: 27, cat: Movies/DVD, desc: "Film/EN/DVD-R"}
+    - {id: 24, cat: Movies/SD, desc: "Film/EN/SD"}
+    - {id: 34, cat: Movies/HD, desc: "Film/HU/1080p"}
+    - {id: 31, cat: Movies/HD, desc: "Film/HU/720p"}
+    - {id: 35, cat: Movies/BluRay, desc: "Film/HU/Blu-ray"}
+    - {id: 26, cat: Movies/DVD, desc: "Film/HU/DVD-R"}
+    - {id: 5, cat: Movies/SD, desc: "Film/HU/SD"}
+    - {id: 4, cat: PC/Games, desc: "Játékok/ISO"}
+    - {id: 39, cat: PC/Games, desc: "Játékok/Rip/Dox"}
+    - {id: 47, cat: Other, desc: "Klippek"}
+    - {id: 30, cat: Audio/Lossless, desc: "Lossless/EN"}
+    - {id: 29, cat: Audio/Lossless, desc: "Lossless/HU"}
+    - {id: 25, cat: Audio/MP3, desc: "MP3/EN"}
+    - {id: 6, cat: Audio/MP3, desc: "MP3/HU"}
+    - {id: 33, cat: PC, desc: "Program/egyéb"}
+    - {id: 1, cat: PC/ISO, desc: "Program/ISO"}
+    - {id: 36, cat: TV/HD, desc: "Sorozat/EN/HD"}
+    - {id: 49, cat: TV/SD, desc: "Sorozat/EN/SD"}
+    - {id: 28, cat: TV/HD, desc: "Sorozat/HU/HD"}
+    - {id: 7, cat: TV/SD, desc: "Sorozat/HU/SD"}
+    - {id: 9, cat: XXX, desc: "XXX"}
+    - {id: 44, cat: XXX/Other, desc: "XXX/HD"}
+    - {id: 43, cat: XXX/SD, desc: "XXX/SD"}
+
+  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: 0
+    options:
+      0: Uploaded
+      1: Name
+      2: Files
+      3: Comments
+      5: DLs
+      6: Seeders
+      7: Leechers
+  - 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 <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
+
+login:
+  path: takelogin.php
+  method: post
+  inputs:
+    username: "{{ .Config.username }}"
+    password: "{{ .Config.password }}"
+  error:
+    - selector: h2:contains("Sikertelen bejelentkezés")
+      message:
+        text: "Error during login. Its likely your username or password is incorrect."
+  test:
+    path: /
+    selector: a[href="logout.php"]
+
+search:
+  paths:
+    - path: browse.php
+  inputs:
+    $raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
+    search: "{{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
+    # 0 active only, 1 include dead
+    incldead: 1
+    sort: "{{ .Config.sort }}"
+    type: "{{ .Config.type }}"
+
+  rows:
+    selector: table.mainouter > tbody > tr > td > table tr:has(a[href^="download.php?id="])
+
+  fields:
+    category:
+      selector: a[href^="browse.php?cat="]
+      attribute: href
+      filters:
+        - name: querystring
+          args: cat
+    title:
+      selector: a.torrent-link b
+    details:
+      selector: a[href^="details.php?id="]
+      attribute: href
+      filters:
+        - name: prepend
+          args: "details.php?id="
+        - name: querystring
+          args: id
+    download:
+      selector: a[href^="download.php?id="]
+      attribute: href
+    files:
+      selector: td:nth-child(5) a
+    date:
+      selector: td:contains("Feltöltve:")
+      filters:
+        - name: regexp
+          args: "Feltöltve: *([0-9]{4}-[0-9]{2}-[0-9]{2} +[0-9]{2}:[0-9]{2}:[0-9]{2})"
+        - name: append
+          args: " +01:00" # Europe/Budapest, CET
+        - name: dateparse
+          args: "yyyy-MM-dd HH:mm:ss zzz"
+    grabs:
+      selector: td:nth-child(7) b
+      filters:
+        - name: regexp
+          args: "([0-9]+) *[xX]"
+    size:
+      selector: td:nth-child(7)
+      filters:
+        - name: regexp
+          args: "([0-9]+\\.?[0-9]* *[kKmMgGtTpP]i?[bB])"
+    seeders:
+      selector: td:nth-child(8)
+    leechers:
+      selector: td:nth-child(9)
+    genre:
+      selector: td:nth-child(2) > div > i > i
+      filters:
+        - name: regexp
+          args: "\\((.+)\\)"
+    description:
+      text: "{{ .Result.genre }}"
+    downloadvolumefactor:
+      case:
+        img[src="https://matrixworld.info/pic/ingyentorrent.gif"]: 0
+        "*": 1
+    uploadvolumefactor:
+      case:
+        img[src="https://matrixworld.info/pic/x2.gif"]: 2
+        "*": 1
+    # The web UI loads more rich detail, such as `description`,
+    # `poster`, etc., in an XHR but they're not available in the
+    # `browse.php` HTML.
+
path: src/Jackett.Common/Definitions/matrix.yml
user: login: rpatterson
body: Ok, so you prefer minimal comments then?
created_at: 2025-03-04T20:36:17Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,180 @@
+---
+id: matrix
+name: Matrix
+description: "M.A.T.R.I.X is a Hungarian Private Tracker for MOVIES / TV / GENERAL"
+language: hu-HU
+type: private
+encoding: UTF-8
+links:
+  - https://matrixworld.info/
+
+caps:
+  categorymappings:
+    - {id: 23, cat: Movies/Other, desc: "Animációk"}
+    - {id: 61, cat: Movies/Other, desc: "Cam/EN"}
+    - {id: 60, cat: Movies/Other, desc: "Cam/HU"}
+    - {id: 45, cat: Books/EBook, desc: "eBook/EN"}
+    - {id: 40, cat: Books/EBook, desc: "eBook/HU"}
+    - {id: 20, cat: Movies/DVD, desc: "Film/DVD9"}
+    - {id: 48, cat: Movies/HD, desc: "Film/EN/1080p"}
+    - {id: 32, cat: Movies/HD, desc: "Film/EN/720p"}
+    - {id: 38, cat: Movies/BluRay, desc: "Film/EN/Blu-ray"}
+    - {id: 27, cat: Movies/DVD, desc: "Film/EN/DVD-R"}
+    - {id: 24, cat: Movies/SD, desc: "Film/EN/SD"}
+    - {id: 34, cat: Movies/HD, desc: "Film/HU/1080p"}
+    - {id: 31, cat: Movies/HD, desc: "Film/HU/720p"}
+    - {id: 35, cat: Movies/BluRay, desc: "Film/HU/Blu-ray"}
+    - {id: 26, cat: Movies/DVD, desc: "Film/HU/DVD-R"}
+    - {id: 5, cat: Movies/SD, desc: "Film/HU/SD"}
+    - {id: 4, cat: PC/Games, desc: "Játékok/ISO"}
+    - {id: 39, cat: PC/Games, desc: "Játékok/Rip/Dox"}
+    - {id: 47, cat: Other, desc: "Klippek"}
+    - {id: 30, cat: Audio/Lossless, desc: "Lossless/EN"}
+    - {id: 29, cat: Audio/Lossless, desc: "Lossless/HU"}
+    - {id: 25, cat: Audio/MP3, desc: "MP3/EN"}
+    - {id: 6, cat: Audio/MP3, desc: "MP3/HU"}
+    - {id: 33, cat: PC, desc: "Program/egyéb"}
+    - {id: 1, cat: PC/ISO, desc: "Program/ISO"}
+    - {id: 36, cat: TV/HD, desc: "Sorozat/EN/HD"}
+    - {id: 49, cat: TV/SD, desc: "Sorozat/EN/SD"}
+    - {id: 28, cat: TV/HD, desc: "Sorozat/HU/HD"}
+    - {id: 7, cat: TV/SD, desc: "Sorozat/HU/SD"}
+    - {id: 9, cat: XXX, desc: "XXX"}
+    - {id: 44, cat: XXX/Other, desc: "XXX/HD"}
+    - {id: 43, cat: XXX/SD, desc: "XXX/SD"}
+
+  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: 0
+    options:
+      0: Uploaded
+      1: Name
+      2: Files
+      3: Comments
+      5: DLs
+      6: Seeders
+      7: Leechers
+  - 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 <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
+
+login:
+  path: takelogin.php
+  method: post
+  inputs:
+    username: "{{ .Config.username }}"
+    password: "{{ .Config.password }}"
+  error:
+    - selector: h2:contains("Sikertelen bejelentkezés")
+      message:
+        text: "Error during login. Its likely your username or password is incorrect."
+  test:
+    path: /
+    selector: a[href="logout.php"]
+
+search:
+  paths:
+    - path: browse.php
+  inputs:
+    $raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
+    search: "{{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
+    # 0 active only, 1 include dead
+    incldead: 1
+    sort: "{{ .Config.sort }}"
+    type: "{{ .Config.type }}"
+
+  rows:
+    selector: table.mainouter > tbody > tr > td > table tr:has(a[href^="download.php?id="])
+
+  fields:
+    category:
+      selector: a[href^="browse.php?cat="]
+      attribute: href
+      filters:
+        - name: querystring
+          args: cat
+    title:
+      selector: a.torrent-link b
+    details:
+      selector: a[href^="details.php?id="]
+      attribute: href
+      filters:
+        - name: prepend
+          args: "details.php?id="
+        - name: querystring
+          args: id
path: src/Jackett.Common/Definitions/matrix.yml
user: login: rpatterson
body: The details links worked as mentioned in the description, so how was this invalid code?

I'm fine with the style change, of course. I found examples with the separate `_id` field approach, but in those examples the `_id` field was used in more than one other field so I guessed that was what determined when to break it out into a separate field.
created_at: 2025-03-04T20:40:32Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,180 @@
+---
+id: matrix
+name: Matrix
+description: "M.A.T.R.I.X is a Hungarian Private Tracker for MOVIES / TV / GENERAL"
+language: hu-HU
+type: private
+encoding: UTF-8
+links:
+  - https://matrixworld.info/
+
+caps:
+  categorymappings:
+    - {id: 23, cat: Movies/Other, desc: "Animációk"}
+    - {id: 61, cat: Movies/Other, desc: "Cam/EN"}
+    - {id: 60, cat: Movies/Other, desc: "Cam/HU"}
+    - {id: 45, cat: Books/EBook, desc: "eBook/EN"}
+    - {id: 40, cat: Books/EBook, desc: "eBook/HU"}
+    - {id: 20, cat: Movies/DVD, desc: "Film/DVD9"}
+    - {id: 48, cat: Movies/HD, desc: "Film/EN/1080p"}
+    - {id: 32, cat: Movies/HD, desc: "Film/EN/720p"}
+    - {id: 38, cat: Movies/BluRay, desc: "Film/EN/Blu-ray"}
+    - {id: 27, cat: Movies/DVD, desc: "Film/EN/DVD-R"}
+    - {id: 24, cat: Movies/SD, desc: "Film/EN/SD"}
+    - {id: 34, cat: Movies/HD, desc: "Film/HU/1080p"}
+    - {id: 31, cat: Movies/HD, desc: "Film/HU/720p"}
+    - {id: 35, cat: Movies/BluRay, desc: "Film/HU/Blu-ray"}
+    - {id: 26, cat: Movies/DVD, desc: "Film/HU/DVD-R"}
+    - {id: 5, cat: Movies/SD, desc: "Film/HU/SD"}
+    - {id: 4, cat: PC/Games, desc: "Játékok/ISO"}
+    - {id: 39, cat: PC/Games, desc: "Játékok/Rip/Dox"}
+    - {id: 47, cat: Other, desc: "Klippek"}
+    - {id: 30, cat: Audio/Lossless, desc: "Lossless/EN"}
+    - {id: 29, cat: Audio/Lossless, desc: "Lossless/HU"}
+    - {id: 25, cat: Audio/MP3, desc: "MP3/EN"}
+    - {id: 6, cat: Audio/MP3, desc: "MP3/HU"}
+    - {id: 33, cat: PC, desc: "Program/egyéb"}
+    - {id: 1, cat: PC/ISO, desc: "Program/ISO"}
+    - {id: 36, cat: TV/HD, desc: "Sorozat/EN/HD"}
+    - {id: 49, cat: TV/SD, desc: "Sorozat/EN/SD"}
+    - {id: 28, cat: TV/HD, desc: "Sorozat/HU/HD"}
+    - {id: 7, cat: TV/SD, desc: "Sorozat/HU/SD"}
+    - {id: 9, cat: XXX, desc: "XXX"}
+    - {id: 44, cat: XXX/Other, desc: "XXX/HD"}
+    - {id: 43, cat: XXX/SD, desc: "XXX/SD"}
+
+  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: 0
+    options:
+      0: Uploaded
+      1: Name
+      2: Files
+      3: Comments
+      5: DLs
+      6: Seeders
+      7: Leechers
+  - 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 <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
+
+login:
+  path: takelogin.php
+  method: post
+  inputs:
+    username: "{{ .Config.username }}"
+    password: "{{ .Config.password }}"
path: src/Jackett.Common/Definitions/matrix.yml
user: login: rpatterson
body: Oops. Yeah I saw that in other examples but forgot to come back to it. Thanks!
created_at: 2025-03-04T20:42:45Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,180 @@
+---
+id: matrix
+name: Matrix
+description: "M.A.T.R.I.X is a Hungarian Private Tracker for MOVIES / TV / GENERAL"
+language: hu-HU
+type: private
+encoding: UTF-8
+links:
+  - https://matrixworld.info/
+
+caps:
+  categorymappings:
+    - {id: 23, cat: Movies/Other, desc: "Animációk"}
+    - {id: 61, cat: Movies/Other, desc: "Cam/EN"}
+    - {id: 60, cat: Movies/Other, desc: "Cam/HU"}
+    - {id: 45, cat: Books/EBook, desc: "eBook/EN"}
+    - {id: 40, cat: Books/EBook, desc: "eBook/HU"}
+    - {id: 20, cat: Movies/DVD, desc: "Film/DVD9"}
+    - {id: 48, cat: Movies/HD, desc: "Film/EN/1080p"}
+    - {id: 32, cat: Movies/HD, desc: "Film/EN/720p"}
+    - {id: 38, cat: Movies/BluRay, desc: "Film/EN/Blu-ray"}
+    - {id: 27, cat: Movies/DVD, desc: "Film/EN/DVD-R"}
+    - {id: 24, cat: Movies/SD, desc: "Film/EN/SD"}
+    - {id: 34, cat: Movies/HD, desc: "Film/HU/1080p"}
+    - {id: 31, cat: Movies/HD, desc: "Film/HU/720p"}
+    - {id: 35, cat: Movies/BluRay, desc: "Film/HU/Blu-ray"}
+    - {id: 26, cat: Movies/DVD, desc: "Film/HU/DVD-R"}
+    - {id: 5, cat: Movies/SD, desc: "Film/HU/SD"}
+    - {id: 4, cat: PC/Games, desc: "Játékok/ISO"}
+    - {id: 39, cat: PC/Games, desc: "Játékok/Rip/Dox"}
+    - {id: 47, cat: Other, desc: "Klippek"}
+    - {id: 30, cat: Audio/Lossless, desc: "Lossless/EN"}
+    - {id: 29, cat: Audio/Lossless, desc: "Lossless/HU"}
+    - {id: 25, cat: Audio/MP3, desc: "MP3/EN"}
+    - {id: 6, cat: Audio/MP3, desc: "MP3/HU"}
+    - {id: 33, cat: PC, desc: "Program/egyéb"}
+    - {id: 1, cat: PC/ISO, desc: "Program/ISO"}
+    - {id: 36, cat: TV/HD, desc: "Sorozat/EN/HD"}
+    - {id: 49, cat: TV/SD, desc: "Sorozat/EN/SD"}
+    - {id: 28, cat: TV/HD, desc: "Sorozat/HU/HD"}
+    - {id: 7, cat: TV/SD, desc: "Sorozat/HU/SD"}
+    - {id: 9, cat: XXX, desc: "XXX"}
+    - {id: 44, cat: XXX/Other, desc: "XXX/HD"}
+    - {id: 43, cat: XXX/SD, desc: "XXX/SD"}
+
+  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: 0
+    options:
+      0: Uploaded
+      1: Name
+      2: Files
+      3: Comments
+      5: DLs
+      6: Seeders
+      7: Leechers
+  - 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 <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
+
+login:
+  path: takelogin.php
+  method: post
+  inputs:
+    username: "{{ .Config.username }}"
+    password: "{{ .Config.password }}"
+  error:
+    - selector: h2:contains("Sikertelen bejelentkezés")
+      message:
+        text: "Error during login. Its likely your username or password is incorrect."
+  test:
+    path: /
+    selector: a[href="logout.php"]
+
+search:
+  paths:
+    - path: browse.php
+  inputs:
+    $raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
+    search: "{{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
+    # 0 active only, 1 include dead
+    incldead: 1
+    sort: "{{ .Config.sort }}"
+    type: "{{ .Config.type }}"
+
+  rows:
+    selector: table.mainouter > tbody > tr > td > table tr:has(a[href^="download.php?id="])
+
+  fields:
+    category:
+      selector: a[href^="browse.php?cat="]
+      attribute: href
+      filters:
+        - name: querystring
+          args: cat
+    title:
+      selector: a.torrent-link b
+    details:
+      selector: a[href^="details.php?id="]
+      attribute: href
+      filters:
+        - name: prepend
+          args: "details.php?id="
+        - name: querystring
+          args: id
+    download:
+      selector: a[href^="download.php?id="]
+      attribute: href
+    files:
path: src/Jackett.Common/Definitions/matrix.yml
user: login: rpatterson
body: Sorry I missed those, thanks!
created_at: 2025-03-04T20:45:00Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,180 @@
+---
+id: matrix
+name: Matrix
+description: "M.A.T.R.I.X is a Hungarian Private Tracker for MOVIES / TV / GENERAL"
+language: hu-HU
+type: private
+encoding: UTF-8
+links:
+  - https://matrixworld.info/
+
+caps:
+  categorymappings:
+    - {id: 23, cat: Movies/Other, desc: "Animációk"}
+    - {id: 61, cat: Movies/Other, desc: "Cam/EN"}
+    - {id: 60, cat: Movies/Other, desc: "Cam/HU"}
+    - {id: 45, cat: Books/EBook, desc: "eBook/EN"}
+    - {id: 40, cat: Books/EBook, desc: "eBook/HU"}
+    - {id: 20, cat: Movies/DVD, desc: "Film/DVD9"}
+    - {id: 48, cat: Movies/HD, desc: "Film/EN/1080p"}
+    - {id: 32, cat: Movies/HD, desc: "Film/EN/720p"}
+    - {id: 38, cat: Movies/BluRay, desc: "Film/EN/Blu-ray"}
+    - {id: 27, cat: Movies/DVD, desc: "Film/EN/DVD-R"}
+    - {id: 24, cat: Movies/SD, desc: "Film/EN/SD"}
+    - {id: 34, cat: Movies/HD, desc: "Film/HU/1080p"}
+    - {id: 31, cat: Movies/HD, desc: "Film/HU/720p"}
+    - {id: 35, cat: Movies/BluRay, desc: "Film/HU/Blu-ray"}
+    - {id: 26, cat: Movies/DVD, desc: "Film/HU/DVD-R"}
+    - {id: 5, cat: Movies/SD, desc: "Film/HU/SD"}
+    - {id: 4, cat: PC/Games, desc: "Játékok/ISO"}
+    - {id: 39, cat: PC/Games, desc: "Játékok/Rip/Dox"}
+    - {id: 47, cat: Other, desc: "Klippek"}
+    - {id: 30, cat: Audio/Lossless, desc: "Lossless/EN"}
+    - {id: 29, cat: Audio/Lossless, desc: "Lossless/HU"}
+    - {id: 25, cat: Audio/MP3, desc: "MP3/EN"}
+    - {id: 6, cat: Audio/MP3, desc: "MP3/HU"}
+    - {id: 33, cat: PC, desc: "Program/egyéb"}
+    - {id: 1, cat: PC/ISO, desc: "Program/ISO"}
+    - {id: 36, cat: TV/HD, desc: "Sorozat/EN/HD"}
+    - {id: 49, cat: TV/SD, desc: "Sorozat/EN/SD"}
+    - {id: 28, cat: TV/HD, desc: "Sorozat/HU/HD"}
+    - {id: 7, cat: TV/SD, desc: "Sorozat/HU/SD"}
+    - {id: 9, cat: XXX, desc: "XXX"}
+    - {id: 44, cat: XXX/Other, desc: "XXX/HD"}
+    - {id: 43, cat: XXX/SD, desc: "XXX/SD"}
+
+  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: 0
+    options:
+      0: Uploaded
+      1: Name
+      2: Files
+      3: Comments
+      5: DLs
+      6: Seeders
+      7: Leechers
+  - 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 <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
+
+login:
+  path: takelogin.php
+  method: post
+  inputs:
+    username: "{{ .Config.username }}"
+    password: "{{ .Config.password }}"
+  error:
+    - selector: h2:contains("Sikertelen bejelentkezés")
+      message:
+        text: "Error during login. Its likely your username or password is incorrect."
+  test:
+    path: /
+    selector: a[href="logout.php"]
+
+search:
+  paths:
+    - path: browse.php
+  inputs:
+    $raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
+    search: "{{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
+    # 0 active only, 1 include dead
+    incldead: 1
+    sort: "{{ .Config.sort }}"
+    type: "{{ .Config.type }}"
+
+  rows:
+    selector: table.mainouter > tbody > tr > td > table tr:has(a[href^="download.php?id="])
+
+  fields:
+    category:
+      selector: a[href^="browse.php?cat="]
+      attribute: href
+      filters:
+        - name: querystring
+          args: cat
+    title:
+      selector: a.torrent-link b
+    details:
+      selector: a[href^="details.php?id="]
+      attribute: href
+      filters:
+        - name: prepend
+          args: "details.php?id="
+        - name: querystring
+          args: id
+    download:
+      selector: a[href^="download.php?id="]
+      attribute: href
+    files:
+      selector: td:nth-child(5) a
+    date:
+      selector: td:contains("Feltöltve:")
+      filters:
+        - name: regexp
+          args: "Feltöltve: *([0-9]{4}-[0-9]{2}-[0-9]{2} +[0-9]{2}:[0-9]{2}:[0-9]{2})"
+        - name: append
+          args: " +01:00" # Europe/Budapest, CET
+        - name: dateparse
+          args: "yyyy-MM-dd HH:mm:ss zzz"
+    grabs:
+      selector: td:nth-child(7) b
+      filters:
+        - name: regexp
+          args: "([0-9]+) *[xX]"
path: src/Jackett.Common/Definitions/matrix.yml
user: login: rpatterson
body: Ah, good to know, thanks!
created_at: 2025-03-04T20:45:53Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,180 @@
+---
+id: matrix
+name: Matrix
+description: "M.A.T.R.I.X is a Hungarian Private Tracker for MOVIES / TV / GENERAL"
+language: hu-HU
+type: private
+encoding: UTF-8
+links:
+  - https://matrixworld.info/
+
+caps:
+  categorymappings:
+    - {id: 23, cat: Movies/Other, desc: "Animációk"}
+    - {id: 61, cat: Movies/Other, desc: "Cam/EN"}
+    - {id: 60, cat: Movies/Other, desc: "Cam/HU"}
+    - {id: 45, cat: Books/EBook, desc: "eBook/EN"}
+    - {id: 40, cat: Books/EBook, desc: "eBook/HU"}
+    - {id: 20, cat: Movies/DVD, desc: "Film/DVD9"}
+    - {id: 48, cat: Movies/HD, desc: "Film/EN/1080p"}
+    - {id: 32, cat: Movies/HD, desc: "Film/EN/720p"}
+    - {id: 38, cat: Movies/BluRay, desc: "Film/EN/Blu-ray"}
+    - {id: 27, cat: Movies/DVD, desc: "Film/EN/DVD-R"}
+    - {id: 24, cat: Movies/SD, desc: "Film/EN/SD"}
+    - {id: 34, cat: Movies/HD, desc: "Film/HU/1080p"}
+    - {id: 31, cat: Movies/HD, desc: "Film/HU/720p"}
+    - {id: 35, cat: Movies/BluRay, desc: "Film/HU/Blu-ray"}
+    - {id: 26, cat: Movies/DVD, desc: "Film/HU/DVD-R"}
+    - {id: 5, cat: Movies/SD, desc: "Film/HU/SD"}
+    - {id: 4, cat: PC/Games, desc: "Játékok/ISO"}
+    - {id: 39, cat: PC/Games, desc: "Játékok/Rip/Dox"}
+    - {id: 47, cat: Other, desc: "Klippek"}
+    - {id: 30, cat: Audio/Lossless, desc: "Lossless/EN"}
+    - {id: 29, cat: Audio/Lossless, desc: "Lossless/HU"}
+    - {id: 25, cat: Audio/MP3, desc: "MP3/EN"}
+    - {id: 6, cat: Audio/MP3, desc: "MP3/HU"}
+    - {id: 33, cat: PC, desc: "Program/egyéb"}
+    - {id: 1, cat: PC/ISO, desc: "Program/ISO"}
+    - {id: 36, cat: TV/HD, desc: "Sorozat/EN/HD"}
+    - {id: 49, cat: TV/SD, desc: "Sorozat/EN/SD"}
+    - {id: 28, cat: TV/HD, desc: "Sorozat/HU/HD"}
+    - {id: 7, cat: TV/SD, desc: "Sorozat/HU/SD"}
+    - {id: 9, cat: XXX, desc: "XXX"}
+    - {id: 44, cat: XXX/Other, desc: "XXX/HD"}
+    - {id: 43, cat: XXX/SD, desc: "XXX/SD"}
+
+  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: 0
+    options:
+      0: Uploaded
+      1: Name
+      2: Files
+      3: Comments
+      5: DLs
+      6: Seeders
+      7: Leechers
+  - 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 <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
+
+login:
+  path: takelogin.php
+  method: post
+  inputs:
+    username: "{{ .Config.username }}"
+    password: "{{ .Config.password }}"
+  error:
+    - selector: h2:contains("Sikertelen bejelentkezés")
+      message:
+        text: "Error during login. Its likely your username or password is incorrect."
+  test:
+    path: /
+    selector: a[href="logout.php"]
+
+search:
+  paths:
+    - path: browse.php
+  inputs:
+    $raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
+    search: "{{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
+    # 0 active only, 1 include dead
+    incldead: 1
+    sort: "{{ .Config.sort }}"
+    type: "{{ .Config.type }}"
+
+  rows:
+    selector: table.mainouter > tbody > tr > td > table tr:has(a[href^="download.php?id="])
path: src/Jackett.Common/Definitions/matrix.yml
user: login: rpatterson
body: Ah, I see how that works. Nice.
created_at: 2025-03-04T20:48:11Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,180 @@
+---
+id: matrix
+name: Matrix
+description: "M.A.T.R.I.X is a Hungarian Private Tracker for MOVIES / TV / GENERAL"
+language: hu-HU
+type: private
+encoding: UTF-8
+links:
+  - https://matrixworld.info/
+
+caps:
+  categorymappings:
+    - {id: 23, cat: Movies/Other, desc: "Animációk"}
+    - {id: 61, cat: Movies/Other, desc: "Cam/EN"}
+    - {id: 60, cat: Movies/Other, desc: "Cam/HU"}
+    - {id: 45, cat: Books/EBook, desc: "eBook/EN"}
+    - {id: 40, cat: Books/EBook, desc: "eBook/HU"}
+    - {id: 20, cat: Movies/DVD, desc: "Film/DVD9"}
+    - {id: 48, cat: Movies/HD, desc: "Film/EN/1080p"}
+    - {id: 32, cat: Movies/HD, desc: "Film/EN/720p"}
+    - {id: 38, cat: Movies/BluRay, desc: "Film/EN/Blu-ray"}
+    - {id: 27, cat: Movies/DVD, desc: "Film/EN/DVD-R"}
+    - {id: 24, cat: Movies/SD, desc: "Film/EN/SD"}
+    - {id: 34, cat: Movies/HD, desc: "Film/HU/1080p"}
+    - {id: 31, cat: Movies/HD, desc: "Film/HU/720p"}
+    - {id: 35, cat: Movies/BluRay, desc: "Film/HU/Blu-ray"}
+    - {id: 26, cat: Movies/DVD, desc: "Film/HU/DVD-R"}
+    - {id: 5, cat: Movies/SD, desc: "Film/HU/SD"}
+    - {id: 4, cat: PC/Games, desc: "Játékok/ISO"}
+    - {id: 39, cat: PC/Games, desc: "Játékok/Rip/Dox"}
+    - {id: 47, cat: Other, desc: "Klippek"}
+    - {id: 30, cat: Audio/Lossless, desc: "Lossless/EN"}
+    - {id: 29, cat: Audio/Lossless, desc: "Lossless/HU"}
+    - {id: 25, cat: Audio/MP3, desc: "MP3/EN"}
+    - {id: 6, cat: Audio/MP3, desc: "MP3/HU"}
+    - {id: 33, cat: PC, desc: "Program/egyéb"}
+    - {id: 1, cat: PC/ISO, desc: "Program/ISO"}
+    - {id: 36, cat: TV/HD, desc: "Sorozat/EN/HD"}
+    - {id: 49, cat: TV/SD, desc: "Sorozat/EN/SD"}
+    - {id: 28, cat: TV/HD, desc: "Sorozat/HU/HD"}
+    - {id: 7, cat: TV/SD, desc: "Sorozat/HU/SD"}
+    - {id: 9, cat: XXX, desc: "XXX"}
+    - {id: 44, cat: XXX/Other, desc: "XXX/HD"}
+    - {id: 43, cat: XXX/SD, desc: "XXX/SD"}
+
+  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: 0
+    options:
+      0: Uploaded
+      1: Name
+      2: Files
+      3: Comments
+      5: DLs
+      6: Seeders
+      7: Leechers
+  - 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 <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
+
+login:
+  path: takelogin.php
+  method: post
+  inputs:
+    username: "{{ .Config.username }}"
+    password: "{{ .Config.password }}"
+  error:
+    - selector: h2:contains("Sikertelen bejelentkezés")
+      message:
+        text: "Error during login. Its likely your username or password is incorrect."
+  test:
+    path: /
+    selector: a[href="logout.php"]
+
+search:
+  paths:
+    - path: browse.php
+  inputs:
+    $raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
+    search: "{{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
path: src/Jackett.Common/Definitions/matrix.yml
user: login: garfield69
body: The Jackett dashboard search box allows the user to enter tt12345678 to invoke an imdbid search.
But some sites search engines have a special search parm for imdbid searches, so for those indexes we need to remove the imdbid key from the title search or the indexer will generate a URL with `https://domain.com/search.php?&search=tt12345678&imdbid=tt1234568` which will return no results as there are no titles called tt12345678
created_at: 2025-03-04T21:02:45Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,180 @@
+---
+id: matrix
+name: Matrix
+description: "M.A.T.R.I.X is a Hungarian Private Tracker for MOVIES / TV / GENERAL"
+language: hu-HU
+type: private
+encoding: UTF-8
+links:
+  - https://matrixworld.info/
+
+caps:
+  categorymappings:
+    - {id: 23, cat: Movies/Other, desc: "Animációk"}
+    - {id: 61, cat: Movies/Other, desc: "Cam/EN"}
+    - {id: 60, cat: Movies/Other, desc: "Cam/HU"}
+    - {id: 45, cat: Books/EBook, desc: "eBook/EN"}
+    - {id: 40, cat: Books/EBook, desc: "eBook/HU"}
+    - {id: 20, cat: Movies/DVD, desc: "Film/DVD9"}
+    - {id: 48, cat: Movies/HD, desc: "Film/EN/1080p"}
+    - {id: 32, cat: Movies/HD, desc: "Film/EN/720p"}
+    - {id: 38, cat: Movies/BluRay, desc: "Film/EN/Blu-ray"}
+    - {id: 27, cat: Movies/DVD, desc: "Film/EN/DVD-R"}
+    - {id: 24, cat: Movies/SD, desc: "Film/EN/SD"}
+    - {id: 34, cat: Movies/HD, desc: "Film/HU/1080p"}
+    - {id: 31, cat: Movies/HD, desc: "Film/HU/720p"}
+    - {id: 35, cat: Movies/BluRay, desc: "Film/HU/Blu-ray"}
+    - {id: 26, cat: Movies/DVD, desc: "Film/HU/DVD-R"}
+    - {id: 5, cat: Movies/SD, desc: "Film/HU/SD"}
+    - {id: 4, cat: PC/Games, desc: "Játékok/ISO"}
+    - {id: 39, cat: PC/Games, desc: "Játékok/Rip/Dox"}
+    - {id: 47, cat: Other, desc: "Klippek"}
+    - {id: 30, cat: Audio/Lossless, desc: "Lossless/EN"}
+    - {id: 29, cat: Audio/Lossless, desc: "Lossless/HU"}
+    - {id: 25, cat: Audio/MP3, desc: "MP3/EN"}
+    - {id: 6, cat: Audio/MP3, desc: "MP3/HU"}
+    - {id: 33, cat: PC, desc: "Program/egyéb"}
+    - {id: 1, cat: PC/ISO, desc: "Program/ISO"}
+    - {id: 36, cat: TV/HD, desc: "Sorozat/EN/HD"}
+    - {id: 49, cat: TV/SD, desc: "Sorozat/EN/SD"}
+    - {id: 28, cat: TV/HD, desc: "Sorozat/HU/HD"}
+    - {id: 7, cat: TV/SD, desc: "Sorozat/HU/SD"}
+    - {id: 9, cat: XXX, desc: "XXX"}
+    - {id: 44, cat: XXX/Other, desc: "XXX/HD"}
+    - {id: 43, cat: XXX/SD, desc: "XXX/SD"}
+
+  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: 0
+    options:
+      0: Uploaded
+      1: Name
+      2: Files
+      3: Comments
+      5: DLs
+      6: Seeders
+      7: Leechers
+  - 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 <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
+
+login:
+  path: takelogin.php
+  method: post
+  inputs:
+    username: "{{ .Config.username }}"
+    password: "{{ .Config.password }}"
+  error:
+    - selector: h2:contains("Sikertelen bejelentkezés")
+      message:
+        text: "Error during login. Its likely your username or password is incorrect."
+  test:
+    path: /
+    selector: a[href="logout.php"]
path: src/Jackett.Common/Definitions/matrix.yml
user: login: rpatterson
body: While testing this change, I found I was only able to get the Prowlarr edit form to fail validation and display the error message after deleting the indexer. The edit form for an existing indexer did *not* fail validation when I put a nonsense password in. I think it was in my other PR that you or someone else said that Prowlarr clears the cookie when saving the edit form. Can you clarify what might be going on here?

Regardless, I don't think that's related to the indexer definition so I'd call this change confirmed. I just would like to understand if possible.
created_at: 2025-03-04T21:15:25Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,180 @@
+---
+id: matrix
+name: Matrix
+description: "M.A.T.R.I.X is a Hungarian Private Tracker for MOVIES / TV / GENERAL"
+language: hu-HU
+type: private
+encoding: UTF-8
+links:
+  - https://matrixworld.info/
+
+caps:
+  categorymappings:
+    - {id: 23, cat: Movies/Other, desc: "Animációk"}
+    - {id: 61, cat: Movies/Other, desc: "Cam/EN"}
+    - {id: 60, cat: Movies/Other, desc: "Cam/HU"}
+    - {id: 45, cat: Books/EBook, desc: "eBook/EN"}
+    - {id: 40, cat: Books/EBook, desc: "eBook/HU"}
+    - {id: 20, cat: Movies/DVD, desc: "Film/DVD9"}
+    - {id: 48, cat: Movies/HD, desc: "Film/EN/1080p"}
+    - {id: 32, cat: Movies/HD, desc: "Film/EN/720p"}
+    - {id: 38, cat: Movies/BluRay, desc: "Film/EN/Blu-ray"}
+    - {id: 27, cat: Movies/DVD, desc: "Film/EN/DVD-R"}
+    - {id: 24, cat: Movies/SD, desc: "Film/EN/SD"}
+    - {id: 34, cat: Movies/HD, desc: "Film/HU/1080p"}
+    - {id: 31, cat: Movies/HD, desc: "Film/HU/720p"}
+    - {id: 35, cat: Movies/BluRay, desc: "Film/HU/Blu-ray"}
+    - {id: 26, cat: Movies/DVD, desc: "Film/HU/DVD-R"}
+    - {id: 5, cat: Movies/SD, desc: "Film/HU/SD"}
+    - {id: 4, cat: PC/Games, desc: "Játékok/ISO"}
+    - {id: 39, cat: PC/Games, desc: "Játékok/Rip/Dox"}
+    - {id: 47, cat: Other, desc: "Klippek"}
+    - {id: 30, cat: Audio/Lossless, desc: "Lossless/EN"}
+    - {id: 29, cat: Audio/Lossless, desc: "Lossless/HU"}
+    - {id: 25, cat: Audio/MP3, desc: "MP3/EN"}
+    - {id: 6, cat: Audio/MP3, desc: "MP3/HU"}
+    - {id: 33, cat: PC, desc: "Program/egyéb"}
+    - {id: 1, cat: PC/ISO, desc: "Program/ISO"}
+    - {id: 36, cat: TV/HD, desc: "Sorozat/EN/HD"}
+    - {id: 49, cat: TV/SD, desc: "Sorozat/EN/SD"}
+    - {id: 28, cat: TV/HD, desc: "Sorozat/HU/HD"}
+    - {id: 7, cat: TV/SD, desc: "Sorozat/HU/SD"}
+    - {id: 9, cat: XXX, desc: "XXX"}
+    - {id: 44, cat: XXX/Other, desc: "XXX/HD"}
+    - {id: 43, cat: XXX/SD, desc: "XXX/SD"}
+
+  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: 0
+    options:
+      0: Uploaded
+      1: Name
+      2: Files
+      3: Comments
+      5: DLs
+      6: Seeders
+      7: Leechers
+  - 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 <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
+
+login:
+  path: takelogin.php
+  method: post
+  inputs:
+    username: "{{ .Config.username }}"
+    password: "{{ .Config.password }}"
+  error:
+    - selector: h2:contains("Sikertelen bejelentkezés")
+      message:
+        text: "Error during login. Its likely your username or password is incorrect."
+  test:
+    path: /
+    selector: a[href="logout.php"]
+
+search:
+  paths:
+    - path: browse.php
+  inputs:
+    $raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
+    search: "{{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
+    # 0 active only, 1 include dead
+    incldead: 1
+    sort: "{{ .Config.sort }}"
+    type: "{{ .Config.type }}"
+
+  rows:
+    selector: table.mainouter > tbody > tr > td > table tr:has(a[href^="download.php?id="])
+
+  fields:
+    category:
+      selector: a[href^="browse.php?cat="]
+      attribute: href
+      filters:
+        - name: querystring
+          args: cat
+    title:
+      selector: a.torrent-link b
+    details:
+      selector: a[href^="details.php?id="]
+      attribute: href
+      filters:
+        - name: prepend
+          args: "details.php?id="
+        - name: querystring
+          args: id
path: src/Jackett.Common/Definitions/matrix.yml
user: login: garfield69
body: When I first saw this I thought there was no way that could build a valid link, I expected the results to be something like 
`https://domain.com/details.php?id=4361details.php?id=4361&hit=1&filelist=1` and so I did not even bother to actually try using it, my bad, sorry.
Or I expected the querystring to return the id of 4361 and override the prepend and get `https://domain.com/4361` 

Truthfully I am as a loss to understand how your original details selector managed to generate a valid details link, it seems you have found a new feature ;-)

But since our indexers are imported to prowlarr, and they have their own version of the Cardigann processor, there is no guarantee that their processor will generate the same results, so I opted to fall back to our standard method of generating a details link when a dedicated details selector is not available.
created_at: 2025-03-04T21:17:16Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,180 @@
+---
+id: matrix
+name: Matrix
+description: "M.A.T.R.I.X is a Hungarian Private Tracker for MOVIES / TV / GENERAL"
+language: hu-HU
+type: private
+encoding: UTF-8
+links:
+  - https://matrixworld.info/
+
+caps:
+  categorymappings:
+    - {id: 23, cat: Movies/Other, desc: "Animációk"}
+    - {id: 61, cat: Movies/Other, desc: "Cam/EN"}
+    - {id: 60, cat: Movies/Other, desc: "Cam/HU"}
+    - {id: 45, cat: Books/EBook, desc: "eBook/EN"}
+    - {id: 40, cat: Books/EBook, desc: "eBook/HU"}
+    - {id: 20, cat: Movies/DVD, desc: "Film/DVD9"}
+    - {id: 48, cat: Movies/HD, desc: "Film/EN/1080p"}
+    - {id: 32, cat: Movies/HD, desc: "Film/EN/720p"}
+    - {id: 38, cat: Movies/BluRay, desc: "Film/EN/Blu-ray"}
+    - {id: 27, cat: Movies/DVD, desc: "Film/EN/DVD-R"}
+    - {id: 24, cat: Movies/SD, desc: "Film/EN/SD"}
+    - {id: 34, cat: Movies/HD, desc: "Film/HU/1080p"}
+    - {id: 31, cat: Movies/HD, desc: "Film/HU/720p"}
+    - {id: 35, cat: Movies/BluRay, desc: "Film/HU/Blu-ray"}
+    - {id: 26, cat: Movies/DVD, desc: "Film/HU/DVD-R"}
+    - {id: 5, cat: Movies/SD, desc: "Film/HU/SD"}
+    - {id: 4, cat: PC/Games, desc: "Játékok/ISO"}
+    - {id: 39, cat: PC/Games, desc: "Játékok/Rip/Dox"}
+    - {id: 47, cat: Other, desc: "Klippek"}
+    - {id: 30, cat: Audio/Lossless, desc: "Lossless/EN"}
+    - {id: 29, cat: Audio/Lossless, desc: "Lossless/HU"}
+    - {id: 25, cat: Audio/MP3, desc: "MP3/EN"}
+    - {id: 6, cat: Audio/MP3, desc: "MP3/HU"}
+    - {id: 33, cat: PC, desc: "Program/egyéb"}
+    - {id: 1, cat: PC/ISO, desc: "Program/ISO"}
+    - {id: 36, cat: TV/HD, desc: "Sorozat/EN/HD"}
+    - {id: 49, cat: TV/SD, desc: "Sorozat/EN/SD"}
+    - {id: 28, cat: TV/HD, desc: "Sorozat/HU/HD"}
+    - {id: 7, cat: TV/SD, desc: "Sorozat/HU/SD"}
+    - {id: 9, cat: XXX, desc: "XXX"}
+    - {id: 44, cat: XXX/Other, desc: "XXX/HD"}
+    - {id: 43, cat: XXX/SD, desc: "XXX/SD"}
+
+  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: 0
+    options:
+      0: Uploaded
+      1: Name
+      2: Files
+      3: Comments
+      5: DLs
+      6: Seeders
+      7: Leechers
+  - 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 <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
+
+login:
+  path: takelogin.php
+  method: post
+  inputs:
+    username: "{{ .Config.username }}"
+    password: "{{ .Config.password }}"
+  error:
+    - selector: h2:contains("Sikertelen bejelentkezés")
+      message:
+        text: "Error during login. Its likely your username or password is incorrect."
+  test:
+    path: /
+    selector: a[href="logout.php"]
+
+search:
+  paths:
+    - path: browse.php
+  inputs:
+    $raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
+    search: "{{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
+    # 0 active only, 1 include dead
path: src/Jackett.Common/Definitions/matrix.yml
user: login: garfield69
body: I based my update on the source HTML which has 
```HTML
                            <td class="bottom" style="padding: 1px; padding-left: 10px;">
                                <select name="incldead">
                                    <option value="0">Aktívak</option>
                                    <option value="1">Halottak közt is</option>
                                    <option value="2">Csak halottak közt</option>
                                </select>
                            </td>
```
which shows up when you click the categories link to expand the search options on the web site.
created_at: 2025-03-04T21:23:10Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,180 @@
+---
+id: matrix
+name: Matrix
+description: "M.A.T.R.I.X is a Hungarian Private Tracker for MOVIES / TV / GENERAL"
+language: hu-HU
+type: private
+encoding: UTF-8
+links:
+  - https://matrixworld.info/
+
+caps:
+  categorymappings:
+    - {id: 23, cat: Movies/Other, desc: "Animációk"}
+    - {id: 61, cat: Movies/Other, desc: "Cam/EN"}
+    - {id: 60, cat: Movies/Other, desc: "Cam/HU"}
+    - {id: 45, cat: Books/EBook, desc: "eBook/EN"}
+    - {id: 40, cat: Books/EBook, desc: "eBook/HU"}
+    - {id: 20, cat: Movies/DVD, desc: "Film/DVD9"}
+    - {id: 48, cat: Movies/HD, desc: "Film/EN/1080p"}
+    - {id: 32, cat: Movies/HD, desc: "Film/EN/720p"}
+    - {id: 38, cat: Movies/BluRay, desc: "Film/EN/Blu-ray"}
+    - {id: 27, cat: Movies/DVD, desc: "Film/EN/DVD-R"}
+    - {id: 24, cat: Movies/SD, desc: "Film/EN/SD"}
+    - {id: 34, cat: Movies/HD, desc: "Film/HU/1080p"}
+    - {id: 31, cat: Movies/HD, desc: "Film/HU/720p"}
+    - {id: 35, cat: Movies/BluRay, desc: "Film/HU/Blu-ray"}
+    - {id: 26, cat: Movies/DVD, desc: "Film/HU/DVD-R"}
+    - {id: 5, cat: Movies/SD, desc: "Film/HU/SD"}
+    - {id: 4, cat: PC/Games, desc: "Játékok/ISO"}
+    - {id: 39, cat: PC/Games, desc: "Játékok/Rip/Dox"}
+    - {id: 47, cat: Other, desc: "Klippek"}
+    - {id: 30, cat: Audio/Lossless, desc: "Lossless/EN"}
+    - {id: 29, cat: Audio/Lossless, desc: "Lossless/HU"}
+    - {id: 25, cat: Audio/MP3, desc: "MP3/EN"}
+    - {id: 6, cat: Audio/MP3, desc: "MP3/HU"}
+    - {id: 33, cat: PC, desc: "Program/egyéb"}
+    - {id: 1, cat: PC/ISO, desc: "Program/ISO"}
+    - {id: 36, cat: TV/HD, desc: "Sorozat/EN/HD"}
+    - {id: 49, cat: TV/SD, desc: "Sorozat/EN/SD"}
+    - {id: 28, cat: TV/HD, desc: "Sorozat/HU/HD"}
+    - {id: 7, cat: TV/SD, desc: "Sorozat/HU/SD"}
+    - {id: 9, cat: XXX, desc: "XXX"}
+    - {id: 44, cat: XXX/Other, desc: "XXX/HD"}
+    - {id: 43, cat: XXX/SD, desc: "XXX/SD"}
+
+  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: 0
+    options:
+      0: Uploaded
+      1: Name
+      2: Files
+      3: Comments
+      5: DLs
+      6: Seeders
+      7: Leechers
+  - 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 <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
+
+login:
+  path: takelogin.php
+  method: post
+  inputs:
+    username: "{{ .Config.username }}"
+    password: "{{ .Config.password }}"
+  error:
+    - selector: h2:contains("Sikertelen bejelentkezés")
+      message:
+        text: "Error during login. Its likely your username or password is incorrect."
+  test:
+    path: /
+    selector: a[href="logout.php"]
+
+search:
+  paths:
+    - path: browse.php
+  inputs:
+    $raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
+    search: "{{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
+    # 0 active only, 1 include dead
path: src/Jackett.Common/Definitions/matrix.yml
user: login: rpatterson
body: Ah, sorry I missed that, thanks.
created_at: 2025-03-04T21:25:31Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,180 @@
+---
+id: matrix
+name: Matrix
+description: "M.A.T.R.I.X is a Hungarian Private Tracker for MOVIES / TV / GENERAL"
+language: hu-HU
+type: private
+encoding: UTF-8
+links:
+  - https://matrixworld.info/
+
+caps:
+  categorymappings:
+    - {id: 23, cat: Movies/Other, desc: "Animációk"}
+    - {id: 61, cat: Movies/Other, desc: "Cam/EN"}
+    - {id: 60, cat: Movies/Other, desc: "Cam/HU"}
+    - {id: 45, cat: Books/EBook, desc: "eBook/EN"}
+    - {id: 40, cat: Books/EBook, desc: "eBook/HU"}
+    - {id: 20, cat: Movies/DVD, desc: "Film/DVD9"}
+    - {id: 48, cat: Movies/HD, desc: "Film/EN/1080p"}
+    - {id: 32, cat: Movies/HD, desc: "Film/EN/720p"}
+    - {id: 38, cat: Movies/BluRay, desc: "Film/EN/Blu-ray"}
+    - {id: 27, cat: Movies/DVD, desc: "Film/EN/DVD-R"}
+    - {id: 24, cat: Movies/SD, desc: "Film/EN/SD"}
+    - {id: 34, cat: Movies/HD, desc: "Film/HU/1080p"}
+    - {id: 31, cat: Movies/HD, desc: "Film/HU/720p"}
+    - {id: 35, cat: Movies/BluRay, desc: "Film/HU/Blu-ray"}
+    - {id: 26, cat: Movies/DVD, desc: "Film/HU/DVD-R"}
+    - {id: 5, cat: Movies/SD, desc: "Film/HU/SD"}
+    - {id: 4, cat: PC/Games, desc: "Játékok/ISO"}
+    - {id: 39, cat: PC/Games, desc: "Játékok/Rip/Dox"}
+    - {id: 47, cat: Other, desc: "Klippek"}
+    - {id: 30, cat: Audio/Lossless, desc: "Lossless/EN"}
+    - {id: 29, cat: Audio/Lossless, desc: "Lossless/HU"}
+    - {id: 25, cat: Audio/MP3, desc: "MP3/EN"}
+    - {id: 6, cat: Audio/MP3, desc: "MP3/HU"}
+    - {id: 33, cat: PC, desc: "Program/egyéb"}
+    - {id: 1, cat: PC/ISO, desc: "Program/ISO"}
+    - {id: 36, cat: TV/HD, desc: "Sorozat/EN/HD"}
+    - {id: 49, cat: TV/SD, desc: "Sorozat/EN/SD"}
+    - {id: 28, cat: TV/HD, desc: "Sorozat/HU/HD"}
+    - {id: 7, cat: TV/SD, desc: "Sorozat/HU/SD"}
+    - {id: 9, cat: XXX, desc: "XXX"}
+    - {id: 44, cat: XXX/Other, desc: "XXX/HD"}
+    - {id: 43, cat: XXX/SD, desc: "XXX/SD"}
+
+  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: 0
+    options:
+      0: Uploaded
+      1: Name
+      2: Files
+      3: Comments
+      5: DLs
+      6: Seeders
+      7: Leechers
+  - 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 <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
+
+login:
+  path: takelogin.php
+  method: post
+  inputs:
+    username: "{{ .Config.username }}"
+    password: "{{ .Config.password }}"
+  error:
+    - selector: h2:contains("Sikertelen bejelentkezés")
+      message:
+        text: "Error during login. Its likely your username or password is incorrect."
path: src/Jackett.Common/Definitions/matrix.yml
user: login: rpatterson
body: I copied that text from another definition. I guess that indexer doesn't say anything. Makes sense.
created_at: 2025-03-04T21:27:41Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,180 @@
+---
+id: matrix
+name: Matrix
+description: "M.A.T.R.I.X is a Hungarian Private Tracker for MOVIES / TV / GENERAL"
+language: hu-HU
+type: private
+encoding: UTF-8
+links:
+  - https://matrixworld.info/
+
+caps:
+  categorymappings:
+    - {id: 23, cat: Movies/Other, desc: "Animációk"}
+    - {id: 61, cat: Movies/Other, desc: "Cam/EN"}
+    - {id: 60, cat: Movies/Other, desc: "Cam/HU"}
+    - {id: 45, cat: Books/EBook, desc: "eBook/EN"}
+    - {id: 40, cat: Books/EBook, desc: "eBook/HU"}
+    - {id: 20, cat: Movies/DVD, desc: "Film/DVD9"}
+    - {id: 48, cat: Movies/HD, desc: "Film/EN/1080p"}
+    - {id: 32, cat: Movies/HD, desc: "Film/EN/720p"}
+    - {id: 38, cat: Movies/BluRay, desc: "Film/EN/Blu-ray"}
+    - {id: 27, cat: Movies/DVD, desc: "Film/EN/DVD-R"}
+    - {id: 24, cat: Movies/SD, desc: "Film/EN/SD"}
+    - {id: 34, cat: Movies/HD, desc: "Film/HU/1080p"}
+    - {id: 31, cat: Movies/HD, desc: "Film/HU/720p"}
+    - {id: 35, cat: Movies/BluRay, desc: "Film/HU/Blu-ray"}
+    - {id: 26, cat: Movies/DVD, desc: "Film/HU/DVD-R"}
+    - {id: 5, cat: Movies/SD, desc: "Film/HU/SD"}
+    - {id: 4, cat: PC/Games, desc: "Játékok/ISO"}
+    - {id: 39, cat: PC/Games, desc: "Játékok/Rip/Dox"}
+    - {id: 47, cat: Other, desc: "Klippek"}
+    - {id: 30, cat: Audio/Lossless, desc: "Lossless/EN"}
+    - {id: 29, cat: Audio/Lossless, desc: "Lossless/HU"}
+    - {id: 25, cat: Audio/MP3, desc: "MP3/EN"}
+    - {id: 6, cat: Audio/MP3, desc: "MP3/HU"}
+    - {id: 33, cat: PC, desc: "Program/egyéb"}
+    - {id: 1, cat: PC/ISO, desc: "Program/ISO"}
+    - {id: 36, cat: TV/HD, desc: "Sorozat/EN/HD"}
+    - {id: 49, cat: TV/SD, desc: "Sorozat/EN/SD"}
+    - {id: 28, cat: TV/HD, desc: "Sorozat/HU/HD"}
+    - {id: 7, cat: TV/SD, desc: "Sorozat/HU/SD"}
+    - {id: 9, cat: XXX, desc: "XXX"}
+    - {id: 44, cat: XXX/Other, desc: "XXX/HD"}
+    - {id: 43, cat: XXX/SD, desc: "XXX/SD"}
+
+  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: 0
+    options:
+      0: Uploaded
+      1: Name
+      2: Files
+      3: Comments
+      5: DLs
+      6: Seeders
+      7: Leechers
+  - 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 <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
+
+login:
+  path: takelogin.php
+  method: post
+  inputs:
+    username: "{{ .Config.username }}"
+    password: "{{ .Config.password }}"
+  error:
+    - selector: h2:contains("Sikertelen bejelentkezés")
+      message:
+        text: "Error during login. Its likely your username or password is incorrect."
+  test:
+    path: /
+    selector: a[href="logout.php"]
path: src/Jackett.Common/Definitions/matrix.yml
user: login: garfield69
body: Prowlarr is a different beast from Jackett and behaves in different ways when using our indexers, so I cannot offer insights to what is going on there, as I only maintain Jackett and have personally never used Prowlarr ;-D
created_at: 2025-03-04T21:30:06Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,175 @@
+---
+id: matrix
+name: Matrix
+description: "M.A.T.R.I.X is a HUNGARIAN Private Tracker for MOVIES / TV / GENERAL"
+language: hu-HU
+type: private
+encoding: UTF-8
+links:
+  - https://matrixworld.info/
+
+caps:
+  categorymappings:
+    - {id: 23, cat: Movies/Other, desc: "Animációk"}
+    - {id: 61, cat: Movies/Other, desc: "Cam/EN"}
+    - {id: 60, cat: Movies/Other, desc: "Cam/HU"}
+    - {id: 45, cat: Books/EBook, desc: "eBook/EN"}
+    - {id: 40, cat: Books/EBook, desc: "eBook/HU"}
+    - {id: 20, cat: Movies/DVD, desc: "Film/DVD9"}
+    - {id: 48, cat: Movies/HD, desc: "Film/EN/1080p"}
+    - {id: 32, cat: Movies/HD, desc: "Film/EN/720p"}
+    - {id: 38, cat: Movies/BluRay, desc: "Film/EN/Blu-ray"}
+    - {id: 27, cat: Movies/DVD, desc: "Film/EN/DVD-R"}
+    - {id: 24, cat: Movies/SD, desc: "Film/EN/SD"}
+    - {id: 34, cat: Movies/HD, desc: "Film/HU/1080p"}
+    - {id: 31, cat: Movies/HD, desc: "Film/HU/720p"}
+    - {id: 35, cat: Movies/BluRay, desc: "Film/HU/Blu-ray"}
+    - {id: 26, cat: Movies/DVD, desc: "Film/HU/DVD-R"}
+    - {id: 5, cat: Movies/SD, desc: "Film/HU/SD"}
+    - {id: 4, cat: PC/Games, desc: "Játékok/ISO"}
+    - {id: 39, cat: PC/Games, desc: "Játékok/Rip/Dox"}
+    - {id: 47, cat: Other, desc: "Klippek"}
+    - {id: 30, cat: Audio/Lossless, desc: "Lossless/EN"}
+    - {id: 29, cat: Audio/Lossless, desc: "Lossless/HU"}
+    - {id: 25, cat: Audio/MP3, desc: "MP3/EN"}
+    - {id: 6, cat: Audio/MP3, desc: "MP3/HU"}
+    - {id: 33, cat: PC, desc: "Program/egyéb"}
+    - {id: 1, cat: PC/ISO, desc: "Program/ISO"}
+    - {id: 36, cat: TV/HD, desc: "Sorozat/EN/HD"}
+    - {id: 49, cat: TV/SD, desc: "Sorozat/EN/SD"}
+    - {id: 28, cat: TV/HD, desc: "Sorozat/HU/HD"}
+    - {id: 7, cat: TV/SD, desc: "Sorozat/HU/SD"}
+    - {id: 9, cat: XXX, desc: "XXX"}
+    - {id: 44, cat: XXX/Other, desc: "XXX/HD"}
+    - {id: 43, cat: XXX/SD, desc: "XXX/SD"}
+
+  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: Filter freeleech only
+    default: false
+  - name: sort
+    type: select
+    label: Sort requested from site
+    default: 0
+    options:
+      0: created
+      1: title
+      4: size
+      6: 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 <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
path: src/Jackett.Common/Definitions/matrix.yml
user: login: ilike2burnthing
body: ```suggestion
    default: For best results, change the <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
  - name: info_activity
    type: info
    label: Account Inactivity
    default: "If you do not log in to the site for 6 months, the system will automatically delete it!"
```

It also says `At the moment, the auto-delete function is not active`, but I assume that means it will be in future, so might as well just add it.
created_at: 2025-03-04T23:07:37Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,175 @@
+---
+id: matrix
+name: Matrix
+description: "M.A.T.R.I.X is a HUNGARIAN Private Tracker for MOVIES / TV / GENERAL"
+language: hu-HU
+type: private
+encoding: UTF-8
+links:
+  - https://matrixworld.info/
+
+caps:
+  categorymappings:
+    - {id: 23, cat: Movies/Other, desc: "Animációk"}
+    - {id: 61, cat: Movies/Other, desc: "Cam/EN"}
+    - {id: 60, cat: Movies/Other, desc: "Cam/HU"}
+    - {id: 45, cat: Books/EBook, desc: "eBook/EN"}
+    - {id: 40, cat: Books/EBook, desc: "eBook/HU"}
+    - {id: 20, cat: Movies/DVD, desc: "Film/DVD9"}
+    - {id: 48, cat: Movies/HD, desc: "Film/EN/1080p"}
+    - {id: 32, cat: Movies/HD, desc: "Film/EN/720p"}
+    - {id: 38, cat: Movies/BluRay, desc: "Film/EN/Blu-ray"}
+    - {id: 27, cat: Movies/DVD, desc: "Film/EN/DVD-R"}
+    - {id: 24, cat: Movies/SD, desc: "Film/EN/SD"}
+    - {id: 34, cat: Movies/HD, desc: "Film/HU/1080p"}
+    - {id: 31, cat: Movies/HD, desc: "Film/HU/720p"}
+    - {id: 35, cat: Movies/BluRay, desc: "Film/HU/Blu-ray"}
+    - {id: 26, cat: Movies/DVD, desc: "Film/HU/DVD-R"}
+    - {id: 5, cat: Movies/SD, desc: "Film/HU/SD"}
+    - {id: 4, cat: PC/Games, desc: "Játékok/ISO"}
+    - {id: 39, cat: PC/Games, desc: "Játékok/Rip/Dox"}
+    - {id: 47, cat: Other, desc: "Klippek"}
+    - {id: 30, cat: Audio/Lossless, desc: "Lossless/EN"}
+    - {id: 29, cat: Audio/Lossless, desc: "Lossless/HU"}
+    - {id: 25, cat: Audio/MP3, desc: "MP3/EN"}
+    - {id: 6, cat: Audio/MP3, desc: "MP3/HU"}
+    - {id: 33, cat: PC, desc: "Program/egyéb"}
+    - {id: 1, cat: PC/ISO, desc: "Program/ISO"}
+    - {id: 36, cat: TV/HD, desc: "Sorozat/EN/HD"}
+    - {id: 49, cat: TV/SD, desc: "Sorozat/EN/SD"}
+    - {id: 28, cat: TV/HD, desc: "Sorozat/HU/HD"}
+    - {id: 7, cat: TV/SD, desc: "Sorozat/HU/SD"}
+    - {id: 9, cat: XXX, desc: "XXX"}
+    - {id: 44, cat: XXX/Other, desc: "XXX/HD"}
+    - {id: 43, cat: XXX/SD, desc: "XXX/SD"}
+
+  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: Filter freeleech only
+    default: false
+  - name: sort
+    type: select
+    label: Sort requested from site
+    default: 0
+    options:
+      0: created
+      1: title
+      4: size
+      6: 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 <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
+
+login:
+  path: takelogin.php
+  method: post
+  inputs:
+    username: "{{ .Config.username }}"
+    password: "{{ .Config.password }}"
+    logout: ""
+  error:
+    - selector: td.embedded:contains("Sikertelen bejelentkezés")
+  test:
+    path: /
+    selector: a[href$="logout.php"]
+
+search:
+  paths:
+    - path: browse.php
+  inputs:
+    $raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
+    search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
+    # 0 active only, 1 include dead, 2 only dead
+    incldead: 1
+    sort: "{{ .Config.sort }}"
+    type: "{{ .Config.type }}"
+
+  rows:
+    selector: "table.mainouter > tbody > tr > td > table tr:has(a[href^=\"download.php?id=\"]){{ if .Config.freeleech }}:has(img[src$=\"/pic/ingyentorrent.gif\"]){{ else }}{{ end }}"
+
+  fields:
+    category:
+      selector: a[href^="browse.php?cat="]
+      attribute: href
+      filters:
+        - name: querystring
+          args: cat
+    title:
+      selector: a.torrent-link b
+    _id:
+      selector: a[href^="download.php?id="]
+      attribute: href
+      filters:
+        - name: querystring
+          args: id
+    details:
+      text: "details.php?id={{ .Result._id }}"
+    download:
+      selector: a[href^="download.php?id="]
+      attribute: href
+    poster:
+      selector: a.torrent-link
+      attribute: data-cover
+    imdbid:
+      selector: a[href*="imdb.com/title/tt"]
+      attribute: href
+    files:
+      selector: td:nth-child(5) a
+    date:
+      selector: td:contains("Feltöltve:")
+      filters:
+        - name: regexp
+          args: "Feltöltve: *([0-9]{4}-[0-9]{2}-[0-9]{2} +[0-9]{2}:[0-9]{2}:[0-9]{2})"
+        - name: append
+          args: " +01:00" # Europe/Budapest, CET
+        - name: dateparse
+          args: "yyyy-MM-dd HH:mm:ss zzz"
+    grabs:
+      selector: td:nth-child(7) b
+    size:
+      selector: td:nth-child(7)
+      filters:
+        - name: regexp
+          args: "([0-9]+\\.?[0-9]* *[kKmMgGtTpP]i?[bB])"
+    seeders:
+      selector: td:nth-child(8)
+    leechers:
+      selector: td:nth-child(9)
+    genre:
+      selector: td:nth-child(2) > div > i > i
+      filters:
+        - name: regexp
+          args: "\\((.+)\\)"
+    description:
+      text: "{{ .Result.genre }}"
+    downloadvolumefactor:
+      case:
+        img[src$="/pic/ingyentorrent.gif"]: 0
+        "*": 1
+    uploadvolumefactor:
+      case:
+        img[src$="/pic/x2.gif"]: 2
+        "*": 1
path: src/Jackett.Common/Definitions/matrix.yml
user: login: ilike2burnthing
body: ```suggestion
        "*": 1
    minimumratio:
      text: 1.0
    minimumseedtime:
      # 2 days (as seconds = 2 x 24 x 60 x 60)
      text: 172800
```
created_at: 2025-03-04T23:09:03Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,175 @@
+---
+id: matrix
+name: Matrix
+description: "M.A.T.R.I.X is a HUNGARIAN Private Tracker for MOVIES / TV / GENERAL"
+language: hu-HU
+type: private
+encoding: UTF-8
+links:
+  - https://matrixworld.info/
+
+caps:
+  categorymappings:
+    - {id: 23, cat: Movies/Other, desc: "Animációk"}
+    - {id: 61, cat: Movies/Other, desc: "Cam/EN"}
+    - {id: 60, cat: Movies/Other, desc: "Cam/HU"}
+    - {id: 45, cat: Books/EBook, desc: "eBook/EN"}
+    - {id: 40, cat: Books/EBook, desc: "eBook/HU"}
+    - {id: 20, cat: Movies/DVD, desc: "Film/DVD9"}
+    - {id: 48, cat: Movies/HD, desc: "Film/EN/1080p"}
+    - {id: 32, cat: Movies/HD, desc: "Film/EN/720p"}
+    - {id: 38, cat: Movies/BluRay, desc: "Film/EN/Blu-ray"}
+    - {id: 27, cat: Movies/DVD, desc: "Film/EN/DVD-R"}
+    - {id: 24, cat: Movies/SD, desc: "Film/EN/SD"}
+    - {id: 34, cat: Movies/HD, desc: "Film/HU/1080p"}
+    - {id: 31, cat: Movies/HD, desc: "Film/HU/720p"}
+    - {id: 35, cat: Movies/BluRay, desc: "Film/HU/Blu-ray"}
+    - {id: 26, cat: Movies/DVD, desc: "Film/HU/DVD-R"}
+    - {id: 5, cat: Movies/SD, desc: "Film/HU/SD"}
+    - {id: 4, cat: PC/Games, desc: "Játékok/ISO"}
+    - {id: 39, cat: PC/Games, desc: "Játékok/Rip/Dox"}
+    - {id: 47, cat: Other, desc: "Klippek"}
+    - {id: 30, cat: Audio/Lossless, desc: "Lossless/EN"}
+    - {id: 29, cat: Audio/Lossless, desc: "Lossless/HU"}
+    - {id: 25, cat: Audio/MP3, desc: "MP3/EN"}
+    - {id: 6, cat: Audio/MP3, desc: "MP3/HU"}
+    - {id: 33, cat: PC, desc: "Program/egyéb"}
+    - {id: 1, cat: PC/ISO, desc: "Program/ISO"}
+    - {id: 36, cat: TV/HD, desc: "Sorozat/EN/HD"}
+    - {id: 49, cat: TV/SD, desc: "Sorozat/EN/SD"}
+    - {id: 28, cat: TV/HD, desc: "Sorozat/HU/HD"}
+    - {id: 7, cat: TV/SD, desc: "Sorozat/HU/SD"}
+    - {id: 9, cat: XXX, desc: "XXX"}
+    - {id: 44, cat: XXX/Other, desc: "XXX/HD"}
path: src/Jackett.Common/Definitions/matrix.yml
user: login: ilike2burnthing
body: ```suggestion
    - {id: 44, cat: XXX/x264, desc: "XXX/HD"}
```
created_at: 2025-03-04T23:11:59Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,175 @@
+---
+id: matrix
+name: Matrix
+description: "M.A.T.R.I.X is a HUNGARIAN Private Tracker for MOVIES / TV / GENERAL"
+language: hu-HU
+type: private
+encoding: UTF-8
+links:
+  - https://matrixworld.info/
+
+caps:
+  categorymappings:
+    - {id: 23, cat: Movies/Other, desc: "Animációk"}
+    - {id: 61, cat: Movies/Other, desc: "Cam/EN"}
+    - {id: 60, cat: Movies/Other, desc: "Cam/HU"}
+    - {id: 45, cat: Books/EBook, desc: "eBook/EN"}
+    - {id: 40, cat: Books/EBook, desc: "eBook/HU"}
+    - {id: 20, cat: Movies/DVD, desc: "Film/DVD9"}
+    - {id: 48, cat: Movies/HD, desc: "Film/EN/1080p"}
+    - {id: 32, cat: Movies/HD, desc: "Film/EN/720p"}
+    - {id: 38, cat: Movies/BluRay, desc: "Film/EN/Blu-ray"}
+    - {id: 27, cat: Movies/DVD, desc: "Film/EN/DVD-R"}
+    - {id: 24, cat: Movies/SD, desc: "Film/EN/SD"}
+    - {id: 34, cat: Movies/HD, desc: "Film/HU/1080p"}
+    - {id: 31, cat: Movies/HD, desc: "Film/HU/720p"}
+    - {id: 35, cat: Movies/BluRay, desc: "Film/HU/Blu-ray"}
+    - {id: 26, cat: Movies/DVD, desc: "Film/HU/DVD-R"}
+    - {id: 5, cat: Movies/SD, desc: "Film/HU/SD"}
+    - {id: 4, cat: PC/Games, desc: "Játékok/ISO"}
+    - {id: 39, cat: PC/Games, desc: "Játékok/Rip/Dox"}
+    - {id: 47, cat: Other, desc: "Klippek"}
+    - {id: 30, cat: Audio/Lossless, desc: "Lossless/EN"}
+    - {id: 29, cat: Audio/Lossless, desc: "Lossless/HU"}
+    - {id: 25, cat: Audio/MP3, desc: "MP3/EN"}
+    - {id: 6, cat: Audio/MP3, desc: "MP3/HU"}
+    - {id: 33, cat: PC, desc: "Program/egyéb"}
+    - {id: 1, cat: PC/ISO, desc: "Program/ISO"}
+    - {id: 36, cat: TV/HD, desc: "Sorozat/EN/HD"}
+    - {id: 49, cat: TV/SD, desc: "Sorozat/EN/SD"}
+    - {id: 28, cat: TV/HD, desc: "Sorozat/HU/HD"}
+    - {id: 7, cat: TV/SD, desc: "Sorozat/HU/SD"}
+    - {id: 9, cat: XXX, desc: "XXX"}
+    - {id: 44, cat: XXX/Other, desc: "XXX/HD"}
+    - {id: 43, cat: XXX/SD, desc: "XXX/SD"}
+
+  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: Filter freeleech only
+    default: false
+  - name: sort
+    type: select
+    label: Sort requested from site
+    default: 0
+    options:
+      0: created
+      1: title
+      4: size
+      6: 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 <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
path: src/Jackett.Common/Definitions/matrix.yml
user: login: rpatterson
body: No opinion. ;-)
created_at: 2025-03-04T23:21:15Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,175 @@
+---
+id: matrix
+name: Matrix
+description: "M.A.T.R.I.X is a HUNGARIAN Private Tracker for MOVIES / TV / GENERAL"
+language: hu-HU
+type: private
+encoding: UTF-8
+links:
+  - https://matrixworld.info/
+
+caps:
+  categorymappings:
+    - {id: 23, cat: Movies/Other, desc: "Animációk"}
+    - {id: 61, cat: Movies/Other, desc: "Cam/EN"}
+    - {id: 60, cat: Movies/Other, desc: "Cam/HU"}
+    - {id: 45, cat: Books/EBook, desc: "eBook/EN"}
+    - {id: 40, cat: Books/EBook, desc: "eBook/HU"}
+    - {id: 20, cat: Movies/DVD, desc: "Film/DVD9"}
+    - {id: 48, cat: Movies/HD, desc: "Film/EN/1080p"}
+    - {id: 32, cat: Movies/HD, desc: "Film/EN/720p"}
+    - {id: 38, cat: Movies/BluRay, desc: "Film/EN/Blu-ray"}
+    - {id: 27, cat: Movies/DVD, desc: "Film/EN/DVD-R"}
+    - {id: 24, cat: Movies/SD, desc: "Film/EN/SD"}
+    - {id: 34, cat: Movies/HD, desc: "Film/HU/1080p"}
+    - {id: 31, cat: Movies/HD, desc: "Film/HU/720p"}
+    - {id: 35, cat: Movies/BluRay, desc: "Film/HU/Blu-ray"}
+    - {id: 26, cat: Movies/DVD, desc: "Film/HU/DVD-R"}
+    - {id: 5, cat: Movies/SD, desc: "Film/HU/SD"}
+    - {id: 4, cat: PC/Games, desc: "Játékok/ISO"}
+    - {id: 39, cat: PC/Games, desc: "Játékok/Rip/Dox"}
+    - {id: 47, cat: Other, desc: "Klippek"}
+    - {id: 30, cat: Audio/Lossless, desc: "Lossless/EN"}
+    - {id: 29, cat: Audio/Lossless, desc: "Lossless/HU"}
+    - {id: 25, cat: Audio/MP3, desc: "MP3/EN"}
+    - {id: 6, cat: Audio/MP3, desc: "MP3/HU"}
+    - {id: 33, cat: PC, desc: "Program/egyéb"}
+    - {id: 1, cat: PC/ISO, desc: "Program/ISO"}
+    - {id: 36, cat: TV/HD, desc: "Sorozat/EN/HD"}
+    - {id: 49, cat: TV/SD, desc: "Sorozat/EN/SD"}
+    - {id: 28, cat: TV/HD, desc: "Sorozat/HU/HD"}
+    - {id: 7, cat: TV/SD, desc: "Sorozat/HU/SD"}
+    - {id: 9, cat: XXX, desc: "XXX"}
+    - {id: 44, cat: XXX/Other, desc: "XXX/HD"}
+    - {id: 43, cat: XXX/SD, desc: "XXX/SD"}
+
+  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: Filter freeleech only
+    default: false
+  - name: sort
+    type: select
+    label: Sort requested from site
+    default: 0
+    options:
+      0: created
+      1: title
+      4: size
+      6: 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 <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
+
+login:
+  path: takelogin.php
+  method: post
+  inputs:
+    username: "{{ .Config.username }}"
+    password: "{{ .Config.password }}"
+    logout: ""
+  error:
+    - selector: td.embedded:contains("Sikertelen bejelentkezés")
+  test:
+    path: /
+    selector: a[href$="logout.php"]
+
+search:
+  paths:
+    - path: browse.php
+  inputs:
+    $raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
+    search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
+    # 0 active only, 1 include dead, 2 only dead
+    incldead: 1
+    sort: "{{ .Config.sort }}"
+    type: "{{ .Config.type }}"
+
+  rows:
+    selector: "table.mainouter > tbody > tr > td > table tr:has(a[href^=\"download.php?id=\"]){{ if .Config.freeleech }}:has(img[src$=\"/pic/ingyentorrent.gif\"]){{ else }}{{ end }}"
+
+  fields:
+    category:
+      selector: a[href^="browse.php?cat="]
+      attribute: href
+      filters:
+        - name: querystring
+          args: cat
+    title:
+      selector: a.torrent-link b
+    _id:
+      selector: a[href^="download.php?id="]
+      attribute: href
+      filters:
+        - name: querystring
+          args: id
+    details:
+      text: "details.php?id={{ .Result._id }}"
+    download:
+      selector: a[href^="download.php?id="]
+      attribute: href
+    poster:
+      selector: a.torrent-link
+      attribute: data-cover
+    imdbid:
+      selector: a[href*="imdb.com/title/tt"]
+      attribute: href
+    files:
+      selector: td:nth-child(5) a
+    date:
+      selector: td:contains("Feltöltve:")
+      filters:
+        - name: regexp
+          args: "Feltöltve: *([0-9]{4}-[0-9]{2}-[0-9]{2} +[0-9]{2}:[0-9]{2}:[0-9]{2})"
+        - name: append
+          args: " +01:00" # Europe/Budapest, CET
+        - name: dateparse
+          args: "yyyy-MM-dd HH:mm:ss zzz"
+    grabs:
+      selector: td:nth-child(7) b
+    size:
+      selector: td:nth-child(7)
+      filters:
+        - name: regexp
+          args: "([0-9]+\\.?[0-9]* *[kKmMgGtTpP]i?[bB])"
+    seeders:
+      selector: td:nth-child(8)
+    leechers:
+      selector: td:nth-child(9)
+    genre:
+      selector: td:nth-child(2) > div > i > i
+      filters:
+        - name: regexp
+          args: "\\((.+)\\)"
+    description:
+      text: "{{ .Result.genre }}"
+    downloadvolumefactor:
+      case:
+        img[src$="/pic/ingyentorrent.gif"]: 0
+        "*": 1
+    uploadvolumefactor:
+      case:
+        img[src$="/pic/x2.gif"]: 2
+        "*": 1
path: src/Jackett.Common/Definitions/matrix.yml
user: login: rpatterson
body: Hehe, that's an embarrassing miss on my part. I discovered those two fields recently and it's what got me more interested in working with indexer definitions. :-/ Thanks!
created_at: 2025-03-04T23:22:52Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,175 @@
+---
+id: matrix
+name: Matrix
+description: "M.A.T.R.I.X is a HUNGARIAN Private Tracker for MOVIES / TV / GENERAL"
+language: hu-HU
+type: private
+encoding: UTF-8
+links:
+  - https://matrixworld.info/
+
+caps:
+  categorymappings:
+    - {id: 23, cat: Movies/Other, desc: "Animációk"}
+    - {id: 61, cat: Movies/Other, desc: "Cam/EN"}
+    - {id: 60, cat: Movies/Other, desc: "Cam/HU"}
+    - {id: 45, cat: Books/EBook, desc: "eBook/EN"}
+    - {id: 40, cat: Books/EBook, desc: "eBook/HU"}
+    - {id: 20, cat: Movies/DVD, desc: "Film/DVD9"}
+    - {id: 48, cat: Movies/HD, desc: "Film/EN/1080p"}
+    - {id: 32, cat: Movies/HD, desc: "Film/EN/720p"}
+    - {id: 38, cat: Movies/BluRay, desc: "Film/EN/Blu-ray"}
+    - {id: 27, cat: Movies/DVD, desc: "Film/EN/DVD-R"}
+    - {id: 24, cat: Movies/SD, desc: "Film/EN/SD"}
+    - {id: 34, cat: Movies/HD, desc: "Film/HU/1080p"}
+    - {id: 31, cat: Movies/HD, desc: "Film/HU/720p"}
+    - {id: 35, cat: Movies/BluRay, desc: "Film/HU/Blu-ray"}
+    - {id: 26, cat: Movies/DVD, desc: "Film/HU/DVD-R"}
+    - {id: 5, cat: Movies/SD, desc: "Film/HU/SD"}
+    - {id: 4, cat: PC/Games, desc: "Játékok/ISO"}
+    - {id: 39, cat: PC/Games, desc: "Játékok/Rip/Dox"}
+    - {id: 47, cat: Other, desc: "Klippek"}
+    - {id: 30, cat: Audio/Lossless, desc: "Lossless/EN"}
+    - {id: 29, cat: Audio/Lossless, desc: "Lossless/HU"}
+    - {id: 25, cat: Audio/MP3, desc: "MP3/EN"}
+    - {id: 6, cat: Audio/MP3, desc: "MP3/HU"}
+    - {id: 33, cat: PC, desc: "Program/egyéb"}
+    - {id: 1, cat: PC/ISO, desc: "Program/ISO"}
+    - {id: 36, cat: TV/HD, desc: "Sorozat/EN/HD"}
+    - {id: 49, cat: TV/SD, desc: "Sorozat/EN/SD"}
+    - {id: 28, cat: TV/HD, desc: "Sorozat/HU/HD"}
+    - {id: 7, cat: TV/SD, desc: "Sorozat/HU/SD"}
+    - {id: 9, cat: XXX, desc: "XXX"}
+    - {id: 44, cat: XXX/Other, desc: "XXX/HD"}
path: src/Jackett.Common/Definitions/matrix.yml
user: login: rpatterson
body: I don't understand this one, can you elaborate? I wouldn't think `HD` is synonymous with `x264`, plenty of SD `x264` encodes out there. Did I miss a clue in the HTML?
created_at: 2025-03-04T23:24:51Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,175 @@
+---
+id: matrix
+name: Matrix
+description: "M.A.T.R.I.X is a HUNGARIAN Private Tracker for MOVIES / TV / GENERAL"
+language: hu-HU
+type: private
+encoding: UTF-8
+links:
+  - https://matrixworld.info/
+
+caps:
+  categorymappings:
+    - {id: 23, cat: Movies/Other, desc: "Animációk"}
+    - {id: 61, cat: Movies/Other, desc: "Cam/EN"}
+    - {id: 60, cat: Movies/Other, desc: "Cam/HU"}
+    - {id: 45, cat: Books/EBook, desc: "eBook/EN"}
+    - {id: 40, cat: Books/EBook, desc: "eBook/HU"}
+    - {id: 20, cat: Movies/DVD, desc: "Film/DVD9"}
+    - {id: 48, cat: Movies/HD, desc: "Film/EN/1080p"}
+    - {id: 32, cat: Movies/HD, desc: "Film/EN/720p"}
+    - {id: 38, cat: Movies/BluRay, desc: "Film/EN/Blu-ray"}
+    - {id: 27, cat: Movies/DVD, desc: "Film/EN/DVD-R"}
+    - {id: 24, cat: Movies/SD, desc: "Film/EN/SD"}
+    - {id: 34, cat: Movies/HD, desc: "Film/HU/1080p"}
+    - {id: 31, cat: Movies/HD, desc: "Film/HU/720p"}
+    - {id: 35, cat: Movies/BluRay, desc: "Film/HU/Blu-ray"}
+    - {id: 26, cat: Movies/DVD, desc: "Film/HU/DVD-R"}
+    - {id: 5, cat: Movies/SD, desc: "Film/HU/SD"}
+    - {id: 4, cat: PC/Games, desc: "Játékok/ISO"}
+    - {id: 39, cat: PC/Games, desc: "Játékok/Rip/Dox"}
+    - {id: 47, cat: Other, desc: "Klippek"}
+    - {id: 30, cat: Audio/Lossless, desc: "Lossless/EN"}
+    - {id: 29, cat: Audio/Lossless, desc: "Lossless/HU"}
+    - {id: 25, cat: Audio/MP3, desc: "MP3/EN"}
+    - {id: 6, cat: Audio/MP3, desc: "MP3/HU"}
+    - {id: 33, cat: PC, desc: "Program/egyéb"}
+    - {id: 1, cat: PC/ISO, desc: "Program/ISO"}
+    - {id: 36, cat: TV/HD, desc: "Sorozat/EN/HD"}
+    - {id: 49, cat: TV/SD, desc: "Sorozat/EN/SD"}
+    - {id: 28, cat: TV/HD, desc: "Sorozat/HU/HD"}
+    - {id: 7, cat: TV/SD, desc: "Sorozat/HU/SD"}
+    - {id: 9, cat: XXX, desc: "XXX"}
+    - {id: 44, cat: XXX/Other, desc: "XXX/HD"}
path: src/Jackett.Common/Definitions/matrix.yml
user: login: ilike2burnthing
body: As there isn't an `HD` cat, we generally use `x264` instead - https://github.com/search?q=repo%3AJackett%2FJackett+%22xxx%2Fx264%22+language%3AYAML&type=code&l=YAML

It's a bit of a layover from when HD encodes used x264 in an MP4 container, while SD stuck with DivX in AVI. Times have changed, but we still don't have an `HD` cat, so 🤷 
created_at: 2025-03-04T23:36:52Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,175 @@
+---
+id: matrix
+name: Matrix
+description: "M.A.T.R.I.X is a HUNGARIAN Private Tracker for MOVIES / TV / GENERAL"
+language: hu-HU
+type: private
+encoding: UTF-8
+links:
+  - https://matrixworld.info/
+
+caps:
+  categorymappings:
+    - {id: 23, cat: Movies/Other, desc: "Animációk"}
+    - {id: 61, cat: Movies/Other, desc: "Cam/EN"}
+    - {id: 60, cat: Movies/Other, desc: "Cam/HU"}
+    - {id: 45, cat: Books/EBook, desc: "eBook/EN"}
+    - {id: 40, cat: Books/EBook, desc: "eBook/HU"}
+    - {id: 20, cat: Movies/DVD, desc: "Film/DVD9"}
+    - {id: 48, cat: Movies/HD, desc: "Film/EN/1080p"}
+    - {id: 32, cat: Movies/HD, desc: "Film/EN/720p"}
+    - {id: 38, cat: Movies/BluRay, desc: "Film/EN/Blu-ray"}
+    - {id: 27, cat: Movies/DVD, desc: "Film/EN/DVD-R"}
+    - {id: 24, cat: Movies/SD, desc: "Film/EN/SD"}
+    - {id: 34, cat: Movies/HD, desc: "Film/HU/1080p"}
+    - {id: 31, cat: Movies/HD, desc: "Film/HU/720p"}
+    - {id: 35, cat: Movies/BluRay, desc: "Film/HU/Blu-ray"}
+    - {id: 26, cat: Movies/DVD, desc: "Film/HU/DVD-R"}
+    - {id: 5, cat: Movies/SD, desc: "Film/HU/SD"}
+    - {id: 4, cat: PC/Games, desc: "Játékok/ISO"}
+    - {id: 39, cat: PC/Games, desc: "Játékok/Rip/Dox"}
+    - {id: 47, cat: Other, desc: "Klippek"}
+    - {id: 30, cat: Audio/Lossless, desc: "Lossless/EN"}
+    - {id: 29, cat: Audio/Lossless, desc: "Lossless/HU"}
+    - {id: 25, cat: Audio/MP3, desc: "MP3/EN"}
+    - {id: 6, cat: Audio/MP3, desc: "MP3/HU"}
+    - {id: 33, cat: PC, desc: "Program/egyéb"}
+    - {id: 1, cat: PC/ISO, desc: "Program/ISO"}
+    - {id: 36, cat: TV/HD, desc: "Sorozat/EN/HD"}
+    - {id: 49, cat: TV/SD, desc: "Sorozat/EN/SD"}
+    - {id: 28, cat: TV/HD, desc: "Sorozat/HU/HD"}
+    - {id: 7, cat: TV/SD, desc: "Sorozat/HU/SD"}
+    - {id: 9, cat: XXX, desc: "XXX"}
+    - {id: 44, cat: XXX/Other, desc: "XXX/HD"}
+    - {id: 43, cat: XXX/SD, desc: "XXX/SD"}
+
+  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: Filter freeleech only
+    default: false
+  - name: sort
+    type: select
+    label: Sort requested from site
+    default: 0
+    options:
+      0: created
+      1: title
+      4: size
+      6: 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 <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
+
+login:
+  path: takelogin.php
+  method: post
+  inputs:
+    username: "{{ .Config.username }}"
+    password: "{{ .Config.password }}"
+    logout: ""
+  error:
+    - selector: td.embedded:contains("Sikertelen bejelentkezés")
+  test:
+    path: /
+    selector: a[href$="logout.php"]
+
+search:
+  paths:
+    - path: browse.php
+  inputs:
+    $raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
+    search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
+    # 0 active only, 1 include dead, 2 only dead
+    incldead: 1
+    sort: "{{ .Config.sort }}"
+    type: "{{ .Config.type }}"
+
+  rows:
+    selector: "table.mainouter > tbody > tr > td > table tr:has(a[href^=\"download.php?id=\"]){{ if .Config.freeleech }}:has(img[src$=\"/pic/ingyentorrent.gif\"]){{ else }}{{ end }}"
+
+  fields:
+    category:
+      selector: a[href^="browse.php?cat="]
+      attribute: href
+      filters:
+        - name: querystring
+          args: cat
+    title:
+      selector: a.torrent-link b
+    _id:
+      selector: a[href^="download.php?id="]
+      attribute: href
+      filters:
+        - name: querystring
+          args: id
+    details:
+      text: "details.php?id={{ .Result._id }}"
+    download:
+      selector: a[href^="download.php?id="]
+      attribute: href
+    poster:
+      selector: a.torrent-link
+      attribute: data-cover
+    imdbid:
+      selector: a[href*="imdb.com/title/tt"]
+      attribute: href
+    files:
+      selector: td:nth-child(5) a
+    date:
+      selector: td:contains("Feltöltve:")
+      filters:
+        - name: regexp
+          args: "Feltöltve: *([0-9]{4}-[0-9]{2}-[0-9]{2} +[0-9]{2}:[0-9]{2}:[0-9]{2})"
+        - name: append
+          args: " +01:00" # Europe/Budapest, CET
+        - name: dateparse
+          args: "yyyy-MM-dd HH:mm:ss zzz"
+    grabs:
+      selector: td:nth-child(7) b
+    size:
+      selector: td:nth-child(7)
+      filters:
+        - name: regexp
+          args: "([0-9]+\\.?[0-9]* *[kKmMgGtTpP]i?[bB])"
+    seeders:
+      selector: td:nth-child(8)
+    leechers:
+      selector: td:nth-child(9)
+    genre:
+      selector: td:nth-child(2) > div > i > i
+      filters:
+        - name: regexp
+          args: "\\((.+)\\)"
+    description:
+      text: "{{ .Result.genre }}"
+    downloadvolumefactor:
+      case:
+        img[src$="/pic/ingyentorrent.gif"]: 0
+        "*": 1
+    uploadvolumefactor:
+      case:
+        img[src$="/pic/x2.gif"]: 2
+        "*": 1
path: src/Jackett.Common/Definitions/matrix.yml
user: login: rpatterson
body: I can't confirm this fix because I don't see any corresponding fields in the Prowlar search results UI nor in XHR JSON. How can we confirm this change?
created_at: 2025-03-04T23:38:53Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,175 @@
+---
+id: matrix
+name: Matrix
+description: "M.A.T.R.I.X is a HUNGARIAN Private Tracker for MOVIES / TV / GENERAL"
+language: hu-HU
+type: private
+encoding: UTF-8
+links:
+  - https://matrixworld.info/
+
+caps:
+  categorymappings:
+    - {id: 23, cat: Movies/Other, desc: "Animációk"}
+    - {id: 61, cat: Movies/Other, desc: "Cam/EN"}
+    - {id: 60, cat: Movies/Other, desc: "Cam/HU"}
+    - {id: 45, cat: Books/EBook, desc: "eBook/EN"}
+    - {id: 40, cat: Books/EBook, desc: "eBook/HU"}
+    - {id: 20, cat: Movies/DVD, desc: "Film/DVD9"}
+    - {id: 48, cat: Movies/HD, desc: "Film/EN/1080p"}
+    - {id: 32, cat: Movies/HD, desc: "Film/EN/720p"}
+    - {id: 38, cat: Movies/BluRay, desc: "Film/EN/Blu-ray"}
+    - {id: 27, cat: Movies/DVD, desc: "Film/EN/DVD-R"}
+    - {id: 24, cat: Movies/SD, desc: "Film/EN/SD"}
+    - {id: 34, cat: Movies/HD, desc: "Film/HU/1080p"}
+    - {id: 31, cat: Movies/HD, desc: "Film/HU/720p"}
+    - {id: 35, cat: Movies/BluRay, desc: "Film/HU/Blu-ray"}
+    - {id: 26, cat: Movies/DVD, desc: "Film/HU/DVD-R"}
+    - {id: 5, cat: Movies/SD, desc: "Film/HU/SD"}
+    - {id: 4, cat: PC/Games, desc: "Játékok/ISO"}
+    - {id: 39, cat: PC/Games, desc: "Játékok/Rip/Dox"}
+    - {id: 47, cat: Other, desc: "Klippek"}
+    - {id: 30, cat: Audio/Lossless, desc: "Lossless/EN"}
+    - {id: 29, cat: Audio/Lossless, desc: "Lossless/HU"}
+    - {id: 25, cat: Audio/MP3, desc: "MP3/EN"}
+    - {id: 6, cat: Audio/MP3, desc: "MP3/HU"}
+    - {id: 33, cat: PC, desc: "Program/egyéb"}
+    - {id: 1, cat: PC/ISO, desc: "Program/ISO"}
+    - {id: 36, cat: TV/HD, desc: "Sorozat/EN/HD"}
+    - {id: 49, cat: TV/SD, desc: "Sorozat/EN/SD"}
+    - {id: 28, cat: TV/HD, desc: "Sorozat/HU/HD"}
+    - {id: 7, cat: TV/SD, desc: "Sorozat/HU/SD"}
+    - {id: 9, cat: XXX, desc: "XXX"}
+    - {id: 44, cat: XXX/Other, desc: "XXX/HD"}
path: src/Jackett.Common/Definitions/matrix.yml
user: login: rpatterson
body: K, I mean really I couldn't bother to care, but I appreciate the education!
created_at: 2025-03-04T23:40:13Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,175 @@
+---
+id: matrix
+name: Matrix
+description: "M.A.T.R.I.X is a HUNGARIAN Private Tracker for MOVIES / TV / GENERAL"
+language: hu-HU
+type: private
+encoding: UTF-8
+links:
+  - https://matrixworld.info/
+
+caps:
+  categorymappings:
+    - {id: 23, cat: Movies/Other, desc: "Animációk"}
+    - {id: 61, cat: Movies/Other, desc: "Cam/EN"}
+    - {id: 60, cat: Movies/Other, desc: "Cam/HU"}
+    - {id: 45, cat: Books/EBook, desc: "eBook/EN"}
+    - {id: 40, cat: Books/EBook, desc: "eBook/HU"}
+    - {id: 20, cat: Movies/DVD, desc: "Film/DVD9"}
+    - {id: 48, cat: Movies/HD, desc: "Film/EN/1080p"}
+    - {id: 32, cat: Movies/HD, desc: "Film/EN/720p"}
+    - {id: 38, cat: Movies/BluRay, desc: "Film/EN/Blu-ray"}
+    - {id: 27, cat: Movies/DVD, desc: "Film/EN/DVD-R"}
+    - {id: 24, cat: Movies/SD, desc: "Film/EN/SD"}
+    - {id: 34, cat: Movies/HD, desc: "Film/HU/1080p"}
+    - {id: 31, cat: Movies/HD, desc: "Film/HU/720p"}
+    - {id: 35, cat: Movies/BluRay, desc: "Film/HU/Blu-ray"}
+    - {id: 26, cat: Movies/DVD, desc: "Film/HU/DVD-R"}
+    - {id: 5, cat: Movies/SD, desc: "Film/HU/SD"}
+    - {id: 4, cat: PC/Games, desc: "Játékok/ISO"}
+    - {id: 39, cat: PC/Games, desc: "Játékok/Rip/Dox"}
+    - {id: 47, cat: Other, desc: "Klippek"}
+    - {id: 30, cat: Audio/Lossless, desc: "Lossless/EN"}
+    - {id: 29, cat: Audio/Lossless, desc: "Lossless/HU"}
+    - {id: 25, cat: Audio/MP3, desc: "MP3/EN"}
+    - {id: 6, cat: Audio/MP3, desc: "MP3/HU"}
+    - {id: 33, cat: PC, desc: "Program/egyéb"}
+    - {id: 1, cat: PC/ISO, desc: "Program/ISO"}
+    - {id: 36, cat: TV/HD, desc: "Sorozat/EN/HD"}
+    - {id: 49, cat: TV/SD, desc: "Sorozat/EN/SD"}
+    - {id: 28, cat: TV/HD, desc: "Sorozat/HU/HD"}
+    - {id: 7, cat: TV/SD, desc: "Sorozat/HU/SD"}
+    - {id: 9, cat: XXX, desc: "XXX"}
+    - {id: 44, cat: XXX/Other, desc: "XXX/HD"}
+    - {id: 43, cat: XXX/SD, desc: "XXX/SD"}
+
+  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: Filter freeleech only
+    default: false
+  - name: sort
+    type: select
+    label: Sort requested from site
+    default: 0
+    options:
+      0: created
+      1: title
+      4: size
+      6: 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 <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
+
+login:
+  path: takelogin.php
+  method: post
+  inputs:
+    username: "{{ .Config.username }}"
+    password: "{{ .Config.password }}"
+    logout: ""
+  error:
+    - selector: td.embedded:contains("Sikertelen bejelentkezés")
+  test:
+    path: /
+    selector: a[href$="logout.php"]
+
+search:
+  paths:
+    - path: browse.php
+  inputs:
+    $raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
+    search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
+    # 0 active only, 1 include dead, 2 only dead
+    incldead: 1
+    sort: "{{ .Config.sort }}"
+    type: "{{ .Config.type }}"
+
+  rows:
+    selector: "table.mainouter > tbody > tr > td > table tr:has(a[href^=\"download.php?id=\"]){{ if .Config.freeleech }}:has(img[src$=\"/pic/ingyentorrent.gif\"]){{ else }}{{ end }}"
+
+  fields:
+    category:
+      selector: a[href^="browse.php?cat="]
+      attribute: href
+      filters:
+        - name: querystring
+          args: cat
+    title:
+      selector: a.torrent-link b
+    _id:
+      selector: a[href^="download.php?id="]
+      attribute: href
+      filters:
+        - name: querystring
+          args: id
+    details:
+      text: "details.php?id={{ .Result._id }}"
+    download:
+      selector: a[href^="download.php?id="]
+      attribute: href
+    poster:
+      selector: a.torrent-link
+      attribute: data-cover
+    imdbid:
+      selector: a[href*="imdb.com/title/tt"]
+      attribute: href
+    files:
+      selector: td:nth-child(5) a
+    date:
+      selector: td:contains("Feltöltve:")
+      filters:
+        - name: regexp
+          args: "Feltöltve: *([0-9]{4}-[0-9]{2}-[0-9]{2} +[0-9]{2}:[0-9]{2}:[0-9]{2})"
+        - name: append
+          args: " +01:00" # Europe/Budapest, CET
+        - name: dateparse
+          args: "yyyy-MM-dd HH:mm:ss zzz"
+    grabs:
+      selector: td:nth-child(7) b
+    size:
+      selector: td:nth-child(7)
+      filters:
+        - name: regexp
+          args: "([0-9]+\\.?[0-9]* *[kKmMgGtTpP]i?[bB])"
+    seeders:
+      selector: td:nth-child(8)
+    leechers:
+      selector: td:nth-child(9)
+    genre:
+      selector: td:nth-child(2) > div > i > i
+      filters:
+        - name: regexp
+          args: "\\((.+)\\)"
+    description:
+      text: "{{ .Result.genre }}"
+    downloadvolumefactor:
+      case:
+        img[src$="/pic/ingyentorrent.gif"]: 0
+        "*": 1
+    uploadvolumefactor:
+      case:
+        img[src$="/pic/x2.gif"]: 2
+        "*": 1
path: src/Jackett.Common/Definitions/matrix.yml
user: login: ilike2burnthing
body: It's information that is sent to the torrent client when a torrent/magnet is downloaded, and those limits are applied to the torrent (assuming the client supports it). There's no need to check it when just making/updating an indexer, it'd be more if you were making some core change to Jackett or Prowlarr.

The only time you'd need to check anything about it for an indexer is if you were having to use selectors, e.g. `freeleech=3d, *=2d`, and even then just make sure the selectors are ok.
created_at: 2025-03-04T23:47:15Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,175 @@
+---
+id: matrix
+name: Matrix
+description: "M.A.T.R.I.X is a HUNGARIAN Private Tracker for MOVIES / TV / GENERAL"
+language: hu-HU
+type: private
+encoding: UTF-8
+links:
+  - https://matrixworld.info/
+
+caps:
+  categorymappings:
+    - {id: 23, cat: Movies/Other, desc: "Animációk"}
+    - {id: 61, cat: Movies/Other, desc: "Cam/EN"}
+    - {id: 60, cat: Movies/Other, desc: "Cam/HU"}
+    - {id: 45, cat: Books/EBook, desc: "eBook/EN"}
+    - {id: 40, cat: Books/EBook, desc: "eBook/HU"}
+    - {id: 20, cat: Movies/DVD, desc: "Film/DVD9"}
+    - {id: 48, cat: Movies/HD, desc: "Film/EN/1080p"}
+    - {id: 32, cat: Movies/HD, desc: "Film/EN/720p"}
+    - {id: 38, cat: Movies/BluRay, desc: "Film/EN/Blu-ray"}
+    - {id: 27, cat: Movies/DVD, desc: "Film/EN/DVD-R"}
+    - {id: 24, cat: Movies/SD, desc: "Film/EN/SD"}
+    - {id: 34, cat: Movies/HD, desc: "Film/HU/1080p"}
+    - {id: 31, cat: Movies/HD, desc: "Film/HU/720p"}
+    - {id: 35, cat: Movies/BluRay, desc: "Film/HU/Blu-ray"}
+    - {id: 26, cat: Movies/DVD, desc: "Film/HU/DVD-R"}
+    - {id: 5, cat: Movies/SD, desc: "Film/HU/SD"}
+    - {id: 4, cat: PC/Games, desc: "Játékok/ISO"}
+    - {id: 39, cat: PC/Games, desc: "Játékok/Rip/Dox"}
+    - {id: 47, cat: Other, desc: "Klippek"}
+    - {id: 30, cat: Audio/Lossless, desc: "Lossless/EN"}
+    - {id: 29, cat: Audio/Lossless, desc: "Lossless/HU"}
+    - {id: 25, cat: Audio/MP3, desc: "MP3/EN"}
+    - {id: 6, cat: Audio/MP3, desc: "MP3/HU"}
+    - {id: 33, cat: PC, desc: "Program/egyéb"}
+    - {id: 1, cat: PC/ISO, desc: "Program/ISO"}
+    - {id: 36, cat: TV/HD, desc: "Sorozat/EN/HD"}
+    - {id: 49, cat: TV/SD, desc: "Sorozat/EN/SD"}
+    - {id: 28, cat: TV/HD, desc: "Sorozat/HU/HD"}
+    - {id: 7, cat: TV/SD, desc: "Sorozat/HU/SD"}
+    - {id: 9, cat: XXX, desc: "XXX"}
+    - {id: 44, cat: XXX/Other, desc: "XXX/HD"}
+    - {id: 43, cat: XXX/SD, desc: "XXX/SD"}
+
+  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: Filter freeleech only
+    default: false
+  - name: sort
+    type: select
+    label: Sort requested from site
+    default: 0
+    options:
+      0: created
+      1: title
+      4: size
+      6: 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 <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
+
+login:
+  path: takelogin.php
+  method: post
+  inputs:
+    username: "{{ .Config.username }}"
+    password: "{{ .Config.password }}"
+    logout: ""
+  error:
+    - selector: td.embedded:contains("Sikertelen bejelentkezés")
+  test:
+    path: /
+    selector: a[href$="logout.php"]
+
+search:
+  paths:
+    - path: browse.php
+  inputs:
+    $raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
+    search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
+    # 0 active only, 1 include dead, 2 only dead
+    incldead: 1
+    sort: "{{ .Config.sort }}"
+    type: "{{ .Config.type }}"
+
+  rows:
+    selector: "table.mainouter > tbody > tr > td > table tr:has(a[href^=\"download.php?id=\"]){{ if .Config.freeleech }}:has(img[src$=\"/pic/ingyentorrent.gif\"]){{ else }}{{ end }}"
+
+  fields:
+    category:
+      selector: a[href^="browse.php?cat="]
+      attribute: href
+      filters:
+        - name: querystring
+          args: cat
+    title:
+      selector: a.torrent-link b
+    _id:
+      selector: a[href^="download.php?id="]
+      attribute: href
+      filters:
+        - name: querystring
+          args: id
+    details:
+      text: "details.php?id={{ .Result._id }}"
+    download:
+      selector: a[href^="download.php?id="]
+      attribute: href
+    poster:
+      selector: a.torrent-link
+      attribute: data-cover
+    imdbid:
+      selector: a[href*="imdb.com/title/tt"]
+      attribute: href
+    files:
+      selector: td:nth-child(5) a
+    date:
+      selector: td:contains("Feltöltve:")
+      filters:
+        - name: regexp
+          args: "Feltöltve: *([0-9]{4}-[0-9]{2}-[0-9]{2} +[0-9]{2}:[0-9]{2}:[0-9]{2})"
+        - name: append
+          args: " +01:00" # Europe/Budapest, CET
+        - name: dateparse
+          args: "yyyy-MM-dd HH:mm:ss zzz"
+    grabs:
+      selector: td:nth-child(7) b
+    size:
+      selector: td:nth-child(7)
+      filters:
+        - name: regexp
+          args: "([0-9]+\\.?[0-9]* *[kKmMgGtTpP]i?[bB])"
+    seeders:
+      selector: td:nth-child(8)
+    leechers:
+      selector: td:nth-child(9)
+    genre:
+      selector: td:nth-child(2) > div > i > i
+      filters:
+        - name: regexp
+          args: "\\((.+)\\)"
+    description:
+      text: "{{ .Result.genre }}"
+    downloadvolumefactor:
+      case:
+        img[src$="/pic/ingyentorrent.gif"]: 0
+        "*": 1
+    uploadvolumefactor:
+      case:
+        img[src$="/pic/x2.gif"]: 2
+        "*": 1
path: src/Jackett.Common/Definitions/matrix.yml
user: login: rpatterson
body: K, thanks for explaining. Looks like we're good on this change too, so I think I've integrated and tested all changes so far.
created_at: 2025-03-04T23:48:59Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,184 @@
+---
+id: matrix
+name: Matrix
+description: "M.A.T.R.I.X is a HUNGARIAN Private Tracker for MOVIES / TV / GENERAL"
+language: hu-HU
+type: private
+encoding: UTF-8
+links:
+  - https://matrixworld.info/
+
+caps:
+  categorymappings:
+    - {id: 23, cat: Movies/Other, desc: "Animációk"}
+    - {id: 61, cat: Movies/Other, desc: "Cam/EN"}
+    - {id: 60, cat: Movies/Other, desc: "Cam/HU"}
+    - {id: 45, cat: Books/EBook, desc: "eBook/EN"}
+    - {id: 40, cat: Books/EBook, desc: "eBook/HU"}
+    - {id: 20, cat: Movies/DVD, desc: "Film/DVD9"}
+    - {id: 48, cat: Movies/HD, desc: "Film/EN/1080p"}
+    - {id: 32, cat: Movies/HD, desc: "Film/EN/720p"}
+    - {id: 38, cat: Movies/BluRay, desc: "Film/EN/Blu-ray"}
+    - {id: 27, cat: Movies/DVD, desc: "Film/EN/DVD-R"}
+    - {id: 24, cat: Movies/SD, desc: "Film/EN/SD"}
+    - {id: 34, cat: Movies/HD, desc: "Film/HU/1080p"}
+    - {id: 31, cat: Movies/HD, desc: "Film/HU/720p"}
+    - {id: 35, cat: Movies/BluRay, desc: "Film/HU/Blu-ray"}
+    - {id: 26, cat: Movies/DVD, desc: "Film/HU/DVD-R"}
+    - {id: 5, cat: Movies/SD, desc: "Film/HU/SD"}
+    - {id: 4, cat: PC/Games, desc: "Játékok/ISO"}
+    - {id: 39, cat: PC/Games, desc: "Játékok/Rip/Dox"}
+    - {id: 47, cat: Other, desc: "Klippek"}
+    - {id: 30, cat: Audio/Lossless, desc: "Lossless/EN"}
+    - {id: 29, cat: Audio/Lossless, desc: "Lossless/HU"}
+    - {id: 25, cat: Audio/MP3, desc: "MP3/EN"}
+    - {id: 6, cat: Audio/MP3, desc: "MP3/HU"}
+    - {id: 33, cat: PC, desc: "Program/egyéb"}
+    - {id: 1, cat: PC/ISO, desc: "Program/ISO"}
+    - {id: 36, cat: TV/HD, desc: "Sorozat/EN/HD"}
+    - {id: 49, cat: TV/SD, desc: "Sorozat/EN/SD"}
+    - {id: 28, cat: TV/HD, desc: "Sorozat/HU/HD"}
+    - {id: 7, cat: TV/SD, desc: "Sorozat/HU/SD"}
+    - {id: 9, cat: XXX, desc: "XXX"}
+    - {id: 44, cat: XXX/x264, desc: "XXX/HD"}
+    - {id: 43, cat: XXX/SD, desc: "XXX/SD"}
+
+  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: Filter freeleech only
+    default: false
+  - name: sort
+    type: select
+    label: Sort requested from site
+    default: 0
+    options:
+      0: created
+      1: title
+      4: size
+      6: 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 <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
+  - name: info_activity
+    type: info
+    label: Account Inactivity
+    default: "If you do not log in to the site for 6 months, the system will automatically delete it!"
+
+login:
+  path: takelogin.php
+  method: post
+  inputs:
+    username: "{{ .Config.username }}"
+    password: "{{ .Config.password }}"
+    logout: ""
+  error:
+    - selector: td.embedded:contains("Sikertelen bejelentkezés")
+  test:
+    path: /
+    selector: a[href$="logout.php"]
+
+search:
+  paths:
+    - path: browse.php
+  inputs:
+    $raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
+    search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
+    # 0 active only, 1 include dead, 2 only dead
+    incldead: 1
+    sort: "{{ .Config.sort }}"
+    type: "{{ .Config.type }}"
+
+  rows:
+    selector: "table.mainouter > tbody > tr > td > table tr:has(a[href^=\"download.php?id=\"]){{ if .Config.freeleech }}:has(img[src$=\"/pic/ingyentorrent.gif\"]){{ else }}{{ end }}"
+
+  fields:
+    category:
+      selector: a[href^="browse.php?cat="]
+      attribute: href
+      filters:
+        - name: querystring
+          args: cat
+    title:
+      selector: a.torrent-link b
+    _id:
+      selector: a[href^="download.php?id="]
+      attribute: href
+      filters:
+        - name: querystring
+          args: id
+    details:
+      text: "details.php?id={{ .Result._id }}"
path: src/Jackett.Common/Definitions/matrix.yml
user: login: ilike2burnthing
body: ```suggestion
    details:
      selector: a[href^="details.php?id="]
      attribute: href
      filters:
        - name: re_replace
          args: ["&hit=1.+", ""]
```

Probably the tidiest version for this, no need for `_id`.

Everything else is good to go!
created_at: 2025-03-05T00:33:47Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,184 @@
+---
+id: matrix
+name: Matrix
+description: "M.A.T.R.I.X is a HUNGARIAN Private Tracker for MOVIES / TV / GENERAL"
+language: hu-HU
+type: private
+encoding: UTF-8
+links:
+  - https://matrixworld.info/
+
+caps:
+  categorymappings:
+    - {id: 23, cat: Movies/Other, desc: "Animációk"}
+    - {id: 61, cat: Movies/Other, desc: "Cam/EN"}
+    - {id: 60, cat: Movies/Other, desc: "Cam/HU"}
+    - {id: 45, cat: Books/EBook, desc: "eBook/EN"}
+    - {id: 40, cat: Books/EBook, desc: "eBook/HU"}
+    - {id: 20, cat: Movies/DVD, desc: "Film/DVD9"}
+    - {id: 48, cat: Movies/HD, desc: "Film/EN/1080p"}
+    - {id: 32, cat: Movies/HD, desc: "Film/EN/720p"}
+    - {id: 38, cat: Movies/BluRay, desc: "Film/EN/Blu-ray"}
+    - {id: 27, cat: Movies/DVD, desc: "Film/EN/DVD-R"}
+    - {id: 24, cat: Movies/SD, desc: "Film/EN/SD"}
+    - {id: 34, cat: Movies/HD, desc: "Film/HU/1080p"}
+    - {id: 31, cat: Movies/HD, desc: "Film/HU/720p"}
+    - {id: 35, cat: Movies/BluRay, desc: "Film/HU/Blu-ray"}
+    - {id: 26, cat: Movies/DVD, desc: "Film/HU/DVD-R"}
+    - {id: 5, cat: Movies/SD, desc: "Film/HU/SD"}
+    - {id: 4, cat: PC/Games, desc: "Játékok/ISO"}
+    - {id: 39, cat: PC/Games, desc: "Játékok/Rip/Dox"}
+    - {id: 47, cat: Other, desc: "Klippek"}
+    - {id: 30, cat: Audio/Lossless, desc: "Lossless/EN"}
+    - {id: 29, cat: Audio/Lossless, desc: "Lossless/HU"}
+    - {id: 25, cat: Audio/MP3, desc: "MP3/EN"}
+    - {id: 6, cat: Audio/MP3, desc: "MP3/HU"}
+    - {id: 33, cat: PC, desc: "Program/egyéb"}
+    - {id: 1, cat: PC/ISO, desc: "Program/ISO"}
+    - {id: 36, cat: TV/HD, desc: "Sorozat/EN/HD"}
+    - {id: 49, cat: TV/SD, desc: "Sorozat/EN/SD"}
+    - {id: 28, cat: TV/HD, desc: "Sorozat/HU/HD"}
+    - {id: 7, cat: TV/SD, desc: "Sorozat/HU/SD"}
+    - {id: 9, cat: XXX, desc: "XXX"}
+    - {id: 44, cat: XXX/x264, desc: "XXX/HD"}
+    - {id: 43, cat: XXX/SD, desc: "XXX/SD"}
+
+  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: Filter freeleech only
+    default: false
+  - name: sort
+    type: select
+    label: Sort requested from site
+    default: 0
+    options:
+      0: created
+      1: title
+      4: size
+      6: 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 <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
+  - name: info_activity
+    type: info
+    label: Account Inactivity
+    default: "If you do not log in to the site for 6 months, the system will automatically delete it!"
+
+login:
+  path: takelogin.php
+  method: post
+  inputs:
+    username: "{{ .Config.username }}"
+    password: "{{ .Config.password }}"
+    logout: ""
+  error:
+    - selector: td.embedded:contains("Sikertelen bejelentkezés")
+  test:
+    path: /
+    selector: a[href$="logout.php"]
+
+search:
+  paths:
+    - path: browse.php
+  inputs:
+    $raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
+    search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
+    # 0 active only, 1 include dead, 2 only dead
+    incldead: 1
+    sort: "{{ .Config.sort }}"
+    type: "{{ .Config.type }}"
+
+  rows:
+    selector: "table.mainouter > tbody > tr > td > table tr:has(a[href^=\"download.php?id=\"]){{ if .Config.freeleech }}:has(img[src$=\"/pic/ingyentorrent.gif\"]){{ else }}{{ end }}"
+
+  fields:
+    category:
+      selector: a[href^="browse.php?cat="]
+      attribute: href
+      filters:
+        - name: querystring
+          args: cat
+    title:
+      selector: a.torrent-link b
+    _id:
+      selector: a[href^="download.php?id="]
+      attribute: href
+      filters:
+        - name: querystring
+          args: id
+    details:
+      text: "details.php?id={{ .Result._id }}"
path: src/Jackett.Common/Definitions/matrix.yml
user: login: rpatterson
body: That was a change that @garfield69 requested. Which of you wins? ;-)
created_at: 2025-03-05T00:35:38Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,184 @@
+---
+id: matrix
+name: Matrix
+description: "M.A.T.R.I.X is a HUNGARIAN Private Tracker for MOVIES / TV / GENERAL"
+language: hu-HU
+type: private
+encoding: UTF-8
+links:
+  - https://matrixworld.info/
+
+caps:
+  categorymappings:
+    - {id: 23, cat: Movies/Other, desc: "Animációk"}
+    - {id: 61, cat: Movies/Other, desc: "Cam/EN"}
+    - {id: 60, cat: Movies/Other, desc: "Cam/HU"}
+    - {id: 45, cat: Books/EBook, desc: "eBook/EN"}
+    - {id: 40, cat: Books/EBook, desc: "eBook/HU"}
+    - {id: 20, cat: Movies/DVD, desc: "Film/DVD9"}
+    - {id: 48, cat: Movies/HD, desc: "Film/EN/1080p"}
+    - {id: 32, cat: Movies/HD, desc: "Film/EN/720p"}
+    - {id: 38, cat: Movies/BluRay, desc: "Film/EN/Blu-ray"}
+    - {id: 27, cat: Movies/DVD, desc: "Film/EN/DVD-R"}
+    - {id: 24, cat: Movies/SD, desc: "Film/EN/SD"}
+    - {id: 34, cat: Movies/HD, desc: "Film/HU/1080p"}
+    - {id: 31, cat: Movies/HD, desc: "Film/HU/720p"}
+    - {id: 35, cat: Movies/BluRay, desc: "Film/HU/Blu-ray"}
+    - {id: 26, cat: Movies/DVD, desc: "Film/HU/DVD-R"}
+    - {id: 5, cat: Movies/SD, desc: "Film/HU/SD"}
+    - {id: 4, cat: PC/Games, desc: "Játékok/ISO"}
+    - {id: 39, cat: PC/Games, desc: "Játékok/Rip/Dox"}
+    - {id: 47, cat: Other, desc: "Klippek"}
+    - {id: 30, cat: Audio/Lossless, desc: "Lossless/EN"}
+    - {id: 29, cat: Audio/Lossless, desc: "Lossless/HU"}
+    - {id: 25, cat: Audio/MP3, desc: "MP3/EN"}
+    - {id: 6, cat: Audio/MP3, desc: "MP3/HU"}
+    - {id: 33, cat: PC, desc: "Program/egyéb"}
+    - {id: 1, cat: PC/ISO, desc: "Program/ISO"}
+    - {id: 36, cat: TV/HD, desc: "Sorozat/EN/HD"}
+    - {id: 49, cat: TV/SD, desc: "Sorozat/EN/SD"}
+    - {id: 28, cat: TV/HD, desc: "Sorozat/HU/HD"}
+    - {id: 7, cat: TV/SD, desc: "Sorozat/HU/SD"}
+    - {id: 9, cat: XXX, desc: "XXX"}
+    - {id: 44, cat: XXX/x264, desc: "XXX/HD"}
+    - {id: 43, cat: XXX/SD, desc: "XXX/SD"}
+
+  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: Filter freeleech only
+    default: false
+  - name: sort
+    type: select
+    label: Sort requested from site
+    default: 0
+    options:
+      0: created
+      1: title
+      4: size
+      6: 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 <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
+  - name: info_activity
+    type: info
+    label: Account Inactivity
+    default: "If you do not log in to the site for 6 months, the system will automatically delete it!"
+
+login:
+  path: takelogin.php
+  method: post
+  inputs:
+    username: "{{ .Config.username }}"
+    password: "{{ .Config.password }}"
+    logout: ""
+  error:
+    - selector: td.embedded:contains("Sikertelen bejelentkezés")
+  test:
+    path: /
+    selector: a[href$="logout.php"]
+
+search:
+  paths:
+    - path: browse.php
+  inputs:
+    $raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
+    search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
+    # 0 active only, 1 include dead, 2 only dead
+    incldead: 1
+    sort: "{{ .Config.sort }}"
+    type: "{{ .Config.type }}"
+
+  rows:
+    selector: "table.mainouter > tbody > tr > td > table tr:has(a[href^=\"download.php?id=\"]){{ if .Config.freeleech }}:has(img[src$=\"/pic/ingyentorrent.gif\"]){{ else }}{{ end }}"
+
+  fields:
+    category:
+      selector: a[href^="browse.php?cat="]
+      attribute: href
+      filters:
+        - name: querystring
+          args: cat
+    title:
+      selector: a.torrent-link b
+    _id:
+      selector: a[href^="download.php?id="]
+      attribute: href
+      filters:
+        - name: querystring
+          args: id
+    details:
+      text: "details.php?id={{ .Result._id }}"
path: src/Jackett.Common/Definitions/matrix.yml
user: login: rpatterson
body: [Context](https://github.com/Jackett/Jackett/pull/15887#discussion_r1980245381)
created_at: 2025-03-05T00:36:54Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,184 @@
+---
+id: matrix
+name: Matrix
+description: "M.A.T.R.I.X is a HUNGARIAN Private Tracker for MOVIES / TV / GENERAL"
+language: hu-HU
+type: private
+encoding: UTF-8
+links:
+  - https://matrixworld.info/
+
+caps:
+  categorymappings:
+    - {id: 23, cat: Movies/Other, desc: "Animációk"}
+    - {id: 61, cat: Movies/Other, desc: "Cam/EN"}
+    - {id: 60, cat: Movies/Other, desc: "Cam/HU"}
+    - {id: 45, cat: Books/EBook, desc: "eBook/EN"}
+    - {id: 40, cat: Books/EBook, desc: "eBook/HU"}
+    - {id: 20, cat: Movies/DVD, desc: "Film/DVD9"}
+    - {id: 48, cat: Movies/HD, desc: "Film/EN/1080p"}
+    - {id: 32, cat: Movies/HD, desc: "Film/EN/720p"}
+    - {id: 38, cat: Movies/BluRay, desc: "Film/EN/Blu-ray"}
+    - {id: 27, cat: Movies/DVD, desc: "Film/EN/DVD-R"}
+    - {id: 24, cat: Movies/SD, desc: "Film/EN/SD"}
+    - {id: 34, cat: Movies/HD, desc: "Film/HU/1080p"}
+    - {id: 31, cat: Movies/HD, desc: "Film/HU/720p"}
+    - {id: 35, cat: Movies/BluRay, desc: "Film/HU/Blu-ray"}
+    - {id: 26, cat: Movies/DVD, desc: "Film/HU/DVD-R"}
+    - {id: 5, cat: Movies/SD, desc: "Film/HU/SD"}
+    - {id: 4, cat: PC/Games, desc: "Játékok/ISO"}
+    - {id: 39, cat: PC/Games, desc: "Játékok/Rip/Dox"}
+    - {id: 47, cat: Other, desc: "Klippek"}
+    - {id: 30, cat: Audio/Lossless, desc: "Lossless/EN"}
+    - {id: 29, cat: Audio/Lossless, desc: "Lossless/HU"}
+    - {id: 25, cat: Audio/MP3, desc: "MP3/EN"}
+    - {id: 6, cat: Audio/MP3, desc: "MP3/HU"}
+    - {id: 33, cat: PC, desc: "Program/egyéb"}
+    - {id: 1, cat: PC/ISO, desc: "Program/ISO"}
+    - {id: 36, cat: TV/HD, desc: "Sorozat/EN/HD"}
+    - {id: 49, cat: TV/SD, desc: "Sorozat/EN/SD"}
+    - {id: 28, cat: TV/HD, desc: "Sorozat/HU/HD"}
+    - {id: 7, cat: TV/SD, desc: "Sorozat/HU/SD"}
+    - {id: 9, cat: XXX, desc: "XXX"}
+    - {id: 44, cat: XXX/x264, desc: "XXX/HD"}
+    - {id: 43, cat: XXX/SD, desc: "XXX/SD"}
+
+  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: Filter freeleech only
+    default: false
+  - name: sort
+    type: select
+    label: Sort requested from site
+    default: 0
+    options:
+      0: created
+      1: title
+      4: size
+      6: 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 <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
+  - name: info_activity
+    type: info
+    label: Account Inactivity
+    default: "If you do not log in to the site for 6 months, the system will automatically delete it!"
+
+login:
+  path: takelogin.php
+  method: post
+  inputs:
+    username: "{{ .Config.username }}"
+    password: "{{ .Config.password }}"
+    logout: ""
+  error:
+    - selector: td.embedded:contains("Sikertelen bejelentkezés")
+  test:
+    path: /
+    selector: a[href$="logout.php"]
+
+search:
+  paths:
+    - path: browse.php
+  inputs:
+    $raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
+    search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
+    # 0 active only, 1 include dead, 2 only dead
+    incldead: 1
+    sort: "{{ .Config.sort }}"
+    type: "{{ .Config.type }}"
+
+  rows:
+    selector: "table.mainouter > tbody > tr > td > table tr:has(a[href^=\"download.php?id=\"]){{ if .Config.freeleech }}:has(img[src$=\"/pic/ingyentorrent.gif\"]){{ else }}{{ end }}"
+
+  fields:
+    category:
+      selector: a[href^="browse.php?cat="]
+      attribute: href
+      filters:
+        - name: querystring
+          args: cat
+    title:
+      selector: a.torrent-link b
+    _id:
+      selector: a[href^="download.php?id="]
+      attribute: href
+      filters:
+        - name: querystring
+          args: id
+    details:
+      text: "details.php?id={{ .Result._id }}"
+    download:
+      selector: a[href^="download.php?id="]
+      attribute: href
+    poster:
+      selector: a.torrent-link
+      attribute: data-cover
+    imdbid:
+      selector: a[href*="imdb.com/title/tt"]
+      attribute: href
+    files:
+      selector: td:nth-child(5) a
+    date:
+      selector: td:contains("Feltöltve:")
+      filters:
+        - name: regexp
+          args: "Feltöltve: *([0-9]{4}-[0-9]{2}-[0-9]{2} +[0-9]{2}:[0-9]{2}:[0-9]{2})"
+        - name: append
+          args: " +01:00" # Europe/Budapest, CET
path: src/Jackett.Common/Definitions/matrix.yml
user: login: ilike2burnthing
body: ```suggestion
          args: "Feltöltve: (.+?)(\\(|$)"
        - name: append
          args: " +01:00" # CET
```
created_at: 2025-03-05T00:48:25Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,184 @@
+---
+id: matrix
+name: Matrix
+description: "M.A.T.R.I.X is a HUNGARIAN Private Tracker for MOVIES / TV / GENERAL"
+language: hu-HU
+type: private
+encoding: UTF-8
+links:
+  - https://matrixworld.info/
+
+caps:
+  categorymappings:
+    - {id: 23, cat: Movies/Other, desc: "Animációk"}
+    - {id: 61, cat: Movies/Other, desc: "Cam/EN"}
+    - {id: 60, cat: Movies/Other, desc: "Cam/HU"}
+    - {id: 45, cat: Books/EBook, desc: "eBook/EN"}
+    - {id: 40, cat: Books/EBook, desc: "eBook/HU"}
+    - {id: 20, cat: Movies/DVD, desc: "Film/DVD9"}
+    - {id: 48, cat: Movies/HD, desc: "Film/EN/1080p"}
+    - {id: 32, cat: Movies/HD, desc: "Film/EN/720p"}
+    - {id: 38, cat: Movies/BluRay, desc: "Film/EN/Blu-ray"}
+    - {id: 27, cat: Movies/DVD, desc: "Film/EN/DVD-R"}
+    - {id: 24, cat: Movies/SD, desc: "Film/EN/SD"}
+    - {id: 34, cat: Movies/HD, desc: "Film/HU/1080p"}
+    - {id: 31, cat: Movies/HD, desc: "Film/HU/720p"}
+    - {id: 35, cat: Movies/BluRay, desc: "Film/HU/Blu-ray"}
+    - {id: 26, cat: Movies/DVD, desc: "Film/HU/DVD-R"}
+    - {id: 5, cat: Movies/SD, desc: "Film/HU/SD"}
+    - {id: 4, cat: PC/Games, desc: "Játékok/ISO"}
+    - {id: 39, cat: PC/Games, desc: "Játékok/Rip/Dox"}
+    - {id: 47, cat: Other, desc: "Klippek"}
+    - {id: 30, cat: Audio/Lossless, desc: "Lossless/EN"}
+    - {id: 29, cat: Audio/Lossless, desc: "Lossless/HU"}
+    - {id: 25, cat: Audio/MP3, desc: "MP3/EN"}
+    - {id: 6, cat: Audio/MP3, desc: "MP3/HU"}
+    - {id: 33, cat: PC, desc: "Program/egyéb"}
+    - {id: 1, cat: PC/ISO, desc: "Program/ISO"}
+    - {id: 36, cat: TV/HD, desc: "Sorozat/EN/HD"}
+    - {id: 49, cat: TV/SD, desc: "Sorozat/EN/SD"}
+    - {id: 28, cat: TV/HD, desc: "Sorozat/HU/HD"}
+    - {id: 7, cat: TV/SD, desc: "Sorozat/HU/SD"}
+    - {id: 9, cat: XXX, desc: "XXX"}
+    - {id: 44, cat: XXX/x264, desc: "XXX/HD"}
+    - {id: 43, cat: XXX/SD, desc: "XXX/SD"}
+
+  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: Filter freeleech only
+    default: false
+  - name: sort
+    type: select
+    label: Sort requested from site
+    default: 0
+    options:
+      0: created
+      1: title
+      4: size
+      6: 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 <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
+  - name: info_activity
+    type: info
+    label: Account Inactivity
+    default: "If you do not log in to the site for 6 months, the system will automatically delete it!"
+
+login:
+  path: takelogin.php
+  method: post
+  inputs:
+    username: "{{ .Config.username }}"
+    password: "{{ .Config.password }}"
+    logout: ""
+  error:
+    - selector: td.embedded:contains("Sikertelen bejelentkezés")
+  test:
+    path: /
+    selector: a[href$="logout.php"]
+
+search:
+  paths:
+    - path: browse.php
+  inputs:
+    $raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
+    search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
+    # 0 active only, 1 include dead, 2 only dead
+    incldead: 1
+    sort: "{{ .Config.sort }}"
+    type: "{{ .Config.type }}"
+
+  rows:
+    selector: "table.mainouter > tbody > tr > td > table tr:has(a[href^=\"download.php?id=\"]){{ if .Config.freeleech }}:has(img[src$=\"/pic/ingyentorrent.gif\"]){{ else }}{{ end }}"
+
+  fields:
+    category:
+      selector: a[href^="browse.php?cat="]
+      attribute: href
+      filters:
+        - name: querystring
+          args: cat
+    title:
+      selector: a.torrent-link b
+    _id:
+      selector: a[href^="download.php?id="]
+      attribute: href
+      filters:
+        - name: querystring
+          args: id
+    details:
+      text: "details.php?id={{ .Result._id }}"
+    download:
+      selector: a[href^="download.php?id="]
+      attribute: href
+    poster:
+      selector: a.torrent-link
+      attribute: data-cover
+    imdbid:
+      selector: a[href*="imdb.com/title/tt"]
+      attribute: href
+    files:
+      selector: td:nth-child(5) a
+    date:
+      selector: td:contains("Feltöltve:")
+      filters:
+        - name: regexp
+          args: "Feltöltve: *([0-9]{4}-[0-9]{2}-[0-9]{2} +[0-9]{2}:[0-9]{2}:[0-9]{2})"
+        - name: append
+          args: " +01:00" # Europe/Budapest, CET
+        - name: dateparse
+          args: "yyyy-MM-dd HH:mm:ss zzz"
+    grabs:
+      selector: td:nth-child(7) b
+    size:
+      selector: td:nth-child(7)
+      filters:
+        - name: regexp
+          args: "([0-9]+\\.?[0-9]* *[kKmMgGtTpP]i?[bB])"
path: src/Jackett.Common/Definitions/matrix.yml
user: login: ilike2burnthing
body: ```suggestion
          args: "(.+?B)"
```
created_at: 2025-03-05T01:20:17Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,184 @@
+---
+id: matrix
+name: Matrix
+description: "M.A.T.R.I.X is a HUNGARIAN Private Tracker for MOVIES / TV / GENERAL"
+language: hu-HU
+type: private
+encoding: UTF-8
+links:
+  - https://matrixworld.info/
+
+caps:
+  categorymappings:
+    - {id: 23, cat: Movies/Other, desc: "Animációk"}
+    - {id: 61, cat: Movies/Other, desc: "Cam/EN"}
+    - {id: 60, cat: Movies/Other, desc: "Cam/HU"}
+    - {id: 45, cat: Books/EBook, desc: "eBook/EN"}
+    - {id: 40, cat: Books/EBook, desc: "eBook/HU"}
+    - {id: 20, cat: Movies/DVD, desc: "Film/DVD9"}
+    - {id: 48, cat: Movies/HD, desc: "Film/EN/1080p"}
+    - {id: 32, cat: Movies/HD, desc: "Film/EN/720p"}
+    - {id: 38, cat: Movies/BluRay, desc: "Film/EN/Blu-ray"}
+    - {id: 27, cat: Movies/DVD, desc: "Film/EN/DVD-R"}
+    - {id: 24, cat: Movies/SD, desc: "Film/EN/SD"}
+    - {id: 34, cat: Movies/HD, desc: "Film/HU/1080p"}
+    - {id: 31, cat: Movies/HD, desc: "Film/HU/720p"}
+    - {id: 35, cat: Movies/BluRay, desc: "Film/HU/Blu-ray"}
+    - {id: 26, cat: Movies/DVD, desc: "Film/HU/DVD-R"}
+    - {id: 5, cat: Movies/SD, desc: "Film/HU/SD"}
+    - {id: 4, cat: PC/Games, desc: "Játékok/ISO"}
+    - {id: 39, cat: PC/Games, desc: "Játékok/Rip/Dox"}
+    - {id: 47, cat: Other, desc: "Klippek"}
+    - {id: 30, cat: Audio/Lossless, desc: "Lossless/EN"}
+    - {id: 29, cat: Audio/Lossless, desc: "Lossless/HU"}
+    - {id: 25, cat: Audio/MP3, desc: "MP3/EN"}
+    - {id: 6, cat: Audio/MP3, desc: "MP3/HU"}
+    - {id: 33, cat: PC, desc: "Program/egyéb"}
+    - {id: 1, cat: PC/ISO, desc: "Program/ISO"}
+    - {id: 36, cat: TV/HD, desc: "Sorozat/EN/HD"}
+    - {id: 49, cat: TV/SD, desc: "Sorozat/EN/SD"}
+    - {id: 28, cat: TV/HD, desc: "Sorozat/HU/HD"}
+    - {id: 7, cat: TV/SD, desc: "Sorozat/HU/SD"}
+    - {id: 9, cat: XXX, desc: "XXX"}
+    - {id: 44, cat: XXX/x264, desc: "XXX/HD"}
+    - {id: 43, cat: XXX/SD, desc: "XXX/SD"}
+
+  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: Filter freeleech only
+    default: false
+  - name: sort
+    type: select
+    label: Sort requested from site
+    default: 0
+    options:
+      0: created
+      1: title
+      4: size
+      6: 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 <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
+  - name: info_activity
+    type: info
+    label: Account Inactivity
+    default: "If you do not log in to the site for 6 months, the system will automatically delete it!"
+
+login:
+  path: takelogin.php
+  method: post
+  inputs:
+    username: "{{ .Config.username }}"
+    password: "{{ .Config.password }}"
+    logout: ""
+  error:
+    - selector: td.embedded:contains("Sikertelen bejelentkezés")
+  test:
+    path: /
+    selector: a[href$="logout.php"]
+
+search:
+  paths:
+    - path: browse.php
+  inputs:
+    $raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
+    search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
+    # 0 active only, 1 include dead, 2 only dead
+    incldead: 1
+    sort: "{{ .Config.sort }}"
+    type: "{{ .Config.type }}"
+
+  rows:
+    selector: "table.mainouter > tbody > tr > td > table tr:has(a[href^=\"download.php?id=\"]){{ if .Config.freeleech }}:has(img[src$=\"/pic/ingyentorrent.gif\"]){{ else }}{{ end }}"
+
+  fields:
+    category:
+      selector: a[href^="browse.php?cat="]
+      attribute: href
+      filters:
+        - name: querystring
+          args: cat
+    title:
+      selector: a.torrent-link b
+    _id:
+      selector: a[href^="download.php?id="]
+      attribute: href
+      filters:
+        - name: querystring
+          args: id
+    details:
+      text: "details.php?id={{ .Result._id }}"
path: src/Jackett.Common/Definitions/matrix.yml
user: login: ilike2burnthing
body: You were prepending `details.php?id=` despite using a selector with `details.php?id=`, and then using `querystring` to add the `id`. It's a roundabout way of removing the `&hit=1...`, which can be done with a re_replace instead. You can use mine above.
created_at: 2025-03-05T01:29:09Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,184 @@
+---
+id: matrix
+name: Matrix
+description: "M.A.T.R.I.X is a HUNGARIAN Private Tracker for MOVIES / TV / GENERAL"
+language: hu-HU
+type: private
+encoding: UTF-8
+links:
+  - https://matrixworld.info/
+
+caps:
+  categorymappings:
+    - {id: 23, cat: Movies/Other, desc: "Animációk"}
+    - {id: 61, cat: Movies/Other, desc: "Cam/EN"}
+    - {id: 60, cat: Movies/Other, desc: "Cam/HU"}
+    - {id: 45, cat: Books/EBook, desc: "eBook/EN"}
+    - {id: 40, cat: Books/EBook, desc: "eBook/HU"}
+    - {id: 20, cat: Movies/DVD, desc: "Film/DVD9"}
+    - {id: 48, cat: Movies/HD, desc: "Film/EN/1080p"}
+    - {id: 32, cat: Movies/HD, desc: "Film/EN/720p"}
+    - {id: 38, cat: Movies/BluRay, desc: "Film/EN/Blu-ray"}
+    - {id: 27, cat: Movies/DVD, desc: "Film/EN/DVD-R"}
+    - {id: 24, cat: Movies/SD, desc: "Film/EN/SD"}
+    - {id: 34, cat: Movies/HD, desc: "Film/HU/1080p"}
+    - {id: 31, cat: Movies/HD, desc: "Film/HU/720p"}
+    - {id: 35, cat: Movies/BluRay, desc: "Film/HU/Blu-ray"}
+    - {id: 26, cat: Movies/DVD, desc: "Film/HU/DVD-R"}
+    - {id: 5, cat: Movies/SD, desc: "Film/HU/SD"}
+    - {id: 4, cat: PC/Games, desc: "Játékok/ISO"}
+    - {id: 39, cat: PC/Games, desc: "Játékok/Rip/Dox"}
+    - {id: 47, cat: Other, desc: "Klippek"}
+    - {id: 30, cat: Audio/Lossless, desc: "Lossless/EN"}
+    - {id: 29, cat: Audio/Lossless, desc: "Lossless/HU"}
+    - {id: 25, cat: Audio/MP3, desc: "MP3/EN"}
+    - {id: 6, cat: Audio/MP3, desc: "MP3/HU"}
+    - {id: 33, cat: PC, desc: "Program/egyéb"}
+    - {id: 1, cat: PC/ISO, desc: "Program/ISO"}
+    - {id: 36, cat: TV/HD, desc: "Sorozat/EN/HD"}
+    - {id: 49, cat: TV/SD, desc: "Sorozat/EN/SD"}
+    - {id: 28, cat: TV/HD, desc: "Sorozat/HU/HD"}
+    - {id: 7, cat: TV/SD, desc: "Sorozat/HU/SD"}
+    - {id: 9, cat: XXX, desc: "XXX"}
+    - {id: 44, cat: XXX/x264, desc: "XXX/HD"}
+    - {id: 43, cat: XXX/SD, desc: "XXX/SD"}
+
+  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: Filter freeleech only
+    default: false
+  - name: sort
+    type: select
+    label: Sort requested from site
+    default: 0
+    options:
+      0: created
+      1: title
+      4: size
+      6: 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 <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
+  - name: info_activity
+    type: info
+    label: Account Inactivity
+    default: "If you do not log in to the site for 6 months, the system will automatically delete it!"
+
+login:
+  path: takelogin.php
+  method: post
+  inputs:
+    username: "{{ .Config.username }}"
+    password: "{{ .Config.password }}"
+    logout: ""
+  error:
+    - selector: td.embedded:contains("Sikertelen bejelentkezés")
+  test:
+    path: /
+    selector: a[href$="logout.php"]
+
+search:
+  paths:
+    - path: browse.php
+  inputs:
+    $raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
+    search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
+    # 0 active only, 1 include dead, 2 only dead
+    incldead: 1
+    sort: "{{ .Config.sort }}"
+    type: "{{ .Config.type }}"
+
+  rows:
+    selector: "table.mainouter > tbody > tr > td > table tr:has(a[href^=\"download.php?id=\"]){{ if .Config.freeleech }}:has(img[src$=\"/pic/ingyentorrent.gif\"]){{ else }}{{ end }}"
+
+  fields:
+    category:
+      selector: a[href^="browse.php?cat="]
+      attribute: href
+      filters:
+        - name: querystring
+          args: cat
+    title:
+      selector: a.torrent-link b
+    _id:
+      selector: a[href^="download.php?id="]
+      attribute: href
+      filters:
+        - name: querystring
+          args: id
+    details:
+      text: "details.php?id={{ .Result._id }}"
+    download:
+      selector: a[href^="download.php?id="]
+      attribute: href
+    poster:
+      selector: a.torrent-link
+      attribute: data-cover
+    imdbid:
+      selector: a[href*="imdb.com/title/tt"]
+      attribute: href
+    files:
+      selector: td:nth-child(5) a
+    date:
+      selector: td:contains("Feltöltve:")
+      filters:
+        - name: regexp
+          args: "Feltöltve: *([0-9]{4}-[0-9]{2}-[0-9]{2} +[0-9]{2}:[0-9]{2}:[0-9]{2})"
+        - name: append
+          args: " +01:00" # Europe/Budapest, CET
path: src/Jackett.Common/Definitions/matrix.yml
user: login: rpatterson
body: Hmm, why, for both?

First for the comment, I think including the more verbose time zone name makes the code more readable. The definition I copied had just `# MSK` or some such. I'm not familiar with that code, but if the comment included the more verbose version I would have understood immediately. Readability is maintainability. What's the counter point?

Secondly and similarly, I think the more explicit regular expression is more expressive and less fragile. It expresses what *has* to be in the extracted string in order for the subsequent parsing to work. It's also more likely to match on the correct output should the HTML change in the future. Counter point?
created_at: 2025-03-05T01:30:39Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,184 @@
+---
+id: matrix
+name: Matrix
+description: "M.A.T.R.I.X is a HUNGARIAN Private Tracker for MOVIES / TV / GENERAL"
+language: hu-HU
+type: private
+encoding: UTF-8
+links:
+  - https://matrixworld.info/
+
+caps:
+  categorymappings:
+    - {id: 23, cat: Movies/Other, desc: "Animációk"}
+    - {id: 61, cat: Movies/Other, desc: "Cam/EN"}
+    - {id: 60, cat: Movies/Other, desc: "Cam/HU"}
+    - {id: 45, cat: Books/EBook, desc: "eBook/EN"}
+    - {id: 40, cat: Books/EBook, desc: "eBook/HU"}
+    - {id: 20, cat: Movies/DVD, desc: "Film/DVD9"}
+    - {id: 48, cat: Movies/HD, desc: "Film/EN/1080p"}
+    - {id: 32, cat: Movies/HD, desc: "Film/EN/720p"}
+    - {id: 38, cat: Movies/BluRay, desc: "Film/EN/Blu-ray"}
+    - {id: 27, cat: Movies/DVD, desc: "Film/EN/DVD-R"}
+    - {id: 24, cat: Movies/SD, desc: "Film/EN/SD"}
+    - {id: 34, cat: Movies/HD, desc: "Film/HU/1080p"}
+    - {id: 31, cat: Movies/HD, desc: "Film/HU/720p"}
+    - {id: 35, cat: Movies/BluRay, desc: "Film/HU/Blu-ray"}
+    - {id: 26, cat: Movies/DVD, desc: "Film/HU/DVD-R"}
+    - {id: 5, cat: Movies/SD, desc: "Film/HU/SD"}
+    - {id: 4, cat: PC/Games, desc: "Játékok/ISO"}
+    - {id: 39, cat: PC/Games, desc: "Játékok/Rip/Dox"}
+    - {id: 47, cat: Other, desc: "Klippek"}
+    - {id: 30, cat: Audio/Lossless, desc: "Lossless/EN"}
+    - {id: 29, cat: Audio/Lossless, desc: "Lossless/HU"}
+    - {id: 25, cat: Audio/MP3, desc: "MP3/EN"}
+    - {id: 6, cat: Audio/MP3, desc: "MP3/HU"}
+    - {id: 33, cat: PC, desc: "Program/egyéb"}
+    - {id: 1, cat: PC/ISO, desc: "Program/ISO"}
+    - {id: 36, cat: TV/HD, desc: "Sorozat/EN/HD"}
+    - {id: 49, cat: TV/SD, desc: "Sorozat/EN/SD"}
+    - {id: 28, cat: TV/HD, desc: "Sorozat/HU/HD"}
+    - {id: 7, cat: TV/SD, desc: "Sorozat/HU/SD"}
+    - {id: 9, cat: XXX, desc: "XXX"}
+    - {id: 44, cat: XXX/x264, desc: "XXX/HD"}
+    - {id: 43, cat: XXX/SD, desc: "XXX/SD"}
+
+  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: Filter freeleech only
+    default: false
+  - name: sort
+    type: select
+    label: Sort requested from site
+    default: 0
+    options:
+      0: created
+      1: title
+      4: size
+      6: 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 <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
+  - name: info_activity
+    type: info
+    label: Account Inactivity
+    default: "If you do not log in to the site for 6 months, the system will automatically delete it!"
+
+login:
+  path: takelogin.php
+  method: post
+  inputs:
+    username: "{{ .Config.username }}"
+    password: "{{ .Config.password }}"
+    logout: ""
+  error:
+    - selector: td.embedded:contains("Sikertelen bejelentkezés")
+  test:
+    path: /
+    selector: a[href$="logout.php"]
+
+search:
+  paths:
+    - path: browse.php
+  inputs:
+    $raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
+    search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
+    # 0 active only, 1 include dead, 2 only dead
+    incldead: 1
+    sort: "{{ .Config.sort }}"
+    type: "{{ .Config.type }}"
+
+  rows:
+    selector: "table.mainouter > tbody > tr > td > table tr:has(a[href^=\"download.php?id=\"]){{ if .Config.freeleech }}:has(img[src$=\"/pic/ingyentorrent.gif\"]){{ else }}{{ end }}"
+
+  fields:
+    category:
+      selector: a[href^="browse.php?cat="]
+      attribute: href
+      filters:
+        - name: querystring
+          args: cat
+    title:
+      selector: a.torrent-link b
+    _id:
+      selector: a[href^="download.php?id="]
+      attribute: href
+      filters:
+        - name: querystring
+          args: id
+    details:
+      text: "details.php?id={{ .Result._id }}"
path: src/Jackett.Common/Definitions/matrix.yml
user: login: rpatterson
body: Hmm, I think extracting the data we need explicitly and then assembling the URL from that data is more robust if the HTML changes in the future. What if the `hit=` parameter changes? What if a parameter is added before it? It's better to let the, I assume standards compliant, query string parser give us what we want regardless of how the parameters are ordered or what other parameters are included. Then explicitly assemble the needed URL. If the *correct* details URL weren't burried in the results of the JS execution, then I'd be all for using that instead, but in this case I think explicit is less fragile and more maintainable.

LMK if you insist.
created_at: 2025-03-05T01:35:44Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,184 @@
+---
+id: matrix
+name: Matrix
+description: "M.A.T.R.I.X is a HUNGARIAN Private Tracker for MOVIES / TV / GENERAL"
+language: hu-HU
+type: private
+encoding: UTF-8
+links:
+  - https://matrixworld.info/
+
+caps:
+  categorymappings:
+    - {id: 23, cat: Movies/Other, desc: "Animációk"}
+    - {id: 61, cat: Movies/Other, desc: "Cam/EN"}
+    - {id: 60, cat: Movies/Other, desc: "Cam/HU"}
+    - {id: 45, cat: Books/EBook, desc: "eBook/EN"}
+    - {id: 40, cat: Books/EBook, desc: "eBook/HU"}
+    - {id: 20, cat: Movies/DVD, desc: "Film/DVD9"}
+    - {id: 48, cat: Movies/HD, desc: "Film/EN/1080p"}
+    - {id: 32, cat: Movies/HD, desc: "Film/EN/720p"}
+    - {id: 38, cat: Movies/BluRay, desc: "Film/EN/Blu-ray"}
+    - {id: 27, cat: Movies/DVD, desc: "Film/EN/DVD-R"}
+    - {id: 24, cat: Movies/SD, desc: "Film/EN/SD"}
+    - {id: 34, cat: Movies/HD, desc: "Film/HU/1080p"}
+    - {id: 31, cat: Movies/HD, desc: "Film/HU/720p"}
+    - {id: 35, cat: Movies/BluRay, desc: "Film/HU/Blu-ray"}
+    - {id: 26, cat: Movies/DVD, desc: "Film/HU/DVD-R"}
+    - {id: 5, cat: Movies/SD, desc: "Film/HU/SD"}
+    - {id: 4, cat: PC/Games, desc: "Játékok/ISO"}
+    - {id: 39, cat: PC/Games, desc: "Játékok/Rip/Dox"}
+    - {id: 47, cat: Other, desc: "Klippek"}
+    - {id: 30, cat: Audio/Lossless, desc: "Lossless/EN"}
+    - {id: 29, cat: Audio/Lossless, desc: "Lossless/HU"}
+    - {id: 25, cat: Audio/MP3, desc: "MP3/EN"}
+    - {id: 6, cat: Audio/MP3, desc: "MP3/HU"}
+    - {id: 33, cat: PC, desc: "Program/egyéb"}
+    - {id: 1, cat: PC/ISO, desc: "Program/ISO"}
+    - {id: 36, cat: TV/HD, desc: "Sorozat/EN/HD"}
+    - {id: 49, cat: TV/SD, desc: "Sorozat/EN/SD"}
+    - {id: 28, cat: TV/HD, desc: "Sorozat/HU/HD"}
+    - {id: 7, cat: TV/SD, desc: "Sorozat/HU/SD"}
+    - {id: 9, cat: XXX, desc: "XXX"}
+    - {id: 44, cat: XXX/x264, desc: "XXX/HD"}
+    - {id: 43, cat: XXX/SD, desc: "XXX/SD"}
+
+  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: Filter freeleech only
+    default: false
+  - name: sort
+    type: select
+    label: Sort requested from site
+    default: 0
+    options:
+      0: created
+      1: title
+      4: size
+      6: 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 <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
+  - name: info_activity
+    type: info
+    label: Account Inactivity
+    default: "If you do not log in to the site for 6 months, the system will automatically delete it!"
+
+login:
+  path: takelogin.php
+  method: post
+  inputs:
+    username: "{{ .Config.username }}"
+    password: "{{ .Config.password }}"
+    logout: ""
+  error:
+    - selector: td.embedded:contains("Sikertelen bejelentkezés")
+  test:
+    path: /
+    selector: a[href$="logout.php"]
+
+search:
+  paths:
+    - path: browse.php
+  inputs:
+    $raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
+    search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
+    # 0 active only, 1 include dead, 2 only dead
+    incldead: 1
+    sort: "{{ .Config.sort }}"
+    type: "{{ .Config.type }}"
+
+  rows:
+    selector: "table.mainouter > tbody > tr > td > table tr:has(a[href^=\"download.php?id=\"]){{ if .Config.freeleech }}:has(img[src$=\"/pic/ingyentorrent.gif\"]){{ else }}{{ end }}"
+
+  fields:
+    category:
+      selector: a[href^="browse.php?cat="]
+      attribute: href
+      filters:
+        - name: querystring
+          args: cat
+    title:
+      selector: a.torrent-link b
+    _id:
+      selector: a[href^="download.php?id="]
+      attribute: href
+      filters:
+        - name: querystring
+          args: id
+    details:
+      text: "details.php?id={{ .Result._id }}"
+    download:
+      selector: a[href^="download.php?id="]
+      attribute: href
+    poster:
+      selector: a.torrent-link
+      attribute: data-cover
+    imdbid:
+      selector: a[href*="imdb.com/title/tt"]
+      attribute: href
+    files:
+      selector: td:nth-child(5) a
+    date:
+      selector: td:contains("Feltöltve:")
+      filters:
+        - name: regexp
+          args: "Feltöltve: *([0-9]{4}-[0-9]{2}-[0-9]{2} +[0-9]{2}:[0-9]{2}:[0-9]{2})"
+        - name: append
+          args: " +01:00" # Europe/Budapest, CET
+        - name: dateparse
+          args: "yyyy-MM-dd HH:mm:ss zzz"
+    grabs:
+      selector: td:nth-child(7) b
+    size:
+      selector: td:nth-child(7)
+      filters:
+        - name: regexp
+          args: "([0-9]+\\.?[0-9]* *[kKmMgGtTpP]i?[bB])"
path: src/Jackett.Common/Definitions/matrix.yml
user: login: rpatterson
body: Same point as above for extracting the date/time stamp. More expressive and less likely to mismatch in confusing ways.
created_at: 2025-03-05T01:37:42Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,184 @@
+---
+id: matrix
+name: Matrix
+description: "M.A.T.R.I.X is a HUNGARIAN Private Tracker for MOVIES / TV / GENERAL"
+language: hu-HU
+type: private
+encoding: UTF-8
+links:
+  - https://matrixworld.info/
+
+caps:
+  categorymappings:
+    - {id: 23, cat: Movies/Other, desc: "Animációk"}
+    - {id: 61, cat: Movies/Other, desc: "Cam/EN"}
+    - {id: 60, cat: Movies/Other, desc: "Cam/HU"}
+    - {id: 45, cat: Books/EBook, desc: "eBook/EN"}
+    - {id: 40, cat: Books/EBook, desc: "eBook/HU"}
+    - {id: 20, cat: Movies/DVD, desc: "Film/DVD9"}
+    - {id: 48, cat: Movies/HD, desc: "Film/EN/1080p"}
+    - {id: 32, cat: Movies/HD, desc: "Film/EN/720p"}
+    - {id: 38, cat: Movies/BluRay, desc: "Film/EN/Blu-ray"}
+    - {id: 27, cat: Movies/DVD, desc: "Film/EN/DVD-R"}
+    - {id: 24, cat: Movies/SD, desc: "Film/EN/SD"}
+    - {id: 34, cat: Movies/HD, desc: "Film/HU/1080p"}
+    - {id: 31, cat: Movies/HD, desc: "Film/HU/720p"}
+    - {id: 35, cat: Movies/BluRay, desc: "Film/HU/Blu-ray"}
+    - {id: 26, cat: Movies/DVD, desc: "Film/HU/DVD-R"}
+    - {id: 5, cat: Movies/SD, desc: "Film/HU/SD"}
+    - {id: 4, cat: PC/Games, desc: "Játékok/ISO"}
+    - {id: 39, cat: PC/Games, desc: "Játékok/Rip/Dox"}
+    - {id: 47, cat: Other, desc: "Klippek"}
+    - {id: 30, cat: Audio/Lossless, desc: "Lossless/EN"}
+    - {id: 29, cat: Audio/Lossless, desc: "Lossless/HU"}
+    - {id: 25, cat: Audio/MP3, desc: "MP3/EN"}
+    - {id: 6, cat: Audio/MP3, desc: "MP3/HU"}
+    - {id: 33, cat: PC, desc: "Program/egyéb"}
+    - {id: 1, cat: PC/ISO, desc: "Program/ISO"}
+    - {id: 36, cat: TV/HD, desc: "Sorozat/EN/HD"}
+    - {id: 49, cat: TV/SD, desc: "Sorozat/EN/SD"}
+    - {id: 28, cat: TV/HD, desc: "Sorozat/HU/HD"}
+    - {id: 7, cat: TV/SD, desc: "Sorozat/HU/SD"}
+    - {id: 9, cat: XXX, desc: "XXX"}
+    - {id: 44, cat: XXX/x264, desc: "XXX/HD"}
+    - {id: 43, cat: XXX/SD, desc: "XXX/SD"}
+
+  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: Filter freeleech only
+    default: false
+  - name: sort
+    type: select
+    label: Sort requested from site
+    default: 0
+    options:
+      0: created
+      1: title
+      4: size
+      6: 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 <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
+  - name: info_activity
+    type: info
+    label: Account Inactivity
+    default: "If you do not log in to the site for 6 months, the system will automatically delete it!"
+
+login:
+  path: takelogin.php
+  method: post
+  inputs:
+    username: "{{ .Config.username }}"
+    password: "{{ .Config.password }}"
+    logout: ""
+  error:
+    - selector: td.embedded:contains("Sikertelen bejelentkezés")
+  test:
+    path: /
+    selector: a[href$="logout.php"]
+
+search:
+  paths:
+    - path: browse.php
+  inputs:
+    $raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
+    search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
+    # 0 active only, 1 include dead, 2 only dead
+    incldead: 1
+    sort: "{{ .Config.sort }}"
+    type: "{{ .Config.type }}"
+
+  rows:
+    selector: "table.mainouter > tbody > tr > td > table tr:has(a[href^=\"download.php?id=\"]){{ if .Config.freeleech }}:has(img[src$=\"/pic/ingyentorrent.gif\"]){{ else }}{{ end }}"
+
+  fields:
+    category:
+      selector: a[href^="browse.php?cat="]
+      attribute: href
+      filters:
+        - name: querystring
+          args: cat
+    title:
+      selector: a.torrent-link b
+    _id:
+      selector: a[href^="download.php?id="]
+      attribute: href
+      filters:
+        - name: querystring
+          args: id
+    details:
+      text: "details.php?id={{ .Result._id }}"
+    download:
+      selector: a[href^="download.php?id="]
+      attribute: href
+    poster:
+      selector: a.torrent-link
+      attribute: data-cover
+    imdbid:
+      selector: a[href*="imdb.com/title/tt"]
+      attribute: href
+    files:
+      selector: td:nth-child(5) a
+    date:
+      selector: td:contains("Feltöltve:")
+      filters:
+        - name: regexp
+          args: "Feltöltve: *([0-9]{4}-[0-9]{2}-[0-9]{2} +[0-9]{2}:[0-9]{2}:[0-9]{2})"
+        - name: append
+          args: " +01:00" # Europe/Budapest, CET
path: src/Jackett.Common/Definitions/matrix.yml
user: login: ilike2burnthing
body: For timezone comments we just 3 letter international time zone codes, e.g. CET (Central European Time), MSK (Moscow Standard Time). It's the same with all other definition files we have time zones for.

The structure of the date and time is as likely to change as the HTML, so we're at least more likely to capture this change using a broader regex, and it appear in error logs, than just no match be made. The `(\\(|$)` at the end accounts for the rare case where no genres are added.
created_at: 2025-03-05T01:41:12Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,184 @@
+---
+id: matrix
+name: Matrix
+description: "M.A.T.R.I.X is a HUNGARIAN Private Tracker for MOVIES / TV / GENERAL"
+language: hu-HU
+type: private
+encoding: UTF-8
+links:
+  - https://matrixworld.info/
+
+caps:
+  categorymappings:
+    - {id: 23, cat: Movies/Other, desc: "Animációk"}
+    - {id: 61, cat: Movies/Other, desc: "Cam/EN"}
+    - {id: 60, cat: Movies/Other, desc: "Cam/HU"}
+    - {id: 45, cat: Books/EBook, desc: "eBook/EN"}
+    - {id: 40, cat: Books/EBook, desc: "eBook/HU"}
+    - {id: 20, cat: Movies/DVD, desc: "Film/DVD9"}
+    - {id: 48, cat: Movies/HD, desc: "Film/EN/1080p"}
+    - {id: 32, cat: Movies/HD, desc: "Film/EN/720p"}
+    - {id: 38, cat: Movies/BluRay, desc: "Film/EN/Blu-ray"}
+    - {id: 27, cat: Movies/DVD, desc: "Film/EN/DVD-R"}
+    - {id: 24, cat: Movies/SD, desc: "Film/EN/SD"}
+    - {id: 34, cat: Movies/HD, desc: "Film/HU/1080p"}
+    - {id: 31, cat: Movies/HD, desc: "Film/HU/720p"}
+    - {id: 35, cat: Movies/BluRay, desc: "Film/HU/Blu-ray"}
+    - {id: 26, cat: Movies/DVD, desc: "Film/HU/DVD-R"}
+    - {id: 5, cat: Movies/SD, desc: "Film/HU/SD"}
+    - {id: 4, cat: PC/Games, desc: "Játékok/ISO"}
+    - {id: 39, cat: PC/Games, desc: "Játékok/Rip/Dox"}
+    - {id: 47, cat: Other, desc: "Klippek"}
+    - {id: 30, cat: Audio/Lossless, desc: "Lossless/EN"}
+    - {id: 29, cat: Audio/Lossless, desc: "Lossless/HU"}
+    - {id: 25, cat: Audio/MP3, desc: "MP3/EN"}
+    - {id: 6, cat: Audio/MP3, desc: "MP3/HU"}
+    - {id: 33, cat: PC, desc: "Program/egyéb"}
+    - {id: 1, cat: PC/ISO, desc: "Program/ISO"}
+    - {id: 36, cat: TV/HD, desc: "Sorozat/EN/HD"}
+    - {id: 49, cat: TV/SD, desc: "Sorozat/EN/SD"}
+    - {id: 28, cat: TV/HD, desc: "Sorozat/HU/HD"}
+    - {id: 7, cat: TV/SD, desc: "Sorozat/HU/SD"}
+    - {id: 9, cat: XXX, desc: "XXX"}
+    - {id: 44, cat: XXX/x264, desc: "XXX/HD"}
+    - {id: 43, cat: XXX/SD, desc: "XXX/SD"}
+
+  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: Filter freeleech only
+    default: false
+  - name: sort
+    type: select
+    label: Sort requested from site
+    default: 0
+    options:
+      0: created
+      1: title
+      4: size
+      6: 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 <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
+  - name: info_activity
+    type: info
+    label: Account Inactivity
+    default: "If you do not log in to the site for 6 months, the system will automatically delete it!"
+
+login:
+  path: takelogin.php
+  method: post
+  inputs:
+    username: "{{ .Config.username }}"
+    password: "{{ .Config.password }}"
+    logout: ""
+  error:
+    - selector: td.embedded:contains("Sikertelen bejelentkezés")
+  test:
+    path: /
+    selector: a[href$="logout.php"]
+
+search:
+  paths:
+    - path: browse.php
+  inputs:
+    $raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
+    search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
+    # 0 active only, 1 include dead, 2 only dead
+    incldead: 1
+    sort: "{{ .Config.sort }}"
+    type: "{{ .Config.type }}"
+
+  rows:
+    selector: "table.mainouter > tbody > tr > td > table tr:has(a[href^=\"download.php?id=\"]){{ if .Config.freeleech }}:has(img[src$=\"/pic/ingyentorrent.gif\"]){{ else }}{{ end }}"
+
+  fields:
+    category:
+      selector: a[href^="browse.php?cat="]
+      attribute: href
+      filters:
+        - name: querystring
+          args: cat
+    title:
+      selector: a.torrent-link b
+    _id:
+      selector: a[href^="download.php?id="]
+      attribute: href
+      filters:
+        - name: querystring
+          args: id
+    details:
+      text: "details.php?id={{ .Result._id }}"
+    download:
+      selector: a[href^="download.php?id="]
+      attribute: href
+    poster:
+      selector: a.torrent-link
+      attribute: data-cover
+    imdbid:
+      selector: a[href*="imdb.com/title/tt"]
+      attribute: href
+    files:
+      selector: td:nth-child(5) a
+    date:
+      selector: td:contains("Feltöltve:")
+      filters:
+        - name: regexp
+          args: "Feltöltve: *([0-9]{4}-[0-9]{2}-[0-9]{2} +[0-9]{2}:[0-9]{2}:[0-9]{2})"
+        - name: append
+          args: " +01:00" # Europe/Budapest, CET
+        - name: dateparse
+          args: "yyyy-MM-dd HH:mm:ss zzz"
+    grabs:
+      selector: td:nth-child(7) b
+    size:
+      selector: td:nth-child(7)
+      filters:
+        - name: regexp
+          args: "([0-9]+\\.?[0-9]* *[kKmMgGtTpP]i?[bB])"
path: src/Jackett.Common/Definitions/matrix.yml
user: login: ilike2burnthing
body: If there is such an extreme change that letters other than `B` are included before the end of size, we'd need to take a look at the site anyway.
created_at: 2025-03-05T01:43:50Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,184 @@
+---
+id: matrix
+name: Matrix
+description: "M.A.T.R.I.X is a HUNGARIAN Private Tracker for MOVIES / TV / GENERAL"
+language: hu-HU
+type: private
+encoding: UTF-8
+links:
+  - https://matrixworld.info/
+
+caps:
+  categorymappings:
+    - {id: 23, cat: Movies/Other, desc: "Animációk"}
+    - {id: 61, cat: Movies/Other, desc: "Cam/EN"}
+    - {id: 60, cat: Movies/Other, desc: "Cam/HU"}
+    - {id: 45, cat: Books/EBook, desc: "eBook/EN"}
+    - {id: 40, cat: Books/EBook, desc: "eBook/HU"}
+    - {id: 20, cat: Movies/DVD, desc: "Film/DVD9"}
+    - {id: 48, cat: Movies/HD, desc: "Film/EN/1080p"}
+    - {id: 32, cat: Movies/HD, desc: "Film/EN/720p"}
+    - {id: 38, cat: Movies/BluRay, desc: "Film/EN/Blu-ray"}
+    - {id: 27, cat: Movies/DVD, desc: "Film/EN/DVD-R"}
+    - {id: 24, cat: Movies/SD, desc: "Film/EN/SD"}
+    - {id: 34, cat: Movies/HD, desc: "Film/HU/1080p"}
+    - {id: 31, cat: Movies/HD, desc: "Film/HU/720p"}
+    - {id: 35, cat: Movies/BluRay, desc: "Film/HU/Blu-ray"}
+    - {id: 26, cat: Movies/DVD, desc: "Film/HU/DVD-R"}
+    - {id: 5, cat: Movies/SD, desc: "Film/HU/SD"}
+    - {id: 4, cat: PC/Games, desc: "Játékok/ISO"}
+    - {id: 39, cat: PC/Games, desc: "Játékok/Rip/Dox"}
+    - {id: 47, cat: Other, desc: "Klippek"}
+    - {id: 30, cat: Audio/Lossless, desc: "Lossless/EN"}
+    - {id: 29, cat: Audio/Lossless, desc: "Lossless/HU"}
+    - {id: 25, cat: Audio/MP3, desc: "MP3/EN"}
+    - {id: 6, cat: Audio/MP3, desc: "MP3/HU"}
+    - {id: 33, cat: PC, desc: "Program/egyéb"}
+    - {id: 1, cat: PC/ISO, desc: "Program/ISO"}
+    - {id: 36, cat: TV/HD, desc: "Sorozat/EN/HD"}
+    - {id: 49, cat: TV/SD, desc: "Sorozat/EN/SD"}
+    - {id: 28, cat: TV/HD, desc: "Sorozat/HU/HD"}
+    - {id: 7, cat: TV/SD, desc: "Sorozat/HU/SD"}
+    - {id: 9, cat: XXX, desc: "XXX"}
+    - {id: 44, cat: XXX/x264, desc: "XXX/HD"}
+    - {id: 43, cat: XXX/SD, desc: "XXX/SD"}
+
+  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: Filter freeleech only
+    default: false
+  - name: sort
+    type: select
+    label: Sort requested from site
+    default: 0
+    options:
+      0: created
+      1: title
+      4: size
+      6: 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 <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
+  - name: info_activity
+    type: info
+    label: Account Inactivity
+    default: "If you do not log in to the site for 6 months, the system will automatically delete it!"
+
+login:
+  path: takelogin.php
+  method: post
+  inputs:
+    username: "{{ .Config.username }}"
+    password: "{{ .Config.password }}"
+    logout: ""
+  error:
+    - selector: td.embedded:contains("Sikertelen bejelentkezés")
+  test:
+    path: /
+    selector: a[href$="logout.php"]
+
+search:
+  paths:
+    - path: browse.php
+  inputs:
+    $raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
+    search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
+    # 0 active only, 1 include dead, 2 only dead
+    incldead: 1
+    sort: "{{ .Config.sort }}"
+    type: "{{ .Config.type }}"
+
+  rows:
+    selector: "table.mainouter > tbody > tr > td > table tr:has(a[href^=\"download.php?id=\"]){{ if .Config.freeleech }}:has(img[src$=\"/pic/ingyentorrent.gif\"]){{ else }}{{ end }}"
+
+  fields:
+    category:
+      selector: a[href^="browse.php?cat="]
+      attribute: href
+      filters:
+        - name: querystring
+          args: cat
+    title:
+      selector: a.torrent-link b
+    _id:
+      selector: a[href^="download.php?id="]
+      attribute: href
+      filters:
+        - name: querystring
+          args: id
+    details:
+      text: "details.php?id={{ .Result._id }}"
+    download:
+      selector: a[href^="download.php?id="]
+      attribute: href
+    poster:
+      selector: a.torrent-link
+      attribute: data-cover
+    imdbid:
+      selector: a[href*="imdb.com/title/tt"]
+      attribute: href
+    files:
+      selector: td:nth-child(5) a
+    date:
+      selector: td:contains("Feltöltve:")
+      filters:
+        - name: regexp
+          args: "Feltöltve: *([0-9]{4}-[0-9]{2}-[0-9]{2} +[0-9]{2}:[0-9]{2}:[0-9]{2})"
+        - name: append
+          args: " +01:00" # Europe/Budapest, CET
path: src/Jackett.Common/Definitions/matrix.yml
user: login: rpatterson
body: > For timezone comments we just 3 letter international time zone codes, e.g. CET (Central European Time), MSK (Moscow Standard Time). It's the same with all other definition files we have time zones for.

Well, adding the clearer comment doesn't *remove* the 3 letter code, just adds to it and makes it more readable for contributors that don't have that DB in their heads and does so without adding a line.

> it appear in error logs, than just no match be made

Ooh, debugability totally wins. Agreed.
created_at: 2025-03-05T01:46:26Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,184 @@
+---
+id: matrix
+name: Matrix
+description: "M.A.T.R.I.X is a HUNGARIAN Private Tracker for MOVIES / TV / GENERAL"
+language: hu-HU
+type: private
+encoding: UTF-8
+links:
+  - https://matrixworld.info/
+
+caps:
+  categorymappings:
+    - {id: 23, cat: Movies/Other, desc: "Animációk"}
+    - {id: 61, cat: Movies/Other, desc: "Cam/EN"}
+    - {id: 60, cat: Movies/Other, desc: "Cam/HU"}
+    - {id: 45, cat: Books/EBook, desc: "eBook/EN"}
+    - {id: 40, cat: Books/EBook, desc: "eBook/HU"}
+    - {id: 20, cat: Movies/DVD, desc: "Film/DVD9"}
+    - {id: 48, cat: Movies/HD, desc: "Film/EN/1080p"}
+    - {id: 32, cat: Movies/HD, desc: "Film/EN/720p"}
+    - {id: 38, cat: Movies/BluRay, desc: "Film/EN/Blu-ray"}
+    - {id: 27, cat: Movies/DVD, desc: "Film/EN/DVD-R"}
+    - {id: 24, cat: Movies/SD, desc: "Film/EN/SD"}
+    - {id: 34, cat: Movies/HD, desc: "Film/HU/1080p"}
+    - {id: 31, cat: Movies/HD, desc: "Film/HU/720p"}
+    - {id: 35, cat: Movies/BluRay, desc: "Film/HU/Blu-ray"}
+    - {id: 26, cat: Movies/DVD, desc: "Film/HU/DVD-R"}
+    - {id: 5, cat: Movies/SD, desc: "Film/HU/SD"}
+    - {id: 4, cat: PC/Games, desc: "Játékok/ISO"}
+    - {id: 39, cat: PC/Games, desc: "Játékok/Rip/Dox"}
+    - {id: 47, cat: Other, desc: "Klippek"}
+    - {id: 30, cat: Audio/Lossless, desc: "Lossless/EN"}
+    - {id: 29, cat: Audio/Lossless, desc: "Lossless/HU"}
+    - {id: 25, cat: Audio/MP3, desc: "MP3/EN"}
+    - {id: 6, cat: Audio/MP3, desc: "MP3/HU"}
+    - {id: 33, cat: PC, desc: "Program/egyéb"}
+    - {id: 1, cat: PC/ISO, desc: "Program/ISO"}
+    - {id: 36, cat: TV/HD, desc: "Sorozat/EN/HD"}
+    - {id: 49, cat: TV/SD, desc: "Sorozat/EN/SD"}
+    - {id: 28, cat: TV/HD, desc: "Sorozat/HU/HD"}
+    - {id: 7, cat: TV/SD, desc: "Sorozat/HU/SD"}
+    - {id: 9, cat: XXX, desc: "XXX"}
+    - {id: 44, cat: XXX/x264, desc: "XXX/HD"}
+    - {id: 43, cat: XXX/SD, desc: "XXX/SD"}
+
+  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: Filter freeleech only
+    default: false
+  - name: sort
+    type: select
+    label: Sort requested from site
+    default: 0
+    options:
+      0: created
+      1: title
+      4: size
+      6: 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 <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
+  - name: info_activity
+    type: info
+    label: Account Inactivity
+    default: "If you do not log in to the site for 6 months, the system will automatically delete it!"
+
+login:
+  path: takelogin.php
+  method: post
+  inputs:
+    username: "{{ .Config.username }}"
+    password: "{{ .Config.password }}"
+    logout: ""
+  error:
+    - selector: td.embedded:contains("Sikertelen bejelentkezés")
+  test:
+    path: /
+    selector: a[href$="logout.php"]
+
+search:
+  paths:
+    - path: browse.php
+  inputs:
+    $raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
+    search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
+    # 0 active only, 1 include dead, 2 only dead
+    incldead: 1
+    sort: "{{ .Config.sort }}"
+    type: "{{ .Config.type }}"
+
+  rows:
+    selector: "table.mainouter > tbody > tr > td > table tr:has(a[href^=\"download.php?id=\"]){{ if .Config.freeleech }}:has(img[src$=\"/pic/ingyentorrent.gif\"]){{ else }}{{ end }}"
+
+  fields:
+    category:
+      selector: a[href^="browse.php?cat="]
+      attribute: href
+      filters:
+        - name: querystring
+          args: cat
+    title:
+      selector: a.torrent-link b
+    _id:
+      selector: a[href^="download.php?id="]
+      attribute: href
+      filters:
+        - name: querystring
+          args: id
+    details:
+      text: "details.php?id={{ .Result._id }}"
path: src/Jackett.Common/Definitions/matrix.yml
user: login: ilike2burnthing
body: Equally, what if `id` changes to `ids`? We deal with changes on a regular basis, likewise we replace `hit=1` often enough - https://github.com/search?q=repo%3AJackett%2FJackett+replace+hit+language%3AYAML&type=code&l=YAML
created_at: 2025-03-05T01:47:38Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,184 @@
+---
+id: matrix
+name: Matrix
+description: "M.A.T.R.I.X is a HUNGARIAN Private Tracker for MOVIES / TV / GENERAL"
+language: hu-HU
+type: private
+encoding: UTF-8
+links:
+  - https://matrixworld.info/
+
+caps:
+  categorymappings:
+    - {id: 23, cat: Movies/Other, desc: "Animációk"}
+    - {id: 61, cat: Movies/Other, desc: "Cam/EN"}
+    - {id: 60, cat: Movies/Other, desc: "Cam/HU"}
+    - {id: 45, cat: Books/EBook, desc: "eBook/EN"}
+    - {id: 40, cat: Books/EBook, desc: "eBook/HU"}
+    - {id: 20, cat: Movies/DVD, desc: "Film/DVD9"}
+    - {id: 48, cat: Movies/HD, desc: "Film/EN/1080p"}
+    - {id: 32, cat: Movies/HD, desc: "Film/EN/720p"}
+    - {id: 38, cat: Movies/BluRay, desc: "Film/EN/Blu-ray"}
+    - {id: 27, cat: Movies/DVD, desc: "Film/EN/DVD-R"}
+    - {id: 24, cat: Movies/SD, desc: "Film/EN/SD"}
+    - {id: 34, cat: Movies/HD, desc: "Film/HU/1080p"}
+    - {id: 31, cat: Movies/HD, desc: "Film/HU/720p"}
+    - {id: 35, cat: Movies/BluRay, desc: "Film/HU/Blu-ray"}
+    - {id: 26, cat: Movies/DVD, desc: "Film/HU/DVD-R"}
+    - {id: 5, cat: Movies/SD, desc: "Film/HU/SD"}
+    - {id: 4, cat: PC/Games, desc: "Játékok/ISO"}
+    - {id: 39, cat: PC/Games, desc: "Játékok/Rip/Dox"}
+    - {id: 47, cat: Other, desc: "Klippek"}
+    - {id: 30, cat: Audio/Lossless, desc: "Lossless/EN"}
+    - {id: 29, cat: Audio/Lossless, desc: "Lossless/HU"}
+    - {id: 25, cat: Audio/MP3, desc: "MP3/EN"}
+    - {id: 6, cat: Audio/MP3, desc: "MP3/HU"}
+    - {id: 33, cat: PC, desc: "Program/egyéb"}
+    - {id: 1, cat: PC/ISO, desc: "Program/ISO"}
+    - {id: 36, cat: TV/HD, desc: "Sorozat/EN/HD"}
+    - {id: 49, cat: TV/SD, desc: "Sorozat/EN/SD"}
+    - {id: 28, cat: TV/HD, desc: "Sorozat/HU/HD"}
+    - {id: 7, cat: TV/SD, desc: "Sorozat/HU/SD"}
+    - {id: 9, cat: XXX, desc: "XXX"}
+    - {id: 44, cat: XXX/x264, desc: "XXX/HD"}
+    - {id: 43, cat: XXX/SD, desc: "XXX/SD"}
+
+  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: Filter freeleech only
+    default: false
+  - name: sort
+    type: select
+    label: Sort requested from site
+    default: 0
+    options:
+      0: created
+      1: title
+      4: size
+      6: 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 <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
+  - name: info_activity
+    type: info
+    label: Account Inactivity
+    default: "If you do not log in to the site for 6 months, the system will automatically delete it!"
+
+login:
+  path: takelogin.php
+  method: post
+  inputs:
+    username: "{{ .Config.username }}"
+    password: "{{ .Config.password }}"
+    logout: ""
+  error:
+    - selector: td.embedded:contains("Sikertelen bejelentkezés")
+  test:
+    path: /
+    selector: a[href$="logout.php"]
+
+search:
+  paths:
+    - path: browse.php
+  inputs:
+    $raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
+    search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
+    # 0 active only, 1 include dead, 2 only dead
+    incldead: 1
+    sort: "{{ .Config.sort }}"
+    type: "{{ .Config.type }}"
+
+  rows:
+    selector: "table.mainouter > tbody > tr > td > table tr:has(a[href^=\"download.php?id=\"]){{ if .Config.freeleech }}:has(img[src$=\"/pic/ingyentorrent.gif\"]){{ else }}{{ end }}"
+
+  fields:
+    category:
+      selector: a[href^="browse.php?cat="]
+      attribute: href
+      filters:
+        - name: querystring
+          args: cat
+    title:
+      selector: a.torrent-link b
+    _id:
+      selector: a[href^="download.php?id="]
+      attribute: href
+      filters:
+        - name: querystring
+          args: id
+    details:
+      text: "details.php?id={{ .Result._id }}"
+    download:
+      selector: a[href^="download.php?id="]
+      attribute: href
+    poster:
+      selector: a.torrent-link
+      attribute: data-cover
+    imdbid:
+      selector: a[href*="imdb.com/title/tt"]
+      attribute: href
+    files:
+      selector: td:nth-child(5) a
+    date:
+      selector: td:contains("Feltöltve:")
+      filters:
+        - name: regexp
+          args: "Feltöltve: *([0-9]{4}-[0-9]{2}-[0-9]{2} +[0-9]{2}:[0-9]{2}:[0-9]{2})"
+        - name: append
+          args: " +01:00" # Europe/Budapest, CET
+        - name: dateparse
+          args: "yyyy-MM-dd HH:mm:ss zzz"
+    grabs:
+      selector: td:nth-child(7) b
+    size:
+      selector: td:nth-child(7)
+      filters:
+        - name: regexp
+          args: "([0-9]+\\.?[0-9]* *[kKmMgGtTpP]i?[bB])"
path: src/Jackett.Common/Definitions/matrix.yml
user: login: rpatterson
body: > If there is such an extreme change that letters other than `B` are included before the end of size, we'd need to take a look at the site anyway.

In some cases maybe, but in other cases, maybe not and it need not be extreme. This column already has two fields in the same table cell. If the order or format changes in the future, then the more explicit regex is more likely to still work.

Regardless, debugability also wins in this case. Agreed.
created_at: 2025-03-05T01:51:56Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,184 @@
+---
+id: matrix
+name: Matrix
+description: "M.A.T.R.I.X is a HUNGARIAN Private Tracker for MOVIES / TV / GENERAL"
+language: hu-HU
+type: private
+encoding: UTF-8
+links:
+  - https://matrixworld.info/
+
+caps:
+  categorymappings:
+    - {id: 23, cat: Movies/Other, desc: "Animációk"}
+    - {id: 61, cat: Movies/Other, desc: "Cam/EN"}
+    - {id: 60, cat: Movies/Other, desc: "Cam/HU"}
+    - {id: 45, cat: Books/EBook, desc: "eBook/EN"}
+    - {id: 40, cat: Books/EBook, desc: "eBook/HU"}
+    - {id: 20, cat: Movies/DVD, desc: "Film/DVD9"}
+    - {id: 48, cat: Movies/HD, desc: "Film/EN/1080p"}
+    - {id: 32, cat: Movies/HD, desc: "Film/EN/720p"}
+    - {id: 38, cat: Movies/BluRay, desc: "Film/EN/Blu-ray"}
+    - {id: 27, cat: Movies/DVD, desc: "Film/EN/DVD-R"}
+    - {id: 24, cat: Movies/SD, desc: "Film/EN/SD"}
+    - {id: 34, cat: Movies/HD, desc: "Film/HU/1080p"}
+    - {id: 31, cat: Movies/HD, desc: "Film/HU/720p"}
+    - {id: 35, cat: Movies/BluRay, desc: "Film/HU/Blu-ray"}
+    - {id: 26, cat: Movies/DVD, desc: "Film/HU/DVD-R"}
+    - {id: 5, cat: Movies/SD, desc: "Film/HU/SD"}
+    - {id: 4, cat: PC/Games, desc: "Játékok/ISO"}
+    - {id: 39, cat: PC/Games, desc: "Játékok/Rip/Dox"}
+    - {id: 47, cat: Other, desc: "Klippek"}
+    - {id: 30, cat: Audio/Lossless, desc: "Lossless/EN"}
+    - {id: 29, cat: Audio/Lossless, desc: "Lossless/HU"}
+    - {id: 25, cat: Audio/MP3, desc: "MP3/EN"}
+    - {id: 6, cat: Audio/MP3, desc: "MP3/HU"}
+    - {id: 33, cat: PC, desc: "Program/egyéb"}
+    - {id: 1, cat: PC/ISO, desc: "Program/ISO"}
+    - {id: 36, cat: TV/HD, desc: "Sorozat/EN/HD"}
+    - {id: 49, cat: TV/SD, desc: "Sorozat/EN/SD"}
+    - {id: 28, cat: TV/HD, desc: "Sorozat/HU/HD"}
+    - {id: 7, cat: TV/SD, desc: "Sorozat/HU/SD"}
+    - {id: 9, cat: XXX, desc: "XXX"}
+    - {id: 44, cat: XXX/x264, desc: "XXX/HD"}
+    - {id: 43, cat: XXX/SD, desc: "XXX/SD"}
+
+  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: Filter freeleech only
+    default: false
+  - name: sort
+    type: select
+    label: Sort requested from site
+    default: 0
+    options:
+      0: created
+      1: title
+      4: size
+      6: 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 <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
+  - name: info_activity
+    type: info
+    label: Account Inactivity
+    default: "If you do not log in to the site for 6 months, the system will automatically delete it!"
+
+login:
+  path: takelogin.php
+  method: post
+  inputs:
+    username: "{{ .Config.username }}"
+    password: "{{ .Config.password }}"
+    logout: ""
+  error:
+    - selector: td.embedded:contains("Sikertelen bejelentkezés")
+  test:
+    path: /
+    selector: a[href$="logout.php"]
+
+search:
+  paths:
+    - path: browse.php
+  inputs:
+    $raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
+    search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
+    # 0 active only, 1 include dead, 2 only dead
+    incldead: 1
+    sort: "{{ .Config.sort }}"
+    type: "{{ .Config.type }}"
+
+  rows:
+    selector: "table.mainouter > tbody > tr > td > table tr:has(a[href^=\"download.php?id=\"]){{ if .Config.freeleech }}:has(img[src$=\"/pic/ingyentorrent.gif\"]){{ else }}{{ end }}"
+
+  fields:
+    category:
+      selector: a[href^="browse.php?cat="]
+      attribute: href
+      filters:
+        - name: querystring
+          args: cat
+    title:
+      selector: a.torrent-link b
+    _id:
+      selector: a[href^="download.php?id="]
+      attribute: href
+      filters:
+        - name: querystring
+          args: id
+    details:
+      text: "details.php?id={{ .Result._id }}"
path: src/Jackett.Common/Definitions/matrix.yml
user: login: rpatterson
body: > Equally, what if `id` changes to `ids`?

Yes, if the parameter we *want* changes, then yes, there's no avoiding the need for a change. But for all *other* parameter changes, a standards compliant parser is much less fragile. No need to make all those other cases more fragile just for the less likely case that requires changes.
created_at: 2025-03-05T01:55:23Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,184 @@
+---
+id: matrix
+name: Matrix
+description: "M.A.T.R.I.X is a HUNGARIAN Private Tracker for MOVIES / TV / GENERAL"
+language: hu-HU
+type: private
+encoding: UTF-8
+links:
+  - https://matrixworld.info/
+
+caps:
+  categorymappings:
+    - {id: 23, cat: Movies/Other, desc: "Animációk"}
+    - {id: 61, cat: Movies/Other, desc: "Cam/EN"}
+    - {id: 60, cat: Movies/Other, desc: "Cam/HU"}
+    - {id: 45, cat: Books/EBook, desc: "eBook/EN"}
+    - {id: 40, cat: Books/EBook, desc: "eBook/HU"}
+    - {id: 20, cat: Movies/DVD, desc: "Film/DVD9"}
+    - {id: 48, cat: Movies/HD, desc: "Film/EN/1080p"}
+    - {id: 32, cat: Movies/HD, desc: "Film/EN/720p"}
+    - {id: 38, cat: Movies/BluRay, desc: "Film/EN/Blu-ray"}
+    - {id: 27, cat: Movies/DVD, desc: "Film/EN/DVD-R"}
+    - {id: 24, cat: Movies/SD, desc: "Film/EN/SD"}
+    - {id: 34, cat: Movies/HD, desc: "Film/HU/1080p"}
+    - {id: 31, cat: Movies/HD, desc: "Film/HU/720p"}
+    - {id: 35, cat: Movies/BluRay, desc: "Film/HU/Blu-ray"}
+    - {id: 26, cat: Movies/DVD, desc: "Film/HU/DVD-R"}
+    - {id: 5, cat: Movies/SD, desc: "Film/HU/SD"}
+    - {id: 4, cat: PC/Games, desc: "Játékok/ISO"}
+    - {id: 39, cat: PC/Games, desc: "Játékok/Rip/Dox"}
+    - {id: 47, cat: Other, desc: "Klippek"}
+    - {id: 30, cat: Audio/Lossless, desc: "Lossless/EN"}
+    - {id: 29, cat: Audio/Lossless, desc: "Lossless/HU"}
+    - {id: 25, cat: Audio/MP3, desc: "MP3/EN"}
+    - {id: 6, cat: Audio/MP3, desc: "MP3/HU"}
+    - {id: 33, cat: PC, desc: "Program/egyéb"}
+    - {id: 1, cat: PC/ISO, desc: "Program/ISO"}
+    - {id: 36, cat: TV/HD, desc: "Sorozat/EN/HD"}
+    - {id: 49, cat: TV/SD, desc: "Sorozat/EN/SD"}
+    - {id: 28, cat: TV/HD, desc: "Sorozat/HU/HD"}
+    - {id: 7, cat: TV/SD, desc: "Sorozat/HU/SD"}
+    - {id: 9, cat: XXX, desc: "XXX"}
+    - {id: 44, cat: XXX/x264, desc: "XXX/HD"}
+    - {id: 43, cat: XXX/SD, desc: "XXX/SD"}
+
+  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: Filter freeleech only
+    default: false
+  - name: sort
+    type: select
+    label: Sort requested from site
+    default: 0
+    options:
+      0: created
+      1: title
+      4: size
+      6: 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 <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
+  - name: info_activity
+    type: info
+    label: Account Inactivity
+    default: "If you do not log in to the site for 6 months, the system will automatically delete it!"
+
+login:
+  path: takelogin.php
+  method: post
+  inputs:
+    username: "{{ .Config.username }}"
+    password: "{{ .Config.password }}"
+    logout: ""
+  error:
+    - selector: td.embedded:contains("Sikertelen bejelentkezés")
+  test:
+    path: /
+    selector: a[href$="logout.php"]
+
+search:
+  paths:
+    - path: browse.php
+  inputs:
+    $raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
+    search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
+    # 0 active only, 1 include dead, 2 only dead
+    incldead: 1
+    sort: "{{ .Config.sort }}"
+    type: "{{ .Config.type }}"
+
+  rows:
+    selector: "table.mainouter > tbody > tr > td > table tr:has(a[href^=\"download.php?id=\"]){{ if .Config.freeleech }}:has(img[src$=\"/pic/ingyentorrent.gif\"]){{ else }}{{ end }}"
+
+  fields:
+    category:
+      selector: a[href^="browse.php?cat="]
+      attribute: href
+      filters:
+        - name: querystring
+          args: cat
+    title:
+      selector: a.torrent-link b
+    _id:
+      selector: a[href^="download.php?id="]
+      attribute: href
+      filters:
+        - name: querystring
+          args: id
+    details:
+      text: "details.php?id={{ .Result._id }}"
+    download:
+      selector: a[href^="download.php?id="]
+      attribute: href
+    poster:
+      selector: a.torrent-link
+      attribute: data-cover
+    imdbid:
+      selector: a[href*="imdb.com/title/tt"]
+      attribute: href
+    files:
+      selector: td:nth-child(5) a
+    date:
+      selector: td:contains("Feltöltve:")
+      filters:
+        - name: regexp
+          args: "Feltöltve: *([0-9]{4}-[0-9]{2}-[0-9]{2} +[0-9]{2}:[0-9]{2}:[0-9]{2})"
+        - name: append
+          args: " +01:00" # Europe/Budapest, CET
path: src/Jackett.Common/Definitions/matrix.yml
user: login: ilike2burnthing
body: I'm not about to start changing ~300 definition files - https://github.com/search?q=repo%3AJackett%2FJackett+%2F0%22+%23+%5Cw%7B3%7D%2F&type=code 😛 
created_at: 2025-03-05T02:00:40Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,184 @@
+---
+id: matrix
+name: Matrix
+description: "M.A.T.R.I.X is a HUNGARIAN Private Tracker for MOVIES / TV / GENERAL"
+language: hu-HU
+type: private
+encoding: UTF-8
+links:
+  - https://matrixworld.info/
+
+caps:
+  categorymappings:
+    - {id: 23, cat: Movies/Other, desc: "Animációk"}
+    - {id: 61, cat: Movies/Other, desc: "Cam/EN"}
+    - {id: 60, cat: Movies/Other, desc: "Cam/HU"}
+    - {id: 45, cat: Books/EBook, desc: "eBook/EN"}
+    - {id: 40, cat: Books/EBook, desc: "eBook/HU"}
+    - {id: 20, cat: Movies/DVD, desc: "Film/DVD9"}
+    - {id: 48, cat: Movies/HD, desc: "Film/EN/1080p"}
+    - {id: 32, cat: Movies/HD, desc: "Film/EN/720p"}
+    - {id: 38, cat: Movies/BluRay, desc: "Film/EN/Blu-ray"}
+    - {id: 27, cat: Movies/DVD, desc: "Film/EN/DVD-R"}
+    - {id: 24, cat: Movies/SD, desc: "Film/EN/SD"}
+    - {id: 34, cat: Movies/HD, desc: "Film/HU/1080p"}
+    - {id: 31, cat: Movies/HD, desc: "Film/HU/720p"}
+    - {id: 35, cat: Movies/BluRay, desc: "Film/HU/Blu-ray"}
+    - {id: 26, cat: Movies/DVD, desc: "Film/HU/DVD-R"}
+    - {id: 5, cat: Movies/SD, desc: "Film/HU/SD"}
+    - {id: 4, cat: PC/Games, desc: "Játékok/ISO"}
+    - {id: 39, cat: PC/Games, desc: "Játékok/Rip/Dox"}
+    - {id: 47, cat: Other, desc: "Klippek"}
+    - {id: 30, cat: Audio/Lossless, desc: "Lossless/EN"}
+    - {id: 29, cat: Audio/Lossless, desc: "Lossless/HU"}
+    - {id: 25, cat: Audio/MP3, desc: "MP3/EN"}
+    - {id: 6, cat: Audio/MP3, desc: "MP3/HU"}
+    - {id: 33, cat: PC, desc: "Program/egyéb"}
+    - {id: 1, cat: PC/ISO, desc: "Program/ISO"}
+    - {id: 36, cat: TV/HD, desc: "Sorozat/EN/HD"}
+    - {id: 49, cat: TV/SD, desc: "Sorozat/EN/SD"}
+    - {id: 28, cat: TV/HD, desc: "Sorozat/HU/HD"}
+    - {id: 7, cat: TV/SD, desc: "Sorozat/HU/SD"}
+    - {id: 9, cat: XXX, desc: "XXX"}
+    - {id: 44, cat: XXX/x264, desc: "XXX/HD"}
+    - {id: 43, cat: XXX/SD, desc: "XXX/SD"}
+
+  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: Filter freeleech only
+    default: false
+  - name: sort
+    type: select
+    label: Sort requested from site
+    default: 0
+    options:
+      0: created
+      1: title
+      4: size
+      6: 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 <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
+  - name: info_activity
+    type: info
+    label: Account Inactivity
+    default: "If you do not log in to the site for 6 months, the system will automatically delete it!"
+
+login:
+  path: takelogin.php
+  method: post
+  inputs:
+    username: "{{ .Config.username }}"
+    password: "{{ .Config.password }}"
+    logout: ""
+  error:
+    - selector: td.embedded:contains("Sikertelen bejelentkezés")
+  test:
+    path: /
+    selector: a[href$="logout.php"]
+
+search:
+  paths:
+    - path: browse.php
+  inputs:
+    $raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
+    search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
+    # 0 active only, 1 include dead, 2 only dead
+    incldead: 1
+    sort: "{{ .Config.sort }}"
+    type: "{{ .Config.type }}"
+
+  rows:
+    selector: "table.mainouter > tbody > tr > td > table tr:has(a[href^=\"download.php?id=\"]){{ if .Config.freeleech }}:has(img[src$=\"/pic/ingyentorrent.gif\"]){{ else }}{{ end }}"
+
+  fields:
+    category:
+      selector: a[href^="browse.php?cat="]
+      attribute: href
+      filters:
+        - name: querystring
+          args: cat
+    title:
+      selector: a.torrent-link b
+    _id:
+      selector: a[href^="download.php?id="]
+      attribute: href
+      filters:
+        - name: querystring
+          args: id
+    details:
+      text: "details.php?id={{ .Result._id }}"
+    download:
+      selector: a[href^="download.php?id="]
+      attribute: href
+    poster:
+      selector: a.torrent-link
+      attribute: data-cover
+    imdbid:
+      selector: a[href*="imdb.com/title/tt"]
+      attribute: href
+    files:
+      selector: td:nth-child(5) a
+    date:
+      selector: td:contains("Feltöltve:")
+      filters:
+        - name: regexp
+          args: "Feltöltve: *([0-9]{4}-[0-9]{2}-[0-9]{2} +[0-9]{2}:[0-9]{2}:[0-9]{2})"
+        - name: append
+          args: " +01:00" # Europe/Budapest, CET
path: src/Jackett.Common/Definitions/matrix.yml
user: login: rpatterson
body: Totally! Not what I suggest.

Consistency in style is valuable where there's no other qualitative difference, but consistency starts to *detract* from software quality where the change would improve the software and readability is an important quality.

But again, feel free to drop the hammer. I don't have to agree to make a change.

P.S. I'd be happy to submit that PR, just LMK, seriously. ;-)
created_at: 2025-03-05T02:05:20Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,184 @@
+---
+id: matrix
+name: Matrix
+description: "M.A.T.R.I.X is a HUNGARIAN Private Tracker for MOVIES / TV / GENERAL"
+language: hu-HU
+type: private
+encoding: UTF-8
+links:
+  - https://matrixworld.info/
+
+caps:
+  categorymappings:
+    - {id: 23, cat: Movies/Other, desc: "Animációk"}
+    - {id: 61, cat: Movies/Other, desc: "Cam/EN"}
+    - {id: 60, cat: Movies/Other, desc: "Cam/HU"}
+    - {id: 45, cat: Books/EBook, desc: "eBook/EN"}
+    - {id: 40, cat: Books/EBook, desc: "eBook/HU"}
+    - {id: 20, cat: Movies/DVD, desc: "Film/DVD9"}
+    - {id: 48, cat: Movies/HD, desc: "Film/EN/1080p"}
+    - {id: 32, cat: Movies/HD, desc: "Film/EN/720p"}
+    - {id: 38, cat: Movies/BluRay, desc: "Film/EN/Blu-ray"}
+    - {id: 27, cat: Movies/DVD, desc: "Film/EN/DVD-R"}
+    - {id: 24, cat: Movies/SD, desc: "Film/EN/SD"}
+    - {id: 34, cat: Movies/HD, desc: "Film/HU/1080p"}
+    - {id: 31, cat: Movies/HD, desc: "Film/HU/720p"}
+    - {id: 35, cat: Movies/BluRay, desc: "Film/HU/Blu-ray"}
+    - {id: 26, cat: Movies/DVD, desc: "Film/HU/DVD-R"}
+    - {id: 5, cat: Movies/SD, desc: "Film/HU/SD"}
+    - {id: 4, cat: PC/Games, desc: "Játékok/ISO"}
+    - {id: 39, cat: PC/Games, desc: "Játékok/Rip/Dox"}
+    - {id: 47, cat: Other, desc: "Klippek"}
+    - {id: 30, cat: Audio/Lossless, desc: "Lossless/EN"}
+    - {id: 29, cat: Audio/Lossless, desc: "Lossless/HU"}
+    - {id: 25, cat: Audio/MP3, desc: "MP3/EN"}
+    - {id: 6, cat: Audio/MP3, desc: "MP3/HU"}
+    - {id: 33, cat: PC, desc: "Program/egyéb"}
+    - {id: 1, cat: PC/ISO, desc: "Program/ISO"}
+    - {id: 36, cat: TV/HD, desc: "Sorozat/EN/HD"}
+    - {id: 49, cat: TV/SD, desc: "Sorozat/EN/SD"}
+    - {id: 28, cat: TV/HD, desc: "Sorozat/HU/HD"}
+    - {id: 7, cat: TV/SD, desc: "Sorozat/HU/SD"}
+    - {id: 9, cat: XXX, desc: "XXX"}
+    - {id: 44, cat: XXX/x264, desc: "XXX/HD"}
+    - {id: 43, cat: XXX/SD, desc: "XXX/SD"}
+
+  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: Filter freeleech only
+    default: false
+  - name: sort
+    type: select
+    label: Sort requested from site
+    default: 0
+    options:
+      0: created
+      1: title
+      4: size
+      6: 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 <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
+  - name: info_activity
+    type: info
+    label: Account Inactivity
+    default: "If you do not log in to the site for 6 months, the system will automatically delete it!"
+
+login:
+  path: takelogin.php
+  method: post
+  inputs:
+    username: "{{ .Config.username }}"
+    password: "{{ .Config.password }}"
+    logout: ""
+  error:
+    - selector: td.embedded:contains("Sikertelen bejelentkezés")
+  test:
+    path: /
+    selector: a[href$="logout.php"]
+
+search:
+  paths:
+    - path: browse.php
+  inputs:
+    $raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
+    search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
+    # 0 active only, 1 include dead, 2 only dead
+    incldead: 1
+    sort: "{{ .Config.sort }}"
+    type: "{{ .Config.type }}"
+
+  rows:
+    selector: "table.mainouter > tbody > tr > td > table tr:has(a[href^=\"download.php?id=\"]){{ if .Config.freeleech }}:has(img[src$=\"/pic/ingyentorrent.gif\"]){{ else }}{{ end }}"
+
+  fields:
+    category:
+      selector: a[href^="browse.php?cat="]
+      attribute: href
+      filters:
+        - name: querystring
+          args: cat
+    title:
+      selector: a.torrent-link b
+    _id:
+      selector: a[href^="download.php?id="]
+      attribute: href
+      filters:
+        - name: querystring
+          args: id
+    details:
+      text: "details.php?id={{ .Result._id }}"
+    download:
+      selector: a[href^="download.php?id="]
+      attribute: href
+    poster:
+      selector: a.torrent-link
+      attribute: data-cover
+    imdbid:
+      selector: a[href*="imdb.com/title/tt"]
+      attribute: href
+    files:
+      selector: td:nth-child(5) a
+    date:
+      selector: td:contains("Feltöltve:")
+      filters:
+        - name: regexp
+          args: "Feltöltve: *([0-9]{4}-[0-9]{2}-[0-9]{2} +[0-9]{2}:[0-9]{2}:[0-9]{2})"
+        - name: append
+          args: " +01:00" # Europe/Budapest, CET
path: src/Jackett.Common/Definitions/matrix.yml
user: login: ilike2burnthing
body: The above can be committed.

Added this to the wiki - https://github.com/Jackett/Jackett/wiki/Definition-format/_compare/b01367240848344d788d51e74f9b85bc7324c075...e316b4ecd82656a74afaf67e8425a192c2a82a57
created_at: 2025-03-05T02:26:24Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,184 @@
+---
+id: matrix
+name: Matrix
+description: "M.A.T.R.I.X is a HUNGARIAN Private Tracker for MOVIES / TV / GENERAL"
+language: hu-HU
+type: private
+encoding: UTF-8
+links:
+  - https://matrixworld.info/
+
+caps:
+  categorymappings:
+    - {id: 23, cat: Movies/Other, desc: "Animációk"}
+    - {id: 61, cat: Movies/Other, desc: "Cam/EN"}
+    - {id: 60, cat: Movies/Other, desc: "Cam/HU"}
+    - {id: 45, cat: Books/EBook, desc: "eBook/EN"}
+    - {id: 40, cat: Books/EBook, desc: "eBook/HU"}
+    - {id: 20, cat: Movies/DVD, desc: "Film/DVD9"}
+    - {id: 48, cat: Movies/HD, desc: "Film/EN/1080p"}
+    - {id: 32, cat: Movies/HD, desc: "Film/EN/720p"}
+    - {id: 38, cat: Movies/BluRay, desc: "Film/EN/Blu-ray"}
+    - {id: 27, cat: Movies/DVD, desc: "Film/EN/DVD-R"}
+    - {id: 24, cat: Movies/SD, desc: "Film/EN/SD"}
+    - {id: 34, cat: Movies/HD, desc: "Film/HU/1080p"}
+    - {id: 31, cat: Movies/HD, desc: "Film/HU/720p"}
+    - {id: 35, cat: Movies/BluRay, desc: "Film/HU/Blu-ray"}
+    - {id: 26, cat: Movies/DVD, desc: "Film/HU/DVD-R"}
+    - {id: 5, cat: Movies/SD, desc: "Film/HU/SD"}
+    - {id: 4, cat: PC/Games, desc: "Játékok/ISO"}
+    - {id: 39, cat: PC/Games, desc: "Játékok/Rip/Dox"}
+    - {id: 47, cat: Other, desc: "Klippek"}
+    - {id: 30, cat: Audio/Lossless, desc: "Lossless/EN"}
+    - {id: 29, cat: Audio/Lossless, desc: "Lossless/HU"}
+    - {id: 25, cat: Audio/MP3, desc: "MP3/EN"}
+    - {id: 6, cat: Audio/MP3, desc: "MP3/HU"}
+    - {id: 33, cat: PC, desc: "Program/egyéb"}
+    - {id: 1, cat: PC/ISO, desc: "Program/ISO"}
+    - {id: 36, cat: TV/HD, desc: "Sorozat/EN/HD"}
+    - {id: 49, cat: TV/SD, desc: "Sorozat/EN/SD"}
+    - {id: 28, cat: TV/HD, desc: "Sorozat/HU/HD"}
+    - {id: 7, cat: TV/SD, desc: "Sorozat/HU/SD"}
+    - {id: 9, cat: XXX, desc: "XXX"}
+    - {id: 44, cat: XXX/x264, desc: "XXX/HD"}
+    - {id: 43, cat: XXX/SD, desc: "XXX/SD"}
+
+  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: Filter freeleech only
+    default: false
+  - name: sort
+    type: select
+    label: Sort requested from site
+    default: 0
+    options:
+      0: created
+      1: title
+      4: size
+      6: 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 <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
+  - name: info_activity
+    type: info
+    label: Account Inactivity
+    default: "If you do not log in to the site for 6 months, the system will automatically delete it!"
+
+login:
+  path: takelogin.php
+  method: post
+  inputs:
+    username: "{{ .Config.username }}"
+    password: "{{ .Config.password }}"
+    logout: ""
+  error:
+    - selector: td.embedded:contains("Sikertelen bejelentkezés")
+  test:
+    path: /
+    selector: a[href$="logout.php"]
+
+search:
+  paths:
+    - path: browse.php
+  inputs:
+    $raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
+    search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
+    # 0 active only, 1 include dead, 2 only dead
+    incldead: 1
+    sort: "{{ .Config.sort }}"
+    type: "{{ .Config.type }}"
+
+  rows:
+    selector: "table.mainouter > tbody > tr > td > table tr:has(a[href^=\"download.php?id=\"]){{ if .Config.freeleech }}:has(img[src$=\"/pic/ingyentorrent.gif\"]){{ else }}{{ end }}"
+
+  fields:
+    category:
+      selector: a[href^="browse.php?cat="]
+      attribute: href
+      filters:
+        - name: querystring
+          args: cat
+    title:
+      selector: a.torrent-link b
+    _id:
+      selector: a[href^="download.php?id="]
+      attribute: href
+      filters:
+        - name: querystring
+          args: id
+    details:
+      text: "details.php?id={{ .Result._id }}"
path: src/Jackett.Common/Definitions/matrix.yml
user: login: ilike2burnthing
body: We use the `details` link if available, and if minor replacements or removals are needed then we do that as well. That's the same for the `downloads` link or any other. Manually constructing URLs is a last resort.

As much as possible, we try to replicate what a user would do on the site when it comes to searches and links clicked (working around redirects or actual site issues when needed), as we don't want an obvious 'Jackett footprint'. There have been exceptions to this when working site devs, where we intentionally use an input or header specific to Jackett, as it makes their lives easier.

If something were to change with the details link for this site in future, either  it just works because we're just trimming the problematic bits, or it's more obvious in errors, because details.php isn't found. Also, if the downloads.php link changes (e.g. downloads2.php or downloads_ssl.php), then it's one less thing for us to change.
created_at: 2025-03-05T02:40:09Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,182 @@
+---
+id: matrix
+name: Matrix
+description: "M.A.T.R.I.X is a HUNGARIAN Private Tracker for MOVIES / TV / GENERAL"
+language: hu-HU
+type: private
+encoding: UTF-8
+links:
+  - https://matrixworld.info/
+
+caps:
+  categorymappings:
+    - {id: 23, cat: Movies/Other, desc: "Animációk"}
+    - {id: 61, cat: Movies/Other, desc: "Cam/EN"}
+    - {id: 60, cat: Movies/Other, desc: "Cam/HU"}
+    - {id: 45, cat: Books/EBook, desc: "eBook/EN"}
+    - {id: 40, cat: Books/EBook, desc: "eBook/HU"}
+    - {id: 20, cat: Movies/DVD, desc: "Film/DVD9"}
+    - {id: 48, cat: Movies/HD, desc: "Film/EN/1080p"}
+    - {id: 32, cat: Movies/HD, desc: "Film/EN/720p"}
+    - {id: 38, cat: Movies/BluRay, desc: "Film/EN/Blu-ray"}
+    - {id: 27, cat: Movies/DVD, desc: "Film/EN/DVD-R"}
+    - {id: 24, cat: Movies/SD, desc: "Film/EN/SD"}
+    - {id: 34, cat: Movies/HD, desc: "Film/HU/1080p"}
+    - {id: 31, cat: Movies/HD, desc: "Film/HU/720p"}
+    - {id: 35, cat: Movies/BluRay, desc: "Film/HU/Blu-ray"}
+    - {id: 26, cat: Movies/DVD, desc: "Film/HU/DVD-R"}
+    - {id: 5, cat: Movies/SD, desc: "Film/HU/SD"}
+    - {id: 4, cat: PC/Games, desc: "Játékok/ISO"}
+    - {id: 39, cat: PC/Games, desc: "Játékok/Rip/Dox"}
+    - {id: 47, cat: Other, desc: "Klippek"}
+    - {id: 30, cat: Audio/Lossless, desc: "Lossless/EN"}
+    - {id: 29, cat: Audio/Lossless, desc: "Lossless/HU"}
+    - {id: 25, cat: Audio/MP3, desc: "MP3/EN"}
+    - {id: 6, cat: Audio/MP3, desc: "MP3/HU"}
+    - {id: 33, cat: PC, desc: "Program/egyéb"}
+    - {id: 1, cat: PC/ISO, desc: "Program/ISO"}
+    - {id: 36, cat: TV/HD, desc: "Sorozat/EN/HD"}
+    - {id: 49, cat: TV/SD, desc: "Sorozat/EN/SD"}
+    - {id: 28, cat: TV/HD, desc: "Sorozat/HU/HD"}
+    - {id: 7, cat: TV/SD, desc: "Sorozat/HU/SD"}
+    - {id: 9, cat: XXX, desc: "XXX"}
+    - {id: 44, cat: XXX/x264, desc: "XXX/HD"}
+    - {id: 43, cat: XXX/SD, desc: "XXX/SD"}
+
+  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: Filter freeleech only
+    default: false
+  - name: sort
+    type: select
+    label: Sort requested from site
+    default: 0
+    options:
+      0: created
+      1: title
+      4: size
+      6: 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 <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
+  - name: info_activity
+    type: info
+    label: Account Inactivity
+    default: "If you do not log in to the site for 6 months, the system will automatically delete it!"
+
+login:
+  path: takelogin.php
+  method: post
+  inputs:
+    username: "{{ .Config.username }}"
+    password: "{{ .Config.password }}"
+    logout: ""
+  error:
+    - selector: td.embedded:contains("Sikertelen bejelentkezés")
+  test:
+    path: /
+    selector: a[href$="logout.php"]
+
+search:
+  paths:
+    - path: browse.php
+  inputs:
+    $raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
+    search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
+    # 0 active only, 1 include dead, 2 only dead
+    incldead: 1
+    sort: "{{ .Config.sort }}"
+    type: "{{ .Config.type }}"
+
+  rows:
+    selector: "table.mainouter > tbody > tr > td > table tr:has(a[href^=\"download.php?id=\"]){{ if .Config.freeleech }}:has(img[src$=\"/pic/ingyentorrent.gif\"]){{ else }}{{ end }}"
+
+  fields:
+    category:
+      selector: a[href^="browse.php?cat="]
+      attribute: href
+      filters:
+        - name: querystring
+          args: cat
+    title:
+      selector: a.torrent-link b
path: src/Jackett.Common/Definitions/matrix.yml
user: login: garfield69
body: ```suggestion
    title:
      # titles can be abbreviated so using the name from DL
      selector: a[href^="download.php?id="]
      attribute: href
      filters:
        - name: querystring
          args: name
        - name: replace
          args: [".torrent", ""]
```
created_at: 2025-03-05T05:10:46Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,184 @@
+---
+id: matrix
+name: Matrix
+description: "M.A.T.R.I.X is a HUNGARIAN Private Tracker for MOVIES / TV / GENERAL"
+language: hu-HU
+type: private
+encoding: UTF-8
+links:
+  - https://matrixworld.info/
+
+caps:
+  categorymappings:
+    - {id: 23, cat: Movies/Other, desc: "Animációk"}
+    - {id: 61, cat: Movies/Other, desc: "Cam/EN"}
+    - {id: 60, cat: Movies/Other, desc: "Cam/HU"}
+    - {id: 45, cat: Books/EBook, desc: "eBook/EN"}
+    - {id: 40, cat: Books/EBook, desc: "eBook/HU"}
+    - {id: 20, cat: Movies/DVD, desc: "Film/DVD9"}
+    - {id: 48, cat: Movies/HD, desc: "Film/EN/1080p"}
+    - {id: 32, cat: Movies/HD, desc: "Film/EN/720p"}
+    - {id: 38, cat: Movies/BluRay, desc: "Film/EN/Blu-ray"}
+    - {id: 27, cat: Movies/DVD, desc: "Film/EN/DVD-R"}
+    - {id: 24, cat: Movies/SD, desc: "Film/EN/SD"}
+    - {id: 34, cat: Movies/HD, desc: "Film/HU/1080p"}
+    - {id: 31, cat: Movies/HD, desc: "Film/HU/720p"}
+    - {id: 35, cat: Movies/BluRay, desc: "Film/HU/Blu-ray"}
+    - {id: 26, cat: Movies/DVD, desc: "Film/HU/DVD-R"}
+    - {id: 5, cat: Movies/SD, desc: "Film/HU/SD"}
+    - {id: 4, cat: PC/Games, desc: "Játékok/ISO"}
+    - {id: 39, cat: PC/Games, desc: "Játékok/Rip/Dox"}
+    - {id: 47, cat: Other, desc: "Klippek"}
+    - {id: 30, cat: Audio/Lossless, desc: "Lossless/EN"}
+    - {id: 29, cat: Audio/Lossless, desc: "Lossless/HU"}
+    - {id: 25, cat: Audio/MP3, desc: "MP3/EN"}
+    - {id: 6, cat: Audio/MP3, desc: "MP3/HU"}
+    - {id: 33, cat: PC, desc: "Program/egyéb"}
+    - {id: 1, cat: PC/ISO, desc: "Program/ISO"}
+    - {id: 36, cat: TV/HD, desc: "Sorozat/EN/HD"}
+    - {id: 49, cat: TV/SD, desc: "Sorozat/EN/SD"}
+    - {id: 28, cat: TV/HD, desc: "Sorozat/HU/HD"}
+    - {id: 7, cat: TV/SD, desc: "Sorozat/HU/SD"}
+    - {id: 9, cat: XXX, desc: "XXX"}
+    - {id: 44, cat: XXX/x264, desc: "XXX/HD"}
+    - {id: 43, cat: XXX/SD, desc: "XXX/SD"}
+
+  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: Filter freeleech only
+    default: false
+  - name: sort
+    type: select
+    label: Sort requested from site
+    default: 0
+    options:
+      0: created
+      1: title
+      4: size
+      6: 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 <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
+  - name: info_activity
+    type: info
+    label: Account Inactivity
+    default: "If you do not log in to the site for 6 months, the system will automatically delete it!"
+
+login:
+  path: takelogin.php
+  method: post
+  inputs:
+    username: "{{ .Config.username }}"
+    password: "{{ .Config.password }}"
+    logout: ""
+  error:
+    - selector: td.embedded:contains("Sikertelen bejelentkezés")
+  test:
+    path: /
+    selector: a[href$="logout.php"]
+
+search:
+  paths:
+    - path: browse.php
+  inputs:
+    $raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
+    search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
+    # 0 active only, 1 include dead, 2 only dead
+    incldead: 1
+    sort: "{{ .Config.sort }}"
+    type: "{{ .Config.type }}"
+
+  rows:
+    selector: "table.mainouter > tbody > tr > td > table tr:has(a[href^=\"download.php?id=\"]){{ if .Config.freeleech }}:has(img[src$=\"/pic/ingyentorrent.gif\"]){{ else }}{{ end }}"
+
+  fields:
+    category:
+      selector: a[href^="browse.php?cat="]
+      attribute: href
+      filters:
+        - name: querystring
+          args: cat
+    title:
+      selector: a.torrent-link b
+    _id:
+      selector: a[href^="download.php?id="]
+      attribute: href
+      filters:
+        - name: querystring
+          args: id
+    details:
+      text: "details.php?id={{ .Result._id }}"
path: src/Jackett.Common/Definitions/matrix.yml
user: login: rpatterson
body: > we don't want an obvious 'Jackett footprint'

Ah, that's a factor I hadn't considered. Unfortunately, it doesn't work in favor of either argument over the other. If the details URL the web UI directs users to changes the query parameters, then the logs for my approach will only show valid URLs that the web UI wouldn't generate, IOW you'd have to be looking for them. In your approach the logs would show a much more noticeable error.  Whereas if the URL path changes, it's the reverse.
created_at: 2025-03-05T22:05:00Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,182 @@
+---
+id: matrix
+name: Matrix
+description: "M.A.T.R.I.X is a HUNGARIAN Private Tracker for MOVIES / TV / GENERAL"
+language: hu-HU
+type: private
+encoding: UTF-8
+links:
+  - https://matrixworld.info/
+
+caps:
+  categorymappings:
+    - {id: 23, cat: Movies/Other, desc: "Animációk"}
+    - {id: 61, cat: Movies/Other, desc: "Cam/EN"}
+    - {id: 60, cat: Movies/Other, desc: "Cam/HU"}
+    - {id: 45, cat: Books/EBook, desc: "eBook/EN"}
+    - {id: 40, cat: Books/EBook, desc: "eBook/HU"}
+    - {id: 20, cat: Movies/DVD, desc: "Film/DVD9"}
+    - {id: 48, cat: Movies/HD, desc: "Film/EN/1080p"}
+    - {id: 32, cat: Movies/HD, desc: "Film/EN/720p"}
+    - {id: 38, cat: Movies/BluRay, desc: "Film/EN/Blu-ray"}
+    - {id: 27, cat: Movies/DVD, desc: "Film/EN/DVD-R"}
+    - {id: 24, cat: Movies/SD, desc: "Film/EN/SD"}
+    - {id: 34, cat: Movies/HD, desc: "Film/HU/1080p"}
+    - {id: 31, cat: Movies/HD, desc: "Film/HU/720p"}
+    - {id: 35, cat: Movies/BluRay, desc: "Film/HU/Blu-ray"}
+    - {id: 26, cat: Movies/DVD, desc: "Film/HU/DVD-R"}
+    - {id: 5, cat: Movies/SD, desc: "Film/HU/SD"}
+    - {id: 4, cat: PC/Games, desc: "Játékok/ISO"}
+    - {id: 39, cat: PC/Games, desc: "Játékok/Rip/Dox"}
+    - {id: 47, cat: Other, desc: "Klippek"}
+    - {id: 30, cat: Audio/Lossless, desc: "Lossless/EN"}
+    - {id: 29, cat: Audio/Lossless, desc: "Lossless/HU"}
+    - {id: 25, cat: Audio/MP3, desc: "MP3/EN"}
+    - {id: 6, cat: Audio/MP3, desc: "MP3/HU"}
+    - {id: 33, cat: PC, desc: "Program/egyéb"}
+    - {id: 1, cat: PC/ISO, desc: "Program/ISO"}
+    - {id: 36, cat: TV/HD, desc: "Sorozat/EN/HD"}
+    - {id: 49, cat: TV/SD, desc: "Sorozat/EN/SD"}
+    - {id: 28, cat: TV/HD, desc: "Sorozat/HU/HD"}
+    - {id: 7, cat: TV/SD, desc: "Sorozat/HU/SD"}
+    - {id: 9, cat: XXX, desc: "XXX"}
+    - {id: 44, cat: XXX/x264, desc: "XXX/HD"}
+    - {id: 43, cat: XXX/SD, desc: "XXX/SD"}
+
+  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: Filter freeleech only
+    default: false
+  - name: sort
+    type: select
+    label: Sort requested from site
+    default: 0
+    options:
+      0: created
+      1: title
+      4: size
+      6: 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 <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
+  - name: info_activity
+    type: info
+    label: Account Inactivity
+    default: "If you do not log in to the site for 6 months, the system will automatically delete it!"
+
+login:
+  path: takelogin.php
+  method: post
+  inputs:
+    username: "{{ .Config.username }}"
+    password: "{{ .Config.password }}"
+    logout: ""
+  error:
+    - selector: td.embedded:contains("Sikertelen bejelentkezés")
+  test:
+    path: /
+    selector: a[href$="logout.php"]
+
+search:
+  paths:
+    - path: browse.php
+  inputs:
+    $raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
+    search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
+    # 0 active only, 1 include dead, 2 only dead
+    incldead: 1
+    sort: "{{ .Config.sort }}"
+    type: "{{ .Config.type }}"
+
+  rows:
+    selector: "table.mainouter > tbody > tr > td > table tr:has(a[href^=\"download.php?id=\"]){{ if .Config.freeleech }}:has(img[src$=\"/pic/ingyentorrent.gif\"]){{ else }}{{ end }}"
+
+  fields:
+    category:
+      selector: a[href^="browse.php?cat="]
+      attribute: href
+      filters:
+        - name: querystring
+          args: cat
+    title:
+      selector: a.torrent-link b
path: src/Jackett.Common/Definitions/matrix.yml
user: login: rpatterson
body: Ah, good point!
created_at: 2025-03-05T22:08:17Z
author_association: CONTRIBUTOR

PR comments:
user: login: jackettbot[bot]
created_at: 2025-03-04T16:47:52Z
body: Hi @rpatterson,

Thanks for your contribution to Jackett!

If you are adding a new indexer, please ensure that you've added it to the readme as well

A human will be along soon to review

author_association: CONTRIBUTOR
user: login: rpatterson
created_at: 2025-03-04T20:26:58Z
body: > I will work my way through your indexer suggesting updates to bring it in line with our common standards, and correct coding issues

Thanks!

> since its clear you have not tested this

Forgive me if I'm missing your tone here. Not tested this? I tested it as thoroughly as I could think of. I described what and how I tested in the description. Can you describe what testing I could have done that I didn't? That's one of the things I asked for in the description.

(Edited: I see, you mean after I commit changes from your review.)

Thanks! I'll reply to your comments below next.
author_association: CONTRIBUTOR
user: login: garfield69
created_at: 2025-03-04T20:50:50Z
body: >Forgive me if I'm missing your tone here. Not tested this? I tested it as thoroughly as I could think of. I described what and how I tested in the description. Can you describe what testing I could have done that I didn't? That's one of the things I asked for in the description.

Poorly chosen wording on my part, sorry.
Some instances where testing appears to not have been performed were: the config option for search freeleech, which did not have any code to make use of the config freeleech setting, the imdbid query for the search parm which did not generate the imdbid on the search parm, etc.

Usually I load the indexer in Jackett and using the Jackett dashboard with enhanced logging enabled, I test the config save and deliberately fail the config with incorrect credentials to check error capture, I testing search with keywords and without keywords, and with keywords that I know will return no results to check what is returned, and examine the results for incorrect or miss-matched selectors, checking the details and download links to see they work when clicked, and so forth. 

>I don't understand the emphasis on "after you commit". Can you elaborate/clarify?

When you post an update to the code in your PR that is called a commit ;-) and after all commits are done, and before I merge, I download your changed indexer and test it one more time on my dev Jackett to see if I can find any problems.
  
author_association: CONTRIBUTOR
user: login: rpatterson
created_at: 2025-03-04T20:56:08Z
body: > ...the config option for search freeleech, which did not have any code to make use of the config freeleech setting, the imdbid query for the search parm which did not generate the imdbid on the search parm, etc.
> 
> Usually I load the indexer in Jackett and using the Jackett dashboard with enhanced logging enabled, I test the config save and deliberately fail the config with incorrect credentials to check error capture, I testing search with keywords and without keywords, and with keywords that I know will return no results to check what is returned, and examine the results for incorrect or miss-matched selectors, checking the details and download links to see they work when clicked, and so forth.

Thanks, these are exactly the details I was looking for. I'll test the changes so far and force-push the squashed commit when I'm done.
author_association: CONTRIBUTOR
user: login: rpatterson
created_at: 2025-03-04T21:45:45Z
body: > > ...the config option for search freeleech, which did not have any code to make use of the config freeleech setting

Tested and confirmed both ways in Prowlarr after your changes.

>> the imdbid query for the search parm which did not generate the imdbid on the search parm

Ditto.

> > I test the config save and deliberately fail the config with incorrect credentials to check error capture

Ditto.

>> I testing search with keywords and without keywords

Is that something different than what I wrote in the description?:

> searching with an empty query yields the same 100 results as the indexer web UI
> ...
> searching with a simple query returns the same result as in the indexer's web UI

Next:

>> with keywords that I know will return no results to check what is returned

Done.

>> examine the results for incorrect or miss-matched selectors

Can you elaborate on this?

>> checking the details and download links to see they work when clicked

Is that something different than what I wrote in the description?:

> the details link works
> the grab button works and adds the torrent to the client

Finally:

> I'll test the changes so far and force-push the squashed commit when I'm done.

Done. I tested each change from your review in Prowlarr and confirmed they were working both/all ways.

LMK what/if you need anything further from me.
author_association: CONTRIBUTOR
user: login: ilike2burnthing
created_at: 2025-03-04T23:19:46Z
body: > examine the results for incorrect or miss-matched selectors

This would be stuff like checking you got seeders, leechers, size, and grabs the right way round, as when we're having to use `td:nth-child(n)` selectors it is easy to get these mixed up. It's also really easy to mistype something or accidentally hit the delete key somewhere, and not realise.

On rare occasions I've also found that the layout in browser is different than what Jackett or Prowlarr get, so you have to adapt for this.

> Is that something different than what I wrote in the description?

I think Garfield was just explaining everything they check for, rather than pointing out differences (correct me if I'm wrong).
author_association: CONTRIBUTOR
user: login: rpatterson
created_at: 2025-03-04T23:27:28Z
body: > This would be stuff like checking you got seeders, leechers, size, and grabs the right way round

Ah, gotcha. Yeah, that's what I meant by:

>> I found different examples for each of the fields/columns to demonstrate each is extracting real data

I looked at the numbers in the indexer's web UI and the Prolwarr search results for multiple queries and confirmed they lined up.
 
> > Is that something different than what I wrote in the description?

Figured, just wanted to double check.
author_association: CONTRIBUTOR
user: login: rpatterson
created_at: 2025-03-04T23:44:31Z
body: K, I confirmed @ilike2burnthing's review feedback changes except the unresolved one above I'm waiting for a reply on. Then I squashed the commits and force pushed.

LMK what's next!
author_association: CONTRIBUTOR
user: login: garfield69
created_at: 2025-03-05T06:00:33Z
body: v0.22.1507
author_association: CONTRIBUTOR