Compare commits

..

7 Commits

Author SHA1 Message Date
Garfield69
639c89365c oldgreektracker: -> xbtitFM v4.2.12 resolves #15111 2025-12-26 08:08:02 +13:00
Bogdan
b6e7ad5bb8 indexers: add configuration item ordering (#16377) 2025-12-25 19:45:42 +02:00
Garfield69
0b41091141 linuxtracker: update cats 2025-12-26 04:50:16 +13:00
Garfield69
b6262c43a3 torrentqq: bump domain 2025-12-26 04:35:19 +13:00
Garfield69
9359050175 torrenttip: bump domain 2025-12-25 18:35:27 +13:00
Garfield69
8be7e73891 torrentsome: bump domain 2025-12-25 18:35:15 +13:00
jackettbot[bot]
69c6a9e075 Update rudub 2025-12-25 01:29:41 +00:00
22 changed files with 252 additions and 144 deletions

View File

@@ -155,6 +155,7 @@ caps:
- {id: 343, cat: PC/ISO, desc: "MidnightBSD"}
- {id: 2075, cat: PC/ISO, desc: "Minino"}
- {id: 2076, cat: PC/ISO, desc: "Minix"}
- {id: 2300, cat: PC/ISO, desc: "MocaccinoOS"}
- {id: 2241, cat: PC/ISO, desc: "MorpheusArch Linux"}
- {id: 373, cat: PC/ISO, desc: "Mythbuntu"}
- {id: 2078, cat: PC/ISO, desc: "NAS4Free"}
@@ -187,7 +188,6 @@ caps:
- {id: 419, cat: PC/ISO, desc: "Pardus"}
- {id: 2162, cat: PC/ISO, desc: "Parrot"}
- {id: 422, cat: PC/ISO, desc: "Pcbsd"}
- {id: 429, cat: PC/ISO, desc: "Pentoo"}
- {id: 430, cat: PC/ISO, desc: "Peppermint"}
- {id: 432, cat: PC/ISO, desc: "Pfsense"}
- {id: 2101, cat: PC/ISO, desc: "Pinguy OS"}
@@ -291,7 +291,7 @@ caps:
- {id: 2193, cat: PC/ISO, desc: "Zevenet"}
- {id: 1233, cat: PC/ISO, desc: "Zorin"}
# undocumented categories
- {id: 531, cat: PC/ISO, desc: "Super Grub2 Disk"}
- {id: 531, cat: PC/ISO, desc: "no category"}
modes:
search: [q]

View File

@@ -12,84 +12,86 @@ legacylinks:
caps:
categorymappings:
- {id: 3, cat: PC, desc: "Apps"}
- {id: 7, cat: PC/Mobile-Android, desc: "Apps: Android"}
# Apps
- {id: 4, cat: PC/0day, desc: "Apps: Windows"}
- {id: 5, cat: PC/0day, desc: "Apps: Linux"}
- {id: 6, cat: PC/Mac, desc: "Apps: MacOS"}
- {id: 4, cat: PC/0day, desc: "Apps: Windows"}
- {id: 22, cat: Books, desc: "Books"}
- {id: 27, cat: Books/Comics, desc: "Books: Comics"}
- {id: 114, cat: Audio/Audiobook, desc: "Books: Foreign Audio Books"}
- {id: 23, cat: Books/EBook, desc: "Books: Foreign Books"}
- {id: 69, cat: Audio/Audiobook, desc: "Books: Greek Audio Books"}
- {id: 24, cat: Books/EBook, desc: "Books: Greek Books"}
- {id: 73, cat: Console, desc: "Games"}
- {id: 74, cat: PC/Games, desc: "Games: PC Games"}
- {id: 15, cat: Movies/SD, desc: "Movies"}
- {id: 132, cat: Movies/SD, desc: "Movies: CAM / TS / TC"}
- {id: 7, cat: PC/Mobile-Android, desc: "Apps: Android"}
# Music
- {id: 9, cat: Audio/MP3, desc: "Music: Greek MP3"}
- {id: 10, cat: Audio/Lossless, desc: "Music: Greek FLAC"}
- {id: 11, cat: Audio/MP3, desc: "Music: Foreign MP3"}
- {id: 12, cat: Audio/Lossless, desc: "Music: Foreign FLAC"}
- {id: 68, cat: Audio, desc: "Music:Discographies"}
- {id: 71, cat: Audio, desc: "Music: Collections"}
- {id: 72, cat: Audio/Other, desc: "Music: Foreign Soundtracks"}
- {id: 86, cat: Audio, desc: "Music: Greek Discographies"}
- {id: 87, cat: Audio, desc: "Music: Greek Collections"}
- {id: 92, cat: Audio/Other, desc: "Music: Greek Soundtracks"}
- {id: 115, cat: Audio/Video, desc: "Music: Foreign Music Videos"}
- {id: 116, cat: Audio/Video, desc: "Music: Greek Music Videos"}
# Movies
- {id: 16, cat: Movies/SD, desc: "Movies: Foreign Movies Non HD"}
- {id: 20, cat: Movies/SD, desc: "Movies: Filmographies"}
- {id: 105, cat: Movies, desc: "Movies: Animation"}
- {id: 106, cat: Movies, desc: "Movies: Cartoons"}
- {id: 133, cat: Movies/DVD, desc: "Movies: Foreign DVD5/DVD9"}
- {id: 138, cat: Movies/DVD, desc: "Movies: Foreign DVDRip"}
- {id: 112, cat: Movies/HD, desc: "Movies: Movie Packs"}
- {id: 119, cat: Movies/SD, desc: "Movies: Greek Movies Non HD"}
- {id: 122, cat: Movies/HD, desc: "Movies: Foreign HDRip / BRRip"}
- {id: 16, cat: Movies/SD, desc: "Movies: Foreign Movies Non HD"}
- {id: 129, cat: Movies/SD, desc: "Movies: Greek VHS"}
- {id: 130, cat: Movies/SD, desc: "Movies: Foreign VHS"}
- {id: 145, cat: Movies/WEB-DL, desc: "Movies: Foreign WEBRip"}
- {id: 141, cat: Movies, desc: "Movies: Greek Audio Animation"}
- {id: 140, cat: Movies, desc: "Movies: Greek Audio Cartoons"}
- {id: 132, cat: Movies/SD, desc: "Movies: CAM / TS / TC"}
- {id: 133, cat: Movies/DVD, desc: "Movies: Foreign DVD5/DVD9"}
- {id: 134, cat: Movies/DVD, desc: "Movies: Greek DVD5/DVD9"}
- {id: 136, cat: Movies/DVD, desc: "Movies: Greek DVDRip"}
- {id: 138, cat: Movies/DVD, desc: "Movies: Foreign DVDRip"}
- {id: 139, cat: Movies/HD, desc: "Movies: Greek HDRip / BRRip"}
- {id: 119, cat: Movies/SD, desc: "Movies: Greek Movies Non HD"}
- {id: 129, cat: Movies/SD, desc: "Movies: Greek VHS"}
- {id: 140, cat: Movies, desc: "Movies: Greek Audio Cartoons"}
- {id: 141, cat: Movies, desc: "Movies: Greek Audio Animation"}
- {id: 145, cat: Movies/WEB-DL, desc: "Movies: Foreign WEBRip"}
- {id: 146, cat: Movies/WEB-DL, desc: "Movies: Greek WEBRip"}
- {id: 112, cat: Movies/HD, desc: "Movies: Movie Packs"}
- {id: 41, cat: Movies/HD, desc: "Movies HD"}
- {id: 50, cat: Movies/HD, desc: "Movies HD: BluRay / 1080p"}
- {id: 51, cat: Movies/UHD, desc: "Movies HD: BluRay / 4K (UHD)"}
- {id: 49, cat: Movies/HD, desc: "Movies HD: BluRay / 720p"}
- {id: 45, cat: Movies/BluRay, desc: "Movies HD: BluRay Disk / 1080p"}
- {id: 66, cat: Movies/BluRay, desc: "Movies HD: BluRay Disk / 4K (UHD)"}
# Books
- {id: 23, cat: Books/EBook, desc: "Books: Foreign Books"}
- {id: 24, cat: Books/EBook, desc: "Books: Greek Books"}
- {id: 27, cat: Books/Comics, desc: "Books: Comics"}
- {id: 69, cat: Audio/Audiobook, desc: "Books: Greek Audio Books"}
- {id: 114, cat: Audio/Audiobook, desc: "Books: Foreign Audio Books"}
# TV
- {id: 29, cat: TV/Anime, desc: "TV: Foreign Animation"}
- {id: 31, cat: TV/Other, desc: "TV: Foreign Cartoons"}
- {id: 35, cat: TV, desc: "TV: Greek TV Series"}
- {id: 36, cat: TV, desc: "TV: Greek TV Packs"}
- {id: 40, cat: TV, desc: "TV: Greek TV Shows"}
- {id: 67, cat: TV/Sport, desc: "TV: Sports"}
- {id: 75, cat: TV, desc: "TV: Foreign TV Series"}
- {id: 76, cat: TV, desc: "TV: Foreign TV Shows"}
- {id: 77, cat: TV, desc: "TV: Foreign TV Episodes"}
- {id: 79, cat: TV/Documentary, desc: "TV: Foreign Documentaries"}
- {id: 127, cat: TV/Other, desc: "TV: Tutorials"}
- {id: 142, cat: TV/Other, desc: "TV: Greek Audio Cartoons"}
- {id: 143, cat: TV/Anime, desc: "TV: Greek Audio Animation"}
- {id: 144, cat: TV/Documentary, desc: "TV: Greek Audio Documentaries"}
- {id: 147, cat: TV, desc: "TV: Foreign Packs"}
# Movies HD
- {id: 42, cat: Movies/HD, desc: "Movies HD: Remux / 1080p"}
- {id: 43, cat: Movies/WEB-DL, desc: "Movies HD: WEB-DL / 720p"}
- {id: 45, cat: Movies/BluRay, desc: "Movies HD: BluRay Disk / 1080p"}
- {id: 46, cat: Movies/UHD, desc: "Movies HD: Remux / 4K (UHD)"}
- {id: 47, cat: Movies/WEB-DL, desc: "Movies HD: WEB-DL / 1080p"}
- {id: 48, cat: Movies/UHD, desc: "Movies HD: WEB-DL / 4K (UHD)"}
- {id: 43, cat: Movies/WEB-DL, desc: "Movies HD: WEB-DL / 720p"}
- {id: 8, cat: Audio, desc: "Music"}
- {id: 71, cat: Audio, desc: "Music: Collections"}
- {id: 68, cat: Audio, desc: "Music:Discographies"}
- {id: 12, cat: Audio/Lossless, desc: "Music: Foreign FLAC"}
- {id: 11, cat: Audio/MP3, desc: "Music: Foreign MP3"}
- {id: 115, cat: Audio/Video, desc: "Music: Foreign Music Videos"}
- {id: 72, cat: Audio/Other, desc: "Music: Foreign Soundtracks"}
- {id: 87, cat: Audio, desc: "Music: Greek Collections"}
- {id: 86, cat: Audio, desc: "Music: Greek Discographies"}
- {id: 10, cat: Audio/Lossless, desc: "Music: Greek FLAC"}
- {id: 9, cat: Audio/MP3, desc: "Music: Greek MP3"}
- {id: 116, cat: Audio/Video, desc: "Music: Greek Music Videos"}
- {id: 92, cat: Audio/Other, desc: "Music: Greek Soundtracks"}
- {id: 28, cat: TV, desc: "TV"}
- {id: 29, cat: TV/Anime, desc: "TV: Foreign Animation"}
- {id: 31, cat: TV/Other, desc: "TV: Foreign Cartoons"}
- {id: 79, cat: TV/Documentary, desc: "TV: Foreign Documentaries"}
- {id: 147, cat: TV, desc: "TV: Foreign Packs"}
- {id: 77, cat: TV, desc: "TV: Foreign TV Episodes"}
- {id: 75, cat: TV, desc: "TV: Foreign TV Series"}
- {id: 76, cat: TV, desc: "TV: Foreign TV Shows"}
- {id: 143, cat: TV/Anime, desc: "TV: Greek Audio Animation"}
- {id: 142, cat: TV/Other, desc: "TV: Greek Audio Cartoons"}
- {id: 144, cat: TV/Documentary, desc: "TV: Greek Audio Documentaries"}
- {id: 36, cat: TV, desc: "TV: Greek TV Packs"}
- {id: 35, cat: TV, desc: "TV: Greek TV Series"}
- {id: 40, cat: TV, desc: "TV: Greek TV Shows"}
- {id: 67, cat: TV/Sport, desc: "TV: Sports"}
- {id: 127, cat: TV/Other, desc: "TV: Tutorials"}
- {id: 49, cat: Movies/HD, desc: "Movies HD: BluRay / 720p"}
- {id: 50, cat: Movies/HD, desc: "Movies HD: BluRay / 1080p"}
- {id: 51, cat: Movies/UHD, desc: "Movies HD: BluRay / 4K (UHD)"}
- {id: 66, cat: Movies/BluRay, desc: "Movies HD: BluRay Disk / 4K (UHD)"}
# Games
- {id: 74, cat: PC/Games, desc: "Games: PC Games"}
# the following are not selectable from the site's category pull down but exist as categories in results
- {id: 3, cat: PC, desc: "Apps"}
modes:
search: [q]
tv-search: [q]
movie-search: [q, imdbid]
movie-search: [q]
music-search: [q]
book-search: [q]
@@ -123,114 +125,106 @@ settings:
- name: info_tpp
type: info
label: Results Per Page
default: For best results, change the <b>Torrents per page:</b> setting to <b>40</b> on your account profile. The Default is <i>15</i>.
default: For best results, change the <b>Torrents per page:</b> setting to <b>100</b> on your account profile. The Default is <i>15</i>.
- name: info_activity
type: info
label: Account Inactivity
default: "To keep records updated regularly, all inactive accounts will be deleted after 60 days of inactivity."
login:
path: login.php
method: form
form: form[action="takelogin.php"]
captcha:
type: image
selector: img#regimage
input: imagestring
path: index.php?page=login
method: post
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
logout: ""
uid: "{{ .Config.username }}"
pwd: "{{ .Config.password }}"
error:
- selector: table:contains("error has occured")
- selector: tr td span[style="color:#FF0000;"]
test:
path: index.php
selector: a[href*="/logout.php?logouthash="]
download:
before:
path: takethanks.php
method: post
inputs:
torrentid: "{{ .DownloadUri.Query.id }}"
selectors:
- selector: a[href*="download-torrent-"]
attribute: href
selector: a[href="logout.php"]
search:
paths:
- path: browse.php
method: post
# https://oldgreektracker.xyz/index.php?page=torrents&search=&category=0&active=0
- path: index.php
inputs:
page: torrents
search: "{{ .Keywords }}"
category: "{{ range .Categories }}{{.}};{{end}}"
# 0 filename, 1 file&descr, 2 descr, 3 uploaders, 18 genre, 4 imdb, 5 gold, 6 silver, 7 bronze
options: "{{ if .Config.freeleech }}5{{ else }}0{{ end }}"
# 0 all, 1 active only, 2 dead only
active: 0
order: "{{ .Config.sort }}"
by: "{{ .Config.type }}"
keywordsfilters:
- name: re_replace
args: ["[\\s]+", "%"]
inputs:
do: search
keywords: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
# t_name, t_description, t_both, t_uploader, t_genre
search_type: "{{ if .Query.IMDBID }}t_genre{{ else }}t_name{{ end }}"
# does not support multi category searching so defaulting to all.
category: 0
# yes, no
include_dead_torrents: yes
sort: "{{ if .Config.freeleech }}free{{ else }}{{ .Config.sort }}{{ end }}"
order: "{{ if .Config.freeleech }}asc{{ else }}{{ .Config.type }}{{ end }}"
args: ["\\.", " "]
rows:
selector: "table.sortable tr:has(a[href*=\"download-torrent-\"]){{ if .Config.freeleech }}:has(img[src$=\"/freedownload.gif\"]){{ else }}{{ end }}"
selector: table.lista > tbody > tr:has(a[href^="download.php?id="]):not(td.block)
fields:
category:
selector: a[href*="torrent-category-"]
selector: a[href^="index.php?page=torrents&category="]
attribute: href
filters:
- name: regexp
args: torrent-category-(\d+)
title_default:
# is usually abbreaviated
selector: a[href*="torrent-details-"]
- name: querystring
args: category
title:
# while still abbreviated, is usually longer than the default
selector: div.tooltip-content div
optional: true
default: "{{ .Result.title_default }}"
selector: a[href^="index.php?page=torrent-details&id="]
details:
selector: a[href*="torrent-details-"]
selector: a[href^="index.php?page=torrent-details&id="]
attribute: href
download:
selector: a[href*="torrent-details-"]
selector: a[href^="download.php?id="]
attribute: href
poster:
selector: img[src*="/torrents/images/"]
attribute: src
date:
selector: td:nth-child(2)
# auto adjusted by site account profile
selector: a[href^="index.php?page=torrent-details&id="]
attribute: onmouseover
filters:
- name: regexp
args: "(\\d{2}-\\d{2}-\\d{2} \\d{2}:\\d{2})"
- name: dateparse
args: "dd-MM-yy HH:mm"
args: src=(.+?) width
- name: replace
args: ["torrentimg/nocover.jpg", ""]
size:
selector: td:nth-last-child(5)
grabs:
selector: td:nth-last-child(4)
selector: td:nth-child(12)
date:
# auto adjusted by site account profile
selector: td:nth-child(8)
filters:
- name: dateparse
args: "dd/MM/yyyy"
seeders:
selector: td:nth-last-child(3)
selector: td:nth-child(8)
optional: true
default: 0
leechers:
selector: td:nth-last-child(2)
optional: true
selector: td:nth-child(10)
default: 0
grabs:
optional: true
selector: td:nth-child(11)
default: 0
description:
selector: td:nth-child(1)
case:
img[src="/images/mod/ok.png"]: Verified
"*": Not Verified
downloadvolumefactor:
case:
img[src$="/freedownload.gif"]: 0
img[src$="/silverdownload.gif"]: 0.5
img[src="images/freeleech.gif"]: 0
img[src="images/gold.gif"]: 0
img[src="images/silver.gif"]: 0.5
img[src="images/bronze.gif"]: 0.75
"*": 1
uploadvolumefactor:
case:
img[src$="/x2.gif"]: 2
"*": 1
text: 1
minimumratio:
text: 1.0
minimumseedtime:
# 3 days (as seconds = 3 x 24 x 60 x 60)
text: 259200
# TS Special Edition v.8.0
# xbtitFM v4.2.12

View File

@@ -10,10 +10,8 @@ encoding: windows-1251
followredirect: true
# alternate TLDs are: buzz, homes, mom, online, shop, top and xyz
links:
- https://dec24.rudub.bet/
- https://dec25.rudub.bet/
legacylinks:
- https://dec09.rudub.bet/
- http://dec10.rudub.bet/
- https://dec10.rudub.bet/
- http://dec11.rudub.bet/
- https://dec11.rudub.bet/
@@ -42,6 +40,8 @@ legacylinks:
- http://dec23.rudub.bet/
- https://dec23.rudub.bet/
- http://dec24.rudub.bet/
- https://dec24.rudub.bet/
- http://dec25.rudub.bet/
caps:
categorymappings:
- {id: 1, cat: TV, desc: "TV"}

View File

@@ -7,13 +7,12 @@ type: public
encoding: UTF-8
followredirect: true
links:
- https://torrentqq399.com/
- https://torrentqq400.com/
- https://torrentegg86.com/
legacylinks:
- https://torrentegg71.com/
- https://torrentegg72.com/
- https://torrentegg73.com/
- https://torrentqq384.com/
- https://torrentegg74.com/
- https://torrentqq385.com/
- https://torrentegg75.com/
@@ -40,6 +39,7 @@ legacylinks:
- https://torrentqq397.com/
- https://torrentegg85.com/
- https://torrentqq398.com/
- https://torrentqq399.com/
caps:
categorymappings:

View File

@@ -9,9 +9,8 @@ followredirect: true
requestDelay: 2
# to fetch current domain use https://tzip.top/
links:
- https://torrentsome226.com/
- https://torrentsome227.com/
legacylinks:
- https://torrentsome211.com/
- https://torrentsome212.com/
- https://torrentsome213.com/
- https://torrentsome214.com/
@@ -26,6 +25,7 @@ legacylinks:
- https://torrentsome223.com/
- https://torrentsome224.com/
- https://torrentsome225.com/
- https://torrentsome226.com/
caps:
categorymappings:

View File

@@ -9,9 +9,8 @@ followredirect: true
requestDelay: 2
# to fetch current domain use https://tzip.top/
links:
- https://torrenttip207.top/
- https://torrenttip208.top/
legacylinks:
- https://torrenttip192.top/
- https://torrenttip193.top/
- https://torrenttip194.top/
- https://torrenttip195.top/
@@ -26,6 +25,7 @@ legacylinks:
- https://torrenttip204.top/
- https://torrenttip205.top/
- https://torrenttip206.top/
- https://torrenttip207.top/
caps:
categorymappings:

View File

@@ -12,7 +12,7 @@ namespace Jackett.Common.Models.IndexerConfig.Bespoke
: base("Note this is <b>not</b> your <i>password</i>.<ul><li>Login to the FileList Website</li><li>Click on the <b>Profile</b> link</li><li>Scroll down to the <b>Reset Passkey</b> section</li><li>Copy the <b>passkey</b>.</li><li>Also be aware of not leaving a trailing blank at the end of the passkey after pasting it here.</li></ul>BTW, you will not see your current passkey on your Profile until after you have downloaded your first .torrent")
{
Freeleech = new BoolConfigurationItem("Search freeleech only") { Value = false };
CatWarning = new DisplayInfoConfigurationItem("CatWarning", "When mapping TV ensure you add category 5000 in addition to 5020, 5030, 5040, 5045.");
CatWarning = new DisplayInfoConfigurationItem("Category Warning", "When mapping TV ensure you add category 5000 in addition to 5020, 5030, 5040, 5045.");
}
}
}

View File

@@ -1,10 +1,10 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.Json.Serialization;
using System.Text.RegularExpressions;
using Jackett.Common.Services.Interfaces;
using Jackett.Common.Utils;
using Newtonsoft.Json.Linq;
namespace Jackett.Common.Models.IndexerConfig
@@ -66,8 +66,15 @@ namespace Jackett.Common.Models.IndexerConfig
.GetProperties()
.Where(p => p.CanRead)
.Where(p => p.PropertyType.IsSubclassOf(typeof(ConfigurationItem)))
.OrderBy(x =>
{
var attrib = x.GetCustomAttributes(typeof(JsonPropertyOrderAttribute), true).OfType<JsonPropertyOrderAttribute>().FirstOrDefault();
return attrib?.Order ?? int.MaxValue;
})
.Where(p => p.GetValue(this) != null)
.Select(p => (ConfigurationItem)p.GetValue(this)).ToList();
.Select(p => (ConfigurationItem)p.GetValue(this))
.ToList();
// remove/insert Site Link manualy to make sure it shows up first
properties.Remove(SiteLink);

View File

@@ -1,7 +1,10 @@
using System.Text.Json.Serialization;
namespace Jackett.Common.Models.IndexerConfig
{
public class ConfigurationDataAPIKey : ConfigurationData
{
[JsonPropertyOrder(1)]
public StringConfigurationItem Key { get; private set; }
public ConfigurationDataAPIKey()

View File

@@ -1,9 +1,16 @@
using System.Text.Json.Serialization;
namespace Jackett.Common.Models.IndexerConfig
{
public class ConfigurationDataAPIKeyAndRSSKey : ConfigurationData
{
[JsonPropertyOrder(1)]
public StringConfigurationItem ApiKey { get; private set; }
[JsonPropertyOrder(2)]
public StringConfigurationItem RSSKey { get; private set; }
[JsonPropertyOrder(3)]
public DisplayInfoConfigurationItem Instructions { get; private set; }
public ConfigurationDataAPIKeyAndRSSKey(string instructionMessageOptional = null)

View File

@@ -1,12 +1,25 @@
using System.Text.Json.Serialization;
namespace Jackett.Common.Models.IndexerConfig
{
public class ConfigurationDataAPILoginWithUserAndPasskeyAndFilter : ConfigurationData
{
[JsonPropertyOrder(1)]
public DisplayInfoConfigurationItem KeyHint { get; private set; }
[JsonPropertyOrder(2)]
public StringConfigurationItem User { get; private set; }
[JsonPropertyOrder(3)]
public StringConfigurationItem Key { get; private set; }
[JsonPropertyOrder(4)]
public BoolConfigurationItem AddAttributesToTitle { get; private set; }
[JsonPropertyOrder(5)]
public DisplayInfoConfigurationItem FilterExample { get; private set; }
[JsonPropertyOrder(6)]
public StringConfigurationItem FilterString { get; private set; }
public ConfigurationDataAPILoginWithUserAndPasskeyAndFilter(string filterInstructions)

View File

@@ -1,9 +1,16 @@
using System.Text.Json.Serialization;
namespace Jackett.Common.Models.IndexerConfig
{
public class ConfigurationDataBasicLogin : ConfigurationData
{
[JsonPropertyOrder(1)]
public StringConfigurationItem Username { get; private set; }
[JsonPropertyOrder(2)]
public StringConfigurationItem Password { get; private set; }
[JsonPropertyOrder(3)]
public DisplayInfoConfigurationItem Instructions { get; private set; }
public ConfigurationDataBasicLogin(string instructionMessageOptional = null)

View File

@@ -1,10 +1,19 @@
using System.Text.Json.Serialization;
namespace Jackett.Common.Models.IndexerConfig
{
public class ConfigurationDataBasicLoginWith2FA : ConfigurationData
{
[JsonPropertyOrder(1)]
public StringConfigurationItem Username { get; private set; }
[JsonPropertyOrder(2)]
public StringConfigurationItem Password { get; private set; }
[JsonPropertyOrder(3)]
public StringConfigurationItem TwoFactorAuth { get; private set; }
[JsonPropertyOrder(4)]
public DisplayInfoConfigurationItem Instructions { get; private set; }
public ConfigurationDataBasicLoginWith2FA(string instructionMessageOptional = null)

View File

@@ -1,9 +1,16 @@
using System.Text.Json.Serialization;
namespace Jackett.Common.Models.IndexerConfig
{
public class ConfigurationDataBasicLoginWithEmail : ConfigurationData
{
[JsonPropertyOrder(1)]
public StringConfigurationItem Email { get; private set; }
[JsonPropertyOrder(2)]
public StringConfigurationItem Password { get; private set; }
[JsonPropertyOrder(3)]
public DisplayInfoConfigurationItem Instructions { get; private set; }
public ConfigurationDataBasicLoginWithEmail(string instructionMessageOptional = null)

View File

@@ -1,19 +1,30 @@
using System.Text.Json.Serialization;
namespace Jackett.Common.Models.IndexerConfig
{
public class ConfigurationDataBasicLoginWithFilter : ConfigurationData
{
[JsonPropertyOrder(1)]
public StringConfigurationItem Username { get; private set; }
[JsonPropertyOrder(2)]
public StringConfigurationItem Password { get; private set; }
[JsonPropertyOrder(3)]
public HiddenStringConfigurationItem LastLoggedInCheck { get; private set; }
[JsonPropertyOrder(4)]
public DisplayInfoConfigurationItem FilterExample { get; private set; }
[JsonPropertyOrder(5)]
public StringConfigurationItem FilterString { get; private set; }
public ConfigurationDataBasicLoginWithFilter(string FilterInstructions)
public ConfigurationDataBasicLoginWithFilter(string filterInstructions)
{
Username = new StringConfigurationItem("Username");
Password = new StringConfigurationItem("Password");
LastLoggedInCheck = new HiddenStringConfigurationItem("LastLoggedInCheck");
FilterExample = new DisplayInfoConfigurationItem("", FilterInstructions);
FilterExample = new DisplayInfoConfigurationItem("", filterInstructions);
FilterString = new StringConfigurationItem("Filters (optional)");
}
}

View File

@@ -1,10 +1,19 @@
using System.Text.Json.Serialization;
namespace Jackett.Common.Models.IndexerConfig
{
public class ConfigurationDataBasicLoginWithPID : ConfigurationData
{
[JsonPropertyOrder(1)]
public StringConfigurationItem Username { get; private set; }
[JsonPropertyOrder(2)]
public StringConfigurationItem Password { get; private set; }
[JsonPropertyOrder(3)]
public StringConfigurationItem Pid { get; private set; }
[JsonPropertyOrder(4)]
public DisplayInfoConfigurationItem Instructions { get; private set; }
public ConfigurationDataBasicLoginWithPID(string instructionMessageOptional = null)

View File

@@ -1,17 +1,25 @@
using System.Text.Json.Serialization;
namespace Jackett.Common.Models.IndexerConfig
{
internal class ConfigurationDataCaptchaLogin : ConfigurationData
{
[JsonPropertyOrder(1)]
public StringConfigurationItem Username { get; private set; }
[JsonPropertyOrder(2)]
public StringConfigurationItem Password { get; private set; }
[JsonPropertyOrder(3)]
public DisplayImageConfigurationItem CaptchaImage { get; private set; }
[JsonPropertyOrder(4)]
public StringConfigurationItem CaptchaText { get; private set; }
[JsonPropertyOrder(5)]
public HiddenStringConfigurationItem CaptchaCookie { get; private set; }
[JsonPropertyOrder(6)]
public DisplayInfoConfigurationItem Instructions { get; private set; }
/// <param name="instructionMessageOptional">Enter any instructions the user will need to setup the tracker</param>

View File

@@ -1,9 +1,16 @@
using System.Text.Json.Serialization;
namespace Jackett.Common.Models.IndexerConfig
{
public class ConfigurationDataCookie : ConfigurationData
{
[JsonPropertyOrder(1)]
public StringConfigurationItem Cookie { get; private set; }
[JsonPropertyOrder(2)]
public DisplayInfoConfigurationItem CookieInstructions { get; private set; }
[JsonPropertyOrder(3)]
public DisplayInfoConfigurationItem Instructions { get; private set; }
public ConfigurationDataCookie(string instructionMessageOptional = null)

View File

@@ -1,11 +1,22 @@
using System.Text.Json.Serialization;
namespace Jackett.Common.Models.IndexerConfig
{
public class ConfigurationDataCookieUA : ConfigurationData
{
[JsonPropertyOrder(1)]
public StringConfigurationItem Cookie { get; private set; }
[JsonPropertyOrder(2)]
public DisplayInfoConfigurationItem CookieInstructions { get; private set; }
[JsonPropertyOrder(3)]
public StringConfigurationItem UserAgent { get; private set; }
[JsonPropertyOrder(4)]
public DisplayInfoConfigurationItem UserAgentInstructions { get; private set; }
[JsonPropertyOrder(5)]
public DisplayInfoConfigurationItem Instructions { get; private set; }
public ConfigurationDataCookieUA(string instructionMessageOptional = null)

View File

@@ -1,8 +1,13 @@
using System.Text.Json.Serialization;
namespace Jackett.Common.Models.IndexerConfig
{
public class ConfigurationDataPasskey : ConfigurationData
{
[JsonPropertyOrder(1)]
public StringConfigurationItem Passkey { get; private set; }
[JsonPropertyOrder(2)]
public DisplayInfoConfigurationItem Instructions { get; private set; }
public ConfigurationDataPasskey(string instructionMessageOptional = null)

View File

@@ -1,7 +1,10 @@
using System.Text.Json.Serialization;
namespace Jackett.Common.Models.IndexerConfig
{
internal class ConfigurationDataPinNumber : ConfigurationDataBasicLogin
{
[JsonPropertyOrder(1)]
public StringConfigurationItem Pin { get; private set; }
public ConfigurationDataPinNumber(string instructionMessageOptional = null)

View File

@@ -1,9 +1,16 @@
using System.Text.Json.Serialization;
namespace Jackett.Common.Models.IndexerConfig
{
public class ConfigurationDataUserPasskey : ConfigurationData
{
[JsonPropertyOrder(1)]
public StringConfigurationItem Username { get; private set; }
[JsonPropertyOrder(2)]
public StringConfigurationItem Passkey { get; private set; }
[JsonPropertyOrder(3)]
public DisplayInfoConfigurationItem Instructions { get; protected set; }
public ConfigurationDataUserPasskey(string instructionMessageOptional = null)