diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..485dee6
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+.idea
diff --git a/docker-compose.yml b/docker-compose.yml
index bb53010..e34fa1b 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -5,6 +5,11 @@ services:
container_name: radarr
restart: unless-stopped
+ sonarr:
+ image: darkalex17/sonarr-mock:latest
+ container_name: sonarr
+ restart: unless-stopped
+
prowlarr:
image: darkalex17/prowlarr-mock:latest
container_name: prowlarr
@@ -19,5 +24,7 @@ services:
depends_on:
radarr:
condition: service_started
+ sonarr:
+ condition: service_started
prowlarr:
condition: service_started
diff --git a/mock-htpc/managarr/config.yml b/mock-htpc/managarr/config.yml
index ec918ba..4ee4f57 100644
--- a/mock-htpc/managarr/config.yml
+++ b/mock-htpc/managarr/config.yml
@@ -3,3 +3,7 @@ radarr:
host: radarr
port: 7878
api_token: 2374332474216e6720407021206b6579
+sonarr:
+ host: sonarr
+ port: 8989
+ api_token: 08717304eb94465f81c5129bb46cc2f9
diff --git a/mock-htpc/prowlarr/Backups/scheduled/prowlarr_backup_v1.27.0.4852_2024.12.14_01.14.42.zip b/mock-htpc/prowlarr/Backups/scheduled/prowlarr_backup_v1.27.0.4852_2024.12.14_01.14.42.zip
new file mode 100644
index 0000000..245c8e2
Binary files /dev/null and b/mock-htpc/prowlarr/Backups/scheduled/prowlarr_backup_v1.27.0.4852_2024.12.14_01.14.42.zip differ
diff --git a/mock-htpc/prowlarr/Definitions/0daykiev.yml b/mock-htpc/prowlarr/Definitions/0daykiev.yml
index 7a7b828..8cc88fa 100644
--- a/mock-htpc/prowlarr/Definitions/0daykiev.yml
+++ b/mock-htpc/prowlarr/Definitions/0daykiev.yml
@@ -15,12 +15,12 @@ caps:
- {id: 10, cat: Movies, desc: "Фильмы (Movies)"}
- {id: 16, cat: Movies/HD, desc: "HD / Фильмы (HD / Movies)"}
- {id: 30, cat: TV/HD, desc: "HD / Сериалы (HD / TV Shows)"}
- - {id: 27, cat: TV/HD, desc: "HD / Мультфильмы (HD / Cartoons)"}
+ - {id: 27, cat: Movies/HD, desc: "HD / Мультфильмы (HD / Cartoons)"}
- {id: 17, cat: PC/Games, desc: "Игры / ПК (Games / PC)"}
- {id: 14, cat: Audio, desc: "Музыка / Аудио (Music / Audio)"}
- {id: 29, cat: TV, desc: "Мультсериалы (TV Series)"}
- - {id: 11, cat: TV, desc: "Мультфильмы (Cartoons)"}
- - {id: 28, cat: TV/HD, desc: "HD / Документальное (HD / Documentary)"}
+ - {id: 11, cat: Movies, desc: "Мультфильмы (Cartoons)"}
+ - {id: 28, cat: TV/Documentary, desc: "HD / Документальное (HD / Documentary)"}
- {id: 18, cat: PC/0day, desc: "Софт / Windows (Software / Windows)"}
- {id: 19, cat: TV, desc: "TV / Сериалы (TV shows)"}
- {id: 31, cat: Other, desc: "Прочее (Other)"}
diff --git a/mock-htpc/prowlarr/Definitions/1337x.yml b/mock-htpc/prowlarr/Definitions/1337x.yml
index 1ab1d91..800aa91 100644
--- a/mock-htpc/prowlarr/Definitions/1337x.yml
+++ b/mock-htpc/prowlarr/Definitions/1337x.yml
@@ -6,40 +6,27 @@ language: en-US
type: public
encoding: UTF-8
requestDelay: 2
+# get status and news on domains at the official site https://1337x-status.org/
links:
- https://1337x.to/
- https://1337x.st/
- https://x1337x.ws/
- https://x1337x.eu/
- https://x1337x.se/
- - https://1337x.so/
- - https://1337x.unblockit.africa/
+ - https://x1337x.cc/
- https://1337x.unblockninja.com/
- https://1337x.ninjaproxy1.com/
- https://1337x.proxyninja.org/
+ - https://1337x.proxyninja.net/
- https://1337x.torrentbay.st/
+ - https://1337x.torrentsbay.org/
legacylinks:
- https://1337x.is/
- https://1337x.gd/
- - https://1337x.nocensor.lol/
- - https://1337x.unblockit.ink/
- - https://1337x.nocensor.art/
- - https://1337x.unblockit.bio/
- - https://1337x.unblockit.boo/
- - https://1337x.mrunblock.guru/
- - https://1337x.mrunblock.life/
- - https://1337x.unblockit.click/
- - https://1337x.unblockit.asia/
- - https://1337x.unblockit.mov/
- - https://1337x.unblockit.rsvp/
- - https://1337x.unblockit.vegas/
- - https://1337x.unblockit.esq/
- - https://1337x.unblockit.zip/
- - https://1337x.unblockit.foo/
- - https://1337x.unblockit.ing/
- https://1337x.mrunblock.bond/
- - https://1337x.unblockit.date/
- - https://1337x.unblockit.dad/
+ - https://1337x.abcproxy.org/
+ - https://1337x.so/
+ - https://1337x.unblockit.download/
caps:
categorymappings:
@@ -133,10 +120,8 @@ caps:
allowrawsearch: true
settings:
- - name: flaresolverr
- type: info
- label: FlareSolverr
- default: This site may use Cloudflare DDoS Protection, therefore Prowlarr requires FlareSolverr to access it.
+ - name: info_flaresolverr
+ type: info_flaresolverr
- name: downloadlink
type: select
label: Download link
diff --git a/mock-htpc/prowlarr/Definitions/1ptbar.yml b/mock-htpc/prowlarr/Definitions/1ptbar.yml
index 7c40afc..3bcddab 100644
--- a/mock-htpc/prowlarr/Definitions/1ptbar.yml
+++ b/mock-htpc/prowlarr/Definitions/1ptbar.yml
@@ -10,24 +10,25 @@ links:
caps:
categorymappings:
- - {id: 401, cat: Movies, desc: "Movies/电影"}
- - {id: 404, cat: TV/Documentary, desc: "Documentaries/纪录片"}
- - {id: 405, cat: TV/Anime, desc: "Animations/动漫"}
- - {id: 402, cat: TV, desc: "TV Series/电视剧"}
- - {id: 403, cat: TV, desc: "TV Shows/综艺节目"}
- - {id: 406, cat: Audio/Video, desc: "Music Videos/音乐MV"}
- - {id: 407, cat: TV/Sport, desc: "Sports/体育"}
- - {id: 409, cat: Other, desc: "Misc/其他"}
- - {id: 408, cat: Audio, desc: "HQ Audio/高品质音频"}
- - {id: 412, cat: Other, desc: "Edu/教育"}
- - {id: 411, cat: PC/Games, desc: "Games/游戏"}
- - {id: 410, cat: PC/0day, desc: "Software/软件"}
+ - {id: 401, cat: Movies, desc: "Movie(電影)"}
+ - {id: 402, cat: TV, desc: "TV Series(電視影劇)"}
+ - {id: 403, cat: TV, desc: "TV Shows(電視綜藝)"}
+ - {id: 404, cat: TV/Documentary, desc: "Documentaries(紀錄教育)"}
+ - {id: 405, cat: TV/Anime, desc: "Animations(卡通動漫)"}
+ - {id: 406, cat: Audio/Video, desc: "Music Videos(音樂短片/演唱會)"}
+ - {id: 407, cat: TV/Sport, desc: "Sports(體育賽事)"}
+ - {id: 408, cat: Audio, desc: "HQ Audio(高品质音频)"}
+ - {id: 410, cat: PC/0day, desc: "Software(軟體)"}
+ - {id: 411, cat: PC/Games, desc: "Games(電子遊戲)"}
+ - {id: 412, cat: Books/EBook, desc: "eBook(電子書)"}
+ - {id: 409, cat: Other, desc: "Misc(其他)"}
modes:
search: [q]
tv-search: [q, season, ep, imdbid, doubanid]
movie-search: [q, imdbid, doubanid]
music-search: [q]
+ book-search: [q]
settings:
- name: username
@@ -63,6 +64,8 @@ settings:
options:
desc: desc
asc: asc
+ - name: info_flaresolverr
+ type: info_flaresolverr
- name: info_tpp
type: info
label: Results Per Page
@@ -70,7 +73,7 @@ settings:
- name: info_activity
type: info
label: Account Inactivity
- default: "Cherish your user account. Inactive accounts would be deleted based on the following rules:
- Veteran User or above would never be deleted.
- Elite User or above would never be deleted if packed (at User CP).
- Packed accounts would be deleted if users have not logged in for more than 400 days in a row.
- Unpacked accounts would be deleted if users have not logged in for more than 150 days in a row.
- Accounts with both uploaded and downloaded amount being 0 would be deleted if users have not logged in for more than 100 days in a row.
"
+ default: "Cherish your user account. Inactive accounts would be deleted based on the following rules:- Veteran User or above would never be deleted.
- Elite User or above would never be deleted if parked (at User CP).
- Parked accounts would be deleted if users have not logged in for more than 400 days in a row.
- Unparked accounts would be deleted if users have not logged in for more than 150 days in a row.
- Accounts with both uploaded and downloaded amount being 0 would be deleted if users have not logged in for more than 100 days in a row.
"
login:
path: login.php
@@ -193,4 +196,4 @@ search:
description:
selector: td:nth-child(2)
remove: a, b, font, img, span
-# NexusPHP v1.8.9 2023-11-15
+# NexusPHP v1.8.13 2024-07-23
diff --git a/mock-htpc/prowlarr/Definitions/3changtrai.yml b/mock-htpc/prowlarr/Definitions/3changtrai.yml
index 4b41ba0..b1c9ec1 100644
--- a/mock-htpc/prowlarr/Definitions/3changtrai.yml
+++ b/mock-htpc/prowlarr/Definitions/3changtrai.yml
@@ -56,6 +56,8 @@ settings:
options:
desc: desc
asc: asc
+ - name: info_flaresolverr
+ type: info_flaresolverr
- name: info_tpp
type: info
label: Results Per Page
diff --git a/mock-htpc/prowlarr/Definitions/52bt.yml b/mock-htpc/prowlarr/Definitions/52bt.yml
new file mode 100644
index 0000000..0ce19fe
--- /dev/null
+++ b/mock-htpc/prowlarr/Definitions/52bt.yml
@@ -0,0 +1,106 @@
+---
+id: 52bt
+name: 52BT
+description: "52BT is a CHINESE Public tracker for TV / MOVIES / MUSIC / GENERAL"
+language: zh-CN
+type: public
+encoding: UTF-8
+requestDelay: 2
+links:
+ # Send any content to 52btbtbt@gmail.com to get the latest address. or visit https://521.52btbt.cyou/
+ - https://www.529053.xyz/
+ - https://www.529055.xyz/
+legacylinks:
+ - https://529050.xyz/
+ - https://529048.xyz/
+ - https://529049.xyz/
+ - https://www.529052.xyz/
+
+caps:
+ categorymappings:
+ - {id: 影视, cat: TV, desc: 影视}
+ - {id: 影视, cat: Movies, desc: 影视}
+ - {id: 音乐, cat: Audio, desc: 音乐}
+ - {id: 图像, cat: Other, desc: 图像}
+ - {id: 文档书籍, cat: Books, desc: 文档书籍}
+ - {id: 压缩文件, cat: Other, desc: 压缩文件}
+ - {id: 安装包, cat: PC, desc: 安装包}
+ - {id: 其他, cat: Other, desc: 其他}
+
+ modes:
+ search: [q]
+ tv-search: [q, season, ep]
+ movie-search: [q]
+ music-search: [q]
+ book-search: [q]
+
+settings:
+ - name: cat-id
+ type: select
+ label: Category
+ default: 0
+ options:
+ 0: All categories
+ 1: Film and Television
+ 2: Music
+ 3: Images
+ 4: Books
+ 5: Zip Files
+ 6: Software
+ 7: Other
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: 2
+ options:
+ 2: created
+ 1: size
+ 0: relevance
+ - name: info_flaresolverr
+ type: info_flaresolverr
+
+search:
+ paths:
+ - path: "search-{{ if .Keywords }}{{ .Keywords }}{{ else }}{{ .Today.Year }}{{ end }}-{{ .Config.cat-id }}-{{ .Config.sort }}-1.html"
+ - path: "search-{{ if .Keywords }}{{ .Keywords }}{{ else }}{{ .Today.Year }}{{ end }}-{{ .Config.cat-id }}-{{ .Config.sort }}-2.html"
+ error:
+ - selector: :root:contains("Internal Server Error")
+
+ rows:
+ selector: div.ssbox
+
+ fields:
+ categorydesc:
+ selector: div.title > h3 > span
+ filters:
+ - name: re_replace
+ args: ["([\\[\\]]+)", ""]
+ title:
+ selector: a[href^="/hash/"]
+ details:
+ selector: a[href^="/hash/"]
+ attribute: href
+ infohash:
+ selector: a[href^="magnet:?xt="]
+ attribute: href
+ filters:
+ - name: regexp
+ args: ([A-F|a-f|0-9]{40})
+ date:
+ selector: div.sbar > span:contains("添加时间:") > b
+ filters:
+ - name: append
+ args: " +08:00" # CST
+ - name: dateparse
+ args: "yyyy-MM-dd zzz"
+ size:
+ selector: div.sbar > span:contains("大小:") > b
+ seeders:
+ text: 1
+ leechers:
+ text: 1
+ downloadvolumefactor:
+ text: 0
+ uploadvolumefactor:
+ text: 1
+# engine n/a
diff --git a/mock-htpc/prowlarr/Definitions/52pt.yml b/mock-htpc/prowlarr/Definitions/52pt.yml
index 3118411..dfab9bd 100644
--- a/mock-htpc/prowlarr/Definitions/52pt.yml
+++ b/mock-htpc/prowlarr/Definitions/52pt.yml
@@ -173,7 +173,7 @@ search:
img.pro_2up: 2
"*": 1
minimumratio:
- text: 1
+ text: 1.1
minimumseedtime:
# 1 day (as seconds = 24 x 60 x 60)
text: 86400
diff --git a/mock-htpc/prowlarr/Definitions/Bittorrentfiles.yml b/mock-htpc/prowlarr/Definitions/Bittorrentfiles.yml
index 6192fd1..baaadb7 100644
--- a/mock-htpc/prowlarr/Definitions/Bittorrentfiles.yml
+++ b/mock-htpc/prowlarr/Definitions/Bittorrentfiles.yml
@@ -208,7 +208,7 @@ search:
- name: replace
args: ["Gestern", "Yesterday"]
- name: append
- args: " +01:00" # CET
+ args: "+01:00" # CET
date_year:
# 30.02.2018 23:12:50
selector: td:nth-child(10):contains("."):contains(":")
@@ -217,7 +217,7 @@ search:
- name: split
args: ["b", 0]
- name: append
- args: " +01:00" # CET
+ args: "+01:00" # CET
- name: dateparse
args: "dd.MM.yyyy HH:mm:ss zzz"
date:
diff --git a/mock-htpc/prowlarr/Definitions/abtorrents.yml b/mock-htpc/prowlarr/Definitions/abtorrents.yml
index 5f2dea8..8e34e71 100644
--- a/mock-htpc/prowlarr/Definitions/abtorrents.yml
+++ b/mock-htpc/prowlarr/Definitions/abtorrents.yml
@@ -1,5 +1,7 @@
---
id: abtorrents
+replaces:
+ - audiobooktorrents
name: ABtorrents
description: "ABtorrents (ABT) is a Private Torrent Tracker for AUDIOBOOKS"
language: en-US
@@ -86,10 +88,8 @@ settings:
- name: cookie
type: text
label: Cookie
- - name: info
- type: info
- label: How to get the Cookie
- default: "- Login to this tracker with your browser
- Open the DevTools panel by pressing F12
- Select the Network tab
- Click on the Doc button (Chrome Browser) or HTML button (FireFox)
- Refresh the page by pressing F5
- Click on the first row entry
- Select the Headers tab on the Right panel
- Find 'cookie:' in the Request Headers section
- Select and Copy the whole cookie string (everything after 'cookie: ') and Paste here.
"
+ - name: info_cookie
+ type: info_cookie
- name: freeleech
type: checkbox
label: Search freeleech only
@@ -104,6 +104,7 @@ settings:
default: "Account retention rules:- Any account that has unread PMs older than 14 days or has not logged in for 30 days will be suspended
- Any account that has not been logged into for 90 days is deemed inactive and will thus be purged
- Any account that has not been logged into for 30 days is deemed inactive and will be put on suspension until User logs in again
- User’s stats, points, and history are irrevocably lost when purged
- Logging into the site is the ONLY way to keep an account active
- SEEDING ONLY does NOT constitute site activity.
"
login:
+ # using cookie method because login page simplecaptcha generates Exception: Cannot access child value on Newtonsoft.Json.Linq.JValue.
method: cookie
test:
path: index.php
@@ -157,7 +158,7 @@ search:
optional: true
filters:
- name: dateparse
- args: "MMM d yyyy h:mm tt"
+ args: "MMM d yyyyh:mm tt"
date:
text: "{{ if or .Result.date_day .Result.date_year }}{{ or .Result.date_day .Result.date_year }}{{ else }}now{{ end }}"
size:
diff --git a/mock-htpc/prowlarr/Definitions/acrossthetasman.yml b/mock-htpc/prowlarr/Definitions/acrossthetasman.yml
index 5e46c4a..64d6827 100644
--- a/mock-htpc/prowlarr/Definitions/acrossthetasman.yml
+++ b/mock-htpc/prowlarr/Definitions/acrossthetasman.yml
@@ -47,6 +47,8 @@ login:
vb_login_password: "{{ .Config.password }}"
cookieuser: 1
do: login
+ error:
+ - selector: div.restore:contains("invalid username or password")
test:
path: torrents.php
selector: a[href*="logout.php"]
diff --git a/mock-htpc/prowlarr/Definitions/agsvpt.yml b/mock-htpc/prowlarr/Definitions/agsvpt.yml
index 2167d9d..b9e97ec 100644
--- a/mock-htpc/prowlarr/Definitions/agsvpt.yml
+++ b/mock-htpc/prowlarr/Definitions/agsvpt.yml
@@ -206,4 +206,4 @@ search:
filters:
- name: prepend
args: "{{ .Result.description_verified }} "
-# NexusPHP v1.8.8 2023-09-25
+# NexusPHP v1.8.12 2024-04-05
diff --git a/mock-htpc/prowlarr/Definitions/aidoruonline.yml b/mock-htpc/prowlarr/Definitions/aidoruonline.yml
index fb4b7eb..50906a0 100644
--- a/mock-htpc/prowlarr/Definitions/aidoruonline.yml
+++ b/mock-htpc/prowlarr/Definitions/aidoruonline.yml
@@ -35,10 +35,8 @@ settings:
- name: cookie
type: text
label: Cookie
- - name: info
- type: info
- label: How to get the Cookie
- default: "- Login to this tracker with your browser
- Open the DevTools panel by pressing F12
- Select the Network tab
- Click on the Doc button (Chrome Browser) or HTML button (FireFox)
- Refresh the page by pressing F5
- Click on the first row entry
- Select the Headers tab on the Right panel
- Find 'cookie:' in the Request Headers section
- Select and Copy the whole cookie string (everything after 'cookie: ') and Paste here.
"
+ - name: info_cookie
+ type: info_cookie
- name: freeleech
type: checkbox
label: Search freeleech only
@@ -61,6 +59,7 @@ settings:
asc: asc
login:
+ # using cookie method because login page returns 0 bytes with a cookie flog=6
method: cookie
inputs:
cookie: "{{ .Config.cookie }}"
diff --git a/mock-htpc/prowlarr/Definitions/aither-api.yml b/mock-htpc/prowlarr/Definitions/aither-api.yml
index 7a6948c..1ebb852 100644
--- a/mock-htpc/prowlarr/Definitions/aither-api.yml
+++ b/mock-htpc/prowlarr/Definitions/aither-api.yml
@@ -34,6 +34,10 @@ settings:
type: checkbox
label: Search freeleech only
default: false
+ - name: single_file_release_use_filename
+ type: checkbox
+ label: Use filename as title for single file releases
+ default: true
- name: sort
type: select
label: Sort requested from site
@@ -63,11 +67,12 @@ login:
- selector: a[href*="/login"]
message:
text: "The API key was not accepted by {{ .Config.sitelink }}."
+ - selector: :root:contains("Account is Banned")
search:
paths:
- # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v7.0.0)
- # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L349
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
- path: "/api/torrents/filter"
response:
type: json
@@ -100,8 +105,15 @@ search:
fields:
category:
selector: category_id
- title:
+ title_optional:
selector: name
+ title_filename:
+ selector: "files[0].name"
+ optional: true
+ files:
+ selector: num_file
+ title:
+ text: "{{ if and (.Config.single_file_release_use_filename) (eq .Result.files \"1\") (.Result.title_filename) }}{{ .Result.title_filename }}{{ else }}{{ .Result.title_optional }}{{ end }}"
details:
selector: details_link
download:
@@ -122,8 +134,6 @@ search:
genre:
selector: meta.genres
filters:
- - name: re_replace
- args: ["(?i)^None$", ""]
- name: re_replace
args: ["(?i)(Science Fiction)", "Science_Fiction"]
- name: re_replace
@@ -132,8 +142,6 @@ search:
args: [" & ", "_&_"]
description:
text: "{{ .Result.genre }}"
- files:
- selector: num_file
seeders:
selector: seeders
leechers:
@@ -145,12 +153,17 @@ search:
selector: created_at
filters:
- name: append
- args: " +00:00" # GMT
+ args: " +00:00" # UTC
- name: dateparse
args: "MM/dd/yyyy HH:mm:ss zzz"
size:
selector: size
- downloadvolumefactor:
+ _featured:
+ selector: featured
+ case:
+ False: "{{ .False }}"
+ True: "{{ .True }}"
+ downloadvolumefactor_freeleech:
# api returns 0%, 25%, 50%, 75%, 100%
selector: freeleech
case:
@@ -160,16 +173,20 @@ search:
75%: 0.25
100%: 0 # freeleech
"*": 0 # catch errors
- uploadvolumefactor:
+ downloadvolumefactor:
+ text: "{{ if .Result._featured }}0{{ else }}{{ .Result.downloadvolumefactor_freeleech }}{{ end }}"
+ uploadvolumefactor_double_upload:
# api returns False, True
selector: double_upload
case:
False: 1 # normal
True: 2 # double
+ uploadvolumefactor:
+ text: "{{ if .Result._featured }}2{{ else }}{{ .Result.uploadvolumefactor_double_upload }}{{ end }}"
# global MR is 0.4 but torrents must be seeded for 5 days regardless of ratio
# minimumratio:
# text: 0.4
minimumseedtime:
# 5 days (as seconds = 5 x 24 x 60 x 60)
text: 432000
-# json UNIT3D 7.2.5
+# json UNIT3D 8.3.3
diff --git a/mock-htpc/prowlarr/Definitions/amigosshare.yml b/mock-htpc/prowlarr/Definitions/amigosshare.yml
index fa2eb34..790f8ce 100644
--- a/mock-htpc/prowlarr/Definitions/amigosshare.yml
+++ b/mock-htpc/prowlarr/Definitions/amigosshare.yml
@@ -14,81 +14,60 @@ legacylinks:
caps:
categorymappings:
- - {id: 107, cat: XXX, desc: "Adultos: Gay"}
- {id: 75, cat: XXX, desc: "Adultos: Hentai"}
+ - {id: 107, cat: XXX, desc: "Adultos: Gay"}
- {id: 108, cat: XXX, desc: "Adultos: Transex/Female"}
- {id: 74, cat: XXX, desc: "Adultos: XXX"}
+ - {id: 146, cat: XXX, desc: "Adultos: OnlyFans"}
- {id: 69, cat: TV/Anime, desc: "Anime: Anime"}
- {id: 116, cat: TV/Anime, desc: "Anime: Filmes"}
- {id: 118, cat: TV/Anime, desc: "Anime: Séries"}
- - {id: 23, cat: PC/Mobile-Android, desc: "Aplicativos: Android"}
+ - {id: 21, cat: PC/0day, desc: "Aplicativos: Windows"}
+ - {id: 28, cat: PC/Mobile-iOS, desc: "Aplicativos: iPod"}
- {id: 27, cat: PC/Mobile-iOS, desc: "Aplicativos: iPad"}
- {id: 26, cat: PC/Mobile-iOS, desc: "Aplicativos: iPhone"}
- - {id: 28, cat: PC/Mobile-iOS, desc: "Aplicativos: iPod"}
- {id: 25, cat: PC, desc: "Aplicativos: Linux"}
+ - {id: 23, cat: PC/Mobile-Android, desc: "Aplicativos: Android"}
- {id: 22, cat: PC/Mac, desc: "Aplicativos: Mac"}
- - {id: 21, cat: PC/0day, desc: "Aplicativos: Windows"}
- - {id: 72, cat: Books, desc: "Apostila: Apostila"}
- - {id: 71, cat: Books, desc: "Apostila: Cursos"}
- - {id: 121, cat: Audio/Audiobook, desc: "Ebook: Audio-book"}
- - {id: 112, cat: Books, desc: "Ebook: HQs"}
+ - {id: 73, cat: Books, desc: "Cursos: Video Aula"}
+ - {id: 72, cat: Books, desc: "Cursos: Apostila"}
+ - {id: 71, cat: Books, desc: "Cursos: Cursos"}
- {id: 67, cat: Books, desc: "Ebook: Livros"}
+ - {id: 112, cat: Books, desc: "Ebook: HQs"}
+ - {id: 147, cat: Books, desc: "Ebook: Mangas"}
+ - {id: 121, cat: Audio/Audiobook, desc: "Ebook: Audio-book"}
- {id: 68, cat: Books, desc: "Ebook: Revistas"}
- {id: 119, cat: Movies, desc: "Filmes:"}
- - {id: 70, cat: XXX, desc: "Fotos: XXX"}
- - {id: 57, cat: Console, desc: "Jogos: Android"}
- - {id: 52, cat: Console, desc: "Jogos: Dreamcast"}
- - {id: 109, cat: Console, desc: "Jogos: Emulação"}
- - {id: 61, cat: Console, desc: "Jogos: Emuladores e Roms"}
- - {id: 48, cat: PC/Mac, desc: "Jogos: Mac"}
- - {id: 58, cat: Console/NDS, desc: "Jogos: Nintendo DS"}
- - {id: 110, cat: Console, desc: "Jogos: Nintendo Switch"}
- - {id: 47, cat: PC/Games, desc: "Jogos: Pc"}
- - {id: 49, cat: Console, desc: "Jogos: Ps1"}
- - {id: 50, cat: Console, desc: "Jogos: Ps2"}
+ - {id: 70, cat: XXX, desc: "Fotos: Revistas, Livros e Fotos"}
- {id: 51, cat: Console/PS3, desc: "Jogos: Ps3"}
- - {id: 79, cat: Console/PS4, desc: "Jogos: Ps4"}
- - {id: 82, cat: Console/PSP, desc: "Jogos: PSP"}
- - {id: 55, cat: Console/Wii, desc: "Jogos: Wii"}
- {id: 54, cat: Console/XBox 360, desc: "Jogos: Xbox360"}
+ - {id: 109, cat: Console, desc: "Jogos: Emulação"}
+ - {id: 110, cat: Console, desc: "Jogos: Nintendo Switch"}
+ - {id: 52, cat: Console, desc: "Jogos: Dreamcast"}
+ - {id: 50, cat: Console, desc: "Jogos: Ps2"}
+ - {id: 49, cat: Console, desc: "Jogos: Ps1"}
+ - {id: 48, cat: PC/Mac, desc: "Jogos: Mac"}
+ - {id: 55, cat: Console/Wii, desc: "Jogos: Wii"}
+ - {id: 82, cat: Console/PSP, desc: "Jogos: PSP"}
+ - {id: 47, cat: PC/Games, desc: "Jogos: Pc"}
+ - {id: 61, cat: Console, desc: "Jogos: Emuladores e Roms"}
+ - {id: 58, cat: Console/NDS, desc: "Jogos: Nintendo DS"}
+ - {id: 57, cat: Console, desc: "Jogos: Android"}
- {id: 56, cat: Console/XBox, desc: "Jogos: Xbox"}
- {id: 78, cat: Console/XBox One, desc: "Jogos: Xbox One"}
- - {id: 29, cat: Audio, desc: "Musica: Axé"}
- - {id: 38, cat: Audio, desc: "Musica: Blues"}
- - {id: 39, cat: Audio, desc: "Musica: Dance"}
- - {id: 40, cat: Audio, desc: "Musica: Discografia"}
- - {id: 43, cat: Audio, desc: "Musica: Dubstep"}
- - {id: 30, cat: Audio, desc: "Musica: Eletronica"}
- - {id: 41, cat: Audio, desc: "Musica: Erudita"}
- - {id: 42, cat: Audio, desc: "Musica: Forró"}
- - {id: 31, cat: Audio, desc: "Musica: Funk"}
- - {id: 84, cat: Audio, desc: "Musica: Game (OST)"}
- - {id: 83, cat: Audio, desc: "Musica: Gospel"}
- - {id: 37, cat: Audio, desc: "Musica: Hard Rock"}
- - {id: 33, cat: Audio, desc: "Musica: Hip-Hop"}
- - {id: 114, cat: Audio, desc: "Musica: MPB"}
- - {id: 77, cat: Audio, desc: "Musica: Outros"}
- - {id: 32, cat: Audio, desc: "Musica: Pagode"}
- - {id: 115, cat: Audio, desc: "Musica: POP"}
- - {id: 34, cat: Audio, desc: "Musica: Rap"}
- - {id: 76, cat: Audio, desc: "Musica: Reggae"}
- - {id: 36, cat: Audio, desc: "Musica: Rock"}
- - {id: 45, cat: Audio, desc: "Musica: Samba"}
- - {id: 46, cat: Audio, desc: "Musica: Sertanejo"}
- - {id: 120, cat: TV, desc: "Series:"}
- - {id: 65, cat: TV, desc: "Shows: Show"}
- - {id: 63, cat: TV, desc: "Tv: Aberta"}
- - {id: 62, cat: TV/Sport, desc: "Tv: Esportes"}
- - {id: 64, cat: TV, desc: "Tv: Fechada"}
- - {id: 73, cat: TV, desc: "Video Aula: Video Aula"}
- - {id: 127, cat: Other, desc: "Outros: Add-ons"}
- - {id: 126, cat: Other, desc: "Outros: Extensões"}
+ - {id: 79, cat: Console/PS4, desc: "Jogos: Ps4"}
- {id: 129, cat: Other, desc: "Outros: Fonts"}
+ - {id: 128, cat: Other, desc: "Outros: Scripts"}
+ - {id: 127, cat: Other, desc: "Outros: Add-ons"}
- {id: 130, cat: Other, desc: "Outros: MOD"}
- {id: 125, cat: Other, desc: "Outros: Pack de Imagens"}
- - {id: 122, cat: Other, desc: "Outros: Plug-ins"}
- - {id: 128, cat: Other, desc: "Outros: Scripts"}
- {id: 124, cat: Other, desc: "Outros: Vetores"}
+ - {id: 122, cat: Other, desc: "Outros: Plug-ins"}
+ - {id: 126, cat: Other, desc: "Outros: Extensões"}
+ - {id: 120, cat: TV, desc: "Series:"}
+ - {id: 64, cat: TV, desc: "Tv: Fechada"}
+ - {id: 62, cat: TV/Sport, desc: "Tv: Esportes"}
+ - {id: 63, cat: TV, desc: "Tv: Aberta"}
modes:
search: [q]
@@ -179,6 +158,23 @@ search:
selector: "div#fancy-list-group ul.list-group li.list-group-item{{ if .Config.freeleech }}:has(span.badge-success:contains(\"FREE\")){{ else }}{{ end }}"
fields:
+ category_default:
+ # tv and movie just have an image :-b
+ selector: div.list-group-item-addon img
+ attribute: src
+ optional: true
+ case:
+ "[src$=\"/filmes2.fw.png\"]": 119
+ "[src$=\"/seriados.fw.png\"]": 120
+ category:
+ # while the rest have a href with a cat number \o/
+ selector: a[href*="cat="]
+ attribute: href
+ optional: true
+ default: "{{ .Result.category_default }}"
+ filters:
+ - name: querystring
+ args: cat
_quality:
selector: div.list-group-item-content p.m-0 span.badge-primary:contains("1080p"), div.list-group-item-content p.m-0 span.badge-primary:contains("720p"), div.list-group-item-content p.m-0 span.badge-primary:contains("4k")
optional: true
@@ -194,10 +190,6 @@ search:
_language:
selector: div.list-group-item-content p.m-0 span.badge-primary[style$="#b6249d;"]
optional: true
- genre:
- selector: div.list-group-item-content p.m-0 span.badge-primary[style$="#1c38c2;"]
- description:
- text: "{{ .Result.genre }}"
title:
selector: a[href*="torrents-details.php?id="], a[href*="details-misc.php?id="]
filters:
@@ -224,86 +216,6 @@ search:
download:
selector: a[href*="download.php?id="]
attribute: href
- category:
- selector: div.list-group-item-addon img
- attribute: src
- case:
- # unfortunately the site does not have category numbers on the results page, just a image which can apply to both movies and tv.
- # therefore I've order the list to favour movies.
- # also, not all images have been verified as the site has many empty categories. their image names have been extrapolated from the cat desc.
- "[src$=\"/Adultos.fw.png\"]": 74
- "[src$=\"/Gay.jpeg\"]": 107
- "[src$=\"/Trans.jpeg\"]": 108
- "[src$=\"/Hentai.png\"]": 75
- "[src$=\"/Anime2.fw.png\"]": 69
- "[src$=\"/aplicativos.fw.png\"]": 21
- "[src$=\"/Mac.png\"]": 22
- "[src$=\"/Android.png\"]": 23
- "[src$=\"/Linux.png\"]": 25
- "[src$=\"/iPhone.png\"]": 26
- "[src$=\"/iPad.png\"]": 27
- "[src$=\"/iPod.png\"]": 28
- "[src$=\"/Cursos.png\"]": 71
- "[src$=\"/Apostila.png\"]": 72
- "[src$=\"/E-books.png\"]": 67
- "[src$=\"/Revista.png\"]": 68
- "[src$=\"/HQ.png\"]": 112
- "[src$=\"/filmes2.fw.png\"]": 119
- "[src$=\"/Revistas-XXX.png\"]": 70
- "[src$=\"/PS4.png\"]": 79
- "[src$=\"/Jogos-PC.png\"]": 47
- "[src$=\"/Emulador.png\"]": 61
- "[src$=\"/Emulacao.png\"]": 109
- "[src$=\"/Jogos-Mac.png\"]": 48
- "[src$=\"/Jogos-PS1.png\"]": 49
- "[src$=\"/Jogos-PS2.png\"]": 50
- "[src$=\"/Jogos-PS3.png\"]": 51
- "[src$=\"/Jogos-Dreamcast.png\"]": 52
- "[src$=\"/Jogos-Xbox360.png\"]": 54
- "[src$=\"/Jogos-Xbox.png\"]": 56
- "[src$=\"/Jogos-Wii.png\"]": 55
- "[src$=\"/Jogos-DS.png\"]": 58
- "[src$=\"/jogosandroid.png\"]": 57
- "[src$=\"/PSP.png\"]": 82
- "[src$=\"/Jogos-NS.png\"]": 110
- "[src$=\"/Jogos-XboxOne.png\"]": 78
- "[src$=\"/Axe.png\"]": 29
- "[src$=\"/Eletronica.png\"]": 30
- "[src$=\"/Funk.png\"]": 31
- "[src$=\"/Pagode.png\"]": 32
- "[src$=\"/HIP_HOP.png\"]": 33
- "[src$=\"/Rap.png\"]": 34
- "[src$=\"/Rock.png\"]": 36
- "[src$=\"/Hard-Rock.png\"]": 37
- "[src$=\"/Blues.png\"]": 38
- "[src$=\"/Dance.png\"]": 39
- "[src$=\"/Discografia.png\"]": 40
- "[src$=\"/Erudita.png\"]": 41
- "[src$=\"/Forro.png\"]": 42
- "[src$=\"/Dubstep.png\"]": 43
- "[src$=\"/Sertanejo.png\"]": 46
- "[src$=\"/Samba.png\"]": 45
- "[src$=\"/Musica-Outros.png\"]": 77
- "[src$=\"/Reggae.png\"]": 76
- "[src$=\"/Gospel.png\"]": 83
- "[src$=\"/POP.png\"]": 115
- "[src$=\"/MPB.png\"]": 114
- "[src$=\"/OST.png\"]": 84
- "[src$=\"/seriados.fw.png\"]": 120
- "[src$=\"/show.fw.png\"]": 65
- "[src$=\"/Aberta.png\"]": 63
- "[src$=\"/Esporte.png\"]": 62
- "[src$=\"/Fechada.png\"]": 64
- "[src$=\"/video aula4.fw.png\"]": 73
- "[src$=\"/Add-ons.png\"]": 127
- "[src$=\"/Extensões.png\"]": 126
- "[src$=\"/Fonts.png\"]": 129
- "[src$=\"/MOD.png\"]": 130
- "[src$=\"/Imagens.png\"]": 125
- "[src$=\"/Plug-ins.png\"]": 122
- "[src$=\"/Scripts.png\"]": 128
- "[src$=\"/Vetores.png\"]": 124
- "[src$=\"/outros2.png\"]": 130
date:
selector: p:contains("Lançado:")
# auto adjusted by site account profile
@@ -324,6 +236,10 @@ search:
selector: div.list-group-item-controls a:nth-child(2)
grabs:
selector: div.list-group-item-controls a:nth-child(3)
+ genre:
+ selector: div.list-group-item-content p.m-0 span.badge-primary[style$="#1c38c2;"]
+ description:
+ text: "{{ .Result.genre }}"
downloadvolumefactor:
case:
"span.badge-success:contains(\"FREE\")": 0
diff --git a/mock-htpc/prowlarr/Definitions/anilibria.yml b/mock-htpc/prowlarr/Definitions/anilibria.yml
index 491aa9b..7462eb6 100644
--- a/mock-htpc/prowlarr/Definitions/anilibria.yml
+++ b/mock-htpc/prowlarr/Definitions/anilibria.yml
@@ -23,6 +23,10 @@ settings:
type: checkbox
label: Strip Cyrillic Letters
default: false
+ - name: sonarr_compatibility
+ type: checkbox
+ label: Improve Sonarr compatibility by trying to better parse Season information in release titles.
+ default: false
- name: addrussiantotitle
type: checkbox
label: Add RUS to end of all titles to improve language detection by Sonarr and Radarr. Will cause English-only results to be misidentified.
@@ -60,6 +64,58 @@ search:
selector: ..names.ru
title_en:
selector: ..names.en
+ title_en_parsed:
+ selector: ..names.en
+ filters:
+ - name: re_replace
+ args: ["(?i)\\bPart\\s*1\\b", "Part One"]
+ - name: re_replace
+ args: ["(?i)\\bPart\\s*2\\b", "Part Two"]
+ - name: re_replace
+ args: ["(?i)\\bPart\\s*3\\b", "Part Three"]
+ - name: re_replace
+ args: ["(?i)\\bPart\\s*4\\b", "Part Four"]
+ - name: re_replace
+ args: ["(?i)\\bPart\\s*5\\b", "Part Five"]
+ - name: re_replace
+ args: ["(?i)\\bPart\\s*6\\b", "Part Six"]
+ - name: re_replace
+ args: ["(?i)\\bPart\\s*7\\b", "Part Seven"]
+ - name: re_replace
+ args: ["(?i)\\bPart\\s*8\\b", "Part Eight"]
+ - name: re_replace
+ args: ["(?i)\\bPart\\s*9\\b", "Part Nine"]
+ - name: re_replace
+ args: ["(?i)\\bseason\\s*(\\d+)\\b", ""]
+ - name: re_replace
+ args: ["(?i)\\b(\\d+)(st|nd|rd|th)\\s*season[\\s\\.]*", ""]
+ - name: re_replace
+ args: ["(?i)\\b(\\d+)\\s*season\\b[\\s\\.]*", ""]
+ - name: re_replace
+ args: ["(?i)\\bseason\\s*([IVXLCDM]+)\\b", ""]
+ - name: re_replace
+ args: ["\\bI$", ""]
+ - name: re_replace
+ args: ["\\bII$", ""]
+ - name: re_replace
+ args: ["\\bIII$", ""]
+ - name: re_replace
+ args: ["\\bIV$", ""]
+ - name: re_replace
+ args: ["\\bV$", ""]
+ - name: re_replace
+ args: ["\\bVI$", ""]
+ - name: re_replace
+ args: ["\\bVII$", ""]
+ - name: re_replace
+ args: ["\\bVIII$", ""]
+ - name: re_replace
+ args: ["\\bIX$", ""]
+ - name: re_replace
+ args: ["\\bX$", ""]
+ - name: re_replace
+ args: ["(?i)\\b(\\d+)(?:st|nd|rd|th)?\\b", ""]
+ - name: trim
title_alternative:
selector: ..names.alternative
optional: true
@@ -72,19 +128,143 @@ search:
args: ["^[\\s&,\\.!\\?\\+\\-_\\|\\/':]+", ""]
- name: re_replace
args: ["^OVA$", ""]
+ _season_number_en:
+ selector: ..names.en
+ filters:
+ - name: re_replace
+ args: ["(?i)\\bPart\\s*\\d+\\s*$", ""]
+ - name: re_replace
+ args: ["(?i)(^.*\\bseason\\s*(\\d+)\\b\\s*$)", "S$2"]
+ - name: re_replace
+ args: ["(?i)(^.*\\b(\\d+)(st|nd|rd|th)\\s*season\\b.*$)", "S$2"]
+ - name: re_replace
+ args: ["(?i)(^.*\\b(\\d+)\\s*season\\b.*$)", "S$2"]
+ - name: re_replace
+ args: ["(?i)(^.*\\bseason\\s*([IVXLCDM]+)\\b\\s*$)", "$1"]
+ - name: re_replace
+ args: ["(^.*X$)", "S10"]
+ - name: re_replace
+ args: ["(^.*IX$)", "S9"]
+ - name: re_replace
+ args: ["(^.*VIII$)", "S8"]
+ - name: re_replace
+ args: ["(^.*VII$)", "S7"]
+ - name: re_replace
+ args: ["(^.*VI$)", "S6"]
+ - name: re_replace
+ args: ["(^.*V$)", "S5"]
+ - name: re_replace
+ args: ["(^.*IV$)", "S4"]
+ - name: re_replace
+ args: ["(^.*III$)", "S3"]
+ - name: re_replace
+ args: ["(^.*II$)", "S2"]
+ - name: re_replace
+ args: ["(^.*I$)", "S1"]
+ - name: re_replace
+ args: ["(?i)(^.*\\b(\\d+)(?:st|nd|rd|th)?\\b\\s*$)", "S$2"]
+ - name: re_replace
+ args: ["(?i)^(?!S\\d+).*", ""]
+ _season_number_alternative:
+ selector: ..names.alternative
+ optional: true
+ filters:
+ - name: re_replace
+ args: ["(?i)\\bPart\\s*\\d+\\s*$", ""]
+ - name: re_replace
+ args: ["(?i)(^.*\\bseason\\s*(\\d+)\\b\\s*$)", "S$2"]
+ - name: re_replace
+ args: ["(?i)(^.*\\b(\\d+)(st|nd|rd|th)\\s*season\\b\\s*$)", "S$2"]
+ - name: re_replace
+ args: ["(?i)(^.*\\b(\\d+)\\s*season\\b\\s*$)", "S$2"]
+ - name: re_replace
+ args: ["(?i)(^.*\\bseason\\s*([IVXLCDM]+)\\b\\s*$)", "$1"]
+ - name: re_replace
+ args: ["(^.*X$)", "S10"]
+ - name: re_replace
+ args: ["(^.*IX$)", "S9"]
+ - name: re_replace
+ args: ["(^.*VIII$)", "S8"]
+ - name: re_replace
+ args: ["(^.*VII$)", "S7"]
+ - name: re_replace
+ args: ["(^.*VI$)", "S6"]
+ - name: re_replace
+ args: ["(^.*V$)", "S5"]
+ - name: re_replace
+ args: ["(^.*IV$)", "S4"]
+ - name: re_replace
+ args: ["(^.*III$)", "S3"]
+ - name: re_replace
+ args: ["(^.*II$)", "S2"]
+ - name: re_replace
+ args: ["(^.*I$)", "S1"]
+ - name: re_replace
+ args: ["(?i)(^.*\\b(\\d+)(?:st|nd|rd|th)?\\b\\s*$)", "S$2"]
+ - name: re_replace
+ args: ["(?i)^(?!S\\d+).*", ""]
+ _season_number:
+ text: "{{ .Result._season_number_en }}"
+ filters:
+ - name: append
+ args: "{{ .Result._season_number_alternative }}"
+ - name: re_replace
+ args: ["^S1S1$", "S1"]
+ - name: re_replace
+ args: ["^S1(.+)$", "$1"]
+ - name: re_replace
+ args: ["^(S\\d+).*$", "$1"]
+ - name: re_replace
+ args: ["^$", "S1"]
year:
selector: ..season.year
_quality:
selector: quality.string
- title:
+ _quality_type:
+ selector: quality.type
+ _quality_resolution:
+ selector: quality.resolution
+ _quality_encoder:
+ selector: quality.encoder
+ filters:
+ - name: re_replace
+ args: ["(?i)^h", "x"]
+ title_parsed:
+ text: "{{ if .Config.stripcyrillic }}{{ else }}{{ .Result.title_ru }} / {{ end }}{{ .Result.title_en_parsed }} {{ .Result._season_number}}E{{ .Result._episodes }} [{{ .Result._quality_type }} {{ .Result._quality_resolution }} {{ .Result._quality_encoder }}]"
+ filters:
+ - name: re_replace
+ args: ["\\bS\\d+EФильм\\b", "({{ .Result.year }}) MOVIE"]
+ - name: re_replace
+ args: ["\\bS\\d+EOVA\\b", "({{ .Result.year }}) OVA"]
+ - name: re_replace
+ args: ["\\bS\\d+EONA\\b", "({{ .Result.year }}) ONA"]
+ - name: re_replace
+ args: ["\\bS\\d+EMovie\\b", "({{ .Result.year }}) MOVIE"]
+ - name: re_replace
+ args: ["\\bS\\d+EП/м фильм\\b", "({{ .Result.year }}) MOVIE"]
+ - name: re_replace
+ args: ["\\bS\\d+EРекап\\b", "({{ .Result.year }}) RECAP"]
+ - name: re_replace
+ args: ["\\bS\\d+ETV-Special\\b", "({{ .Result.year }}) SPECIAL"]
+ - name: append
+ args: "{{ if .Config.addrussiantotitle }} - RUS{{ else }}{{ end }}"
+ title_original:
text: "{{ if .Config.stripcyrillic }}{{ else }}{{ .Result.title_ru }} / {{ end }}{{ .Result.title_en }}{{ if .Result.title_alternative }} / AKA {{ .Result.title_alternative }}{{ else }}{{ end }} ({{ .Result.year }}) [{{ .Result._quality }}]{{ if .Result._episodes }} - E{{ .Result._episodes }}{{ else }}{{ end }}"
filters:
- name: re_replace
args: [" - \\bEФильм\\b", " - MOVIE"]
+ - name: re_replace
+ args: [" - \\bEMovie\\b", " - MOVIE"]
+ - name: re_replace
+ args: [" - \\bEП/м фильм\\b", " - MOVIE"]
- name: re_replace
args: [" - \\bEOVA\\b", " - OVA"]
+ - name: re_replace
+ args: [" - \\bEONA\\b", " - ONA"]
- name: append
args: "{{ if .Config.addrussiantotitle }} - RUS{{ else }}{{ end }}"
+ title:
+ text: "{{ if .Config.sonarr_compatibility }}{{ .Result.title_parsed }}{{ else }}{{ .Result.title_original }}{{ end }}"
_code:
selector: ..code
details:
diff --git a/mock-htpc/prowlarr/Definitions/animelovers-api.yml b/mock-htpc/prowlarr/Definitions/animelovers-api.yml
new file mode 100644
index 0000000..9da6c59
--- /dev/null
+++ b/mock-htpc/prowlarr/Definitions/animelovers-api.yml
@@ -0,0 +1,196 @@
+---
+id: animelovers-api
+name: AnimeLovers (API)
+description: "AnimeLovers is a Private tracker for ANIME / MANGA / DOUNGUA / MANHWA"
+language: en-US
+type: private
+encoding: UTF-8
+links:
+ - https://animelovers.club/
+
+caps:
+ categorymappings:
+ - {id: 1, cat: Movies/Other, desc: "Anime Movies"}
+ - {id: 2, cat: TV/Anime, desc: "Anime Series"}
+ - {id: 3, cat: TV/Anime, desc: "Anime OVA"}
+ - {id: 11, cat: TV/Anime, desc: "Donghua Anime"}
+ - {id: 9, cat: XXX, desc: "Doujinshi"}
+ - {id: 4, cat: Books/Comics, desc: "Manhua/Manhwa"}
+ - {id: 8, cat: Books/Comics, desc: "Manga"}
+ - {id: 7, cat: XXX, desc: "Hentai"}
+ - {id: 10, cat: Audio/Lossless, desc: "Lossless Music"}
+
+ modes:
+ search: [q]
+ tv-search: [q, season, ep, imdbid, tvdbid, tmdbid]
+ movie-search: [q, imdbid, tmdbid]
+ music-search: [q]
+ book-search: [q]
+
+settings:
+ - name: apikey
+ type: text
+ label: APIKey
+ - name: info_key
+ type: info
+ label: About your API key
+ default: "Find or Generate a new API Token by accessing your AnimeLovers account My Settings page and clicking on the API Key tab."
+ - name: freeleech
+ type: checkbox
+ label: Search freeleech only
+ default: false
+ - name: single_file_release_use_filename
+ type: checkbox
+ label: Use filename as title for single file releases
+ default: true
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: created_at
+ options:
+ created_at: created
+ seeders: seeders
+ size: size
+ name: title
+ - name: type
+ type: select
+ label: Order requested from site
+ default: desc
+ options:
+ desc: desc
+ asc: asc
+ - name: info_activity
+ type: info
+ label: Account Inactivity
+ default: "In order to not be disabled, you are required to login to AnimeLovers at least once every 90 days."
+
+login:
+ path: /api/torrents
+ method: get
+ error:
+ - selector: a[href*="/login"]
+ message:
+ text: "The API key was not accepted by {{ .Config.sitelink }}."
+ - selector: :root:contains("Account is Banned")
+
+search:
+ paths:
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
+ - path: "/api/torrents/filter"
+ response:
+ type: json
+
+ headers:
+ Authorization: ["Bearer {{ .Config.apikey }}"]
+
+ inputs:
+ # if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
+ $raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
+ name: "{{ .Keywords }}"
+ seasonNumber: "{{ .Query.Season }}"
+ episodeNumber: "{{ .Query.Ep }}"
+ imdbId: "{{ .Query.IMDBIDShort }}"
+ tmdbId: "{{ .Query.TMDBID }}"
+ tvdbId: "{{ .Query.TVDBID }}"
+ "free[]": "{{ if .Config.freeleech }}100{{ else }}{{ end }}"
+ sortField: "{{ .Config.sort }}"
+ sortDirection: "{{ .Config.type }}"
+ perPage: 100
+
+ keywordsfilters:
+ - name: re_replace
+ args: ["\\.", " "]
+
+ rows:
+ selector: data
+ attribute: attributes
+
+ fields:
+ category:
+ selector: category_id
+ title_optional:
+ selector: name
+ title_filename:
+ selector: "files[0].name"
+ optional: true
+ files:
+ selector: num_file
+ title:
+ text: "{{ if and (.Config.single_file_release_use_filename) (eq .Result.files \"1\") (.Result.title_filename) }}{{ .Result.title_filename }}{{ else }}{{ .Result.title_optional }}{{ end }}"
+ details:
+ selector: details_link
+ download:
+ selector: download_link
+ infohash:
+ selector: info_hash
+ poster:
+ selector: meta.poster
+ filters:
+ - name: replace
+ args: ["https://via.placeholder.com/90x135", ""]
+ imdbid:
+ selector: imdb_id
+ tmdbid:
+ selector: tmdb_id
+ tvdbid:
+ selector: tvdb_id
+ genre:
+ selector: meta.genres
+ filters:
+ - name: re_replace
+ args: ["(?i)(Science Fiction)", "Science_Fiction"]
+ - name: re_replace
+ args: ["(?i)(TV Movie)", "TV_Movie"]
+ - name: replace
+ args: [" & ", "_&_"]
+ description:
+ text: "{{ .Result.genre }}"
+ seeders:
+ selector: seeders
+ leechers:
+ selector: leechers
+ grabs:
+ selector: times_completed
+ date:
+ # "created_at": "2021-10-18T00:34:50.000000Z" is returned by Newtonsoft.Json.Linq as 18/10/2021 00:34:50
+ selector: created_at
+ filters:
+ - name: append
+ args: " +00:00" # GMT
+ - name: dateparse
+ args: "MM/dd/yyyy HH:mm:ss zzz"
+ size:
+ selector: size
+ _featured:
+ selector: featured
+ case:
+ False: "{{ .False }}"
+ True: "{{ .True }}"
+ downloadvolumefactor_freeleech:
+ # api returns 0%, 25%, 50%, 75%, 100%
+ selector: freeleech
+ case:
+ 0%: 1 # not free
+ 25%: 0.75
+ 50%: 0.5
+ 75%: 0.25
+ 100%: 0 # freeleech
+ "*": 0 # catch errors
+ downloadvolumefactor:
+ text: "{{ if .Result._featured }}0{{ else }}{{ .Result.downloadvolumefactor_freeleech }}{{ end }}"
+ uploadvolumefactor_double_upload:
+ # api returns False, True
+ selector: double_upload
+ case:
+ False: 1 # normal
+ True: 2 # double
+ uploadvolumefactor:
+ text: "{{ if .Result._featured }}2{{ else }}{{ .Result.uploadvolumefactor_double_upload }}{{ end }}"
+# global MR is 0.4 but torrents must be seeded for 7 days regardless of ratio
+# minimumratio:
+# text: 0.4
+ minimumseedtime:
+ # 7 days (as seconds = 7 x 24 x 60 x 60)
+ text: 604800
+# json UNIT3D 8.3.4
diff --git a/mock-htpc/prowlarr/Definitions/animetorrentsro.yml b/mock-htpc/prowlarr/Definitions/animetorrentsro.yml
index eb9fa00..9c42cb8 100644
--- a/mock-htpc/prowlarr/Definitions/animetorrentsro.yml
+++ b/mock-htpc/prowlarr/Definitions/animetorrentsro.yml
@@ -65,14 +65,17 @@ settings:
default: "Inactive accounts under VIP and without parked are automatically deleted after about a year."
login:
- path: takelogin.php
- method: post
+ path: login.php
+ method: form
+ form: form
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
- x: 0
- y: 0
referer: /
+ selectorinputs:
+ csrf_token:
+ selector: input[name="csrf_token"]
+ attribute: value
error:
- selector: table.main:contains("esuat")
test:
diff --git a/mock-htpc/prowlarr/Definitions/animeworld-api.yml b/mock-htpc/prowlarr/Definitions/animeworld-api.yml
index faaef76..7de47b3 100644
--- a/mock-htpc/prowlarr/Definitions/animeworld-api.yml
+++ b/mock-htpc/prowlarr/Definitions/animeworld-api.yml
@@ -40,11 +40,15 @@ settings:
- name: info_key
type: info
label: About your API key
- default: "Find or Generate a new API Token by accessing your AnimeWorld account My Security page and clicking on the API Token tab."
+ default: "Find or Generate a new API Token by accessing your AnimeWorld account My Settings page and clicking on the API Key tab."
- name: freeleech
type: checkbox
label: Search freeleech only
default: false
+ - name: single_file_release_use_filename
+ type: checkbox
+ label: Use filename as title for single file releases
+ default: true
- name: sort
type: select
label: Sort requested from site
@@ -74,11 +78,12 @@ login:
- selector: a[href*="/login"]
message:
text: "The API key was not accepted by {{ .Config.sitelink }}."
+ - selector: :root:contains("Account is Banned")
search:
paths:
- # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v7.0.0)
- # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L349
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
- path: "/api/torrents/filter"
response:
type: json
@@ -90,8 +95,8 @@ search:
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
name: "{{ .Keywords }}"
- seasonNumber: "{{ .Query.Season }}"
- episodeNumber: "{{ .Query.Ep }}"
+ # seasonNumber: "{{ .Query.Season }}" # disabled due to Prowlarr/Indexers#486
+ # episodeNumber: "{{ .Query.Ep }}" # disabled due to Prowlarr/Indexers#486
# imdbId: "{{ .Query.IMDBIDShort }}" # disabled due to #14776
tmdbId: "{{ .Query.TMDBID }}"
tvdbId: "{{ .Query.TVDBID }}"
@@ -111,8 +116,15 @@ search:
fields:
category:
selector: category_id
- title:
+ title_optional:
selector: name
+ title_filename:
+ selector: "files[0].name"
+ optional: true
+ files:
+ selector: num_file
+ title:
+ text: "{{ if and (.Config.single_file_release_use_filename) (eq .Result.files \"1\") (.Result.title_filename) }}{{ .Result.title_filename }}{{ else }}{{ .Result.title_optional }}{{ end }}"
details:
selector: details_link
download:
@@ -134,17 +146,11 @@ search:
selector: meta.genres
filters:
- name: re_replace
- args: ["(?i)^None$", ""]
- - name: re_replace
- args: ["(?i)(Cinema TV)", "Cinema_TV"]
- - name: re_replace
- args: ["(?i)(Ficção científica)", "Ficção_científica"]
+ args: ["(?i)(Science Fiction)", "Science_Fiction"]
- name: replace
args: [" & ", "_&_"]
description:
text: "{{ .Result.genre }}"
- files:
- selector: num_file
seeders:
selector: seeders
leechers:
@@ -161,7 +167,12 @@ search:
args: "MM/dd/yyyy HH:mm:ss zzz"
size:
selector: size
- downloadvolumefactor:
+ _featured:
+ selector: featured
+ case:
+ False: "{{ .False }}"
+ True: "{{ .True }}"
+ downloadvolumefactor_freeleech:
# api returns 0%, 25%, 50%, 75%, 100%
selector: freeleech
case:
@@ -171,13 +182,20 @@ search:
75%: 0.25
100%: 0 # freeleech
"*": 0 # catch errors
- uploadvolumefactor:
- # api returns 0=false, 1=true
+ downloadvolumefactor:
+ text: "{{ if .Result._featured }}0{{ else }}{{ .Result.downloadvolumefactor_freeleech }}{{ end }}"
+ uploadvolumefactor_double_upload:
+ # api returns False, True
selector: double_upload
case:
- 0: 1 # normal
- 1: 2 # double
+ False: 1 # normal
+ True: 2 # double
+ uploadvolumefactor:
+ text: "{{ if .Result._featured }}2{{ else }}{{ .Result.uploadvolumefactor_double_upload }}{{ end }}"
+# global MR is 1.0 but torrents must be seeded for 7 days regardless of ratio
+# minimumratio:
+# text: 1.0
minimumseedtime:
- # 7 day (as seconds = 7 x 24 x 60 x 60)
+ # 7 days (as seconds = 7 x 24 x 60 x 60)
text: 604800
-# json UNIT3D 6.5.0
+# json UNIT3D 8.1.3 (custom)
diff --git a/mock-htpc/prowlarr/Definitions/anirena.yml b/mock-htpc/prowlarr/Definitions/anirena.yml
index 9c3b45a..e580e6d 100644
--- a/mock-htpc/prowlarr/Definitions/anirena.yml
+++ b/mock-htpc/prowlarr/Definitions/anirena.yml
@@ -9,10 +9,8 @@ links:
- https://www.anirena.com/
settings:
- - name: flaresolverr
- type: info
- label: FlareSolverr
- default: This site may use Cloudflare DDoS Protection, therefore Prowlarr requires FlareSolverr to access it.
+ - name: info_flaresolverr
+ type: info_flaresolverr
caps:
categorymappings:
diff --git a/mock-htpc/prowlarr/Definitions/anthelion-api.yml b/mock-htpc/prowlarr/Definitions/anthelion-api.yml
index 22877ae..de2df06 100644
--- a/mock-htpc/prowlarr/Definitions/anthelion-api.yml
+++ b/mock-htpc/prowlarr/Definitions/anthelion-api.yml
@@ -1,10 +1,14 @@
---
id: anthelion-api
+replaces:
+ - tehconnectionme
+ - anthelion
name: Anthelion (API)
description: "Anthelion is a Private MOVIES tracker"
language: en-US
type: private
encoding: UTF-8
+# Status: https://ant.trackerstatus.info/
links:
- https://anthelion.me/
diff --git a/mock-htpc/prowlarr/Definitions/arabp2p.yml b/mock-htpc/prowlarr/Definitions/arabp2p.yml
index 82dfb35..9dbead1 100644
--- a/mock-htpc/prowlarr/Definitions/arabp2p.yml
+++ b/mock-htpc/prowlarr/Definitions/arabp2p.yml
@@ -52,7 +52,6 @@ caps:
- {id: 52, cat: TV, desc: "مسرحيات (Plays)"}
- {id: 71, cat: TV, desc: "مسلسلات مدبلجه عربي (Arabic Dubbed Series)"}
- {id: 90, cat: TV, desc: "برامج ومسابقات (Shows)"}
- - {id: 117, cat: TV, desc: "رمضان 2024 (Ramadan)"}
# المرئيات الاجنبية Foreign Movies
- {id: 92, cat: TV/Foreign, desc: "تعليمي (Educational)"}
- {id: 93, cat: TV/Documentary, desc: "وثائقي (Documentary)"}
@@ -79,6 +78,7 @@ caps:
- {id: 25, cat: Audio, desc: "القران الكريم (The Holy Quran)"}
- {id: 27, cat: Audio, desc: "محاضرات (Lectures)"}
- {id: 26, cat: Audio, desc: "اناشيد (Chants)"}
+ - {id: 118, cat: Audio, desc: "برامج صوتية (Programs)"}
# برامج Software
- {id: 22, cat: PC, desc: "برامج عربية (Arabic Software)"}
- {id: 23, cat: PC, desc: "برامج عامه (Public Software)"}
diff --git a/mock-htpc/prowlarr/Definitions/asiancinema.yml b/mock-htpc/prowlarr/Definitions/asiancinema.yml
index bf0be58..9c01540 100644
--- a/mock-htpc/prowlarr/Definitions/asiancinema.yml
+++ b/mock-htpc/prowlarr/Definitions/asiancinema.yml
@@ -6,6 +6,8 @@ language: en-US
type: private
encoding: UTF-8
links:
+ - https://eiga.moi/
+legacylinks:
- https://asiancinema.me/
caps:
@@ -53,6 +55,7 @@ settings:
default: "Your account will be automatically deleted from the database after 90 days of inactivity. If you return or visit the site with your account before that amount of time passes, then the inactivity timer will reset and your account will be fine for another 90 days.
Keep in mind that 'activity' is considered a visit to any page and that torrent traffic is not counted as account activity. In order to reset the inactivity timer all you have to do is visit a single page while logged in with your account. If your account is deleted for inactivity, please do not ask the site staff to un-delete it for you. The deletion is performed automatically by the server and, as such, your account cannot be recovered after it has been deleted."
login:
+ # note APIKEY is broken on this 5.3.0 site
path: login
method: form
form: form[action$="/login"]
@@ -188,4 +191,4 @@ search:
minimumseedtime:
# 7 days (as seconds = 7 x 24 x 60 x 60)
text: 604800
-# UNIT3D 3.0.0
+# UNIT3D 5.3.0
diff --git a/mock-htpc/prowlarr/Definitions/audiences.yml b/mock-htpc/prowlarr/Definitions/audiences.yml
index 9ba88d6..05095c9 100644
--- a/mock-htpc/prowlarr/Definitions/audiences.yml
+++ b/mock-htpc/prowlarr/Definitions/audiences.yml
@@ -33,10 +33,8 @@ settings:
- name: cookie
type: text
label: Cookie
- - name: info
- type: info
- label: How to get the Cookie
- default: "- Login to this tracker with your browser
- Open the DevTools panel by pressing F12
- Select the Network tab
- Click on the Doc button (Chrome Browser) or HTML button (FireFox)
- Refresh the page by pressing F5
- Click on the first row entry
- Select the Headers tab on the Right panel
- Find 'cookie:' in the Request Headers section
- Select and Copy the whole cookie string (everything after 'cookie: ') and Paste here.
"
+ - name: info_cookie
+ type: info_cookie
- name: freeleech
type: checkbox
label: Search freeleech only
@@ -67,6 +65,7 @@ settings:
default: "Account retention rules:- Users with Extreme User and above will be retained forever
- Starting from 20230701, the non-login ban time will be adjusted to:
- (Home Alone) User - 40 days
- (Young and vigorous) Power User - 60 days
- (Children of Jianghu) Elite User - 80 days
- (Street Fighter) Crazy User - 100 days
- (non-stop) Insane User - 120 days
- (Outstanding Citizen) Veteran User - 180 days
- Users with no traffic (i.e. uploading/downloading data) If it is 0) If you do not log in for 7 consecutive days will be disabled
- 'Parked accounts' no longer enjoy the benefits of retaining accounts, and are also subject to the above rules.
"
login:
+ # using cookie method because site has cloudflare challenge and flaresolverr is currently broken. Switch to standard nexus login when fixed.
method: cookie
inputs:
cookie: "{{ .Config.cookie }}"
diff --git a/mock-htpc/prowlarr/Definitions/audionews.yml b/mock-htpc/prowlarr/Definitions/audionews.yml
index d61d379..67aa847 100644
--- a/mock-htpc/prowlarr/Definitions/audionews.yml
+++ b/mock-htpc/prowlarr/Definitions/audionews.yml
@@ -306,7 +306,7 @@ search:
- name: querystring
args: f
size:
- selector: td:contains(\00a0GB), td:contains(\00a0MB), td:contains(\00a0kB), td:contains(\00a0B)
+ selector: td:contains(\00a0GB), td:contains(\00a0MB), td:contains(\00a0KB), td:contains(\00a0B)
optional: true
default: 0
seeders:
diff --git a/mock-htpc/prowlarr/Definitions/backups.yml b/mock-htpc/prowlarr/Definitions/backups.yml
index 377c6d1..cbab56e 100644
--- a/mock-htpc/prowlarr/Definitions/backups.yml
+++ b/mock-htpc/prowlarr/Definitions/backups.yml
@@ -27,13 +27,17 @@ caps:
- {id: 16, cat: TV/Documentary, desc: "Docu"}
- {id: 41, cat: Console, desc: "Dragon"}
- {id: 5, cat: Books, desc: "EBooks"}
+ - {id: 80, cat: PC, desc: "Emulation Media"}
- {id: 61, cat: Console, desc: "emuxtras"}
- {id: 69, cat: TV, desc: "Entertainment"}
+ - {id: 84, cat: TV, desc: "GOG DRM FREE"}
+ - {id: 77, cat: PC, desc: "Hyperspin"}
- {id: 34, cat: TV, desc: "Kids"}
- {id: 43, cat: Console, desc: "LB No Intro"}
- {id: 33, cat: TV/Sport, desc: "MMA/Boxing"}
- {id: 32, cat: Movies, desc: "Movie Pack"}
- {id: 6, cat: Movies, desc: "Movies/XVID"}
+ - {id: 82, cat: PC, desc: "MS-DOS"}
- {id: 7, cat: Audio, desc: "Music"}
- {id: 31, cat: Console, desc: "Nintendo"}
- {id: 59, cat: Console, desc: "P-R-U"}
@@ -41,17 +45,22 @@ caps:
- {id: 50, cat: Console, desc: "PlayBox"}
- {id: 30, cat: Console, desc: "Playstation"}
- {id: 62, cat: Console, desc: "RaspberryPi"}
+ - {id: 83, cat: Console, desc: "Retro eXo"}
- {id: 56, cat: Console, desc: "Retro Minis"}
+ - {id: 81, cat: PC, desc: "Retro Scene Releases"}
- {id: 67, cat: Console, desc: "Retrobat"}
+ - {id: 79, cat: PC, desc: "RGB-Pi"}
- {id: 76, cat: Console, desc: "RGS"}
- {id: 27, cat: Console, desc: "Roms and Emulators"}
- {id: 68, cat: Console, desc: "Schmoomer's"}
- {id: 57, cat: Console, desc: "Sega"}
+ - {id: 74, cat: PC, desc: "Sleyk/SGC"}
- {id: 40, cat: TV, desc: "Soaps"}
- {id: 29, cat: TV/Sport, desc: "Sport"}
- {id: 9, cat: TV, desc: "TV-Boxsets"}
- {id: 11, cat: TV, desc: "TV/x264"}
- {id: 10, cat: TV, desc: "TV/Xvid"}
+ - {id: 75, cat: Audio, desc: "Video Game Music"}
- {id: 73, cat: Console, desc: "Wolfanoz"}
- {id: 14, cat: TV/Sport, desc: "WWE"}
- {id: 26, cat: Console, desc: "Xbox"}
diff --git a/mock-htpc/prowlarr/Definitions/badasstorrents.yml b/mock-htpc/prowlarr/Definitions/badasstorrents.yml
index 806d901..9486343 100644
--- a/mock-htpc/prowlarr/Definitions/badasstorrents.yml
+++ b/mock-htpc/prowlarr/Definitions/badasstorrents.yml
@@ -9,15 +9,6 @@ requestDelay: 5
links:
- https://badasstorrents.com/
legacylinks:
- - https://badasstorrents.nocensor.work/
- - https://badasstorrents.nocensor.biz/
- - https://badasstorrents.nocensor.sbs/
- - https://badasstorrents.nocensor.world/
- - https://badasstorrents.nocensor.lol/
- - https://badasstorrents.nocensor.art/
- - https://badasstorrents.mrunblock.guru/
- - https://badasstorrents.mrunblock.life/
- - https://badasstorrents.nocensor.click/
- https://badasstorrents.mrunblock.bond/
- https://badasstorrents.nocensor.cloud/
@@ -39,20 +30,23 @@ caps:
movie-search: [q]
music-search: [q, album, artist]
book-search: [q]
+
settings:
+ - name: info_flaresolverr
+ type: info_flaresolverr
- name: downloadlink
type: select
label: Download link
default: "magnet:?xt="
options:
- "/download/": ".torrent"
+ "/d/": ".torrent"
"magnet:?xt=": "magnet"
- name: downloadlink2
type: select
label: Download link (fallback)
- default: "/download/"
+ default: "/d/"
options:
- "/download/": ".torrent"
+ "/d/": ".torrent"
"magnet:?xt=": "magnet"
- name: info_download
type: info
@@ -69,32 +63,36 @@ download:
search:
paths:
# search has 10 torrents per page, latest has 100 torrents per page.
- - path: "{{ if .Keywords }}search/{{ .Keywords }}{{ else }}latest.html{{ end }}"
- - path: "{{ if .Keywords }}/search/{{ .Keywords }}&page=10{{ else }}{{ end }}"
+ - path: "{{ if .Keywords }}s/{{ .Keywords }}{{ else }}latest.html{{ end }}"
+ - path: "{{ if .Keywords }}s/{{ .Keywords }}&page=10{{ else }}{{ end }}"
keywordsfilters:
- name: re_replace
args: ["[\\s]+", "-"]
+ - name: tolower
rows:
- selector: table.table-hover > tbody > tr:has(a[href*="/torrent/"])
+ selector: table.table-hover > tbody > tr
filters:
- name: andmatch
fields:
category:
- selector: a[href*="/category/"]
+ selector: a[href^="/c/"]
title:
- selector: a[href*="/torrent/"]
+ selector: a[href*="/v/"]
details:
- selector: a[href*="/torrent/"]
+ selector: a[href*="/v/"]
attribute: href
download:
- selector: a[href*="/torrent/"]
+ selector: a[href*="/v/"]
attribute: href
date:
selector: td:nth-child(3)
filters:
- - name: timeago
+ - name: append
+ args: " +00:00" # GMT
+ - name: dateparse
+ args: "yyyy-MM-dd HH:mm:ss zzz"
size:
selector: td:nth-child(4)
seeders:
diff --git a/mock-htpc/prowlarr/Definitions/beload.yml b/mock-htpc/prowlarr/Definitions/beload.yml
index bab55e2..4c58f26 100644
--- a/mock-htpc/prowlarr/Definitions/beload.yml
+++ b/mock-htpc/prowlarr/Definitions/beload.yml
@@ -55,10 +55,8 @@ settings:
- name: cookie
type: text
label: Cookie
- - name: info
- type: info
- label: How to get the Cookie
- default: "- Login to this tracker with your browser
- Open the DevTools panel by pressing F12
- Select the Network tab
- Click on the Doc button (Chrome Browser) or HTML button (FireFox)
- Refresh the page by pressing F5
- Click on the first row entry
- Select the Headers tab on the Right panel
- Find 'cookie:' in the Request Headers section
- Select and Copy the whole cookie string (everything after 'cookie: ') and Paste here.
"
+ - name: info_cookie
+ type: info_cookie
- name: sort
type: select
label: Sort requested from site
@@ -77,6 +75,7 @@ settings:
asc: asc
login:
+ # using cookie method because login page has embedded Google reCAPTCHA
method: cookie
inputs:
cookie: "{{ .Config.cookie }}"
diff --git a/mock-htpc/prowlarr/Definitions/best-torrents.yml b/mock-htpc/prowlarr/Definitions/best-torrents.yml
new file mode 100644
index 0000000..e24aa7e
--- /dev/null
+++ b/mock-htpc/prowlarr/Definitions/best-torrents.yml
@@ -0,0 +1,120 @@
+---
+id: best-torrents
+name: Best-Torrents
+description: "Best-Torrents is a POLISH Semi-Private PAY2DL Torrent Tracker for MOVIES / TV / GENERAL"
+language: pl-PL
+type: semi-private
+encoding: UTF-8
+links:
+ - https://best-torrents.com/
+
+caps:
+ categorymappings:
+ - {id: 774, cat: Movies, desc: Filmy Polskie}
+ - {id: 642, cat: Movies, desc: Filmy/Bajki}
+ - {id: 1, cat: Movies/SD, desc: Filmy XviD/DivX}
+ - {id: 20, cat: Movies/DVD, desc: Filmy DVD}
+ - {id: 23, cat: Movies/HD, desc: Filmy x264}
+ - {id: 573, cat: Movies/UHD, desc: Filmy 4K UHD}
+ - {id: 17, cat: Movies/HD, desc: Filmy HD}
+ - {id: 265, cat: Movies/HD, desc: Filmy x265 HEVC}
+ - {id: 12, cat: Movies/3D, desc: Filmy 3D}
+ - {id: 530, cat: Movies/SD, desc: Filmy TS/CAM}
+ - {id: 9, cat: PC, desc: Programy}
+ - {id: 7, cat: Console, desc: Konsole}
+ - {id: 6, cat: PC/Games, desc: Gry}
+ - {id: 5, cat: Audio, desc: Muzyka}
+ - {id: 305, cat: Audio/Video, desc: Teledyski}
+ - {id: 22, cat: TV, desc: TV}
+ - {id: 228, cat: XXX, desc: Erotyka}
+ - {id: 25, cat: Books/EBook, desc: Książki}
+ - {id: 739, cat: Audio/Audiobook, desc: AudioBooki}
+ - {id: 26, cat: Books/Comics, desc: Komiksy}
+ - {id: 27, cat: PC/Mac, desc: Linux/Mac}
+ - {id: 28, cat: TV/Sport, desc: Sport}
+ - {id: 29, cat: TV/Anime, desc: Anime}
+ - {id: 31, cat: PC/Mobile-Other, desc: GSM/PDA}
+ - {id: 32, cat: Other, desc: Inne}
+
+ modes:
+ search: [q]
+ tv-search: [q, season, ep]
+ movie-search: [q]
+ music-search: [q]
+ book-search: [q]
+
+settings:
+ - name: username
+ type: text
+ label: Username
+ - name: password
+ type: password
+ label: Password
+
+login:
+ path: takelogin.php
+ method: post
+ inputs:
+ username: "{{ .Config.username }}"
+ password: "{{ .Config.password }}"
+ error:
+ - selector: td.komunikaty:contains("Nazwa użytkownika bądź hasło jest nieprawidłowe")
+ test:
+ path: /
+ selector: a[href$="/logout.php"]
+
+search:
+ # https://best-torrents.com/szukaj.php?search=%25&cat=774&full_name=no
+ paths:
+ - path: szukaj.php
+ inputs:
+ # does not appear to support multi category searches
+ cat: 0
+ # no, 0 Standard mode, 1 Initial mode, 2 Full Phrase mode, 3 Final mode
+ full_name: no
+ search: "{{ if .Keywords }}{{ .Keywords }}{{ else }}%{{ end }}"
+
+ rows:
+ selector: div#torrents_browse-standard-all
+
+ fields:
+ categorydesc:
+ selector: div#torrents_browse-standard-category a
+ attribute: href
+ filters:
+ - name: regexp
+ args: kategorii/(.+?)/gatunku
+ title:
+ selector: div#torrents_browse-standard-torrent-name a
+ details:
+ selector: div#torrents_browse-standard-torrent-name a
+ attribute: href
+ download:
+ selector: div#torrents_browse-standard-download a
+ attribute: href
+ poster:
+ selector: div#torrents_browse-standard-poster img
+ attribute: src
+ date:
+ selector: div#torrents_browse-standard-time
+ remove: b
+ filters:
+ - name: append
+ args: " +01:00" # CET
+ - name: dateparse
+ args: "yyyy-MM-dd HH:mm:ss zzz"
+ size:
+ selector: div#torrents_browse-standard-size
+ remove: b
+ filters:
+ - name: regexp
+ args: (\d{1,4}\.\d{2}\s+?[T|G|M|k]B)
+ seeders:
+ selector: div#torrents_browse-standard-seeds span font
+ leechers:
+ selector: div#torrents_browse-standard-peers span font
+ downloadvolumefactor:
+ text: 0
+ uploadvolumefactor:
+ text: 1
+# engine n/a
diff --git a/mock-htpc/prowlarr/Definitions/bestcore.yml b/mock-htpc/prowlarr/Definitions/bestcore.yml
index d73c292..16c39a1 100644
--- a/mock-htpc/prowlarr/Definitions/bestcore.yml
+++ b/mock-htpc/prowlarr/Definitions/bestcore.yml
@@ -106,6 +106,8 @@ login:
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
+ error:
+ - selector: :root:contains("Sikertelen bejelentkezés")
test:
path: index.php
selector: a[href^="logout.php?c="]
diff --git a/mock-htpc/prowlarr/Definitions/bigfangroup.yml b/mock-htpc/prowlarr/Definitions/bigfangroup.yml
index 4f10e65..98e7807 100644
--- a/mock-htpc/prowlarr/Definitions/bigfangroup.yml
+++ b/mock-htpc/prowlarr/Definitions/bigfangroup.yml
@@ -89,22 +89,19 @@ settings:
asc: asc
search:
- # https://bigfangroup.org/browse.php?search=black+lightning&cat=0&incldead=0&year=0&format=0
- headers:
- Referer: ["{{ .Config.sitelink }}browse.php?search={{ .Keywords }}&cat=0&incldead=1&year=0&format=0"]
paths:
# https://bigfangroup.org/browse.php?ajax=1&search=the+librarian&cat=0&incldead=0&year=0&format=0
- path: browse.php
inputs:
ajax: 1
search: "{{ .Keywords }}"
- cat: 0
+ cat: "{{ if .Keywords }}0{{ else }}{{ end }}"
# 0 active, 1 incldead, 2 onlydead, 3 gold, 4 noseed, 5 silver, 7 BFG
- incldead: 1
- year: 0
- format: 0
- s: "{{ .Config.sort }}"
- d: "{{ .Config.type }}"
+ incldead: "{{ if .Keywords }}1{{ else }}{{ end }}"
+ year: "{{ if .Keywords }}0{{ else }}1{{ end }}"
+ format: "{{ if .Keywords }}0{{ else }}{{ end }}"
+ s: "{{ if .Keywords }}{{ .Config.sort }}{{ else }}{{ end }}"
+ d: "{{ if .Keywords }}{{ .Config.type }}{{ else }}{{ end }}"
keywordsfilters:
# strip season and/or ep
diff --git a/mock-htpc/prowlarr/Definitions/bitbazis.yml b/mock-htpc/prowlarr/Definitions/bitbazis.yml
index c6680fd..66cfe2d 100644
--- a/mock-htpc/prowlarr/Definitions/bitbazis.yml
+++ b/mock-htpc/prowlarr/Definitions/bitbazis.yml
@@ -46,10 +46,8 @@ settings:
- name: cookie
type: text
label: Cookie
- - name: info
- type: info
- label: How to get the Cookie
- default: "- Login to this tracker with your browser
- Open the DevTools panel by pressing F12
- Select the Network tab
- Click on the Doc button (Chrome Browser) or HTML button (FireFox)
- Refresh the page by pressing F5
- Click on the first row entry
- Select the Headers tab on the Right panel
- Find 'cookie:' in the Request Headers section
- Select and Copy the whole cookie string (everything after 'cookie: ') and Paste here.
"
+ - name: info_cookie
+ type: info_cookie
- name: freeleech
type: checkbox
label: Filter freeleech only
@@ -93,9 +91,10 @@ search:
inputs:
# 0 all, 1 active, 2 deadonly, 3 myuploads, 4 zeroseed, 6 re-seeded
incldead: 0
- - path: browse_xxx.php
+ - path: browse.php
categories: [33, 66, 89]
inputs:
+ xxx: 1
# 0 active, 1 all, 2 deadonly, 3 myuploads, 4 zeroseed, 6 re-seeded
incldead: 1
inputs:
@@ -107,7 +106,7 @@ search:
# can support genre searching but you need to know the id, eg &genre23=1 for Comedy (id is 23)
rows:
- selector: "tr[class^=\"toriadatok\"]{{ if .Config.freeleech }}:has(i:contains(\"(Free)\")){{ else }}{{ end }}"
+ selector: "tr[class^=\"toriadatok\"]:has(i.status-yes){{ if .Config.freeleech }}:has(i:contains(\"(Free)\")){{ else }}{{ end }}"
fields:
categorydesc:
@@ -117,19 +116,12 @@ search:
- name: replace
args: ["catpic_", ""]
title:
- selector: font[class="tori"], a.preview
+ selector: span.torrent-title
_id:
- selector: td.tori_infok
- attribute: id
- optional: true
- filters:
- - name: regexp
- args: (\d+)
+ selector: tr[data-torrent-id]
+ attribute: data-torrent-id
details:
- selector: a[href^="details.php?id="]
- attribute: href
- optional: true
- default: "details.php?id={{ .Result._id }}#adatlap"
+ text: "details.php?id={{ .Result._id }}#adatlap"
download:
text: "download.php?torrent={{ .Result._id }}"
poster:
@@ -139,14 +131,14 @@ search:
selector: a[href*="imdb.com/title/tt"]
attribute: href
size:
- selector: td[id^="tsize"]
+ selector: span.torrent-size
date:
# 36 perce
# 13 órája és 59 perce
# 2 napja és 10 órája
# 1 hete és 1 napja
# 1 éve és 30 hete
- selector: span.ellenorzes
+ selector: span.uploader
filters:
- name: replace
args: ["és ", " "]
@@ -161,20 +153,20 @@ search:
- name: replace
args: ["éve", "year"]
- name: timeago
- grabs:
- selector: td.letoltok
- optional: true
- default: 0
seeders:
- selector: td.seeders
+ selector: td:nth-child(5)
optional: true
default: 0
leechers:
- selector: td.leechers
+ selector: td:nth-child(6)
+ optional: true
+ default: 0
+ grabs:
+ selector: td:nth-child(7)
optional: true
default: 0
genre:
- selector: span[style="font-size:small;"]
+ selector: span.torrent-genre
description:
text: "{{ .Result.genre }}"
downloadvolumefactor:
diff --git a/mock-htpc/prowlarr/Definitions/bithorlo.yml b/mock-htpc/prowlarr/Definitions/bithorlo.yml
index 1461974..371eab4 100644
--- a/mock-htpc/prowlarr/Definitions/bithorlo.yml
+++ b/mock-htpc/prowlarr/Definitions/bithorlo.yml
@@ -4,7 +4,7 @@ name: Bithorlo
description: "Bithorlo (BHO) is a HUNGARIAN Private Torrent Tracker for MOVIES / GENERAL"
language: hu-HU
type: private
-encoding: ISO-8859-2
+encoding: UTF-8
links:
- https://www.bithorlo.info/
@@ -15,40 +15,40 @@ caps:
- {id: 19, cat: Books, desc: "E-book/Hun"}
# Játék
- {id: 38, cat: Console, desc: "Játék/Consol"}
- - {id: 15, cat: PC/Games, desc: "Játék/ISO"}
- {id: 37, cat: PC/Games, desc: "Játék/Rip"}
+ - {id: 15, cat: PC/Games, desc: "Játék/ISO"}
# Filmek
+ - {id: 2, cat: Movies/DVD, desc: "DVD/Eng"}
- {id: 51, cat: Movies/SD, desc: "Cam/Eng"}
- {id: 50, cat: Movies/SD, desc: "Cam/Hun"}
- - {id: 2, cat: Movies/DVD, desc: "DVD/Eng"}
- - {id: 1, cat: Movies/DVD, desc: "DVD/Hun"}
- {id: 42, cat: Movies/DVD, desc: "Dvd9/Eng"}
- {id: 41, cat: Movies/DVD, desc: "Dvd9/Hun"}
+ - {id: 33, cat: TV, desc: "Sorozat/Eng"}
- {id: 29, cat: Movies/HD, desc: "HD/Eng"}
- {id: 28, cat: Movies/HD, desc: "HD/Hun"}
- - {id: 33, cat: TV, desc: "Sorozat/Eng"}
- - {id: 5, cat: TV, desc: "Sorozat/Hun"}
- {id: 52, cat: TV/HD, desc: "Sorozat/Eng/HD"}
- {id: 53, cat: TV/HD, desc: "Sorozat/Hun/HD"}
+ - {id: 1, cat: Movies/DVD, desc: "DVD/Hun"}
+ - {id: 5, cat: TV, desc: "Sorozat/Hun"}
- {id: 4, cat: Movies/SD, desc: "Xvid/Eng"}
- {id: 3, cat: Movies/SD, desc: "Xvid/Hun"}
# Zene
- - {id: 12, cat: Audio, desc: "Zene/Eng"}
- {id: 13, cat: Audio, desc: "Zene/Hun"}
+ - {id: 12, cat: Audio, desc: "Zene/Eng"}
# Egyéb
- - {id: 20, cat: Other, desc: "Képek"}
- {id: 21, cat: PC/Mobile-Other, desc: "Mobil"}
+ - {id: 20, cat: Other, desc: "Képek"}
# Program
- {id: 54, cat: PC/0day, desc: "Win/Program/ISO"}
- {id: 23, cat: PC/0day, desc: "Win/Program/Rip"}
# Felnőtt tartalom
- - {id: 9, cat: XXX, desc: "XXX/Film"}
- {id: 10, cat: XXX, desc: "XXX/Kép"}
+ - {id: 9, cat: XXX, desc: "XXX/Film"}
modes:
search: [q]
- tv-search: [q, season, ep]
- movie-search: [q]
+ tv-search: [q, season, ep, imdbid]
+ movie-search: [q, imdbid]
music-search: [q]
book-search: [q]
@@ -56,121 +56,121 @@ settings:
- name: cookie
type: text
label: Cookie
- - name: info
- type: info
- label: How to get the Cookie
- default: "- Login to this tracker with your browser
- Open the DevTools panel by pressing F12
- Select the Network tab
- Click on the Doc button (Chrome Browser) or HTML button (FireFox)
- Refresh the page by pressing F5
- Click on the first row entry
- Select the Headers tab on the Right panel
- Find 'cookie:' in the Request Headers section
- Select and Copy the whole cookie string (everything after 'cookie: ') and Paste here.
"
+ - name: info_cookie
+ type: info_cookie
- name: useragent
type: text
label: User-Agent
- name: info_useragent
- type: info
- label: How to get the User-Agent
- default: "- From the same place you fetched the cookie,
- Find 'user-agent:' in the Request Headers section
- Select and Copy the whole user-agent string (everything after 'user-agent: ') and Paste here.
"
+ type: info_useragent
- name: freeleech
type: checkbox
label: Search freeleech only
default: false
- - name: sort
+ - name: sortBy
type: select
- label: Sort requested from site
- default: 4
+ label: SortBy requested from site
+ default: 2
options:
- 4: created
- 7: seeders
- 5: size
+ 2: created
+ 5: seeders
+ 3: size
1: title
- - name: type
+ - name: orderBy
type: select
- label: Order requested from site
- default: desc
+ label: OrderBy requested from site
+ default: 0
options:
- desc: desc
- asc: asc
+ 0: desc
+ 1: asc
- name: info_activity
type: info
label: Account Inactivity
default: "Vacation mode is used to avoid deletion due to inactivity for 90 days. You can turn it on or off in the Profile menu, set the appropriate option and save your changes."
login:
+ # using cookie method because login page has embedded Google reCAPTCHA
method: cookie
inputs:
cookie: "{{ .Config.cookie }}"
test:
- path: index.php
- selector: a[href="logout.php"]
+ path: index/
+ selector: a[href="/logout/"]
search:
paths:
- - path: browse.php
+ # https://www.bithorlo.info/torrents/?action=search&categories[]=29&categories[]=4&search_text=&incldead=1&torrent_tags=
+ - path: torrents/
inputs:
- $raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
- search: "{{ .Keywords }}"
- # 0 active, 1 incldead, 2 onlydead, 3 freeleech
+ action: search
+ $raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
+ search_text: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
+ # 0 active, 1 incldead, 2 onlydead, 3 freeleech, 5 waiting for seed, 6 multiple upload
incldead: "{{ if .Config.freeleech }}3{{ else }}1{{ end }}"
- sort: "{{ .Config.sort }}"
- type: "{{ .Config.type }}"
+ sort: "{{ .Config.sortBy }}"
+ order_by: "{{ .Config.orderBy }}"
headers:
User-Agent: ["{{ .Config.useragent }}"]
rows:
- selector: tr[class^="browse"]
+ selector: table#TorrentTable > tbody > tr
fields:
category:
- selector: a[href^="browse.php?cat="]
+ selector: td.fixed-width-category > a
attribute: href
filters:
- name: querystring
- args: cat
- - name: trim # some torrents have an extra space
+ args: categories[]
title:
- selector: a[href^="torrent.php?id="]
- attribute: title
+ selector: a.torrent-name
details:
- selector: a[href^="torrent.php?id="]
+ selector: a.torrent-name
attribute: href
download:
- selector: a[href^="download.php?id="]
+ selector: a[href^="/download/"]
attribute: href
poster:
- selector: a[href^="torrent.php?id="][onmouseover]
- attribute: onmouseover
+ selector: span.custom-popover
+ attribute: data-bs-content
filters:
- name: regexp
- args: ", '(.*)'"
- size:
- selector: td:nth-child(4)
- grabs:
- selector: td:nth-child(5)
- seeders:
- selector: td:nth-child(6)
- leechers:
- selector: td:nth-child(7)
+ args: \"(.+?)\"
date:
- selector: "a[style=\"font-size: 8pt;cursor: pointer;\"][title]"
+ selector: span.bg-green
filters:
- name: append
args: " +01:00" # CET
- name: dateparse
args: "yyyy-MM-dd HH:mm:ss zzz"
+ size:
+ selector: td.fixed-width-size > span
+ grabs:
+ selector: td.fixed-width-completed
+ seeders:
+ selector: td.fixed-width-seeders
+ leechers:
+ selector: td.fixed-width-leechers
description:
case:
img[src="./themes/Born/nemlatta.png"]: Unverified
"*": Verified
downloadvolumefactor:
case:
- img[title="Ingyenes letöltés"]: 0
+ "span:contains(\"FREE\")": 0
"*": 1
uploadvolumefactor:
- selector: span:contains("Feltöltési szorzó")
- filters:
- - name: replace
- args: ["Feltöltési szorzó × ", ""]
+ case:
+ "span:contains(\"2x\")": 2
+ "span:contains(\"3x\")": 3
+ "span:contains(\"4x\")": 4
+ "span:contains(\"5x\")": 5
+ "span:contains(\"6x\")": 6
+ "span:contains(\"7x\")": 7
+ "span:contains(\"8x\")": 8
+ "span:contains(\"9x\")": 9
+ "*": 1
minimumratio:
text: 1.0
- minimumseedtime:
- # 2 days (as seconds = 2 x 24 x 60 x 60)
- text: 172800
# engine n/a
diff --git a/mock-htpc/prowlarr/Definitions/bitmagnet.yml b/mock-htpc/prowlarr/Definitions/bitmagnet.yml
index 55073c9..eb06d0c 100644
--- a/mock-htpc/prowlarr/Definitions/bitmagnet.yml
+++ b/mock-htpc/prowlarr/Definitions/bitmagnet.yml
@@ -3,10 +3,11 @@ id: bitmagnet
name: BitMagnet (Local DHT)
description: "BitMagnet is a self-hosted BitTorrent DHT search engine"
language: en-US
-type: private
+type: semi-private
encoding: UTF-8
links:
- http://127.0.0.1:3333/
+ - http://bitmagnet:3333/
caps:
categorymappings:
diff --git a/mock-htpc/prowlarr/Definitions/bitpalace.yml b/mock-htpc/prowlarr/Definitions/bitpalace.yml
new file mode 100644
index 0000000..01283af
--- /dev/null
+++ b/mock-htpc/prowlarr/Definitions/bitpalace.yml
@@ -0,0 +1,166 @@
+---
+id: bitpalace
+name: Bitpalace
+description: "Bitpalace is a Hungarian Private Torrent Tracker for MOVIES / TV / GENERAL"
+language: hu-HU
+type: private
+encoding: UTF-8
+links:
+ - https://bitpalace.cc/
+
+caps:
+ categorymappings:
+ - {id: 8, cat: Movies/BluRay, desc: "BLUERAY ENG"}
+ - {id: 7, cat: Movies/BluRay, desc: "BLUERAY HUN"}
+ - {id: 15, cat: Movies/DVD, desc: "DVD-R ENG"}
+ - {id: 2, cat: Movies/DVD, desc: "DVD-R HUN"}
+ - {id: 9, cat: Books, desc: "Ebook ENG"}
+ - {id: 5, cat: Books, desc: "Ebook HUN"}
+ - {id: 40, cat: Other, desc: "EGYÉBB"}
+ - {id: 16, cat: Movies/HD, desc: "HD ENG"}
+ - {id: 1, cat: Movies/HD, desc: "HD HUN"}
+ - {id: 25, cat: TV/Anime, desc: "MESE ENG"}
+ - {id: 24, cat: TV/Anime, desc: "MESE HUN"}
+ - {id: 18, cat: PC/Games, desc: "PC game ISO"}
+ - {id: 21, cat: Console, desc: "PC game KONZOL"}
+ - {id: 17, cat: PC/Games, desc: "PC game RIP"}
+ - {id: 27, cat: PC/ISO, desc: "Program ISO"}
+ - {id: 26, cat: PC/Mobile-Other, desc: "Program MOBIL"}
+ - {id: 78, cat: PC/0day, desc: "Program RIP"}
+ - {id: 23, cat: TV/SD, desc: "Sor.DVD-R ENG"}
+ - {id: 22, cat: TV/SD, desc: "Sor.DVD-R HUN"}
+ - {id: 14, cat: TV/SD, desc: "Sor.XVID ENG"}
+ - {id: 4, cat: TV, desc: "Sorozat HUN"}
+ - {id: 13, cat: Movies/SD, desc: "XVID ENG"}
+ - {id: 3, cat: Movies/SD, desc: "XVID HUN"}
+ - {id: 12, cat: XXX/DVD, desc: "XXX DVD-R"}
+ - {id: 6, cat: XXX/x264, desc: "XXX HD"}
+ - {id: 10, cat: XXX/ImageSet, desc: "XXX/Képek"}
+ - {id: 11, cat: XXX/XviD, desc: "XXX XVID"}
+ - {id: 19, cat: Audio/Video, desc: "ZENE Klipp"}
+ - {id: 26, cat: Audio/MP3, desc: "ZENE MP3"}
+
+ modes:
+ search: [q]
+ tv-search: [q, season, ep]
+ movie-search: [q]
+ music-search: [q]
+ book-search: [q]
+
+settings:
+ - name: username
+ type: text
+ label: Username
+ - name: password
+ type: password
+ label: Password
+ - name: freeleech
+ type: checkbox
+ label: Filter freeleech only
+ default: false
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: 4
+ options:
+ 4: created
+ 7: seeders
+ 5: size
+ 1: title
+ - name: type
+ type: select
+ label: Order requested from site
+ default: desc
+ options:
+ desc: desc
+ asc: asc
+
+login:
+ path: login
+ method: form
+ form: form[action="/login_check"]
+ inputs:
+ _username: "{{ .Config.username }}"
+ _password: "{{ .Config.password }}"
+ logout: ""
+ error:
+ - selector: h3[style="color:red"]
+ test:
+ path: my
+ selector: a[href="/logout"]
+
+search:
+ paths:
+ - path: browse
+ keywordsfilters:
+ # the site uses % for wildcard
+ - name: re_replace
+ args: ["[^a-zA-Z0-9]+", "%"]
+ inputs:
+ $raw: "{{ range .Categories }}cat[]={{.}}&{{end}}"
+ search: "{{ .Keywords }}"
+ # 0 active, 1 incldead, 2 onlydead
+ incldead: 1
+ sort: "{{ .Config.sort }}"
+ order: "{{ .Config.type }}"
+ # does not support imdbid searches
+
+ rows:
+ selector: "table#torrenttable > tbody > tr:has(a[onclick]):not(:contains(\"Törölt\")){{ if .Config.freeleech }}:has(img[src$=\"/freeicon.png\"]){{ else }}{{ end }}"
+
+ fields:
+ categorydesc:
+ selector: img
+ attribute: alt
+ title:
+ selector: a[onclick]
+ remove: style
+ _id:
+ selector: a[onclick]
+ attribute: onclick
+ filters:
+ - name: regexp
+ args: (\d+)
+ details:
+ text: "details?id={{ .Result._id }}"
+ download:
+ text: "/raw/download?id={{ .Result._id }}&name={{ .Result.title }}.torrent"
+ imdbid:
+ selector: a[href*="imdb.com/title/tt"]
+ attribute: href
+ description:
+ case:
+ img[src$="/yes.png"]: "Verified"
+ img[src$="/nincs.png"]: "Unverified"
+ poster:
+ selector: img[width="200"][height="250"]
+ attribute: src
+ date:
+ selector: td:nth-last-child(6)
+ filters:
+ - name: append
+ args: " +01:00" # CET
+ - name: dateparse
+ args: "yyyy-MM-dd HH:mm:ss zzz"
+ size:
+ selector: td:nth-last-child(5)
+ grabs:
+ selector: td:nth-last-child(4)
+ seeders:
+ selector: td:nth-last-child(3)
+ leechers:
+ selector: td:nth-last-child(2)
+ downloadvolumefactor:
+ case:
+ img[src$="/freeicon.png"]: 0
+ "*": 1
+ uploadvolumefactor:
+ case:
+ img[src$="/2xup.jpg"]: 2
+ "*": 1
+ minimumratio:
+ text: 1.0
+ minimumseedtime:
+ # 2 days (as seconds = 2 x 24 x 60 x 60)
+ text: 172800
+# engine n/a
diff --git a/mock-htpc/prowlarr/Definitions/bitporn.yml b/mock-htpc/prowlarr/Definitions/bitporn.yml
index 8c8d1c4..3162b03 100644
--- a/mock-htpc/prowlarr/Definitions/bitporn.yml
+++ b/mock-htpc/prowlarr/Definitions/bitporn.yml
@@ -27,11 +27,13 @@ caps:
- {id: 424, cat: XXX, desc: "Cumshot"}
- {id: 451, cat: XXX, desc: "Deepthroat"}
- {id: 455, cat: XXX, desc: "Extreme"}
+ - {id: 460, cat: XXX, desc: "Fansite"}
- {id: 454, cat: XXX, desc: "Family"}
- {id: 425, cat: XXX, desc: "Feature"}
- {id: 426, cat: XXX, desc: "Fetish"}
- {id: 457, cat: XXX, desc: "Fisting"}
- {id: 453, cat: XXX, desc: "Gangbang"}
+ - {id: 459, cat: XXX, desc: "Game"}
- {id: 427, cat: XXX, desc: "Gay / Bi"}
- {id: 412, cat: XXX, desc: "Hair"}
- {id: 411, cat: XXX, desc: "Hardcore"}
diff --git a/mock-htpc/prowlarr/Definitions/bitsearch.yml b/mock-htpc/prowlarr/Definitions/bitsearch.yml
index d1e16a3..0a22788 100644
--- a/mock-htpc/prowlarr/Definitions/bitsearch.yml
+++ b/mock-htpc/prowlarr/Definitions/bitsearch.yml
@@ -9,13 +9,6 @@ requestDelay: 2
links:
- https://bitsearch.to/
legacylinks:
- - https://bitsearch.nocensor.biz/
- - https://bitsearch.nocensor.sbs/
- - https://bitsearch.nocensor.world/
- - https://bitsearch.nocensor.lol/
- - https://bitsearch.mrunblock.guru/
- - https://bitsearch.mrunblock.life/
- - https://bitsearch.nocensor.click/
- https://bitsearch.nocensor.cloud/
- https://bitsearch.mrunblock.bond/
@@ -43,7 +36,7 @@ caps:
"Other/Program": PC/0day
"Other/Sourcecode": PC
"Other/Source Code": PC
- "Other/Video": TV
+ "Other/Video": Other
Softwares: PC/0day
"Softwares/Windows": PC/0day
TV: TV
@@ -77,6 +70,10 @@ settings:
options:
desc: desc
asc: asc
+ - name: info_category_8000
+ type: info
+ label: About BitSearch Categories
+ default: BitSearch does not properly return categories in its search results for some releases.To add to your Apps' Torznab indexer, you will need to include the 8000(Other) category.
search:
paths:
diff --git a/mock-htpc/prowlarr/Definitions/bitturk.yml b/mock-htpc/prowlarr/Definitions/bitturk.yml
index 188116b..023289f 100644
--- a/mock-htpc/prowlarr/Definitions/bitturk.yml
+++ b/mock-htpc/prowlarr/Definitions/bitturk.yml
@@ -14,7 +14,6 @@ legacylinks:
caps:
categorymappings:
- {id: 56, cat: Movies, desc: "BTRG"}
- - {id: 95, cat: Movies, desc: "BTRG HMAX"}
- {id: 57, cat: Movies, desc: "Yerli Dizi"}
- {id: 62, cat: Movies, desc: "Yab@ncı Dizi"}
- {id: 63, cat: Movies, desc: "Türkçe Film"}
@@ -29,12 +28,14 @@ caps:
- {id: 91, cat: TV, desc: "Prime Video"}
- {id: 93, cat: TV, desc: "Gain"}
- {id: 94, cat: TV, desc: "ATVP"}
+ - {id: 95, cat: Movies, desc: "HMAX"}
+ - {id: 98, cat: Movies, desc: "PUHUTV"}
- {id: 58, cat: Movies, desc: "Film"}
- {id: 72, cat: Movies, desc: "Belgesel"}
- {id: 60, cat: Movies/3D, desc: "3D"}
- {id: 76, cat: Movies/UHD, desc: "4K UHD"}
- {id: 80, cat: TV/Sport, desc: "Formula-1"}
- - {id: 45, cat: Other, desc: "Eğitim / Prog"}
+ - {id: 45, cat: Other, desc: "Eğitim/Prog"}
- {id: 1, cat: Movies, desc: "Filmler"}
- {id: 14, cat: Movies/3D, desc: "3D Film"}
- {id: 77, cat: Movies/UHD, desc: "4K UHD"}
@@ -67,7 +68,6 @@ caps:
- {id: 88, cat: Console/Other, desc: "Oyun NEO-GEO"}
- {id: 89, cat: Console/Wii, desc: "Oyun Nintendo Wii"}
- {id: 6, cat: PC/0day, desc: "Program"}
- - {id: 92, cat: PC/Mobile-Android, desc: "Android"}
- {id: 47, cat: Other, desc: "Resimler"}
- {id: 48, cat: TV, desc: "Televizyon"}
- {id: 49, cat: TV/HD, desc: "Tv HD"}
@@ -96,7 +96,7 @@ settings:
- name: info
type: info
label: Layout
- default: "- Only the English Classic profile is supported.
- Make sure to set the Torrent Listing (Listeleme Biçimi) option in your profile to Classic (Klasik)
- And set the Language (Dil) to English
- Using the Modern theme will prevent results, and using Turkish will prevent upload dates.
"
+ default: "- Only the English Classic profile is supported.
- Make sure to set the Torrent Listing (Listeleme Biçimi) option in your profile to Classic (Klasik)
- And set the Language (Dil) to English
- Using the Modern theme will prevent results, and using Turkish will prevent upload dates.
"
- name: sort
type: select
label: Sort requested from site
@@ -112,6 +112,10 @@ settings:
options:
desc: desc
asc: asc
+ - name: info_results
+ type: info
+ label: Search results
+ default: "If you are getting the error Found no results while trying to browse this tracker then first access the site with your browser and check that you are not being forced to change your password because it has expired after 365 days."
login:
path: ?p=home&pid=1
diff --git a/mock-htpc/prowlarr/Definitions/blueroms.yml b/mock-htpc/prowlarr/Definitions/blueroms.yml
new file mode 100644
index 0000000..8969ca1
--- /dev/null
+++ b/mock-htpc/prowlarr/Definitions/blueroms.yml
@@ -0,0 +1,112 @@
+---
+id: blueroms
+name: BlueRoms
+description: "BlueRoms is a Public Torrent Tracker for ROMS"
+language: en-US
+type: public
+encoding: UTF-8
+links:
+ - https://www.blueroms.ws/
+
+caps:
+ categorymappings:
+ - {id: "/3ds", cat: Console/3DS, desc: "3DS"}
+ - {id: "/arcade", cat: Console/Other, desc: "Arcade"}
+ - {id: "/dreamcast", cat: Console/Other, desc: "Dreamcast"}
+ - {id: "/nds", cat: Console/Other, desc: "DS"}
+ - {id: "/gba", cat: Console/Other, desc: "Game Boy Advance"}
+ - {id: "/gamecube", cat: Console/Other, desc: "GameCube"}
+ - {id: "/genesis", cat: Console/Other, desc: "Mega Drive - Genesis"}
+ - {id: "/neogeo", cat: Console/Other, desc: "Neo Geo"}
+ - {id: "/n64", cat: Console/NDS, desc: "Nintendo 64"}
+ - {id: "/switch", cat: Console/NDS, desc: "Nintendo Switch"}
+ - {id: "/ps1", cat: Console/PS3, desc: "PlayStation"}
+ - {id: "/ps2", cat: Console/PS3, desc: "PlayStation 2"}
+ - {id: "/ps3", cat: Console/PS3, desc: "PlayStation 3"}
+ - {id: "psp", cat: Console/PSP, desc: "PlayStation Portable"}
+ - {id: "/saturn", cat: Console/Other, desc: "Saturn"}
+ - {id: "/snes", cat: Console/NDS, desc: "Super Nintendo"}
+ - {id: "/wii", cat: Console/Wii, desc: "Wii"}
+ - {id: "/xbox", cat: Console/XBox, desc: "Xbox"}
+
+ modes:
+ search: [q]
+
+settings:
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: date
+ options:
+ date: created
+ size: size
+ name: title
+ - name: type
+ type: select
+ label: Order requested from site
+ default: desc
+ options:
+ desc: desc
+ asc: asc
+
+download:
+ selectors:
+ - selector: a[href^="magnet:?xt="]
+ attribute: href
+
+search:
+ paths:
+ # https://www.blueroms.ws/search?page=1&q=&g=0&p=0&ord=desc&at=date
+ - path: search
+ allowEmptyInputs: true
+ inputs:
+ page: 1
+ q: "{{ .Keywords }}"
+ # genre: 0 all, 200 action, 207 adventure, etc
+ g: 0
+ # categories does not support multi selection so defaulting to all
+ p: 0
+ ord: "{{ .Config.type }}"
+ at: "{{ .Config.sort }}"
+
+ rows:
+ selector: div.row > div.col-xs-12
+
+ fields:
+ category:
+ selector: p.card-text a
+ attribute: href
+ _platform:
+ selector: p.card-text a
+ title:
+ selector: h4.card-title a
+ filters:
+ - name: append
+ args: " - {{ .Result._platform }}"
+ details:
+ selector: h4.card-title a
+ attribute: href
+ download:
+ selector: div.card-footer a
+ attribute: href
+ size:
+ selector: p.card-text
+ filters:
+ - name: regexp
+ args: (\d+\.?\d+[T|G|K]iB)
+ date:
+ selector: p.card-text
+ filters:
+ - name: regexp
+ args: (\d{4}-\d{2}-\d{2})
+ - name: dateparse
+ args: "yyyy-MM-dd"
+ seeders:
+ text: 1
+ leechers:
+ text: 1
+ downloadvolumefactor:
+ text: 0
+ uploadvolumefactor:
+ text: 1
+# engine n/a
diff --git a/mock-htpc/prowlarr/Definitions/bluraytracker.yml b/mock-htpc/prowlarr/Definitions/bluraytracker.yml
new file mode 100644
index 0000000..b0b084f
--- /dev/null
+++ b/mock-htpc/prowlarr/Definitions/bluraytracker.yml
@@ -0,0 +1,181 @@
+---
+id: bluraytracker
+name: BlurayTracker
+description: "BlurayTracker is a CZECH Private Torrent Tracker for MOVIES / TV / GENERAL"
+language: cs-CZ
+type: private
+encoding: UTF-8
+links:
+ - https://bluraytracker.cz/
+
+caps:
+ categorymappings:
+ - {id: 1, cat: Movies, desc: "-----Filmy-----"}
+ - {id: 34, cat: Movies, desc: " |- Filmy CZ/SK Dabing"}
+ - {id: 33, cat: Movies, desc: " |- Filmy CZ/SK Titulky"}
+ - {id: 49, cat: Movies/HD, desc: " |- HD/FHD Filmy"}
+ - {id: 17, cat: Movies/UHD, desc: " |- 4k/UHD Filmy "}
+ - {id: 31, cat: Movies/BluRay, desc: " |- Bluray DB/BD/DVD"}
+ - {id: 51, cat: Movies/3D, desc: " |- 3D Filmy"}
+ - {id: 14, cat: Movies/SD, desc: " |- DivX"}
+ - {id: 45, cat: Movies/Other, desc: " |- Kreslené/Anime"}
+ - {id: 16, cat: Movies/SD, desc: " |- CAM/Kino"}
+ - {id: 40, cat: TV, desc: "-----TV-----"}
+ - {id: 32, cat: TV, desc: " |- Serialy CZ/SK/EN"}
+ - {id: 47, cat: TV, desc: " |- Serialy"}
+ - {id: 38, cat: TV/Documentary, desc: " |- Dokumenty / TV Reality"}
+ - {id: 35, cat: TV/Sport, desc: " |- Sport"}
+ - {id: 6, cat: PC, desc: "Aplikace/Programy"}
+ - {id: 18, cat: PC/0day, desc: " |- Programy PC"}
+ - {id: 19, cat: PC/Mac, desc: " |- Programy MacOS"}
+ - {id: 7, cat: Audio, desc: "-----Hudba-----"}
+ - {id: 39, cat: Audio/Audiobook, desc: " |- Mluvene Slovo"}
+ - {id: 21, cat: Audio, desc: " |- MP3/FLAC"}
+ - {id: 43, cat: Audio/Other, desc: " |- SoundTrack"}
+ - {id: 2, cat: PC/Games, desc: "--Hry--"}
+ - {id: 3, cat: Console/PS3, desc: " |- Sony PS"}
+ - {id: 4, cat: Console/Wii, desc: " |- Wii"}
+ - {id: 26, cat: Console/XBox, desc: " |- XboX"}
+ - {id: 27, cat: PC/Games, desc: " |- PC"}
+ - {id: 28, cat: Console/NDS, desc: " |- Nintendo"}
+ - {id: 42, cat: Books, desc: "Knihy A Časopisy"}
+ - {id: 36, cat: Other, desc: "Ostatní"}
+ - {id: 46, cat: XXX, desc: "XXX (18+)"}
+ # not listed
+ - {id: 41, cat: Movies, desc: "VIP Torrent"}
+ - {id: 48, cat: Movies, desc: " |- RLS"}
+
+ modes:
+ search: [q]
+ tv-search: [q, season, ep]
+ movie-search: [q]
+ music-search: [q]
+ book-search: [q]
+
+settings:
+ - name: username
+ type: text
+ label: Username
+ - name: password
+ type: password
+ label: Password
+ - name: freeleech
+ type: checkbox
+ label: Filter freeleech only
+ default: false
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: added
+ options:
+ added: created
+ seeders: seeders
+ size: size
+ - name: type
+ type: select
+ label: Order requested from site
+ default: desc
+ options:
+ desc: desc
+ asc: asc
+
+login:
+ path: ?p=home&pid=1
+ method: form
+ form: form#sls_form
+ submitpath: ajax/login.php
+ inputs:
+ action: login
+ loginbox_membername: "{{ .Config.username }}"
+ loginbox_password: "{{ .Config.password }}"
+ loginbox_remember: true
+ error:
+ - selector: div.error
+ test:
+ path: ?p=home&pid=1
+ selector: div#member_info_bar
+
+search:
+ paths:
+ - path: /
+ inputs:
+ p: torrents
+ pid: 32
+ $raw: "{{ range .Categories }}cid[]={{.}}&{{end}}"
+ keywords: "{{ .Keywords }}"
+ # name, description, both, uploader
+ search_type: name
+ "sortOptions[sortBy]": "{{ .Config.sort }}"
+ "sortOptions[sortOrder]": "{{ .Config.type }}"
+ # does not support imdbid search but has imdbid links in results.
+ error:
+ - selector: div.error:not(:contains("There are no results found."))
+
+ rows:
+ selector: "div.torrent-box[id^=\"torrent_\"]{{ if .Config.freeleech }}:has(img[src$=\"/torrent_free.png\"]){{ else }}{{ end }}"
+
+ fields:
+ category:
+ selector: a[href*="?p=torrents&pid=10&cid="]
+ attribute: href
+ filters:
+ - name: querystring
+ args: cid
+ title:
+ selector: a[href*="?p=torrents&pid=10&action=details&tid="]
+ details:
+ selector: a[href*="?p=torrents&pid=10&action=details&tid="]
+ attribute: href
+ download:
+ selector: a[href*="?p=torrents&pid=10&action=download&tid="]
+ attribute: href
+ magnet:
+ selector: a[href^="magnet:?xt="]
+ attribute: href
+ optional: true
+ poster:
+ selector: a[href*="data/torrents/torrent_images/"]
+ attribute: href
+ imdbid:
+ selector: a[href*="imdb.com/title/tt"]
+ attribute: href
+ size:
+ selector: a[rel="torrent_size"]
+ grabs:
+ selector: a[rel="times_completed"]
+ seeders:
+ selector: a[rel="torrent_seeders"]
+ leechers:
+ selector: a[rel="torrent_leechers"]
+ date_day:
+ selector: div.torrentOwner:contains("day")
+ # auto adjusted by site account profile
+ optional: true
+ filters:
+ - name: regexp
+ args: "Uploaded (.+?) by"
+ - name: fuzzytime
+ date_year:
+ selector: div.torrentOwner:contains("-")
+ # auto adjusted by site account profile
+ optional: true
+ filters:
+ - name: regexp
+ args: "Uploaded (.+?) by"
+ - name: dateparse
+ args: "dd-MM-yyyy HH:mm"
+ date_unix:
+ selector: div.torrentOwner abbr
+ optional: true
+ attribute: data-time
+ date:
+ text: "{{ if or .Result.date_day .Result.date_year .Result.date_unix }}{{ or .Result.date_day .Result.date_year .Result.date_unix }}{{ else }}now{{ end }}"
+ downloadvolumefactor:
+ case:
+ img[src$="/torrent_free.png"]: 0
+ "*": 1
+ uploadvolumefactor:
+ text: 1
+ minimumratio:
+ text: 0.5
+# TSUE 2.2
diff --git a/mock-htpc/prowlarr/Definitions/blutopia-api.yml b/mock-htpc/prowlarr/Definitions/blutopia-api.yml
index 884fbab..2643790 100644
--- a/mock-htpc/prowlarr/Definitions/blutopia-api.yml
+++ b/mock-htpc/prowlarr/Definitions/blutopia-api.yml
@@ -13,14 +13,17 @@ legacylinks:
caps:
categorymappings:
- {id: 1, cat: Movies, desc: "Movie"}
+ - {id: 8, cat: Other, desc: "Other"}
- {id: 2, cat: TV, desc: "TV Show"}
- {id: 3, cat: Movies/Other, desc: "FANRES"}
- {id: 5, cat: Movies/Other, desc: "Trailer"}
+ - {id: 9, cat: Audio/Video, desc: "Live Concert"}
modes:
search: [q]
tv-search: [q, season, ep, imdbid, tvdbid, tmdbid]
movie-search: [q, imdbid, tmdbid]
+ music-search: [q]
settings:
- name: apikey
@@ -62,16 +65,16 @@ settings:
login:
path: /api/torrents
method: get
- inputs: {} # TODO: remove in v10
error:
- selector: a[href*="/login"]
message:
text: "The API key was not accepted by {{ .Config.sitelink }}."
+ - selector: :root:contains("Account is Banned")
search:
paths:
- # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v7.0.0)
- # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L349
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
- path: "/api/torrents/filter"
response:
type: json
@@ -106,6 +109,13 @@ search:
selector: category_id
title_optional:
selector: name
+ title_filename:
+ selector: "files[0].name"
+ optional: true
+ files:
+ selector: num_file
+ title:
+ text: "{{ if and (.Config.single_file_release_use_filename) (eq .Result.files \"1\") (.Result.title_filename) }}{{ .Result.title_filename }}{{ else }}{{ .Result.title_optional }}{{ end }}"
details:
selector: details_link
download:
@@ -134,8 +144,6 @@ search:
args: [" & ", "_&_"]
description:
text: "{{ .Result.genre }}"
- files:
- selector: num_file
seeders:
selector: seeders
leechers:
@@ -152,7 +160,12 @@ search:
args: "MM/dd/yyyy HH:mm:ss zzz"
size:
selector: size
- downloadvolumefactor:
+ _featured:
+ selector: featured
+ case:
+ False: "{{ .False }}"
+ True: "{{ .True }}"
+ downloadvolumefactor_freeleech:
# api returns 0%, 25%, 50%, 75%, 100%
selector: freeleech
case:
@@ -162,21 +175,20 @@ search:
75%: 0.25
100%: 0 # freeleech
"*": 0 # catch errors
- uploadvolumefactor:
+ downloadvolumefactor:
+ text: "{{ if .Result._featured }}0{{ else }}{{ .Result.downloadvolumefactor_freeleech }}{{ end }}"
+ uploadvolumefactor_double_upload:
# api returns False, True
selector: double_upload
case:
False: 1 # normal
True: 2 # double
+ uploadvolumefactor:
+ text: "{{ if .Result._featured }}2{{ else }}{{ .Result.uploadvolumefactor_double_upload }}{{ end }}"
# global MR is 0.4 but torrents must be seeded for 7 days regardless of ratio
# minimumratio:
# text: 0.4
minimumseedtime:
- # 7 day (as seconds = 7 x 24 x 60 x 60)
+ # 7 days (as seconds = 7 x 24 x 60 x 60)
text: 604800
- title_filename:
- selector: "files[0].name"
- optional: true
- title:
- text: "{{ if and (.Config.single_file_release_use_filename) (eq .Result.files \"1\") (.Result.title_filename) }}{{ .Result.title_filename }}{{ else }}{{ .Result.title_optional }}{{ end }}"
-# json UNIT3D 8.0.0b
+# json UNIT3D 8.3.4
diff --git a/mock-htpc/prowlarr/Definitions/bootytape.yml b/mock-htpc/prowlarr/Definitions/bootytape.yml
index b003ca3..887f6a5 100644
--- a/mock-htpc/prowlarr/Definitions/bootytape.yml
+++ b/mock-htpc/prowlarr/Definitions/bootytape.yml
@@ -5,6 +5,7 @@ description: "BootyTape is a Semi-Private site for 3X"
language: en-US
type: semi-private
encoding: UTF-8
+requestDelay: 3
links:
- https://ssl.bootytape.com/
diff --git a/mock-htpc/prowlarr/Definitions/brasiltracker.yml b/mock-htpc/prowlarr/Definitions/brasiltracker.yml
index 855b569..bc126ba 100644
--- a/mock-htpc/prowlarr/Definitions/brasiltracker.yml
+++ b/mock-htpc/prowlarr/Definitions/brasiltracker.yml
@@ -9,8 +9,22 @@ links:
- https://brasiltracker.org/
caps:
- categories:
- Other: Other
+ categorymappings:
+ - {id: 16, cat: Audio/Audiobook, desc: "Audiobooks"}
+ - {id: 6, cat: TV/Anime, desc: "Animes"}
+ - {id: 11, cat: PC/0day, desc: "Aplicativos"}
+ - {id: 15, cat: Other, desc: "Cursos"}
+ - {id: 8, cat: TV/Documentary, desc: "Documentários"}
+ - {id: 14, cat: TV/Sport, desc: "Esportes"}
+ - {id: 3, cat: XXX, desc: "Filmes XXX"}
+ - {id: 1, cat: Movies, desc: "Filmes"}
+ - {id: 12, cat: Books/Comics, desc: "Histórias em Quadrinhos"}
+ - {id: 9, cat: PC/Games, desc: "Jogos"}
+ - {id: 13, cat: Books/EBook, desc: "Livros"}
+ - {id: 10, cat: Books/Mags, desc: "Revistas"}
+ - {id: 2, cat: TV, desc: "Séries"}
+ - {id: 5, cat: Audio/Video, desc: "Show"}
+ - {id: 7, cat: TV, desc: "Televisão"}
modes:
search: [q]
@@ -25,10 +39,6 @@ settings:
type: info
label: How to get the Cookie
default: "- Login to this tracker with your browser
- Open the DevTools panel by pressing F12
- Select the Network tab
- Click on the Doc button (Chrome Browser) or HTML button (FireFox)
- Refresh the page by pressing F5
- Click on the first row entry
- Select the Headers tab on the Right panel
- Find 'cookie:' in the Request Headers section
- Select and Copy the whole cookie string (everything after 'cookie: ') and Paste here.
"
- - name: info_8000
- type: info
- label: About BrasilTracker Categories
- default: BrasilTracker does not return categories in its search results.To add to your Apps' Torznab indexer, replace all categories with 8000(Other).
- name: freeleech
type: checkbox
label: Search freeleech only
@@ -64,6 +74,7 @@ search:
# https://brasiltracker.org/torrents.php?searchstr=tt8179024&order_by=time&order_way=desc&action=basic&searchsubmit=1
- path: torrents.php
inputs:
+ $raw: "{{ range .Categories }}filter_cat[{{.}}]=1&{{end}}"
searchstr: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
order_by: "{{ .Config.sort }}"
order_way: "{{ .Config.type }}"
@@ -77,7 +88,24 @@ search:
fields:
category:
- text: Other
+ selector: td.big_info div.group_info
+ case:
+ "div:contains(\"[Audiobooks]\")": 16
+ "div:contains(\"[Animes]\")": 6
+ "div:contains(\"[Aplicativos]\")": 11
+ "div:contains(\"[Cursos]\")": 15
+ "div:contains(\"[Documentários]\")": 8
+ "div:contains(\"[Esportes]\")": 14
+ "div:contains(\"[Filmes XXX]\")": 3
+ "div:contains(\"[Filmes]\")": 1
+ "div:contains(\"[Histórias em Quadrinhos]\")": 12
+ "div:contains(\"[Jogos]\")": 9
+ "div:contains(\"[Livros]\")": 13
+ "div:contains(\"[Revistas]\")": 10
+ "div:contains(\"[Séries]\")": 2
+ "div:contains(\"[Show]\")": 5
+ "div:contains(\"[Televisão]\")": 7
+ "*": 0 # catch errors
details:
selector: a[href^="torrents.php?id="]
attribute: href
@@ -122,11 +150,33 @@ search:
title_details:
selector: div.torrent_info
remove: strong
+ year:
+ selector: td.big_info div.group_info
+ optional: true
+ filters:
+ - name: regexp
+ args: "\\[((?:19|20)\\d{2})\\]"
title:
selector: a[href^="torrents.php?id="]
filters:
+ - name: re_replace
+ args: ["\\[([^\\]]+)\\]", " / $1"]
+ - name: append
+ args: "{{ if .Result.year }} ({{ .Result.year }}){{ else }}{{ end }}"
- name: append
args: " {{ .Result.title_details }}"
+ - name: re_replace
+ args: ["\\bWEB\\b(?![-_. ]?DL)", "WEB-DL"]
+ - name: re_replace
+ args: ["(?i)\\b4K\\b", "2160p"]
+ - name: re_replace
+ args: ["(?i)\\bFull HD\\b", "1080p"]
+ - name: re_replace
+ args: ["(?i)\\b(? script
+ selector: a.smashTitle > script:contains("decodeURIComponent")
filters:
- name: urldecode
- name: replace
@@ -74,6 +72,7 @@ search:
args: ["", ""]
- name: replace
args: ["", ""]
+ - name: htmldecode
details:
selector: a.smashTitle
attribute: href
diff --git a/mock-htpc/prowlarr/Definitions/btschool.yml b/mock-htpc/prowlarr/Definitions/btschool.yml
index 08a7efa..ea9b822 100644
--- a/mock-htpc/prowlarr/Definitions/btschool.yml
+++ b/mock-htpc/prowlarr/Definitions/btschool.yml
@@ -39,10 +39,8 @@ settings:
type: checkbox
label: Search freeleech only
default: false
- - name: flaresolverr
- type: info
- label: FlareSolverr
- default: This site may use Cloudflare DDoS Protection, therefore Prowlarr requires FlareSolverr to access it.
+ - name: info_flaresolverr
+ type: info_flaresolverr
- name: info_tpp
type: info
label: Results Per Page
@@ -50,7 +48,7 @@ settings:
- name: info_activity
type: info
label: Account Inactivity
- default: "Cherish your user account. Inactive accounts would be deleted based on the following rules:- Extreme User or above would never be deleted.
- Veteran User or above would never be deleted if packed (at User CP).
- Packed accounts would be deleted if users have not logged in for more than 365 days in a row.
- Unpacked accounts would be deleted if users have not logged in for more than 150 days in a row.
- Accounts with both uploaded and downloaded amount being 0 would be deleted if users have not logged in for more than 30 days in a row.
"
+ default: "Cherish your user account. Inactive accounts would be deleted based on the following rules:- Extreme User or above would never be deleted.
- Veteran User or above would never be deleted if parked (at User CP).
- Parked accounts would be deleted if users have not logged in for more than 365 days in a row.
- Unparked accounts would be deleted if users have not logged in for more than 150 days in a row.
- Accounts with both uploaded and downloaded amount being 0 would be deleted if users have not logged in for more than 30 days in a row.
"
login:
path: login.php
diff --git a/mock-htpc/prowlarr/Definitions/btsow.yml b/mock-htpc/prowlarr/Definitions/btsow.yml
index c572199..77a1a87 100644
--- a/mock-htpc/prowlarr/Definitions/btsow.yml
+++ b/mock-htpc/prowlarr/Definitions/btsow.yml
@@ -9,7 +9,6 @@ encoding: UTF-8
links:
- https://btsow.motorcycles/
legacylinks:
- - https://btsow.rest/
- https://btsow.bar/
- https://btsow.click/
- https://btsow.cfd/
@@ -24,6 +23,7 @@ legacylinks:
- https://btsow.skin/
- https://btsow.makeup/
- https://btsow.homes/
+ - https://btsow.yachts/
caps:
categories:
@@ -37,10 +37,8 @@ caps:
book-search: [q]
settings:
- - name: info_8000
- type: info
- label: About BTSOW Categories
- default: BTSOW does not return categories in its search results.To add to your Apps' Torznab indexer, replace all categories with 8000(Other).
+ - name: info_category_8000
+ type: info_category_8000
download:
selectors:
diff --git a/mock-htpc/prowlarr/Definitions/bwtorrents.yml b/mock-htpc/prowlarr/Definitions/bwtorrents.yml
index 2a7a671..5fc4633 100644
--- a/mock-htpc/prowlarr/Definitions/bwtorrents.yml
+++ b/mock-htpc/prowlarr/Definitions/bwtorrents.yml
@@ -7,13 +7,15 @@ type: private
encoding: UTF-8
links:
- https://bwtorrents.tv/
- - https://bwtorrents.co/
+ - https://www.bwtorrents.life/
+ - https://www.bwtorrents.pro/
- https://bwtorrents.cc/
legacylinks:
- https://bwtorrents.fun/
- https://bwtorrents.xyz/
- https://bwtorrents.us/
- https://bwtorrents.live/
+ - https://bwtorrents.co/
caps:
categorymappings:
@@ -144,6 +146,8 @@ settings:
type: checkbox
label: Search freeleech only
default: false
+ - name: info_flaresolverr
+ type: info_flaresolverr
- name: info_activity
type: info
label: Account Inactivity
@@ -176,6 +180,8 @@ search:
rows:
selector: table[width="1200"] > tbody > tr:has(a[href^="download.php/"])
+ filters:
+ - name: andmatch
fields:
category:
diff --git a/mock-htpc/prowlarr/Definitions/byrutor.yml b/mock-htpc/prowlarr/Definitions/byrutor.yml
index 5fd48a3..70af4f7 100644
--- a/mock-htpc/prowlarr/Definitions/byrutor.yml
+++ b/mock-htpc/prowlarr/Definitions/byrutor.yml
@@ -6,11 +6,13 @@ language: ru-RU
type: public
encoding: UTF-8
links:
- - https://thebyrut.org/
+ - https://byrutgame.org/
legacylinks:
- https://byrutor.org/
- https://byrutdb.org/
- https://byrut.org/
+ - https://thebyrut.org/
+ - https://byruthub.org/
caps:
categorymappings:
@@ -354,44 +356,32 @@ search:
rows:
# results without sizes are just pre-release announcements
- selector: div.short_search:has(div.shor_subtitles span:nth-child(2):contains(" "))
+ selector: a.search_res:has(div.search_res_sub span:nth-child(2):contains(" "))
fields:
category:
text: 1
year:
- selector: div.shor_subtitles span
+ selector: div.search_res_sub span
filters:
- name: regexp
args: (\d+)
title:
- selector: div.short_titles > a
+ selector: a.search_res
filters:
- name: append
args: " [{{ .Result.year }}]"
details:
- selector: div.short_titles > a
+ selector: a.search_res
attribute: href
download:
- selector: div.short_titles > a
+ selector: a.search_res
attribute: href
poster:
selector: img
attribute: src
- date:
- selector: img
- attribute: src
- filters:
- - name: regexp
- args: ".*/(\\d{4}-\\d{2})/.*"
- - name: dateparse
- args: "yyyy-MM"
- seeders:
- text: 1
- leechers:
- text: 1
size_rus:
- selector: div.shor_subtitles span:nth-child(2):contains("Б")
+ selector: div.search_res_sub span:nth-child(2):contains("Б")
optional: true
default: "0 B"
filters:
@@ -404,9 +394,15 @@ search:
- name: replace
args: ["КБ", "KB"]
size:
- selector: div.shor_subtitles span:nth-child(2):contains("B")
+ selector: div.search_res_sub span:nth-child(2):contains("B")
optional: true
default: "{{ .Result.size_rus }}"
+ date:
+ text: now
+ seeders:
+ text: 1
+ leechers:
+ text: 1
downloadvolumefactor:
text: 0
uploadvolumefactor:
diff --git a/mock-htpc/prowlarr/Definitions/capybarabr.yml b/mock-htpc/prowlarr/Definitions/capybarabr.yml
new file mode 100644
index 0000000..1b91711
--- /dev/null
+++ b/mock-htpc/prowlarr/Definitions/capybarabr.yml
@@ -0,0 +1,199 @@
+---
+id: capybarabr
+name: CapybaraBR
+description: "CapybaraBR is a BRAZILIAN Private Torrent Tracker for MOVIES / TV / GENERAL"
+language: pt-BR
+type: private
+encoding: UTF-8
+links:
+ - https://capybarabr.com/
+
+caps:
+ categorymappings:
+ - {id: 1, cat: Movies, desc: "Filmes"}
+ - {id: 2, cat: TV, desc: "Series"}
+ - {id: 4, cat: TV/Anime, desc: "Animes"}
+ - {id: 8, cat: TV/Sport, desc: "Esportes"}
+ - {id: 6, cat: Movies, desc: "Desenhos Animados"}
+ - {id: 5, cat: Console, desc: "Jogos"}
+ - {id: 9, cat: PC, desc: "Programas"}
+ - {id: 10, cat: Audio, desc: "HQs"}
+ - {id: 11, cat: Books/EBook, desc: "Livros"}
+ - {id: 12, cat: Other, desc: "Cursos"}
+ - {id: 13, cat: Books/Mags, desc: "Revistas"}
+
+ modes:
+ search: [q]
+ tv-search: [q, season, ep, imdbid, tvdbid, tmdbid]
+ movie-search: [q, imdbid, tmdbid]
+ music-search: [q]
+ book-search: [q]
+
+settings:
+ - name: apikey
+ type: text
+ label: APIKey
+ - name: info_key
+ type: info
+ label: About your API key
+ default: "Find or Generate a new API Token by accessing your CapybaraBR account My Settings page and clicking on the API Key tab."
+ - name: freeleech
+ type: checkbox
+ label: Search freeleech only
+ default: false
+ - name: use_single_file_release_use_filename
+ type: checkbox
+ label: Use filename as the title for single file releases
+ default: false
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: created_at
+ options:
+ created_at: created
+ seeders: seeders
+ size: size
+ name: title
+ - name: type
+ type: select
+ label: Order requested from site
+ default: desc
+ options:
+ desc: desc
+ asc: asc
+ - name: info_activity
+ type: info
+ label: Account Inactivity
+ default: "The system automatically makes an account inactive when not logged in for a period of 90 days. So just log in within this time so that it is not inactivated."
+
+login:
+ path: /api/torrents
+ method: get
+ inputs: {} # TODO: remove in v10
+ error:
+ - selector: a[href*="/login"]
+ message:
+ text: "The API key was not accepted by {{ .Config.sitelink }}."
+ - selector: :root:contains("Account is Banned")
+
+search:
+ paths:
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
+ - path: "/api/torrents/filter"
+ response:
+ type: json
+
+ headers:
+ Authorization: ["Bearer {{ .Config.apikey }}"]
+
+ inputs:
+ # if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
+ $raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
+ name: "{{ .Keywords }}"
+ seasonNumber: "{{ .Query.Season }}"
+ episodeNumber: "{{ .Query.Ep }}"
+ imdbId: "{{ .Query.IMDBIDShort }}"
+ tmdbId: "{{ .Query.TMDBID }}"
+ tvdbId: "{{ .Query.TVDBID }}"
+ "free[]": "{{ if .Config.freeleech }}100{{ else }}{{ end }}"
+ sortField: "{{ .Config.sort }}"
+ sortDirection: "{{ .Config.type }}"
+ perPage: 100
+
+ keywordsfilters:
+ - name: re_replace
+ args: ["\\.", " "]
+
+ rows:
+ selector: data
+ attribute: attributes
+
+ fields:
+ category:
+ selector: category_id
+ title_optional:
+ selector: name
+ title_filename:
+ selector: "files[0].name"
+ optional: true
+ files:
+ selector: num_file
+ title:
+ text: "{{ if and (.Config.use_single_file_release_use_filename) (eq .Result.files \"1\") (.Result.title_filename) }}{{ .Result.title_filename }}{{ else }}{{ .Result.title_optional }}{{ end }}"
+ details:
+ selector: details_link
+ download:
+ selector: download_link
+ infohash:
+ selector: info_hash
+ poster:
+ selector: meta.poster
+ filters:
+ - name: replace
+ args: ["https://via.placeholder.com/90x135", ""]
+ imdbid:
+ selector: imdb_id
+ tmdbid:
+ selector: tmdb_id
+ tvdbid:
+ selector: tvdb_id
+ genre:
+ selector: meta.genres
+ filters:
+ - name: re_replace
+ args: ["(?i)(Ficção científica)", "Ficção_científica"]
+ - name: re_replace
+ args: ["(?i)(Cinema TV)", "Cinema_TV"]
+ - name: replace
+ args: [" & ", "_&_"]
+ description:
+ text: "{{ .Result.genre }}"
+ seeders:
+ selector: seeders
+ leechers:
+ selector: leechers
+ grabs:
+ selector: times_completed
+ date:
+ # "created_at": "2021-10-18T00:34:50.000000Z" is returned by Newtonsoft.Json.Linq as 18/10/2021 00:34:50
+ selector: created_at
+ filters:
+ - name: append
+ args: " -03:00" # BRT
+ - name: dateparse
+ args: "MM/dd/yyyy HH:mm:ss zzz"
+ size:
+ selector: size
+ _featured:
+ selector: featured
+ case:
+ False: "{{ .False }}"
+ True: "{{ .True }}"
+ downloadvolumefactor_freeleech:
+ # api returns 0%, 25%, 50%, 75%, 100%
+ selector: freeleech
+ case:
+ 0%: 1 # not free
+ 25%: 0.75
+ 50%: 0.5
+ 75%: 0.25
+ 100%: 0 # freeleech
+ "*": 0 # catch errors
+ downloadvolumefactor:
+ text: "{{ if .Result._featured }}0{{ else }}{{ .Result.downloadvolumefactor_freeleech }}{{ end }}"
+ uploadvolumefactor_double_upload:
+ # api returns False, True
+ selector: double_upload
+ case:
+ False: 1 # normal
+ True: 2 # double
+ uploadvolumefactor:
+ text: "{{ if .Result._featured }}2{{ else }}{{ .Result.uploadvolumefactor_double_upload }}{{ end }}"
+# global MR is 1.0 but torrents must be seeded for 7 days regardless of ratio
+# minimumratio:
+# text: 1.0
+ minimumseedtime:
+ # 7 days (as seconds = 7 x 24 x 60 x 60)
+ text: 604800
+# json UNIT3D 8.3.3 (custom)
diff --git a/mock-htpc/prowlarr/Definitions/carpathians.yml b/mock-htpc/prowlarr/Definitions/carpathians.yml
index eb2137e..0ab8100 100644
--- a/mock-htpc/prowlarr/Definitions/carpathians.yml
+++ b/mock-htpc/prowlarr/Definitions/carpathians.yml
@@ -72,6 +72,8 @@ login:
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
+ error:
+ - selector: table.main:contains("Sikertelen bejelentkezés")
test:
path: index.php
selector: a[href^="logout.php"]
diff --git a/mock-htpc/prowlarr/Definitions/carphunter.yml b/mock-htpc/prowlarr/Definitions/carphunter.yml
index bfa03a8..2e7f7b0 100644
--- a/mock-htpc/prowlarr/Definitions/carphunter.yml
+++ b/mock-htpc/prowlarr/Definitions/carphunter.yml
@@ -54,10 +54,8 @@ settings:
- name: cookie
type: text
label: Cookie
- - name: info
- type: info
- label: How to get the Cookie
- default: "- Login to this tracker with your browser
- Open the DevTools panel by pressing F12
- Select the Network tab
- Click on the Doc button (Chrome Browser) or HTML button (FireFox)
- Refresh the page by pressing F5
- Click on the first row entry
- Select the Headers tab on the Right panel
- Find 'cookie:' in the Request Headers section
- Select and Copy the whole cookie string (everything after 'cookie: ') and Paste here.
"
+ - name: info_cookie
+ type: info_cookie
- name: freeleech
type: checkbox
label: Search freeleech only
@@ -77,8 +75,13 @@ settings:
options:
desc: desc
asc: asc
+ - name: info_settings
+ type: info
+ label: Settings Requirement
+ default: This indexer only supports the details link option.
Navigate to the web site account Beállítások (Settings), change the Letöltések (Download) option to Link a részletekhez (Link to Details), and click Mentés (Save). Selecting Lenyíló menü (Dropdown Menu) will return no results.
login:
+ # using cookie method because login page has embedded Google reCAPTCHA
method: cookie
inputs:
cookie: "{{ .Config.cookie }}"
diff --git a/mock-htpc/prowlarr/Definitions/carpt.yml b/mock-htpc/prowlarr/Definitions/carpt.yml
index a3ea799..9259e05 100644
--- a/mock-htpc/prowlarr/Definitions/carpt.yml
+++ b/mock-htpc/prowlarr/Definitions/carpt.yml
@@ -193,4 +193,4 @@ search:
description:
selector: td.rowfollow:nth-child(2)
remove: a, b, font, img, span
-# NexusPHP v1.8.8 2023-09-25
+# NexusPHP v1.8.14 2024-09-24
diff --git a/mock-htpc/prowlarr/Definitions/cathoderaytube.yml b/mock-htpc/prowlarr/Definitions/cathoderaytube.yml
index f5490a7..044ae1c 100644
--- a/mock-htpc/prowlarr/Definitions/cathoderaytube.yml
+++ b/mock-htpc/prowlarr/Definitions/cathoderaytube.yml
@@ -80,7 +80,8 @@ search:
- path: torrents.php
inputs:
$raw: "{{ range .Categories }}filter_cat[{{.}}]=1&{{end}}"
- searchtext: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
+ searchtext: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ end }}"
+ title: "{{ if .Keywords }}{{ .Keywords }}{{ else }}{{ end }}"
order_by: "{{ .Config.sort }}"
order_way: "{{ .Config.type }}"
action: advanced
diff --git a/mock-htpc/prowlarr/Definitions/cdfile.yml b/mock-htpc/prowlarr/Definitions/cdfile.yml
new file mode 100644
index 0000000..53a3d81
--- /dev/null
+++ b/mock-htpc/prowlarr/Definitions/cdfile.yml
@@ -0,0 +1,198 @@
+---
+id: cdfile
+name: CD File
+description: "CD File is a CHINESE Private Torrent Tracker for MOVIES / TV / GENERAL"
+language: zh-CN
+type: private
+encoding: UTF-8
+links:
+ - https://pt.cdfile.org/
+
+caps:
+ categorymappings:
+ - {id: 401, cat: Movies, desc: "Movies/电影"}
+ - {id: 406, cat: Audio/Video, desc: "Music Videos/MV"}
+ - {id: 402, cat: TV, desc: "TV Series/电视剧"}
+ - {id: 408, cat: Audio, desc: "Music/音轨"}
+ - {id: 405, cat: TV/Anime, desc: "Animations/动漫"}
+ - {id: 403, cat: TV, desc: "TV Shows/综艺"}
+ - {id: 407, cat: TV/Sport, desc: "Sports/体育"}
+ - {id: 404, cat: TV/Documentary, desc: "Documentaries/纪录片"}
+ - {id: 409, cat: Other, desc: "Others/其他"}
+
+ modes:
+ search: [q]
+ tv-search: [q, season, ep, imdbid]
+ movie-search: [q, imdbid]
+ music-search: [q]
+
+settings:
+ - name: username
+ type: text
+ label: Username
+ - name: password
+ type: password
+ label: Password
+ - name: 2facode
+ type: text
+ label: 2FA code
+ - name: info_2fa
+ type: info
+ label: "About 2FA code"
+ default: "Only fill in the 2FA code box if you have enabled 2FA on the cyanbug Web Site. Otherwise just leave it empty."
+ - name: freeleech
+ type: checkbox
+ label: Search freeleech only
+ default: false
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: 4
+ options:
+ 4: created
+ 7: seeders
+ 5: size
+ 1: title
+ - name: type
+ type: select
+ label: Order requested from site
+ default: desc
+ options:
+ desc: desc
+ asc: asc
+ - name: info_tpp
+ type: info
+ label: Results Per Page
+ default: For best results, change the Torrents per page: setting to 100 on your account profile.
+ - name: info_activity
+ type: info
+ label: Account Inactivity
+ default: "Account retention rules:- Veteran User and above will be retained forever
- Elite User and above will not have their account deleted after parking (in the control panel)
- Users with a parked account will be deleted if they do not log in for 400 consecutive days
- Users with a non-parked account will be deleted if they do not log in for 150 consecutive days
- Users who have no traffic (i.e. upload/download data are both 0) will be deleted if they do not log in for 100 consecutive days.
"
+
+login:
+ path: login.php
+ method: form
+ form: form[action="takelogin.php"]
+ captcha:
+ type: image
+ selector: img[alt="CAPTCHA"]
+ input: imagestring
+ inputs:
+ secret: ""
+ username: "{{ .Config.username }}"
+ password: "{{ .Config.password }}"
+ two_step_code: "{{ .Config.2facode }}"
+ logout: ""
+ securelogin: ""
+ ssl: yes
+ trackerssl: yes
+ error:
+ - selector: td.embedded:has(h2:contains("失败"))
+ message:
+ selector: td.text
+ test:
+ path: index.php
+ selector: a[href="logout.php"]
+
+search:
+ paths:
+ - path: torrents.php
+ inputs:
+ $raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
+ search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }} {{ else }}{{ .Keywords }}{{ end }}{{ if .Query.DoubanID }}{{ .Query.DoubanID }}{{ else }}{{ end }}"
+ # 0 incldead, 1 active, 2 dead
+ incldead: 0
+ # 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x50%, 7 30%
+ spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
+ # 0 title, 1 descr, 3 uploader, 4 imdburl
+ search_area: "{{ if .Query.IMDBID }}4{{ else }}{{ end }}{{ if .Query.DoubanID }}1{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }}{{ else }}0{{ end }}"
+ # 0 AND, 2 exact
+ search_mode: 0
+ sort: "{{ .Config.sort }}"
+ type: "{{ .Config.type }}"
+ notnewword: 1
+
+ rows:
+ selector: table.torrents > tbody > tr:has(table.torrentname)
+
+ fields:
+ category:
+ selector: a[href^="?cat="]
+ attribute: href
+ filters:
+ - name: querystring
+ args: cat
+ title_default:
+ selector: a[href^="details.php?id="]
+ title:
+ selector: a[title][href^="details.php?id="]
+ attribute: title
+ optional: true
+ default: "{{ .Result.title_default }}"
+ details:
+ selector: a[href^="details.php?id="]
+ attribute: href
+ download:
+ selector: a[href^="download.php?id="]
+ attribute: href
+ poster:
+ selector: img[data-src]
+ attribute: data-src
+ imdbid:
+ # site currently only has a badge and rating, the id is not present. just in case a future update.
+ selector: a[href*="imdb.com/title/tt"]
+ attribute: href
+ doubanid:
+ # site currently only has a badge and rating, the id is not present. just in case a future update.
+ selector: a[href*="movie.douban.com/subject/"]
+ attribute: href
+ date_elapsed:
+ # time type: time elapsed (default)
+ selector: td:nth-child(4) > span[title]
+ attribute: title
+ optional: true
+ filters:
+ - name: append
+ args: " +08:00" # CST
+ - name: dateparse
+ args: "yyyy-MM-dd HH:mm:ss zzz"
+ date_added:
+ # time added
+ selector: td:nth-child(4):not(:has(span))
+ optional: true
+ filters:
+ - name: append
+ args: " +08:00" # CST
+ - name: dateparse
+ args: "yyyy-MM-ddHH:mm:ss zzz"
+ date:
+ text: "{{ if or .Result.date_elapsed .Result.date_added }}{{ or .Result.date_elapsed .Result.date_added }}{{ else }}now{{ end }}"
+ size:
+ selector: td:nth-child(5)
+ seeders:
+ selector: td:nth-child(6)
+ leechers:
+ selector: td:nth-child(7)
+ grabs:
+ selector: td:nth-child(8)
+ downloadvolumefactor:
+ case:
+ img.pro_free: 0
+ img.pro_free2up: 0
+ img.pro_50pctdown: 0.5
+ img.pro_50pctdown2up: 0.5
+ img.pro_30pctdown: 0.3
+ "*": 1
+ uploadvolumefactor:
+ case:
+ img.pro_50pctdown2up: 2
+ img.pro_free2up: 2
+ img.pro_2up: 2
+ "*": 1
+ minimumseedtime:
+ # 3 days (as seconds = 3 x 24 x 60 x 60)
+ text: 259200
+ description:
+ selector: td:nth-child(2)
+ remove: a, b, font, img, span
+# NexusPHP v1.8.11 2024-03-27
diff --git a/mock-htpc/prowlarr/Definitions/chdbits.yml b/mock-htpc/prowlarr/Definitions/chdbits.yml
index 1f53f00..841f10e 100644
--- a/mock-htpc/prowlarr/Definitions/chdbits.yml
+++ b/mock-htpc/prowlarr/Definitions/chdbits.yml
@@ -6,9 +6,8 @@ language: zh-CN
type: private
encoding: UTF-8
links:
- - https://ptchdbits.co/
-legacylinks:
- https://chdbits.co/
+ - https://ptchdbits.co/
caps:
categorymappings:
@@ -40,6 +39,8 @@ settings:
type: checkbox
label: Search freeleech only
default: false
+ - name: info_flaresolverr
+ type: info_flaresolverr
- name: info_tpp
type: info
label: Results Per Page
@@ -83,6 +84,11 @@ login:
path: torrents.php
selector: a[href*="logout.php"]
+download:
+ selectors:
+ - selector: a[href^="download.php?id="]
+ attribute: href
+
search:
paths:
- path: torrents.php
@@ -121,19 +127,11 @@ search:
selector: a[href^="details.php?id="]
attribute: href
download:
- selector: a[href^="download.php?id="]
+ selector: a[href^="details.php?id="]
attribute: href
- size:
- selector: td:nth-child(5)
- grabs:
- selector: td:nth-child(8)
- seeders:
- selector: td:nth-child(6)
- leechers:
- selector: td:nth-child(7)
date_elapsed:
# time type: time elapsed (default)
- selector: td:nth-child(4) > span[title]
+ selector: td.rowfollow:nth-last-child(7) > span[title]
attribute: title
optional: true
filters:
@@ -143,7 +141,7 @@ search:
args: "yyyy-MM-dd HH:mm:ss zzz"
date_added:
# time added
- selector: td:nth-child(4):not(:has(span))
+ selector: td.rowfollow:nth-last-child(7):not(:has(span))
optional: true
filters:
- name: append
@@ -152,6 +150,14 @@ search:
args: "yyyy-MM-ddHH:mm:ss zzz"
date:
text: "{{ if or .Result.date_elapsed .Result.date_added }}{{ or .Result.date_elapsed .Result.date_added }}{{ else }}now{{ end }}"
+ size:
+ selector: td.rowfollow:nth-last-child(6)
+ seeders:
+ selector: td.rowfollow:nth-last-child(5)
+ leechers:
+ selector: td.rowfollow:nth-last-child(4)
+ grabs:
+ selector: td.rowfollow:nth-last-child(3)
downloadvolumefactor:
case:
img.pro_free: 0
@@ -169,4 +175,4 @@ search:
description:
selector: td:nth-child(2)
remove: a, b, font, img, span
-# NexusPHP 73f201530b 2023-08-07
+# NexusPHP Standard v1.5 Beta 4 (customised)
diff --git a/mock-htpc/prowlarr/Definitions/chilebt-api.yml b/mock-htpc/prowlarr/Definitions/chilebt-api.yml
new file mode 100644
index 0000000..ef4b13f
--- /dev/null
+++ b/mock-htpc/prowlarr/Definitions/chilebt-api.yml
@@ -0,0 +1,194 @@
+---
+id: chilebt-api
+name: ChileBT (API)
+description: "ChileBT is a CHILEAN Private Torrent Tracker for MOVIES / TV / GENERAL"
+language: es-CL
+type: private
+encoding: UTF-8
+links:
+ - https://chilebt.com/
+
+caps:
+ categorymappings:
+ - {id: 10, cat: Movies, desc: "Movies"}
+ - {id: 11, cat: TV, desc: "TV"}
+ - {id: 9, cat: Audio, desc: "Music"}
+ - {id: 7, cat: Other, desc: "Cultura / Educativos"}
+ - {id: 8, cat: PC/Games, desc: "Juegos"}
+ - {id: 6, cat: Books, desc: "EBook"}
+ - {id: 4, cat: TV/Anime, desc: "Anime"}
+ - {id: 5, cat: PC/0day, desc: "Aplicaciones / Programas"}
+ - {id: 14, cat: Movies, desc: "Infantil"}
+ - {id: 12, cat: Other/Misc, desc: "VIP"}
+ - {id: 13, cat: XXX, desc: "XXX"}
+
+ modes:
+ search: [q]
+ tv-search: [q, season, ep, imdbid, tvdbid, tmdbid]
+ movie-search: [q, imdbid, tmdbid]
+ music-search: [q]
+ book-search: [q]
+
+settings:
+ - name: apikey
+ type: text
+ label: APIKey
+ - name: info_key
+ type: info
+ label: About your API key
+ default: "Find or Generate a new API Token by accessing your ChileBT account My Settings page and clicking on the API Key tab."
+ - name: freeleech
+ type: checkbox
+ label: Search freeleech only
+ default: false
+ - name: single_file_release_use_filename
+ type: checkbox
+ label: Use filename as title for single file releases
+ default: true
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: created_at
+ options:
+ created_at: created
+ seeders: seeders
+ size: size
+ name: title
+ - name: type
+ type: select
+ label: Order requested from site
+ default: desc
+ options:
+ desc: desc
+ asc: asc
+
+login:
+ path: /api/torrents
+ method: get
+ error:
+ - selector: a[href*="/login"]
+ message:
+ text: "The API key was not accepted by {{ .Config.sitelink }}."
+ - selector: :root:contains("Account is Banned")
+
+search:
+ paths:
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
+ - path: "/api/torrents/filter"
+ response:
+ type: json
+
+ headers:
+ Authorization: ["Bearer {{ .Config.apikey }}"]
+
+ inputs:
+ # if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
+ $raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
+ name: "{{ .Keywords }}"
+ seasonNumber: "{{ .Query.Season }}"
+ episodeNumber: "{{ .Query.Ep }}"
+ imdbId: "{{ .Query.IMDBIDShort }}"
+ tmdbId: "{{ .Query.TMDBID }}"
+ tvdbId: "{{ .Query.TVDBID }}"
+ "free[]": "{{ if .Config.freeleech }}100{{ else }}{{ end }}"
+ sortField: "{{ .Config.sort }}"
+ sortDirection: "{{ .Config.type }}"
+ perPage: 100
+
+ keywordsfilters:
+ - name: re_replace
+ args: ["\\.", " "]
+
+ rows:
+ selector: data
+ attribute: attributes
+
+ fields:
+ category:
+ selector: category_id
+ title_optional:
+ selector: name
+ title_filename:
+ selector: "files[0].name"
+ optional: true
+ files:
+ selector: num_file
+ title:
+ text: "{{ if and (.Config.single_file_release_use_filename) (eq .Result.files \"1\") (.Result.title_filename) }}{{ .Result.title_filename }}{{ else }}{{ .Result.title_optional }}{{ end }}"
+ details:
+ selector: details_link
+ download:
+ selector: download_link
+ infohash:
+ selector: info_hash
+ poster:
+ selector: meta.poster
+ filters:
+ - name: replace
+ args: ["https://via.placeholder.com/90x135", ""]
+ imdbid:
+ selector: imdb_id
+ tmdbid:
+ selector: tmdb_id
+ tvdbid:
+ selector: tvdb_id
+ genre:
+ selector: meta.genres
+ filters:
+ - name: re_replace
+ args: ["(?i)(Science Fiction)", "Science_Fiction"]
+ - name: re_replace
+ args: ["(?i)(TV Movie)", "TV_Movie"]
+ - name: replace
+ args: [" & ", "_&_"]
+ description:
+ text: "{{ .Result.genre }}"
+ seeders:
+ selector: seeders
+ leechers:
+ selector: leechers
+ grabs:
+ selector: times_completed
+ date:
+ # "created_at": "2021-10-18T00:34:50.000000Z" is returned by Newtonsoft.Json.Linq as 18/10/2021 00:34:50
+ selector: created_at
+ filters:
+ - name: append
+ args: " +00:00" # GMT
+ - name: dateparse
+ args: "MM/dd/yyyy HH:mm:ss zzz"
+ size:
+ selector: size
+ _featured:
+ selector: featured
+ case:
+ False: "{{ .False }}"
+ True: "{{ .True }}"
+ downloadvolumefactor_freeleech:
+ # api returns 0%, 25%, 50%, 75%, 100%
+ selector: freeleech
+ case:
+ 0%: 1 # not free
+ 25%: 0.75
+ 50%: 0.5
+ 75%: 0.25
+ 100%: 0 # freeleech
+ "*": 0 # catch errors
+ downloadvolumefactor:
+ text: "{{ if .Result._featured }}0{{ else }}{{ .Result.downloadvolumefactor_freeleech }}{{ end }}"
+ uploadvolumefactor_double_upload:
+ # api returns False, True
+ selector: double_upload
+ case:
+ False: 1 # normal
+ True: 2 # double
+ uploadvolumefactor:
+ text: "{{ if .Result._featured }}2{{ else }}{{ .Result.uploadvolumefactor_double_upload }}{{ end }}"
+# global MR is 0.5 but torrents must be seeded for 7 days regardless of ratio
+# minimumratio:
+# text: 0.5
+ minimumseedtime:
+ # 7 days (as seconds = 7 x 24 x 60 x 60)
+ text: 604800
+# json UNIT3D 8.2.0
diff --git a/mock-htpc/prowlarr/Definitions/cinemamovies.yml b/mock-htpc/prowlarr/Definitions/cinemamovies.yml
index a87f977..2ab47d5 100644
--- a/mock-htpc/prowlarr/Definitions/cinemamovies.yml
+++ b/mock-htpc/prowlarr/Definitions/cinemamovies.yml
@@ -42,10 +42,8 @@ settings:
- name: cookie
type: text
label: Cookie
- - name: info
- type: info
- label: How to get the Cookie
- default: "- Login to this tracker with your browser
- Open the DevTools panel by pressing F12
- Select the Network tab
- Click on the Doc button (Chrome Browser) or HTML button (FireFox)
- Refresh the page by pressing F5
- Click on the first row entry
- Select the Headers tab on the Right panel
- Find 'cookie:' in the Request Headers section
- Select and Copy the whole cookie string (everything after 'cookie: ') and Paste here.
"
+ - name: info_cookie
+ type: info_cookie
- name: freeleech
type: checkbox
label: Search freeleech only
@@ -87,6 +85,7 @@ settings:
default: "Failure to use an account for a period of 180 days will result in the removal of the account from the CMS_ZT community."
login:
+ # using cookie method because login page has embedded Google reCAPTCHA
method: cookie
inputs:
cookie: "{{ .Config.cookie }}"
diff --git a/mock-htpc/prowlarr/Definitions/cinematik.yml b/mock-htpc/prowlarr/Definitions/cinematik.yml
index c054147..f643a26 100644
--- a/mock-htpc/prowlarr/Definitions/cinematik.yml
+++ b/mock-htpc/prowlarr/Definitions/cinematik.yml
@@ -12,8 +12,12 @@ legacylinks:
caps:
categorymappings:
- - {id: 1, cat: Movies, desc: "Movie"}
+ - {id: 1, cat: Movies, desc: "Film"}
- {id: 2, cat: TV, desc: "TV"}
+ - {id: 3, cat: Movies/Foreign, desc: "Foreign Film"}
+ - {id: 4, cat: TV/Foreign, desc: "Foreign TV"}
+ - {id: 5, cat: Movies/Other, desc: "Opera & Musical"}
+ - {id: 6, cat: Movies/Foreign, desc: "Asian Film"}
modes:
search: [q]
@@ -65,11 +69,12 @@ login:
- selector: a[href*="/login"]
message:
text: "The API key was not accepted by {{ .Config.sitelink }}."
+ - selector: :root:contains("Account is Banned")
search:
paths:
- # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v7.0.0)
- # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L349
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
- path: "/api/torrents/filter"
response:
type: json
@@ -104,6 +109,13 @@ search:
selector: category_id
title_optional:
selector: name
+ title_filename:
+ selector: "files[0].name"
+ optional: true
+ files:
+ selector: num_file
+ title:
+ text: "{{ if and (.Config.single_file_release_use_filename) (eq .Result.files \"1\") (.Result.title_filename) }}{{ .Result.title_filename }}{{ else }}{{ .Result.title_optional }}{{ end }}"
details:
selector: details_link
download:
@@ -132,8 +144,6 @@ search:
args: [" & ", "_&_"]
description:
text: "{{ .Result.genre }}"
- files:
- selector: num_file
seeders:
selector: seeders
leechers:
@@ -150,7 +160,12 @@ search:
args: "MM/dd/yyyy HH:mm:ss zzz"
size:
selector: size
- downloadvolumefactor:
+ _featured:
+ selector: featured
+ case:
+ False: "{{ .False }}"
+ True: "{{ .True }}"
+ downloadvolumefactor_freeleech:
# api returns 0%, 25%, 50%, 75%, 100%
selector: freeleech
case:
@@ -160,21 +175,20 @@ search:
75%: 0.25
100%: 0 # freeleech
"*": 0 # catch errors
- uploadvolumefactor:
+ downloadvolumefactor:
+ text: "{{ if .Result._featured }}0{{ else }}{{ .Result.downloadvolumefactor_freeleech }}{{ end }}"
+ uploadvolumefactor_double_upload:
# api returns False, True
selector: double_upload
case:
False: 1 # normal
True: 2 # double
-# global MR is 0.4 but torrents must be seeded for 7 days regardless of ratio
+ uploadvolumefactor:
+ text: "{{ if .Result._featured }}2{{ else }}{{ .Result.uploadvolumefactor_double_upload }}{{ end }}"
+# global MR is 0.6 but torrents must be seeded for 3 days regardless of ratio
# minimumratio:
-# text: 0.4
+# text: 0.6
minimumseedtime:
- # 7 days (as seconds = 7 x 24 x 60 x 60)
- text: 604800
- title_filename:
- selector: "files[0].name"
- optional: true
- title:
- text: "{{ if and (.Config.single_file_release_use_filename) (eq .Result.files \"1\") (.Result.title_filename) }}{{ .Result.title_filename }}{{ else }}{{ .Result.title_optional }}{{ end }}"
-# json UNIT3D 8.0.0
+ # 3 days (as seconds = 3 x 24 x 60 x 60)
+ text: 259200
+# json UNIT3D 8.3.4
diff --git a/mock-htpc/prowlarr/Definitions/coastalcrew.yml b/mock-htpc/prowlarr/Definitions/coastalcrew.yml
index 56dff4f..b8f3d73 100644
--- a/mock-htpc/prowlarr/Definitions/coastalcrew.yml
+++ b/mock-htpc/prowlarr/Definitions/coastalcrew.yml
@@ -66,10 +66,6 @@ settings:
- name: password
type: password
label: Password
- - name: freeleech
- type: checkbox
- label: Filter FreeLeech only
- default: false
- name: onlyupload
type: checkbox
label: Filter OnlyUpload only
diff --git a/mock-htpc/prowlarr/Definitions/comicat.yml b/mock-htpc/prowlarr/Definitions/comicat.yml
index f333ab3..b09ac6a 100644
--- a/mock-htpc/prowlarr/Definitions/comicat.yml
+++ b/mock-htpc/prowlarr/Definitions/comicat.yml
@@ -1,16 +1,14 @@
---
id: comicat
name: comicat
-description: "comicat is a CHINESE Public tracker for Anime / Hentai / Manga"
+description: "comicat is a CHINESE Semi-Private tracker for Anime / Hentai / Manga"
language: zh-CN
-type: public
+type: semi-private
encoding: UTF-8
requestDelay: 2
links:
- https://www.comicat.org/
-settings: []
-
caps:
categorymappings:
- {id: 1, cat: TV/Anime, desc: "动画(Anime)"}
@@ -27,6 +25,15 @@ caps:
music-search: [q]
book-search: [q]
+settings: []
+
+login:
+ path: addon.php?r=document/view&page=visitor-test
+ method: form
+ form: form#visitor-test-form
+ inputs:
+ visitor_test: human
+
search:
paths:
# https://www.comicat.org/ (latest)
@@ -58,8 +65,6 @@ search:
args: "-(\\w+).html"
size:
selector: td:nth-child(4)
- grabs:
- selector: td:nth-child(7) span
date_year:
selector: td:nth-child(1):contains("/")
optional: true
@@ -95,9 +100,9 @@ search:
date:
text: "{{ if or .Result.date_year .Result.date_today .Result.date_yday .Result.date_ago }}{{ or .Result.date_year .Result.date_today .Result.date_yday .Result.date_ago }}{{ else }}now{{ end }}"
seeders:
- selector: td:nth-child(5) span
+ text: 1
leechers:
- selector: td:nth-child(6) span
+ text: 1
downloadvolumefactor:
text: 0
uploadvolumefactor:
diff --git a/mock-htpc/prowlarr/Definitions/cpabien.yml b/mock-htpc/prowlarr/Definitions/cpabien.yml
index a17ec4e..a928649 100644
--- a/mock-htpc/prowlarr/Definitions/cpabien.yml
+++ b/mock-htpc/prowlarr/Definitions/cpabien.yml
@@ -7,7 +7,7 @@ type: public
encoding: UTF-8
followredirect: true
links:
- - https://cpasbien-vf.pics/
+ - https://feminalpes.fr/
legacylinks:
- https://www.cpasbiens.cz/
- https://www.cpasbiens.bz/
@@ -25,6 +25,8 @@ legacylinks:
- https://cpasbiens911.fr/
- https://jardattraction.fr/
- https://cpasbien-vf.fr/
+ - https://cpasbien-vf.pics/
+ - https://cpasbien-vf.li/
caps:
categories:
@@ -36,14 +38,10 @@ caps:
movie-search: [q]
settings:
- - name: flaresolverr
- type: info
- label: FlareSolverr
- default: This site may use Cloudflare DDoS Protection, therefore Prowlarr requires FlareSolverr to access it.
- - name: info_8000
- type: info
- label: About cpasbien Categories
- default: cpasbien does not return categories in its search results. To sync to your apps, include 8000(Other) in your Apps' Sync Categories.
+ - name: info_flaresolverr
+ type: info_flaresolverr
+ - name: info_category_8000
+ type: info_category_8000
- name: multilang
type: checkbox
label: Replace MULTi by another language in release name
@@ -78,11 +76,16 @@ search:
inputs:
story: "{{ if .Keywords }}{{ .Keywords }}{{ else }}{{ end }}"
# does not support imdbid search and does not return imdb link in results.
+
keywordsfilters:
# if searching for season packs with S01 to saison 1 #9712
- name: re_replace
args: ["(?i)\\b(?:S0?)(\\d{1,3})\\b", "saison $1"]
+ headers:
+ # site blocks Linux UAs, so slightly alter the Windows UA here (e.g. Safari/537.36 > Safari/537.35)
+ User-Agent: ["Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.35"]
+
rows:
selector: div#gauche > table > tbody > tr:has(a), div#dle-content > a.cover2
@@ -133,16 +136,14 @@ search:
default: "512 MB"
date:
text: now
- seeders_optional:
+ seeders:
selector: div.up
optional: true
- seeders:
- text: "{{ if .Result.seeders_optional }}{{ .Result.seeders_optional }}{{ else }}0{{ end }}"
- leechers_optional:
+ default: 0
+ leechers:
selector: div.down
optional: true
- leechers:
- text: "{{ if .Result.leechers_optional }}{{ .Result.leechers_optional }}{{ else }}0{{ end }}"
+ default: 0
downloadvolumefactor:
text: 0
uploadvolumefactor:
diff --git a/mock-htpc/prowlarr/Definitions/cpasbienclone.yml b/mock-htpc/prowlarr/Definitions/cpasbienclone.yml
index 8b31c3a..3dc17e7 100644
--- a/mock-htpc/prowlarr/Definitions/cpasbienclone.yml
+++ b/mock-htpc/prowlarr/Definitions/cpasbienclone.yml
@@ -7,7 +7,7 @@ type: public
encoding: UTF-8
followredirect: true
links:
- - https://www.cpasbien.tw/
+ - https://www1.cpasbien.to/
legacylinks:
- https://www1.cpasbiens.ws/
- https://www2.cpasbiens.ws/
@@ -22,6 +22,8 @@ legacylinks:
- https://www.cpasbien.gg/
- https://www.cpasbien.vip/
- https://cpasbien.to/
+ - https://www.cpasbien.tw/
+ - https://www.cpasbien.love/
caps:
categories:
@@ -34,10 +36,8 @@ caps:
allowrawsearch: true
settings:
- - name: info_8000
- type: info
- label: About cpasbienclone Categories
- default: cpasbienclone does not return categories in its search results. To sync to your apps, include 8000(Other) in your Apps' Sync Categories.
+ - name: info_category_8000
+ type: info_category_8000
- name: multilang
type: checkbox
label: Replace MULTi by another language in release name
diff --git a/mock-htpc/prowlarr/Definitions/crabpt.yml b/mock-htpc/prowlarr/Definitions/crabpt.yml
index e94252f..306f5a7 100644
--- a/mock-htpc/prowlarr/Definitions/crabpt.yml
+++ b/mock-htpc/prowlarr/Definitions/crabpt.yml
@@ -10,15 +10,17 @@ links:
caps:
categorymappings:
- - {id: 408, cat: Audio, desc: "音乐"}
- - {id: 409, cat: Other, desc: "其他"}
- - {id: 407, cat: TV/Sport, desc: "体育竞技"}
+ - {id: 401, cat: Movies, desc: "电影 / Movies"}
+ - {id: 402, cat: TV, desc: "电视剧 / TVSeries"}
+ - {id: 413, cat: TV/Other, desc: "短剧 / Playlet"}
+ - {id: 408, cat: Audio, desc: "音乐 / Music"}
+ - {id: 405, cat: TV/Anime, desc: "动漫 / Anime"}
- {id: 406, cat: Audio/Video, desc: "MV"}
- - {id: 403, cat: Movies, desc: "综艺/真人秀"}
- - {id: 402, cat: TV, desc: "电视剧"}
- - {id: 405, cat: TV, desc: "动画"}
- - {id: 404, cat: TV/Anime, desc: "纪录片"}
- - {id: 401, cat: Movies, desc: "电影"}
+ - {id: 403, cat: Movies, desc: "综艺 / TV Shows"}
+ - {id: 407, cat: TV/Sport, desc: "体育竞技 / Sports"}
+ - {id: 404, cat: TV/Documentary, desc: "纪录片 / Documentary"}
+ - {id: 409, cat: Other, desc: "其他 / Other"}
+ - {id: 415, cat: Books/Comics, desc: "漫画 / Cartoon"}
modes:
search: [q]
@@ -65,6 +67,10 @@ settings:
type: info
label: Results Per Page
default: For best results, change the Torrents per page: setting to 100 on your account profile.
+ - name: info_activity
+ type: info
+ label: Account Inactivity
+ default: "Account retention rules:- Veteran User and above will be retained forever
- Elite User and above will not have their account deleted after parking (in the control panel)
- Users with a parked account will be deleted if they do not log in for 400 consecutive days
- Users with a non-parked account will be deleted if they do not log in for 150 consecutive days
- Users who have no traffic (i.e. upload/download data are both 0) will be deleted if they do not log in for 100 consecutive days.
"
login:
path: login.php
@@ -108,7 +114,7 @@ search:
notnewword: 1
rows:
- selector: table.torrents > tbody > tr:has(a[href^="details.php?id="])
+ selector: table.torrents > tbody > tr:has(a[href^="download.php?id="])
fields:
category:
@@ -192,4 +198,4 @@ search:
description:
selector: td.rowfollow:nth-child(2)
remove: a, b, font, img, span
-# NexusPHP v1.8.8 2023-09-25
+# NexusPHP v1.8.13 2024-09-21
diff --git a/mock-htpc/prowlarr/Definitions/crazyspirits.yml b/mock-htpc/prowlarr/Definitions/crazyspirits.yml
index a9aaac6..97a6539 100644
--- a/mock-htpc/prowlarr/Definitions/crazyspirits.yml
+++ b/mock-htpc/prowlarr/Definitions/crazyspirits.yml
@@ -113,10 +113,8 @@ settings:
- name: cookie
type: text
label: Cookie
- - name: info
- type: info
- label: How to get the Cookie
- default: "- Login to this tracker with your browser
- Open the DevTools panel by pressing F12
- Select the Network tab
- Click on the Doc button (Chrome Browser) or HTML button (FireFox)
- Refresh the page by pressing F5
- Click on the first row entry
- Select the Headers tab on the Right panel
- Find 'cookie:' in the Request Headers section
- Select and Copy the whole cookie string (everything after 'cookie: ') and Paste here.
"
+ - name: info_cookie
+ type: info_cookie
- name: freeleech
type: checkbox
label: Search freeleech only
@@ -158,6 +156,7 @@ settings:
asc: asc
login:
+ # using cookie method because login page has embedded Google reCAPTCHA
method: cookie
inputs:
cookie: "{{ .Config.cookie }}"
@@ -276,7 +275,7 @@ search:
# auto adjusted by site account profile
filters:
- name: regexp
- args: "Partagé Voilà : (.*?)
(.*?)
Login to this tracker with your browserOpen the DevTools panel by pressing F12Select the Network tabClick on the Doc button (Chrome Browser) or HTML button (FireFox)Refresh the page by pressing F5Click on the first row entrySelect the Headers tab on the Right panelFind 'cookie:' in the Request Headers sectionSelect and Copy the whole cookie string (everything after 'cookie: ') and Paste here."
+ type: info_cookie
- name: freeleech
type: checkbox
label: Search freeleech only
@@ -58,6 +56,7 @@ settings:
default: "New members must generate some torrent activity (upload, download, or cross-seed) in their account within the first 30 days of joining, otherwise their account will be automatically disabled."
login:
+ # using cookie method because login page can present second page for 2FA when enabled
method: cookie
inputs:
cookie: "{{ .Config.cookie }}"
@@ -70,7 +69,8 @@ search:
- path: torrents.php
inputs:
$raw: "{{ range .Categories }}filter_cat[{{.}}]=1&{{end}}"
- searchtext: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
+ searchtext: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ end }}"
+ title: "{{ if .Keywords }}{{ .Keywords }}{{ else }}{{ end }}"
order_by: "{{ .Config.sort }}"
order_way: "{{ .Config.type }}"
action: advanced
diff --git a/mock-htpc/prowlarr/Definitions/cyanbug.yml b/mock-htpc/prowlarr/Definitions/cyanbug.yml
new file mode 100644
index 0000000..38dfd6b
--- /dev/null
+++ b/mock-htpc/prowlarr/Definitions/cyanbug.yml
@@ -0,0 +1,212 @@
+---
+id: cyanbug
+name: cyanbug (大青虫)
+description: "cyanbug (大青虫) is a CHINESE Private Torrent Tracker for MOVIES / TV / GENERAL"
+language: zh-CN
+type: private
+encoding: UTF-8
+links:
+ - https://cyanbug.net/
+
+caps:
+ categorymappings:
+ - {id: 409, cat: Other, desc: "Others/其他"}
+ - {id: 408, cat: Audio, desc: "Music/音轨"}
+ - {id: 406, cat: Audio/Video, desc: "Music Videos/MV"}
+ - {id: 407, cat: TV/Sport, desc: "Sports/体育"}
+ - {id: 403, cat: TV, desc: "TV Shows/综艺"}
+ - {id: 404, cat: TV/Documentary, desc: "Documentaries/纪录片"}
+ - {id: 405, cat: TV/Anime, desc: "Animations/动漫"}
+ - {id: 402, cat: TV, desc: "TV Series/电视剧"}
+ - {id: 401, cat: Movies, desc: "Movies/电影"}
+
+ modes:
+ search: [q]
+ tv-search: [q, season, ep, imdbid]
+ movie-search: [q, imdbid]
+ music-search: [q]
+
+settings:
+ - name: username
+ type: text
+ label: Username
+ - name: password
+ type: password
+ label: Password
+ - name: 2facode
+ type: text
+ label: 2FA code
+ - name: info_2fa
+ type: info
+ label: "About 2FA code"
+ default: "Only fill in the 2FA code box if you have enabled 2FA on the cyanbug Web Site. Otherwise just leave it empty."
+ - name: freeleech
+ type: checkbox
+ label: Search freeleech only
+ default: false
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: 4
+ options:
+ 4: created
+ 7: seeders
+ 5: size
+ 1: title
+ - name: type
+ type: select
+ label: Order requested from site
+ default: desc
+ options:
+ desc: desc
+ asc: asc
+ - name: info_tpp
+ type: info
+ label: Results Per Page
+ default: For best results, change the Torrents per page: setting to 100 on your account profile.
+ - name: info_activity
+ type: info
+ label: Account Inactivity
+ default: "Account retention rules:- Veteran User and above will be retained forever
- Elite User and above will not have their account deleted after parking (in the control panel)
- Users with a parked account will be deleted if they do not log in for 400 consecutive days
- Users with a non-parked account will be deleted if they do not log in for 150 consecutive days
- Users who have no traffic (i.e. upload/download data are both 0) will be deleted if they do not log in for 100 consecutive days.
"
+
+login:
+ path: login.php
+ method: form
+ form: form[action="takelogin.php"]
+ captcha:
+ type: image
+ selector: img[alt="CAPTCHA"]
+ input: imagestring
+ inputs:
+ secret: ""
+ username: "{{ .Config.username }}"
+ password: "{{ .Config.password }}"
+ two_step_code: "{{ .Config.2facode }}"
+ logout: ""
+ securelogin: ""
+ ssl: yes
+ trackerssl: yes
+ error:
+ - selector: td.embedded:has(h2:contains("失败"))
+ message:
+ selector: td.text
+ test:
+ path: index.php
+ selector: a[href="logout.php"]
+
+search:
+ paths:
+ - path: torrents.php
+ inputs:
+ $raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
+ search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }} {{ else }}{{ .Keywords }}{{ end }}{{ if .Query.DoubanID }}{{ .Query.DoubanID }}{{ else }}{{ end }}"
+ # 0 incldead, 1 active, 2 dead
+ incldead: 0
+ # 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x50%, 7 30%
+ spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
+ # 0 title, 1 descr, 3 uploader, 4 imdburl
+ search_area: "{{ if .Query.IMDBID }}4{{ else }}{{ end }}{{ if .Query.DoubanID }}1{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }}{{ else }}0{{ end }}"
+ # 0 AND, 2 exact
+ search_mode: 0
+ sort: "{{ .Config.sort }}"
+ type: "{{ .Config.type }}"
+ notnewword: 1
+
+ rows:
+ selector: table.torrents > tbody > tr:has(table.torrentname):has(a[href^="download.php?id="])
+
+ fields:
+ category:
+ selector: a[href^="?cat="]
+ attribute: href
+ filters:
+ - name: querystring
+ args: cat
+ title_default:
+ selector: a[href^="details.php?id="]
+ title:
+ selector: a[title][href^="details.php?id="]
+ attribute: title
+ optional: true
+ default: "{{ .Result.title_default }}"
+ details:
+ selector: a[href^="details.php?id="]
+ attribute: href
+ download:
+ selector: a[href^="download.php?id="]
+ attribute: href
+ poster:
+ selector: img[data-src]
+ attribute: data-src
+ imdbid:
+ # site currently only has a badge and rating, the id is not present. just in case a future update.
+ selector: a[href*="imdb.com/title/tt"]
+ attribute: href
+ doubanid:
+ # site currently only has a badge and rating, the id is not present. just in case a future update.
+ selector: a[href*="movie.douban.com/subject/"]
+ attribute: href
+ date_elapsed:
+ # time type: time elapsed (default)
+ selector: td.rowfollow:nth-child(4) > span[title]
+ attribute: title
+ optional: true
+ filters:
+ - name: append
+ args: " +08:00" # CST
+ - name: dateparse
+ args: "yyyy-MM-dd HH:mm:ss zzz"
+ date_added:
+ # time added
+ selector: td.rowfollow:nth-child(4):not(:has(span))
+ optional: true
+ filters:
+ - name: append
+ args: " +08:00" # CST
+ - name: dateparse
+ args: "yyyy-MM-ddHH:mm:ss zzz"
+ date:
+ text: "{{ if or .Result.date_elapsed .Result.date_added }}{{ or .Result.date_elapsed .Result.date_added }}{{ else }}now{{ end }}"
+ size:
+ selector: td.rowfollow:nth-child(5)
+ seeders:
+ selector: td.rowfollow:nth-child(6)
+ optional: true
+ default: 1
+ leechers:
+ selector: td.rowfollow:nth-child(7)
+ optional: true
+ default: 1
+ grabs:
+ selector: td.rowfollow:nth-child(8)
+ optional: true
+ default: 1
+ downloadvolumefactor:
+ case:
+ img.pro_free: 0
+ img.pro_free2up: 0
+ img.pro_50pctdown: 0.5
+ img.pro_50pctdown2up: 0.5
+ img.pro_30pctdown: 0.3
+ "*": 1
+ uploadvolumefactor:
+ case:
+ img.pro_50pctdown2up: 2
+ img.pro_free2up: 2
+ img.pro_2up: 2
+ "*": 1
+ minimumseedtime:
+ # 3 days (as seconds = 3 x 24 x 60 x 60)
+ text: 259200
+ description_verified:
+ case:
+ span[title="通过"], span[title="通過"], span[title="Allowed"]: "Verified:"
+ span[title="未审"], span[title="未審"], span[title="Not reviewed"]: "Unverified:"
+ span[title="拒绝"], span[title="拒絕"], span[title="Denied"]: "Banned:"
+ description:
+ selector: td.rowfollow:nth-child(2)
+ remove: a, b, font, img, span
+ filters:
+ - name: prepend
+ args: "{{ .Result.description_verified }} "
+# NexusPHP v1.8.9 2023-09-29
diff --git a/mock-htpc/prowlarr/Definitions/danishbytes-api.yml b/mock-htpc/prowlarr/Definitions/danishbytes-api.yml
index 0692033..c320c7f 100644
--- a/mock-htpc/prowlarr/Definitions/danishbytes-api.yml
+++ b/mock-htpc/prowlarr/Definitions/danishbytes-api.yml
@@ -2,16 +2,16 @@
id: danishbytes-api
name: DanishBytes (API)
description: "DanishBytes is a Private Danish Tracker"
-language: en-US
+language: da-DK
type: private
encoding: UTF-8
links:
- https://danishbytes.club/
- https://danishbytes2.org/
- https://dbytes.org/
- - https://danishbytes.art/
legacylinks:
- https://danishbytes.org/
+ - https://danishbytes.art/
caps:
categorymappings:
@@ -43,7 +43,7 @@ settings:
- name: info_rsskey
type: info
label: About your RSS key
- default: "Find or Generate a new RSS key by accessing your DanishBytes account My Security page and clicking on the RSS Key (RID) tab."
+ default: "Find or Generate a new RSS key by accessing your DanishBytes account My Security page and clicking on the RSS Key (RID) tab."
- name: freeleech
type: checkbox
label: Search freeleech only
diff --git a/mock-htpc/prowlarr/Definitions/dark-shadow.yml b/mock-htpc/prowlarr/Definitions/dark-shadow.yml
index bf30f5e..6deda11 100644
--- a/mock-htpc/prowlarr/Definitions/dark-shadow.yml
+++ b/mock-htpc/prowlarr/Definitions/dark-shadow.yml
@@ -18,6 +18,7 @@ caps:
- {id: 114, cat: Movies/UHD, desc: "Filme UHD"}
- {id: 140, cat: Movies/BluRay, desc: "Filme BluRay"}
- {id: 28, cat: Movies/SD, desc: "Filme SD"}
+ - {id: 145, cat: Movies/SD, desc: "Filme all SD"}
- {id: 138, cat: Movies, desc: "Filme Pack's"}
# Serien
- {id: 57, cat: TV/HD, desc: "Serien HD"}
@@ -71,16 +72,16 @@ caps:
book-search: [q]
settings:
+ - name: info_password
+ type: info
+ label: About Password Expiry
+ default: "Dark Shadow has an 8 week Password Expiry regime. So if the Indexer has stopped working then the first thing you should do is check if your password has expired by login in at Dark-Shadow, and if necessary use the Passwort anfordern (Request password) button to renew it."
- 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
@@ -134,7 +135,7 @@ search:
args: ["^(.+)$", "%$1%"]
rows:
- selector: "div.selection_wrap{{ if .Config.freeleech }}:root:has(div.onlyup){{ else }}{{ end }}"
+ selector: div.selection_wrap
fields:
category_p1:
@@ -153,7 +154,7 @@ search:
selector: a.selection_a
attribute: href
download:
- selector: a[href^="download_ssl.php?torrent="]
+ selector: a[href^="download"]
attribute: href
poster:
selector: div[id^="details"] img
@@ -195,7 +196,7 @@ search:
selector: div.selection_unter_aaa
downloadvolumefactor:
case:
- ":root:has(div.onlyup)": 0
+ ":root:has(div.onlyup)": 0 # GLobal Freeleech event
"*": 1
uploadvolumefactor:
text: 1
diff --git a/mock-htpc/prowlarr/Definitions/dasunerwartete.yml b/mock-htpc/prowlarr/Definitions/dasunerwartete.yml
index 5a37132..fbf5d31 100644
--- a/mock-htpc/prowlarr/Definitions/dasunerwartete.yml
+++ b/mock-htpc/prowlarr/Definitions/dasunerwartete.yml
@@ -15,11 +15,13 @@ caps:
- {id: 32, cat: Movies/HD, desc: "HD"}
- {id: 114, cat: Movies/UHD, desc: "UHD"}
- {id: 140, cat: Movies/BluRay, desc: "BluRay"}
+ - {id: 143, cat: TV/Anime, desc: "Anime"}
- {id: 138, cat: Movies, desc: "Pack`s"}
# Serien
- {id: 60, cat: TV/SD, desc: "SD"}
- {id: 57, cat: TV/HD, desc: "HD"}
- {id: 139, cat: TV/UHD, desc: "UHD"}
+ - {id: 144, cat: TV/Anime, desc: "Anime"}
- {id: 59, cat: TV, desc: "Pack`s"}
# Audio
- {id: 110, cat: Audio/MP3, desc: "MP3"}
@@ -110,14 +112,15 @@ settings:
login:
path: login.php
method: form
- form: form[action="/login.php"]
+ form: form
inputs:
- username: "{{ .Config.username }}"
+ login_identifier: "{{ .Config.username }}"
password: "{{ .Config.password }}"
+ loggiin: Login
error:
- - selector: div#login_error
+ - selector: div.error-message
test:
- path: /
+ path: index.php
selector: a[href="logout.php"]
search:
@@ -148,19 +151,19 @@ search:
selector: a[href^="details.php?id="]
attribute: href
download:
- selector: a[href^="download_ssl.php?torrent="]
+ selector: a[href^="download.php?torrent="]
attribute: href
poster:
- selector: img[src^="cloud-data/to_cover/"]
+ selector: img[src^="cloud-data/"]
attribute: src
size:
selector: div.selection_unter_ad
grabs:
selector: div.selection_unter_ae
seeders:
- selector: div.selection_unter_aa > b
+ selector: div.selection_unter_aa
leechers:
- selector: div.selection_unter_aaa > b
+ selector: div.selection_unter_aaa
date_day:
# Heute 03:27:27
# Gestern 21:00:59
@@ -171,7 +174,8 @@ search:
args: ["Heute ", "Today"]
- name: replace
args: ["Gestern ", "Yesterday"]
- - name: fuzzytime
+ - name: append
+ args: " +01:00" # CET
date_year:
# 14.03.2024 um 20:43:07
selector: div.selection_unter_ab:not(:contains("Heute")):not(:contains("Gestern"))
diff --git a/mock-htpc/prowlarr/Definitions/datascene-api.yml b/mock-htpc/prowlarr/Definitions/datascene-api.yml
index 15aded5..e47308c 100644
--- a/mock-htpc/prowlarr/Definitions/datascene-api.yml
+++ b/mock-htpc/prowlarr/Definitions/datascene-api.yml
@@ -92,11 +92,12 @@ login:
- selector: a[href*="/login"]
message:
text: "The API key was not accepted by {{ .Config.sitelink }}."
+ - selector: :root:contains("Account is Banned")
search:
paths:
- # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v7.0.0)
- # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L349
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
- path: "/api/torrents/filter"
response:
type: json
@@ -197,7 +198,7 @@ search:
case:
False: 1 # normal
True: 2 # double
-# global MR is 0.4 but torrents must be seeded for 7 days regardless of ratio
+# global MR is 0.4 but torrents must be seeded for 2 days regardless of ratio
# minimumratio:
# text: 0.4
minimumseedtime:
diff --git a/mock-htpc/prowlarr/Definitions/deildu.yml b/mock-htpc/prowlarr/Definitions/deildu.yml
index 0b0347a..d8b0d96 100644
--- a/mock-htpc/prowlarr/Definitions/deildu.yml
+++ b/mock-htpc/prowlarr/Definitions/deildu.yml
@@ -62,6 +62,8 @@ login:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
keeplogged: 1
+ error:
+ - selector: table.main:contains("Login failed")
test:
path: index.php
selector: a[href^="logout.php"]
diff --git a/mock-htpc/prowlarr/Definitions/desitorrents-api.yml b/mock-htpc/prowlarr/Definitions/desitorrents-api.yml
index 924d366..4c99902 100644
--- a/mock-htpc/prowlarr/Definitions/desitorrents-api.yml
+++ b/mock-htpc/prowlarr/Definitions/desitorrents-api.yml
@@ -6,9 +6,10 @@ language: en-US
type: private
encoding: UTF-8
links:
+ - https://torrent.desi/
+legacylinks:
- https://desitorrents.tv/
- https://desitorrents.rocks/
- - https://torrent.desi/
caps:
categorymappings:
@@ -53,22 +54,23 @@ settings:
- name: info_activity
type: info
label: Account Inactivity
- default: "- Accounts are regarded as inactive when users fail to sign into their accounts for more than 3 months (90 days). Inactive accounts are automatically disabled by a script that runs once every day.
- For new accounts, members must generate some activity by downloading or uploading torrents in the first month (30 days) of their memberships.
- Donors are exempt from automatic account disabling due to inactivity. If you wish to always maintain an active account consider donating.
"
+ default: "Inactive accounts will be disabled after 3 months of inactivity, 1 month for new accounts. Members must generate some download or upload activity at least once every 3 months."
login:
- path: /api/torrents
+ path: /api/v1/torrents
method: get
inputs: {} # TODO: remove in v10
error:
- selector: a[href*="/login"]
message:
text: "The API key was not accepted by {{ .Config.sitelink }}."
+ - selector: :root:contains("Account is Banned")
search:
paths:
- # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v7.0.0)
- # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L349
- - path: "/api/torrents/filter"
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
+ - path: "/api/v1/torrents/filter"
response:
type: json
diff --git a/mock-htpc/prowlarr/Definitions/devil-torrents.yml b/mock-htpc/prowlarr/Definitions/devil-torrents.yml
index 7e1a824..2b1c293 100644
--- a/mock-htpc/prowlarr/Definitions/devil-torrents.yml
+++ b/mock-htpc/prowlarr/Definitions/devil-torrents.yml
@@ -60,10 +60,8 @@ settings:
options:
POLISH: POLISH
MULTi POLISH: MULTi POLISH
- - name: flaresolverr
- type: info
- label: FlareSolverr
- default: This site may use Cloudflare DDoS Protection, therefore Prowlarr requires FlareSolverr to access it.
+ - name: info_flaresolverr
+ type: info_flaresolverr
login:
path: logowanie
diff --git a/mock-htpc/prowlarr/Definitions/diablotorrent.yml b/mock-htpc/prowlarr/Definitions/diablotorrent.yml
index e6bb2df..6f9d850 100644
--- a/mock-htpc/prowlarr/Definitions/diablotorrent.yml
+++ b/mock-htpc/prowlarr/Definitions/diablotorrent.yml
@@ -100,6 +100,8 @@ login:
login: 1
belepes: 1
rhash: 123
+ error:
+ - selector: :root:contains("{\"hiba\":true,")
test:
path: browse
selector: a[href*="logout"]
diff --git a/mock-htpc/prowlarr/Definitions/digitalcore.yml b/mock-htpc/prowlarr/Definitions/digitalcore.yml
index a572f1a..3ad99ff 100644
--- a/mock-htpc/prowlarr/Definitions/digitalcore.yml
+++ b/mock-htpc/prowlarr/Definitions/digitalcore.yml
@@ -25,6 +25,7 @@ caps:
- {id: 13, cat: TV/UHD, desc: Tv/2160p}
- {id: 14, cat: TV/HD, desc: Tv/BluRay}
- {id: 12, cat: TV/HD, desc: Tv/PACKS}
+ - {id: 15, cat: TV/Sport, desc: Tv/SPORTS}
- {id: 17, cat: Other, desc: Unknown}
- {id: 18, cat: PC/0day, desc: Apps/0DAY}
- {id: 20, cat: PC/ISO, desc: Apps/PC}
@@ -63,10 +64,8 @@ settings:
- name: cookie
type: text
label: Cookie
- - name: info
- type: info
- label: How to get the Cookie
- default: "- Login to this tracker with your browser
- Open the DevTools panel by pressing F12
- Select the Network tab
- Click on the Doc button (Chrome Browser) or HTML button (FireFox)
- Refresh the page by pressing F5
- Click on the first row entry
- Select the Headers tab on the Right panel
- Find 'cookie:' in the Request Headers section
- Select and Copy the whole cookie string (everything after 'cookie: ') and Paste here.
"
+ - name: info_cookie
+ type: info_cookie
- name: freeleech
type: checkbox
label: Search freeleech only
@@ -101,6 +100,7 @@ settings:
default: "If your account is inactive (you do not sign in) for more than 60 days, your account is disabled. Park your account if you are going away for more than 60 days."
login:
+ # using cookie method because login page is dynamically generated using JS
method: cookie
inputs:
cookie: "{{ .Config.cookie }}"
diff --git a/mock-htpc/prowlarr/Definitions/dimeadozen.yml b/mock-htpc/prowlarr/Definitions/dimeadozen.yml
index f10f2d3..ce41d1e 100644
--- a/mock-htpc/prowlarr/Definitions/dimeadozen.yml
+++ b/mock-htpc/prowlarr/Definitions/dimeadozen.yml
@@ -94,6 +94,7 @@ login:
logout: ""
error:
- selector: table.message:contains("Error")
+ - selector: body:contains("Error 403")
test:
path: index.php
selector: a[href="account-logout.php"]
diff --git a/mock-htpc/prowlarr/Definitions/discfan.yml b/mock-htpc/prowlarr/Definitions/discfan.yml
index ac57eca..f38c6b9 100644
--- a/mock-htpc/prowlarr/Definitions/discfan.yml
+++ b/mock-htpc/prowlarr/Definitions/discfan.yml
@@ -184,4 +184,4 @@ search:
args: "cat={{ .Result.category_title }} - "
minimumratio:
text: 0.9
-# NexusPHP v1.8.8 2023-09-25
+# NexusPHP v1.8.13 2024-09-21
diff --git a/mock-htpc/prowlarr/Definitions/divteam.yml b/mock-htpc/prowlarr/Definitions/divteam.yml
index 443d1cd..4c4bb0c 100644
--- a/mock-htpc/prowlarr/Definitions/divteam.yml
+++ b/mock-htpc/prowlarr/Definitions/divteam.yml
@@ -59,12 +59,10 @@ settings:
type: text
label: Cookie
- name: info_cookie
- type: info
- label: How to get the Cookie
- default: "- Login to this tracker with your browser
- Open the DevTools panel by pressing F12
- Select the Network tab
- Click on the Doc button (Chrome Browser) or HTML button (FireFox)
- Refresh the page by pressing F5
- Click on the first row entry
- Select the Headers tab on the Right panel
- Find 'cookie:' in the Request Headers section
- Select and Copy the whole cookie string (everything after 'cookie: ') and Paste here.
"
+ type: info_cookie
- name: freeleech
type: checkbox
- label: Search freeleech only
+ label: Filter freeleech only
default: false
- name: sort
type: select
@@ -92,6 +90,7 @@ settings:
default: "In principle, the STAFF reserves the right to delete any user who has not accessed the tracker in 90 days or has not downloaded/uploaded any contribution in the last 180 days, if you are going to be away for a while, park the account from your panel."
login:
+ # using cookie method because login page has embedded Google reCAPTCHA
method: cookie
inputs:
cookie: "{{ .Config.cookie }}"
@@ -107,16 +106,17 @@ search:
page: torrents
category: "{{ range .Categories }}{{.}};{{end}}"
search: "{{ .Keywords }}"
+ # 0 title, 1 title&desc, 2 descr, 3 uploaders, 5 gold, 6 silver, 9 2x, 10 3x, 11 4x, 12 5x
+ # note the options are exclusive, so searching for gold means the search keywords are ignored
+ options: 0
# 0 all, 1 activeonly, 2 deadonly
active: 0
- # 0 title, 1 title&desc, 2 descr, 3 uploaders, 5 gold, 6 silver, 9 2x, 10 3x, 11 4x, 12 5x
- options: "{{ if .Config.freeleech }}5{{ else }}0{{ end }}"
order: "{{ .Config.sort }}"
by: "{{ .Config.type }}"
# does not support imdbid search and does not supply imdb link in results.
rows:
- selector: table.table.table-bordered > tbody > tr:has(a[href^="download.php?id="])
+ selector: "table.table.table-bordered > tbody > tr:has(a[href^=\"download.php?id=\"]){{ if .Config.freeleech }}:has(img[src$=\"gold.gif\"]){{ else }}{{ end }}, table.table.table-bordered > tbody > tr:has(a[href^=\"download.php?id=\"]){{ if .Config.freeleech }}:has(img[src$=\"freeleech.gif\"]){{ else }}{{ end }}"
fields:
download:
diff --git a/mock-htpc/prowlarr/Definitions/dmhy.yml b/mock-htpc/prowlarr/Definitions/dmhy.yml
index 15d922a..9a7d761 100644
--- a/mock-htpc/prowlarr/Definitions/dmhy.yml
+++ b/mock-htpc/prowlarr/Definitions/dmhy.yml
@@ -42,10 +42,8 @@ caps:
book-search: [q]
settings:
- - name: flaresolverr
- type: info
- label: FlareSolverr
- default: This site may use Cloudflare DDoS Protection, therefore Prowlarr requires FlareSolverr to access it.
+ - name: info_flaresolverr
+ type: info_flaresolverr
search:
paths:
diff --git a/mock-htpc/prowlarr/Definitions/docspedia.yml b/mock-htpc/prowlarr/Definitions/docspedia.yml
index e9cacf4..df513fe 100644
--- a/mock-htpc/prowlarr/Definitions/docspedia.yml
+++ b/mock-htpc/prowlarr/Definitions/docspedia.yml
@@ -11,25 +11,37 @@ links:
caps:
categorymappings:
- {id: 77, cat: PC, desc: "3D Models"}
+ - {id: 83, cat: Books/EBook, desc: "Action/Adventure"}
+ - {id: 84, cat: Books/EBook, desc: "Art"}
- {id: 65, cat: Audio, desc: "Audio"}
+ - {id: 85, cat: Books/EBook, desc: "Biographical"}
- {id: 64, cat: Books/EBook, desc: "Books"}
- {id: 66, cat: Books, desc: "Business"}
- {id: 68, cat: Books/Comics, desc: "Comics"}
- {id: 80, cat: Books, desc: "Coooking"}
+ - {id: 86, cat: Books/EBook, desc: "Crafts"}
+ - {id: 92, cat: Books/EBook, desc: "Crime/Thriller"}
- {id: 59, cat: TV/Documentary, desc: "Docs/Movies"}
- {id: 60, cat: TV/Documentary, desc: "Docs/TV"}
- {id: 79, cat: TV, desc: "Educational"}
+ - {id: 93, cat: Books/EBook, desc: "Fantasy"}
- {id: 71, cat: Other, desc: "Fonts"}
+ - {id: 82, cat: Books/EBook, desc: "History"}
+ - {id: 87, cat: Books/EBook, desc: "Horror"}
- {id: 72, cat: Books, desc: "IT Books"}
- {id: 57, cat: Books/Mags, desc: "Magazine"}
+ - {id: 88, cat: Books/EBook, desc: "Math/Science/Tech"}
- {id: 58, cat: Books, desc: "Medicine"}
- {id: 70, cat: Books/EBook, desc: "Occult"}
+ - {id: 81, cat: Books/EBook, desc: "Photography"}
- {id: 74, cat: Audio, desc: "Podcasts"}
- {id: 69, cat: Other, desc: "PS Resources"}
+ - {id: 91, cat: Books/EBook, desc: "Romance"}
+ - {id: 89, cat: Books/EBook, desc: "Scinece Fiction"}
- {id: 76, cat: Books, desc: "Self-Help"}
- {id: 56, cat: TV/Sport, desc: "Sports"}
+ - {id: 90, cat: Books/EBook, desc: "Travel"}
- {id: 61, cat: Other, desc: "Tutorials"}
- - {id: 81, cat: Books, desc: "Wordpress"}
modes:
search: [q]
diff --git a/mock-htpc/prowlarr/Definitions/dreamtracker.yml b/mock-htpc/prowlarr/Definitions/dreamtracker.yml
index 6a03eee..fdcb48a 100644
--- a/mock-htpc/prowlarr/Definitions/dreamtracker.yml
+++ b/mock-htpc/prowlarr/Definitions/dreamtracker.yml
@@ -1,7 +1,7 @@
---
id: dreamtracker
name: Dream Tracker
-description: "Dream Tracker is a GREEK Private tracker for TV / MOVIES / GENERAL"
+description: "Dream Tracker is a Subscription only GREEK Private tracker for TV / MOVIES / GENERAL"
language: en-US
type: private
encoding: UTF-8
@@ -123,7 +123,7 @@ settings:
- name: info
type: info
label: Layout
- default: "- Only the English Classic profile is supported.
- Make sure to set the Torrent Listing option in your profile to Classic
- And set the Language to English
- Using the Modern theme will prevent results, and using Greek will prevent upload dates.
"
+ default: "- Only the English Classic profile is supported.
- Make sure to set the Torrent Listing option in your profile to Classic
- And set the Language to English
- Using the Modern theme will prevent results, and using Greek will prevent upload dates.
"
login:
path: ?p=home&pid=1
diff --git a/mock-htpc/prowlarr/Definitions/ebookbay.yml b/mock-htpc/prowlarr/Definitions/ebookbay.yml
index f80ecbc..f651d01 100644
--- a/mock-htpc/prowlarr/Definitions/ebookbay.yml
+++ b/mock-htpc/prowlarr/Definitions/ebookbay.yml
@@ -101,6 +101,8 @@ search:
rows:
selector: "div#content > div.poststuff:has(~ div.entry a.download), div#content > div.poststuff ~ div.entry:has(a.download)"
after: 1
+ filters:
+ - name: andmatch
fields:
category:
diff --git a/mock-htpc/prowlarr/Definitions/electro-torrent.yml b/mock-htpc/prowlarr/Definitions/electro-torrent.yml
index 084c61f..c569f2c 100644
--- a/mock-htpc/prowlarr/Definitions/electro-torrent.yml
+++ b/mock-htpc/prowlarr/Definitions/electro-torrent.yml
@@ -55,20 +55,12 @@ caps:
book-search: [q]
settings:
- - name: cookie
+ - name: username
type: text
- label: Cookie
- - name: info
- type: info
- label: How to get the Cookie
- default: "- Login to this tracker with your browser
- Open the DevTools panel by pressing F12
- Select the Network tab
- Click on the Doc button (Chrome Browser) or HTML button (FireFox)
- Refresh the page by pressing F5
- Click on the first row entry
- Select the Headers tab on the Right panel
- Find 'cookie:' in the Request Headers section
- Select and Copy the whole cookie string (everything after 'cookie: ') and Paste here.
"
- - name: useragent
- type: text
- label: User-Agent
- - name: info_useragent
- type: info
- label: How to get the User-Agent
- default: "- From the same place you fetched the cookie,
- Find 'user-agent:' in the Request Headers section
- Select and Copy the whole user-agent string (everything after 'user-agent: ') and Paste here.
"
+ label: Username
+ - name: password
+ type: password
+ label: Password
- name: multilang
type: checkbox
label: Replace MULTi by another language in release name
@@ -82,17 +74,25 @@ settings:
MULTi POLISH: MULTi POLISH
login:
- method: cookie
+ path: logowanie
+ method: form
+ form: form[action="takelogin.php"]
+ captcha:
+ type: image
+ selector: img[src^="/img.php?size=3"]
+ input: vImageCodP
inputs:
- cookie: "{{ .Config.cookie }}"
+ username: "{{ .Config.username }}"
+ password: "{{ .Config.password }}"
+ returnto: ""
+ error:
+ - selector: div#center-side:contains("Logowanie nie")
test:
path: /
selector: a[href$="/logout.php"]
search:
# http://electro-torrent.pl/szukaj.php?search=&typ=torrent&cat=0
- headers:
- User-Agent: ["{{ .Config.useragent }}"]
paths:
- path: szukaj.php
allowEmptyInputs: true
diff --git a/mock-htpc/prowlarr/Definitions/elitetorrent-wf.yml b/mock-htpc/prowlarr/Definitions/elitetorrent-wf.yml
new file mode 100644
index 0000000..3cf1237
--- /dev/null
+++ b/mock-htpc/prowlarr/Definitions/elitetorrent-wf.yml
@@ -0,0 +1,131 @@
+---
+id: elitetorrent-wf
+name: Elitetorrent-wf
+description: "Elitetorrent-wf is a SPANISH Public tracker for MOVIES / TV"
+language: es-ES
+type: public
+encoding: UTF-8
+links:
+ - https://www.elitetorrent.wf/
+
+caps:
+ categories:
+ series: TV
+ peliculas: Movies
+ other: Other
+
+ modes:
+ search: [q]
+ tv-search: [q, season, ep]
+ movie-search: [q]
+
+settings: []
+
+download:
+ selectors:
+ - selector: a[href^="magnet:?"]
+ attribute: href
+
+search:
+ paths:
+ - path: /
+ allowEmptyInputs: true
+ keywordsfilters:
+ # most ES/ITA TV torrents are in XXxYY format, so we search without S/E prefixes and filter later
+ - name: re_replace
+ args: ["(?i)S0?(\\d{1,2})", " $1 "]
+ - name: re_replace
+ args: ["(?i)E(\\d{2,3})", " $1 "]
+ inputs:
+ s: "{{ .Keywords }}"
+ x: 0
+ y: 0
+
+ rows:
+ selector: "#principal .miniboxs-ficha li:has(span:nth-of-type(2))"
+ filters:
+ - name: andmatch
+
+ fields:
+ category_movie:
+ selector: .meta a
+ attribute: href
+ filters:
+ - name: regexp
+ args: "^.*/(peliculas)/.*$"
+ category_tv:
+ selector: .meta a
+ attribute: href
+ filters:
+ - name: regexp
+ args: "^.*/(series)/.*$"
+ category:
+ text: "{{ if or .Result.category_movie .Result.category_tv }}{{ or .Result.category_movie .Result.category_tv }}{{ else }}other{{ end }}"
+ _quality:
+ selector: span:nth-of-type(2) > i
+ filters:
+ - name: replace
+ args: ["---", ""]
+ _language:
+ selector: span#idiomacio > i > img
+ attribute: title
+ filters:
+ - name: replace
+ args: ["Pelicula en ", ""]
+ - name: replace
+ args: ["Español Latino", "LATiN SPANiSH"]
+ - name: replace
+ args: ["Español Castellano", "SPANiSH"]
+ - name: replace
+ args: ["Ingles", "English"]
+ - name: replace
+ args: ["Subtitulado", " SPASUBS"]
+ - name: replace
+ args: ["VOSE", ""]
+ title:
+ selector: div.imagen > a
+ attribute: title
+ # normalize to SXXEYY format
+ filters:
+ - name: replace
+ args: [" – ", " "]
+ - name: replace
+ args: ["(", ""]
+ - name: replace
+ args: [")", ""]
+ - name: re_replace
+ args: ["(\\d{2})×(\\d{2})", "S$1E$2"]
+ - name: re_replace
+ args: ["(\\d{1})×(\\d{2})", "S0$1E$2"]
+ - name: append
+ args: " {{ .Result._quality }} {{ .Result._language }}"
+ details:
+ selector: .meta a
+ attribute: href
+ download:
+ selector: .meta a
+ attribute: href
+ poster:
+ selector: .imagen img
+ attribute: data-src
+ size_optional:
+ selector: .voto1
+ optional: true
+ filters:
+ - name: replace
+ args: ["desc.", "512 MB"]
+ - name: replace
+ args: ["s", ""]
+ size:
+ text: "{{ if .Result.size_optional }}{{ .Result.size_optional }}{{ else }}512 MB{{ end }}"
+ date:
+ text: now
+ seeders:
+ text: 1
+ leechers:
+ text: 1
+ downloadvolumefactor:
+ text: 0
+ uploadvolumefactor:
+ text: 1
+# engine n/a
diff --git a/mock-htpc/prowlarr/Definitions/empornium2fa.yml b/mock-htpc/prowlarr/Definitions/empornium2fa.yml
index c34cfc0..41673ce 100644
--- a/mock-htpc/prowlarr/Definitions/empornium2fa.yml
+++ b/mock-htpc/prowlarr/Definitions/empornium2fa.yml
@@ -1,7 +1,7 @@
---
id: empornium2fa
name: Empornium2FA
-description: "this indexer uses a cookie login for Empornium for those that want to use 2FA"
+description: "Empornium (EMP) is a Private Torrent Tracker for 3X. This indexer uses cookie login for 2FA."
language: en-US
type: private
encoding: UTF-8
@@ -69,16 +69,15 @@ settings:
- name: cookie
type: text
label: Cookie
- - name: infocookie
- type: info
- label: How to get the Cookie
- default: "- Login to this tracker with your browser
- Open the DevTools panel by pressing F12
- Select the Network tab
- Click on the Doc button (Chrome Browser) or HTML button (FireFox)
- Refresh the page by pressing F5
- Click on the first row entry
- Select the Headers tab on the Right panel
- Find 'cookie:' in the Request Headers section
- Select and Copy the whole cookie string (everything after 'cookie: ') and Paste here.
"
+ - name: info_cookie
+ type: info_cookie
- name: freeleech
type: checkbox
label: Search freeleech only
default: false
login:
+ # using cookie method because login page can present second page for 2FA when enabled
method: cookie
inputs:
cookie: "{{ .Config.cookie }}"
diff --git a/mock-htpc/prowlarr/Definitions/eniahd.yml b/mock-htpc/prowlarr/Definitions/eniahd.yml
index eca5203..ddbeb3a 100644
--- a/mock-htpc/prowlarr/Definitions/eniahd.yml
+++ b/mock-htpc/prowlarr/Definitions/eniahd.yml
@@ -77,7 +77,7 @@ settings:
type: checkbox
label: Add RUS to end of all titles to improve language detection by Sonarr and Radarr. Will cause English-only results to be misidentified.
default: false
- - name: freeleech
+ - name: freeleech_50
type: checkbox
label: Search freeleech and 50% freeleech only
default: false
@@ -151,7 +151,7 @@ search:
nm: "{{ .Keywords }}"
# search by partial word
allw: 0
- tor_type: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
+ tor_type: "{{ if .Config.freeleech_50 }}1{{ else }}{{ end }}"
keywordsfilters:
- name: diacritics
diff --git a/mock-htpc/prowlarr/Definitions/enthralled2fa.yml b/mock-htpc/prowlarr/Definitions/enthralled2fa.yml
index 9fecefa..a011e3f 100644
--- a/mock-htpc/prowlarr/Definitions/enthralled2fa.yml
+++ b/mock-htpc/prowlarr/Definitions/enthralled2fa.yml
@@ -24,9 +24,7 @@ settings:
type: text
label: Cookie
- name: info_cookie
- type: info
- label: How to get the Cookie
- default: "- Login to this tracker with your browser
- Open the DevTools panel by pressing F12
- Select the Network tab
- Click on the Doc button (Chrome Browser) or HTML button (FireFox)
- Refresh the page by pressing F5
- Click on the first row entry
- Select the Headers tab on the Right panel
- Find 'cookie:' in the Request Headers section
- Select and Copy the whole cookie string (everything after 'cookie: ') and Paste here.
"
+ type: info_cookie
- name: freeleech
type: checkbox
label: Search freeleech only
@@ -52,6 +50,7 @@ settings:
default: For best results, change the Torrents per page: setting to 100 on your account profile.
login:
+ # using cookie method because login page can present second page for 2FA when enabled
method: cookie
inputs:
cookie: "{{ .Config.cookie }}"
diff --git a/mock-htpc/prowlarr/Definitions/ex-torrenty.yml b/mock-htpc/prowlarr/Definitions/ex-torrenty.yml
index 1698679..28a65eb 100644
--- a/mock-htpc/prowlarr/Definitions/ex-torrenty.yml
+++ b/mock-htpc/prowlarr/Definitions/ex-torrenty.yml
@@ -20,6 +20,7 @@ caps:
- {id: 265, cat: Movies/HD, desc: "Filmy x265 HEVC"}
- {id: 12, cat: Movies/3D, desc: "Filmy 3D"}
- {id: 530, cat: Movies/SD, desc: "Filmy TS/CAM"}
+ - {id: 826, cat: Movies/HD, desc: "REMUX / Complete"}
- {id: 9, cat: PC, desc: "Programy"}
- {id: 7, cat: Console, desc: "Konsole"}
- {id: 6, cat: PC/Games, desc: "Gry"}
@@ -44,12 +45,16 @@ caps:
book-search: [q]
settings:
- - name: email
+ - name: cookie
type: text
- label: Email
- - name: password
- type: password
- label: Password
+ label: Cookie
+ - name: info_cookie
+ type: info_cookie
+ - name: useragent
+ type: text
+ label: User-Agent
+ - name: info_useragent
+ type: info_useragent
- name: multilang
type: checkbox
label: Replace MULTi by another language in release name
@@ -60,16 +65,13 @@ settings:
default: POLISH
options:
POLISH: POLISH
- MULTi POLISH: MULTIi POLISH
+ MULTi POLISH: MULTi POLISH
login:
- path: takelogin.php
- method: post
+ # using cookie method because login page has embedded Google reCAPTCHA
+ method: cookie
inputs:
- username: "{{ .Config.email }}"
- password: "{{ .Config.password }}"
- error:
- - selector: table.main:contains("Logowanie nie udane")
+ cookie: "{{ .Config.cookie }}"
test:
path: index.php
selector: a[href^="/logout.php"]
@@ -84,8 +86,11 @@ search:
search: "{{ if .Keywords }}{{ .Keywords }}{{ else }}%{{ end }}"
# does not support imdbid searching, or have imdb in results
+ headers:
+ User-Agent: ["{{ .Config.useragent }}"]
+
rows:
- selector: table[width="100%"] > tbody > tr:has(a[href^="torrent/"])
+ selector: table[width="100%"] > tbody > tr:has(a[href*="torrent/"])
fields:
category:
@@ -101,6 +106,7 @@ search:
":contains(\"x265 HEVC\")": 265
":contains(\"3D\")": 12
":contains(\"TS/CAM\")": 530
+ ":contains(\"REMUX\")": 826
":contains(\"Programy\")": 9
":contains(\"Konsole\")": 7
":contains(\"Gry\")": 6
@@ -117,9 +123,9 @@ search:
":contains(\"GSM/PDA\")": 31
":contains(\"Inne\")": 32
title_phase1:
- selector: a[href^="torrent/"]
+ selector: a[href*="torrent/"]
title_multilang:
- selector: a[href^="torrent/"]
+ selector: a[href*="torrent/"]
filters:
- name: re_replace
args: ["(?i)\\b(MULTI(?!.*(?:POLISH|ENGLISH|\\bPL\\b)))\\b", "{{ .Config.multilanguage }}"]
@@ -128,10 +134,10 @@ search:
title:
text: "{{ if .Config.multilang }}{{ .Result.title_multilang }}{{ else }}{{ .Result.title_phase1 }}{{ end }}"
details:
- selector: a[href^="torrent/"]
+ selector: a[href*="torrent/"]
attribute: href
download:
- selector: a[href^="torrent/"]
+ selector: a[href*="torrent/"]
attribute: href
filters:
- name: replace
diff --git a/mock-htpc/prowlarr/Definitions/exitorrent-org.yml b/mock-htpc/prowlarr/Definitions/exitorrent-org.yml
index 3be88ef..bf132ac 100644
--- a/mock-htpc/prowlarr/Definitions/exitorrent-org.yml
+++ b/mock-htpc/prowlarr/Definitions/exitorrent-org.yml
@@ -46,10 +46,8 @@ settings:
- name: cookie
type: text
label: Cookie
- - name: info
- type: info
- label: How to get the Cookie
- default: "- Login to this tracker with your browser
- Open the DevTools panel by pressing F12
- Select the Network tab
- Click on the Doc button (Chrome Browser) or HTML button (FireFox)
- Refresh the page by pressing F5
- Click on the first row entry
- Select the Headers tab on the Right panel
- Find 'cookie:' in the Request Headers section
- Select and Copy the whole cookie string (everything after 'cookie: ') and Paste here.
"
+ - name: info_cookie
+ type: info_cookie
- name: freeleech
type: checkbox
label: Search freeleech only
@@ -76,6 +74,7 @@ settings:
asc: asc
login:
+ # using cookie method because login page has embedded Google reCAPTCHA
method: cookie
inputs:
cookie: "{{ .Config.cookie }}"
@@ -96,7 +95,7 @@ search:
# 0 all, 1 active, 2 dead
incldead: 0
# 0 all, 1 polish, 5 dubbed, 6 subs, 2 non-polish, 3 freeleech, 4 highlighted
- polish: "{{ if .Config.freeleech }}3{{ else }}1{{ end }}"
+ polish: "{{ if .Config.freeleech }}3{{ else }}0{{ end }}"
sort: "{{ .Config.sort }}"
type: "{{ .Config.type }}"
@@ -106,7 +105,7 @@ search:
args: [" +(?:19|20)\\d{2} *$", ""]
rows:
- selector: table[class="text"][border="0"][cellspacing="0"][cellpadding="4"] > tbody > tr:has(a[href^="details.php?id="]):has(td[class*="tableBody1"])
+ selector: table[class="text"][border="0"][cellspacing="0"][cellpadding="4"] > tbody > tr:has(a[href^="details.php?id="]):has(td[class*="tableBody1"], td[class*="tableBody1B"])
filters:
- name: andmatch
@@ -118,9 +117,9 @@ search:
- name: querystring
args: cat
title_raw:
- selector: a[href^="details.php?id="]
+ selector: div[class="span_title"] > a[href^="details.php?id="]
title_stripped:
- selector: a[href^="details.php?id="]
+ selector: div[class="span_title"] > a[href^="details.php?id="]
filters:
- name: re_replace
args: ["^(.*/)(.*)$", "$2"]
@@ -131,8 +130,11 @@ search:
selector: a[href^="details.php?id="]
attribute: href
download:
- selector: a[href^="download.php/"], a[href^="downloadfl.php/"]
- attribute: href
+ selector: div.span_icon > a[onclick^="return downloadTorrent"]
+ attribute: onclick
+ filters:
+ - name: re_replace
+ args: ["^return downloadTorrent\\('([^']+)', '([^']+)', '[^']*'\\);$", "download.php/$1/$2.torrent"]
genre:
selector: div.span_title span div
_language:
diff --git a/mock-htpc/prowlarr/Definitions/exkinoray.yml b/mock-htpc/prowlarr/Definitions/exkinoray.yml
index e38f3c6..203de3b 100644
--- a/mock-htpc/prowlarr/Definitions/exkinoray.yml
+++ b/mock-htpc/prowlarr/Definitions/exkinoray.yml
@@ -6,9 +6,10 @@ language: ru-RU
type: semi-private
encoding: UTF-8
links:
- - http://exkinoray.fun/ # site does not support https
+ - https://exkinoray.ru/
legacylinks:
- http://exkinoray.tv/
+ - http://exkinoray.fun/ # site does not support https
caps:
categorymappings:
diff --git a/mock-htpc/prowlarr/Definitions/extratorrent-st.yml b/mock-htpc/prowlarr/Definitions/extratorrent-st.yml
index dcd005d..f871a61 100644
--- a/mock-htpc/prowlarr/Definitions/extratorrent-st.yml
+++ b/mock-htpc/prowlarr/Definitions/extratorrent-st.yml
@@ -7,31 +7,13 @@ type: public
encoding: UTF-8
links:
- https://extratorrent.st/
- - https://extratorrent.unblockit.africa/
- https://extratorrent.ninjaproxy1.com/
- https://extratorrent.proxyninja.org/
+ - https://extratorrent.proxyninja.net/
legacylinks:
- - https://extratorrent.nocensor.lol/
- - https://extratorrent.unblockit.ink/
- - https://extratorrent.nocensor.art/
- - https://extratorrent.unblockit.bio/
- - https://extratorrent.unblockit.boo/
- - https://extratorrent.mrunblock.guru/
- - https://extratorrent.unblockit.click/
- - https://extratorrent.unblockit.asia/
- - https://extratorrent.unblockit.mov/
- - https://extratorrent.mrunblock.life/
- - https://extratorrent.unblockit.rsvp/
- - https://extratorrent.nocensor.click/
- - https://extratorrent.unblockit.vegas/
- - https://extratorrent.unblockit.esq/
- - https://extratorrent.unblockit.zip/
- - https://extratorrent.unblockit.foo/
- - https://extratorrent.unblockit.ing/
- https://extratorrent.mrunblock.bond/
- https://extratorrent.nocensor.cloud/
- - https://extratorrent.unblockit.date/
- - https://extratorrent.unblockit.dad/
+ - https://extratorrent.unblockit.download/ # 502
caps:
categorymappings:
@@ -53,12 +35,12 @@ caps:
- {id: Music videos, cat: Audio/Video, desc: Music Videos}
- {id: Other Music, cat: Audio/Other, desc: Music Other}
- {id: Radio Shows, cat: Audio/Other, desc: Music Radio}
- - {id: Video, cat: XXX, desc: Adult / Porn}
- - {id: "Adult / Porn", cat: XXX, desc: Adult / Porn}
- - {id: Pictures, cat: XXX/ImageSet, desc: Adult Pictures}
- - {id: Magazines, cat: XXX/Other, desc: Adult Magazines}
- - {id: Games, cat: XXX/Other, desc: Adult Games}
- - {id: Hentai, cat: XXX/Other, desc: Adult Hentai}
+ - {id: Video, cat: XXX, desc: Adult / Porn}
+ - {id: "Adult / Porn", cat: XXX, desc: Adult / Porn}
+ - {id: Pictures, cat: XXX/ImageSet, desc: Adult Pictures}
+ - {id: Magazines, cat: XXX/Other, desc: Adult Magazines}
+ - {id: Games, cat: XXX/Other, desc: Adult Games}
+ - {id: Hentai, cat: XXX/Other, desc: Adult Hentai}
- {id: Windows, cat: PC, desc: Software Windows}
- {id: Android, cat: PC/Mobile-Android, desc: Software Android}
- {id: Mac, cat: PC/Mac, desc: Software Mac}
@@ -88,10 +70,8 @@ caps:
book-search: [q]
settings:
- - name: flaresolverr
- type: info
- label: FlareSolverr
- default: This site may use Cloudflare DDoS Protection, therefore Prowlarr requires FlareSolverr to access it.
+ - name: info_flaresolverr
+ type: info_flaresolverr
search:
paths:
diff --git a/mock-htpc/prowlarr/Definitions/exttorrents.yml b/mock-htpc/prowlarr/Definitions/exttorrents.yml
index 0f96d3e..bcd3da7 100644
--- a/mock-htpc/prowlarr/Definitions/exttorrents.yml
+++ b/mock-htpc/prowlarr/Definitions/exttorrents.yml
@@ -96,15 +96,8 @@ settings:
options:
desc: desc
asc: asc
- - name: flaresolverr
- type: info
- label: FlareSolverr
- default: This site may use Cloudflare DDoS Protection, therefore Prowlarr requires FlareSolverr to access it.
-
-download:
- selectors:
- - selector: a[href^="magnet:?xt="]
- attribute: href
+ - name: info_flaresolverr
+ type: info_flaresolverr
search:
paths:
@@ -133,9 +126,12 @@ search:
details:
selector: td:nth-child(1) div a
attribute: href
- download:
- selector: td:nth-child(1) div a
+ infohash:
+ selector: a[href^="magnet:?xt="]
attribute: href
+ filters:
+ - name: regexp
+ args: ([A-F|a-f|0-9]{40})
size:
selector: td:nth-child(2)
files:
diff --git a/mock-htpc/prowlarr/Definitions/eztv.yml b/mock-htpc/prowlarr/Definitions/eztv.yml
index aa93597..0f79b00 100644
--- a/mock-htpc/prowlarr/Definitions/eztv.yml
+++ b/mock-htpc/prowlarr/Definitions/eztv.yml
@@ -11,33 +11,20 @@ links:
- https://eztv.tf/
- https://eztv.yt/
- https://eztv1.xyz/
- - https://eztv.unblockit.africa/
- - https://eztv.unblockninja.com/
- - https://eztv.ninjaproxy1.com/
- - https://eztv.proxyninja.org/
legacylinks:
- https://eztv.ag/ # redirects to .re
- https://eztv.it/ # redirects to .re
- https://eztv.ch/ # redirects to .re
- https://eztv.io/
- - https://eztv.mrunblock.guru/
- - https://eztv.unblockit.click/
- - https://eztv.unblockit.asia/
- - https://eztv.unblockit.mov/
- - https://eztv.mrunblock.life/
- - https://eztv.unblockit.rsvp/
- - https://eztv.nocensor.click/
- - https://eztv.unblockit.vegas/
- - https://eztv.unblockit.esq/
- - https://eztv.unblockit.zip/
- https://eztv.re/
- https://eztv.li/
- - https://eztv.unblockit.foo/
- - https://eztv.unblockit.ing/
- https://eztv.mrunblock.bond/
- https://eztv.nocensor.cloud/
- - https://eztv.unblockit.date/
- - https://eztv.unblockit.dad/
+ - https://eztv.unblockninja.com/ # layout=def_wlinks not working
+ - https://eztv.ninjaproxy1.com/ # layout=def_wlinks not working
+ - https://eztv.proxyninja.org/ # layout=def_wlinks not working
+ - https://eztv.abcproxy.org/
+ - https://eztv.unblockit.download/
caps:
categories:
diff --git a/mock-htpc/prowlarr/Definitions/f1carreras-api.yml b/mock-htpc/prowlarr/Definitions/f1carreras-api.yml
new file mode 100644
index 0000000..98fe667
--- /dev/null
+++ b/mock-htpc/prowlarr/Definitions/f1carreras-api.yml
@@ -0,0 +1,168 @@
+---
+id: f1carreras-api
+name: F1Carreras (API)
+description: "F1Carreras is a Spanish Private Torrent Tracker for Motor Racing TV Releases"
+language: es-MX
+type: private
+encoding: UTF-8
+links:
+ - https://f1carreras.xyz/
+
+caps:
+ categorymappings:
+ - {id: 1, cat: TV/Sport, desc: "Movies"}
+ - {id: 2, cat: TV/Sport, desc: "TV"}
+ - {id: 3, cat: TV/Sport, desc: "Formula 1"}
+ - {id: 4, cat: TV/Sport, desc: "IndyCar Series"}
+ - {id: 5, cat: TV/Sport, desc: "Formula 2"}
+ - {id: 6, cat: TV/Sport, desc: "Formula E"}
+ - {id: 7, cat: TV/Sport, desc: "MotoGP"}
+ - {id: 8, cat: TV/Sport, desc: "Nascar"}
+ - {id: 9, cat: TV/Sport, desc: "Formula 3"}
+ - {id: 10, cat: TV/Sport, desc: "DTM"}
+ - {id: 11, cat: TV/Sport, desc: "Rally"}
+ - {id: 12, cat: TV/Sport, desc: "WEC"}
+ - {id: 13, cat: TV/Sport, desc: "Other Series"}
+
+ modes:
+ search: [q]
+ tv-search: [q, season, ep, imdbid, tvdbid, tmdbid]
+
+settings:
+ - name: apikey
+ type: text
+ label: APIKey
+ - name: info_key
+ type: info
+ label: About your API key
+ default: "Find or Generate a new API Token by accessing your F1Carreras account Settings page and clicking on the API Key tab."
+ - name: freeleech
+ type: checkbox
+ label: Search freeleech only
+ default: false
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: created_at
+ options:
+ created_at: created
+ seeders: seeders
+ size: size
+ name: title
+ - name: type
+ type: select
+ label: Order requested from site
+ default: desc
+ options:
+ desc: desc
+ asc: asc
+
+login:
+ path: /api/torrents
+ method: get
+ inputs: {} # TODO: remove in v10
+ error:
+ - selector: a[href*="/login"]
+ message:
+ text: "The API key was not accepted by {{ .Config.sitelink }}."
+ - selector: :root:contains("Account is Banned")
+
+search:
+ paths:
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
+ - path: "/api/torrents/filter"
+ response:
+ type: json
+
+ headers:
+ Authorization: ["Bearer {{ .Config.apikey }}"]
+
+ inputs:
+ # if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
+ $raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
+ name: "{{ .Keywords }}"
+ # disabled due to not being properly mapped
+ # seasonNumber: "{{ .Query.Season }}"
+ # episodeNumber: "{{ .Query.Ep }}"
+ imdbId: "{{ .Query.IMDBIDShort }}"
+ tmdbId: "{{ .Query.TMDBID }}"
+ tvdbId: "{{ .Query.TVDBID }}"
+ "free[]": "{{ if .Config.freeleech }}100{{ else }}{{ end }}"
+ sortField: "{{ .Config.sort }}"
+ sortDirection: "{{ .Config.type }}"
+ perPage: 100
+
+ keywordsfilters:
+ - name: re_replace
+ args: ["\\.", " "]
+ - name: re_replace # S2024 to 2024 and S2024E97 to 2024 97
+ args: ["\\b(?:S(\\d{2,4}))(?:E(\\d{2,4}))?\\b", "$1 $2"]
+ - name: trim
+
+ rows:
+ selector: data
+ attribute: attributes
+
+ fields:
+ category:
+ selector: category_id
+ title:
+ selector: name
+ details:
+ selector: details_link
+ download:
+ selector: download_link
+ infohash:
+ selector: info_hash
+ poster:
+ selector: meta.poster
+ filters:
+ - name: replace
+ args: ["https://via.placeholder.com/90x135", ""]
+ imdbid:
+ selector: imdb_id
+ tmdbid:
+ selector: tmdb_id
+ tvdbid:
+ selector: tvdb_id
+ files:
+ selector: num_file
+ seeders:
+ selector: seeders
+ leechers:
+ selector: leechers
+ grabs:
+ selector: times_completed
+ date:
+ # "created_at": "2021-10-18T00:34:50.000000Z" is returned by Newtonsoft.Json.Linq as 18/10/2021 00:34:50
+ selector: created_at
+ filters:
+ - name: append
+ args: " +00:00" # GMT
+ - name: dateparse
+ args: "MM/dd/yyyy HH:mm:ss zzz"
+ size:
+ selector: size
+ downloadvolumefactor:
+ # api returns 0%, 25%, 50%, 75%, 100%
+ selector: freeleech
+ case:
+ 0%: 1 # not free
+ 25%: 0.75
+ 50%: 0.5
+ 75%: 0.25
+ 100%: 0 # freeleech
+ "*": 0 # catch errors
+ uploadvolumefactor:
+ # api returns False, True
+ selector: double_upload
+ case:
+ False: 1 # normal
+ True: 2 # double
+ minimumratio:
+ text: 1.0
+ minimumseedtime:
+ # 1 day (as seconds = 1 x 24 x 60 x 60)
+ text: 86400
+# json UNIT3D 7.2.5 (custom)
diff --git a/mock-htpc/prowlarr/Definitions/fappaizuri.yml b/mock-htpc/prowlarr/Definitions/fappaizuri.yml
index 128b330..e123a24 100644
--- a/mock-htpc/prowlarr/Definitions/fappaizuri.yml
+++ b/mock-htpc/prowlarr/Definitions/fappaizuri.yml
@@ -58,6 +58,8 @@ settings:
options:
desc: desc
asc: asc
+ - name: info_flaresolverr
+ type: info_flaresolverr
login:
method: post
diff --git a/mock-htpc/prowlarr/Definitions/fearnopeer.yml b/mock-htpc/prowlarr/Definitions/fearnopeer.yml
index 9cf44d4..f00b78b 100644
--- a/mock-htpc/prowlarr/Definitions/fearnopeer.yml
+++ b/mock-htpc/prowlarr/Definitions/fearnopeer.yml
@@ -38,6 +38,10 @@ settings:
type: checkbox
label: Search freeleech only
default: false
+ - name: single_file_release_use_filename
+ type: checkbox
+ label: Use filename as title for single file releases
+ default: true
- name: sort
type: select
label: Sort requested from site
@@ -63,11 +67,12 @@ login:
- selector: a[href*="/login"]
message:
text: "The API key was not accepted by {{ .Config.sitelink }}."
+ - selector: :root:contains("Account is Banned")
search:
paths:
- # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v7.0.0)
- # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L349
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
- path: "/api/torrents/filter"
response:
type: json
@@ -100,8 +105,15 @@ search:
fields:
category:
selector: category_id
- title:
+ title_optional:
selector: name
+ title_filename:
+ selector: "files[0].name"
+ optional: true
+ files:
+ selector: num_file
+ title:
+ text: "{{ if and (.Config.single_file_release_use_filename) (eq .Result.files \"1\") (.Result.title_filename) }}{{ .Result.title_filename }}{{ else }}{{ .Result.title_optional }}{{ end }}"
details:
selector: details_link
download:
@@ -122,8 +134,6 @@ search:
genre:
selector: meta.genres
filters:
- - name: re_replace
- args: ["(?i)^None$", ""]
- name: re_replace
args: ["(?i)(Science Fiction)", "Science_Fiction"]
- name: re_replace
@@ -132,8 +142,6 @@ search:
args: [" & ", "_&_"]
description:
text: "{{ .Result.genre }}"
- files:
- selector: num_file
seeders:
selector: seeders
leechers:
@@ -150,7 +158,12 @@ search:
args: "MM/dd/yyyy HH:mm:ss zzz"
size:
selector: size
- downloadvolumefactor:
+ _featured:
+ selector: featured
+ case:
+ False: "{{ .False }}"
+ True: "{{ .True }}"
+ downloadvolumefactor_freeleech:
# api returns 0%, 25%, 50%, 75%, 100%
selector: freeleech
case:
@@ -160,13 +173,20 @@ search:
75%: 0.25
100%: 0 # freeleech
"*": 0 # catch errors
- uploadvolumefactor:
+ downloadvolumefactor:
+ text: "{{ if .Result._featured }}0{{ else }}{{ .Result.downloadvolumefactor_freeleech }}{{ end }}"
+ uploadvolumefactor_double_upload:
# api returns False, True
selector: double_upload
case:
False: 1 # normal
True: 2 # double
-# Maintain global ratio above 0.5 or downloads will get disabled. No MST.
- minimumratio:
- text: 0.51
-# json UNIT3D 7.2.5
+ uploadvolumefactor:
+ text: "{{ if .Result._featured }}2{{ else }}{{ .Result.uploadvolumefactor_double_upload }}{{ end }}"
+# global MR is 0.71 but torrents must be seeded for 7 days regardless of ratio
+# minimumratio:
+# text: 0.71
+ minimumseedtime:
+ # 7 days (as seconds = 7 x 24 x 60 x 60)
+ text: 604800
+# json UNIT3D 8.3.3
diff --git a/mock-htpc/prowlarr/Definitions/femdomcult.yml b/mock-htpc/prowlarr/Definitions/femdomcult.yml
index 2134efe..6960872 100644
--- a/mock-htpc/prowlarr/Definitions/femdomcult.yml
+++ b/mock-htpc/prowlarr/Definitions/femdomcult.yml
@@ -70,7 +70,7 @@ settings:
default: "User classes Beginner and Perv have to be inactive (= not logged in on the site, tracker activity/seeding does not count) for 4 months before getting disabled automatically. Member class and higher are exempt."
login:
- path: login.php
+ path: login
method: form
inputs:
username: "{{ .Config.username }}"
@@ -99,16 +99,16 @@ search:
fields:
download:
- selector: a[href^="torrents.php?action=download&id="]
+ selector: a[href^="/torrents.php?action=download&id="]
attribute: href
description_tags:
selector: div.tags
description:
case:
- span.icon_okay: "Verified: {{ .Result.description_tags }}"
+ span.icon[title*="okay"]: "Verified: {{ .Result.description_tags }}"
"*": "Unverified: {{ .Result.description_tags }}"
title:
- selector: a[href^="torrents.php?id="]
+ selector: a[href^="/torrents.php?id="]
category:
selector: a[href*="filter_cat"]
attribute: href
@@ -116,7 +116,7 @@ search:
- name: regexp
args: "(\\d+)]=1"
details:
- selector: a[href^="torrents.php?id="]
+ selector: a[href^="/torrents.php?id="]
attribute: href
poster:
selector: td:nth-child(2) > script
@@ -124,7 +124,7 @@ search:
- name: regexp
args: "src=(.*?)>"
- name: re_replace
- args: ["\\\\(.)", "$1"]
+ args: ["[\\\\\"]", ""]
- name: replace
args: ["/static/common/noartwork/noimage.png", ""]
files:
diff --git a/mock-htpc/prowlarr/Definitions/finelite.yml b/mock-htpc/prowlarr/Definitions/finelite.yml
index d4dec4f..b6ab8b0 100644
--- a/mock-htpc/prowlarr/Definitions/finelite.yml
+++ b/mock-htpc/prowlarr/Definitions/finelite.yml
@@ -13,7 +13,7 @@ settings:
type: text
label: Username
- name: password
- type: password
+ type: text
label: Password
- name: freeleech
type: checkbox
@@ -35,6 +35,18 @@ settings:
options:
desc: desc
asc: asc
+ - name: info_finelite
+ type: info
+ label: Login Requirement
+ default: "To successfully login, members must first message FinElite staff, asking that their account be whitelisted from captcha validation.Onnistuakseen sisäänkirjautumisessa jäsenten on ensin lähetettävä viesti FinElite henkilökunnalle ja pyydettävä, että heidän tilinsä poistetaan captcha-varmennuksesta."
+ - name: info_tpp
+ type: info
+ label: Results Per Page
+ default: For best results, change the Julkaisuja per sivu setting to 100 on your account profile.
+ - name: info_activity
+ type: info
+ label: Account Inactivity
+ default: "Unused IDs in the User and Power User categories are automatically deleted after 90 days. The account can be parked and stored on the site for 180 days."
caps:
categorymappings:
@@ -43,8 +55,7 @@ caps:
- {id: 24, cat: Books/EBook, desc: "Ebooks"}
- {id: 10, cat: Console, desc: "Games - Console"}
- {id: 11, cat: PC/Games, desc: "Games - PC"}
- - {id: 26, cat: Movies, desc: "Kids"}
- - {id: 9, cat: PC/Mobile-Other, desc: "Mobile"}
+ - {id: 26, cat: Movies/Other, desc: "Kids"}
- {id: 12, cat: Movies, desc: "Movie Pack"}
- {id: 31, cat: Movies/UHD, desc: "Movies 4K"}
- {id: 38, cat: Movies/BluRay, desc: "Movies BD"}
@@ -71,27 +82,26 @@ caps:
login:
path: login.php
method: form
- form: form#login
+ form: form[action="/take_login.php"]
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
error:
- - selector: td.embedded:contains("Virhe") # error
- - selector: td.embedded:contains("epäonnistui") # falied
+ - selector: div.notice.notice-error
test:
path: /
- selector: a[href="ulos.php"]
+ selector: a[href="/logout.php"]
search:
paths:
- # https://finelite.org/selaa.php?c14=1&c15=1&c31=1&search=tt6591554&hae=2&type=desc&cat=0&incldead=1&sort=1
- # https://finelite.org/selaa.php?search=&hae=0&type=desc&cat=0&incldead=1&freeleech=yes&sort=1
- - path: selaa.php
+ # https://finelite.org/browse.php?c14=1&c15=1&c31=1&search=tt6591554&hae=2&type=desc&cat=0&incldead=1&sort=1
+ # https://finelite.org/browse.php?search=&hae=0&type=desc&cat=0&incldead=1&freeleech=yes&sort=1
+ - path: browse.php
inputs:
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
# 0 name&descr, 1 name, 2 descr, 3 tags, 4 imdb with rating
- hae: "{{ if .Query.IMDBID }}2{{ else }}1{{ end }}"
+ hae: "{{ if .Query.IMDBID }}4{{ else }}1{{ end }}"
# 0 active, 1 incldead, 2 deadonly
incldead: 1
freeleech: "{{ if .Config.freeleech }}yes{{ else }}{{ end }}"
@@ -99,23 +109,26 @@ search:
type: "{{ .Config.type }}"
rows:
- selector: table.main > tbody > tr:has(a[href^="/lataa.php/"])
+ selector: table.main > tbody > tr:has(a[href^="/lataa/"])
fields:
category:
- selector: a[href^="selaa.php?c"]
+ selector: a[href^="/browse.php?c"]
attribute: href
filters:
- name: regexp
args: c(\d+)=1
title:
- selector: a[href^="julkaisu.php?id="]
+ selector: a[href^="/details/"]
details:
- selector: a[href^="julkaisu.php?id="]
+ selector: a[href^="/details/"]
attribute: href
download:
- selector: a[href^="/lataa.php/"]
+ selector: a[href^="/lataa/"]
attribute: href
+ poster:
+ selector: a[href^="/details/"] img
+ attribute: src
imdbid:
selector: a[href*="imdb.com/title/tt"]
attribute: href
@@ -128,7 +141,7 @@ search:
- name: append
args: " +02:00" # EET
- name: dateparse
- args: "d.M.yyyy HH:mm zzz"
+ args: "d.M.yyyy HH:mm zzz"
size:
selector: td:nth-last-child(3)
seeders:
@@ -137,7 +150,7 @@ search:
selector: td:nth-last-child(1)
downloadvolumefactor:
case:
- span.label-free: 0
+ span[title="Freeleech"]: 0
"*": 1
uploadvolumefactor:
text: 1
@@ -146,4 +159,4 @@ search:
minimumseedtime:
# 3 days (as seconds = 3 x 24 x 60 x 60)
text: 259200
-# custom 3.6.8
+# FE v4.0.0
diff --git a/mock-htpc/prowlarr/Definitions/freefarm.yml b/mock-htpc/prowlarr/Definitions/freefarm.yml
index 8a7af25..169a091 100644
--- a/mock-htpc/prowlarr/Definitions/freefarm.yml
+++ b/mock-htpc/prowlarr/Definitions/freefarm.yml
@@ -69,6 +69,8 @@ settings:
options:
desc: desc
asc: asc
+ - name: info_flaresolverr
+ type: info_flaresolverr
- name: info_tpp
type: info
label: Results Per Page
@@ -76,7 +78,7 @@ settings:
- name: info_activity
type: info
label: Account Inactivity
- default: "Cherish your user account. Inactive accounts would be deleted based on the following rules:- Veteran User or above would never be deleted.
- Elite User or above would never be deleted if packed (at User CP).
- Packed accounts would be deleted if users have not logged in for more than 400 days in a row.
- Unpacked accounts would be deleted if users have not logged in for more than 150 days in a row.
- Accounts with both uploaded and downloaded amount being 0 would be deleted if users have not logged in for more than 100 days in a row.
"
+ default: "Cherish your user account. Inactive accounts would be deleted based on the following rules:- Veteran User or above would never be deleted.
- Elite User or above would never be deleted if parked (at User CP).
- Parked accounts would be deleted if users have not logged in for more than 400 days in a row.
- Unparked accounts would be deleted if users have not logged in for more than 150 days in a row.
- Accounts with both uploaded and downloaded amount being 0 would be deleted if users have not logged in for more than 100 days in a row.
"
login:
path: login.php
@@ -216,4 +218,4 @@ search:
filters:
- name: prepend
args: "{{ .Result.description_verified }} "
-# NexusPHP v1.8.9 2023-09-29
+# NexusPHP v1.8.13 2024-07-23
diff --git a/mock-htpc/prowlarr/Definitions/frozenlayer.yml b/mock-htpc/prowlarr/Definitions/frozenlayer.yml
index 8f2c464..8c5effa 100644
--- a/mock-htpc/prowlarr/Definitions/frozenlayer.yml
+++ b/mock-htpc/prowlarr/Definitions/frozenlayer.yml
@@ -7,7 +7,7 @@ type: public
encoding: UTF-8
requestDelay: 2
certificates:
- - b738ae9ae55c5553b1ff7d3004d807229be3a091 # Expired 4 Dec 2023
+ - 0e43335b4c778e95f8e4db46e20cc3d0e84e59ff # expired 19 June 2024
links:
- https://www.frozen-layer.com/
diff --git a/mock-htpc/prowlarr/Definitions/fsm.yml b/mock-htpc/prowlarr/Definitions/fsm.yml
index 29ff962..22b3e6e 100644
--- a/mock-htpc/prowlarr/Definitions/fsm.yml
+++ b/mock-htpc/prowlarr/Definitions/fsm.yml
@@ -30,14 +30,14 @@ settings:
- name: info_token
type: info
label: About your API Token
- default: "Beta API Token applications have now closed. If you haven't already received one by private message, please wait for the official launch."
+ default: "Generate your API token on the FSM API page."
- name: passkey
type: text
label: Passkey
- name: info_passkey
type: info
label: About your Passkey
- default: "Find your Passkey by accessing the FSM RSS page."
+ default: "Find your Passkey on the FSM RSS page."
- name: freeleech
type: checkbox
label: Search freeleech only
@@ -50,6 +50,7 @@ settings:
login:
path: https://api.fsm.name/Torrents/listTorrents
method: get
+ inputs: {} # TODO: remove in v10
search:
paths:
@@ -88,8 +89,6 @@ search:
selector: tags
description:
text: "{{ .Result.genre }}"
- files:
- selector: fileCount
seeders:
selector: peers.upload
leechers:
@@ -97,21 +96,7 @@ search:
grabs:
selector: finish
date:
- selector: createdAt
- filters:
- - name: replace
- args: ["年", "years"]
- - name: replace
- args: ["月", "months"]
- - name: replace
- args: ["天", "days"]
- - name: re_replace
- args: ["小?时", "hours"]
- - name: replace
- args: ["分", "minutes"]
- - name: replace
- args: ["前", " ago"]
- - name: timeago
+ selector: createdTs
size:
selector: fileSize
downloadvolumefactor:
diff --git a/mock-htpc/prowlarr/Definitions/futuretorrent.yml b/mock-htpc/prowlarr/Definitions/futuretorrent.yml
index 5b05392..742f9a0 100644
--- a/mock-htpc/prowlarr/Definitions/futuretorrent.yml
+++ b/mock-htpc/prowlarr/Definitions/futuretorrent.yml
@@ -114,6 +114,16 @@ login:
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
+ error:
+ - selector: table:has(a[href*="login.php?error=1"])
+ message:
+ text: "ERROR: Incorrect username!"
+ - selector: table:has(a[href*="login.php?error=4"])
+ message:
+ text: "ERROR: Incorrect password!"
+ - selector: table:has(a[href*="login.php?error="])
+ message:
+ text: "ERROR: Something went wrong during login!"
test:
path: index.php
selector: a[href*="/logout.php"]
diff --git a/mock-htpc/prowlarr/Definitions/fuzer.yml b/mock-htpc/prowlarr/Definitions/fuzer.yml
index 2687294..b30ffaf 100644
--- a/mock-htpc/prowlarr/Definitions/fuzer.yml
+++ b/mock-htpc/prowlarr/Definitions/fuzer.yml
@@ -6,9 +6,10 @@ language: he-IL
type: private
encoding: windows-1255
links:
- - https://www.fuzer.me/
+ - https://www.fuzer.xyz/
legacylinks:
- https://fuzer.me/
+ - https://www.fuzer.me/
caps:
categorymappings:
@@ -61,7 +62,7 @@ caps:
modes:
search: [q]
- tv-search: [q, season, ep, imdbid]
+ tv-search: [q, season, ep]
movie-search: [q, imdbid]
music-search: [q]
book-search: [q]
@@ -70,10 +71,8 @@ settings:
- name: cookie
type: text
label: Cookie
- - name: info
- type: info
- label: How to get the Cookie
- default: "- Login to this tracker with your browser
- Open the DevTools panel by pressing F12
- Select the Network tab
- Click on the Doc button (Chrome Browser) or HTML button (FireFox)
- Refresh the page by pressing F5
- Click on the first row entry
- Select the Headers tab on the Right panel
- Find 'cookie:' in the Request Headers section
- Select and Copy the whole cookie string (everything after 'cookie: ') and Paste here.
"
+ - name: info_cookie
+ type: info_cookie
- name: freeleech
type: checkbox
label: Search freeleech only
@@ -96,6 +95,7 @@ settings:
asc: asc
login:
+ # using cookie method because login page has embedded Google reCAPTCHA
method: cookie
inputs:
cookie: "{{ .Config.cookie }}"
@@ -110,6 +110,7 @@ search:
query: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
order: "{{ .Config.sort }}"
sort: "{{ .Config.type }}"
+ # any (every word), phr (any match), all (exact match)
matchquery: any
freeleech: "{{ if .Config.freeleech }}1{{ else }}0{{ end }}"
# on, off, only_dead
diff --git a/mock-htpc/prowlarr/Definitions/gamestorrents.yml b/mock-htpc/prowlarr/Definitions/gamestorrents.yml
index 8a1d57a..59063ea 100644
--- a/mock-htpc/prowlarr/Definitions/gamestorrents.yml
+++ b/mock-htpc/prowlarr/Definitions/gamestorrents.yml
@@ -11,11 +11,6 @@ legacylinks:
- https://www.gamestorrents.com/
- https://www.gamestorrents.tv/
- https://www.gamestorrents.nu/
- - https://gamestorrents.nocensor.space/
- - https://gamestorrents.nocensor.work/
- - https://gamestorrents.nocensor.biz/
- - https://gamestorrents.nocensor.sbs/
- - https://gamestorrents.nocensor.world/
caps:
categorymappings:
diff --git a/mock-htpc/prowlarr/Definitions/gaytorrentru.yml b/mock-htpc/prowlarr/Definitions/gaytorrentru.yml
index d35b800..fa56a29 100644
--- a/mock-htpc/prowlarr/Definitions/gaytorrentru.yml
+++ b/mock-htpc/prowlarr/Definitions/gaytorrentru.yml
@@ -111,6 +111,8 @@ login:
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
+ error:
+ - selector: div.panel:has(h3:contains("Login failed"))
test:
path: browse.php
selector: a[href$="/logout.php"]
diff --git a/mock-htpc/prowlarr/Definitions/generationfree-api.yml b/mock-htpc/prowlarr/Definitions/generationfree-api.yml
index f03b349..25f3c55 100644
--- a/mock-htpc/prowlarr/Definitions/generationfree-api.yml
+++ b/mock-htpc/prowlarr/Definitions/generationfree-api.yml
@@ -90,11 +90,12 @@ login:
- selector: a[href*="/login"]
message:
text: "The API key was not accepted by {{ .Config.sitelink }}."
+ - selector: :root:contains("Account is Banned")
search:
paths:
- # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v7.0.0)
- # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L349
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
- path: "/api/torrents/filter"
response:
type: json
diff --git a/mock-htpc/prowlarr/Definitions/girotorrent.yml b/mock-htpc/prowlarr/Definitions/girotorrent.yml
index 042dc8b..958db2e 100644
--- a/mock-htpc/prowlarr/Definitions/girotorrent.yml
+++ b/mock-htpc/prowlarr/Definitions/girotorrent.yml
@@ -96,7 +96,7 @@ settings:
label: Password
- name: freeleech
type: checkbox
- label: Search freeleech only
+ label: Filter freeleech only
default: false
- name: sort
type: select
@@ -152,13 +152,14 @@ search:
# 15 results per page fetch 5 (site is slow, dont be greedy and fetch more)
- path: index.php
inputs:
+ page: torrents
search: "{{ .Keywords }}"
category: "{{ range .Categories }}{{.}};{{end}}"
- page: torrents
+ # 0 name, 1 name&descr, 2 descr, 3 uploader, 5 gold, 6 silver, 7 bronze
+ # note the options are exclusive, so searching for gold means the search keywords are ignored
+ options: 0
# 0 all, 1 activeonly, 2 deadonly
active: 0
- # 0 name, 1 name&descr, 2 descr, 3 uploader, 5 gold, 6 silver, 7 bronze
- options: "{{ if .Config.freeleech }}5{{ else }}0{{ end }}"
order: "{{ .Config.sort }}"
by: "{{ .Config.type }}"
keywordsfilters:
@@ -171,7 +172,7 @@ search:
# does not support imdbid search and does not return imdb link in results
rows:
- selector: div.b-content > table > tbody > tr > td > table.lista > tbody > tr:has(a[href^="index.php?page=torrent-details&id="])
+ selector: "div.b-content > table > tbody > tr > td > table.lista > tbody > tr:has(a[href^=\"index.php?page=torrent-details&id=\"]){{ if .Config.freeleech }}:has(img[alt=\"Gold 100% Free\"]){{ else }}{{ end }}, div.b-content > table > tbody > tr > td > table.lista > tbody > tr:has(a[href^=\"index.php?page=torrent-details&id=\"]){{ if .Config.freeleech }}:has(img[alt=\"Free Leech\"]){{ else }}{{ end }}"
filters:
- name: andmatch
diff --git a/mock-htpc/prowlarr/Definitions/gktorrent.yml b/mock-htpc/prowlarr/Definitions/gktorrent.yml
index 72d23dc..e89dc46 100644
--- a/mock-htpc/prowlarr/Definitions/gktorrent.yml
+++ b/mock-htpc/prowlarr/Definitions/gktorrent.yml
@@ -5,24 +5,20 @@ description: "GkTorrent is a French Public site for TV / MOVIES / GENERAL"
language: fr-FR
type: public
encoding: UTF-8
-followredirect: true
# to fetch current domain use https://www.protege-torrent.com/Gktorrent
links:
- - https://www.gktorrent.sh/
+ - https://www.gktorrent.si/
legacylinks:
+ - https://www.protege-liens.com/
+ - https://www.protege-liens.net/
+ # latest domains list
+ - https://www.protege-torrent.com/
+ - https://www.site-torrent.com/
- https://www.rantop.org/
- - https://gktorrent.nocensor.work/
- - https://gktorrent.nocensor.biz/
- - https://gktorrent.nocensor.sbs/
- - https://gktorrent.nocensor.world/
- - https://gktorrent.nocensor.lol/
- - https://gktorrent.mrunblock.guru/
- - https://gktorrent.mrunblock.life/
- - https://gktorrent.nocensor.click/
- - https://www.gktorrents.cc/
- - https://www.gktorrent.ac/
- - https://www.gktorrent.ph/
- - https://www.gktorrent.vc/
+ - https://www.torrent.ws/
+ - https://www.torrent.onl/
+ - https://gktorrent.news/
+ # actual legacylinks
- https://www.gktorrent.mx/
- https://www.gktorrent.fi/
- https://www.gktorrent.wf/
@@ -31,10 +27,20 @@ legacylinks:
- https://www.gktorrent.wtf/
- https://www.gktorrent.vg/
- https://www.gktorrent.lol/
+ - https://www.gktorrent.sh/
+ - https://www.gktorrent.eu/
+ - https://www.gktorrent.xyz/
+ - https://www.gktorrent.pm/
+ - https://www.gktorrent.tw/
+ - https://www.gktorrent.in/
+ - https://www.gktorrent.sk/
+ - https://www.gktorrent.uno/
+ - https://www.gktorrent.gy/
caps:
categorymappings:
- {id: Films, cat: Movies, desc: "Movies"}
+ - {id: Vidéos, cat: Movies, desc: "Vidéos"}
- {id: Animes, cat: TV/Anime, desc: "Anime"}
- {id: Séries, cat: TV, desc: "TV Series"}
- {id: Spectacles, cat: TV, desc: "TV Shows"}
@@ -57,6 +63,8 @@ caps:
allowrawsearch: true
settings:
+ - name: info_flaresolverr
+ type: info_flaresolverr
- name: multilang
type: checkbox
label: Replace MULTi by another language in release name
@@ -97,7 +105,7 @@ search:
args: ["(?i)(S)(\\d{1,3})$", "saison $2"]
rows:
- selector: table.table-hover > tbody > tr:has(a[onclick*="torrent/"])
+ selector: table.table-hover > tbody > tr:has(td a[href])
fields:
category:
@@ -124,10 +132,10 @@ search:
text: "{{ if .Config.multilang }}{{ .Result.title_multilang }}{{ else }}{{ .Result.title_phase2 }}{{ end }}"
details:
selector: td:nth-child(1) a
- attribute: onclick
+ attribute: href
filters:
- name: regexp
- args: (/?torrent/\d+)
+ args: (/?detail/\d+)
download:
text: "{{ .Result.details }}"
size:
diff --git a/mock-htpc/prowlarr/Definitions/glodls.yml b/mock-htpc/prowlarr/Definitions/glodls.yml
index 9772339..aecdd2a 100644
--- a/mock-htpc/prowlarr/Definitions/glodls.yml
+++ b/mock-htpc/prowlarr/Definitions/glodls.yml
@@ -8,32 +8,16 @@ encoding: UTF-8
links:
- https://glodls.to/
- https://gtso.cc/
- - https://glotorrents.unblockit.africa/
- https://glodls.unblockninja.com/
- - https://glodls.ninjaproxy1.com/
legacylinks:
- https://glodls.rocks/
- https://gtdb.to/
- - https://glotorrents.unblockit.bio/
- - https://glotorrents.unblockit.boo/
- - https://glotorrents.mrunblock.guru/
- - https://glotorrents.unblockit.click/
- - https://glotorrents.unblockit.asia/
- - https://glotorrents.unblockit.mov/
- - https://glotorrents.mrunblock.life/
- - https://glotorrents.unblockit.rsvp/
- - https://glotorrents.nocensor.click/
- https://gtdb.cc/
- - https://glotorrents.unblockit.vegas/
- - https://glotorrents.unblockit.esq/
- - https://glotorrents.unblockit.zip/
- - https://glotorrents.unblockit.foo/
- - https://glotorrents.unblockit.ing/
- https://www.gtdb.to/
- https://glotorrents.mrunblock.bond/
- https://glotorrents.nocensor.cloud/
- - https://glotorrents.unblockit.date/
- - https://glotorrents.unblockit.dad/
+ - https://glodls.ninjaproxy1.com/ # blank
+ - https://glotorrents.unblockit.download/
caps:
categorymappings:
@@ -87,6 +71,7 @@ search:
paths:
# https://glodls.to/search_results.php?c1=1&c72=1&c41=1&search=blacklist+s07e05&cat=0&incldead=1&inclexternal=0&lang=0&sort=id&order=desc
- path: search_results.php
+ allowEmptyInputs: true
inputs:
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
search: "{{ .Keywords }}"
diff --git a/mock-htpc/prowlarr/Definitions/gtorrentpro.yml b/mock-htpc/prowlarr/Definitions/gtorrentpro.yml
index 624268f..8613451 100644
--- a/mock-htpc/prowlarr/Definitions/gtorrentpro.yml
+++ b/mock-htpc/prowlarr/Definitions/gtorrentpro.yml
@@ -1,14 +1,15 @@
---
id: gtorrentpro
-name: GTorrent.ru
-description: "GTorrent.ru is a RUSSIAN Public Torrent Tracker for MOVIES / TV / GENERAL"
+name: GTorrent.club
+description: "GTorrent.club is a RUSSIAN Public Torrent Tracker for MOVIES / TV / GENERAL"
language: ru-RU
type: public
encoding: windows-1251
links:
- - http://gtorrent.ru/
+ - https://gtorrent.club/
legacylinks:
- http://gtorrent.pro/
+ - http://gtorrent.ru/
caps:
categorymappings:
@@ -22,7 +23,9 @@ caps:
modes:
search: [q]
-settings: []
+settings:
+ - name: info_flaresolverr
+ type: info_flaresolverr
download:
selectors:
diff --git a/mock-htpc/prowlarr/Definitions/haidan.yml b/mock-htpc/prowlarr/Definitions/haidan.yml
index 8a6aecf..33ca556 100644
--- a/mock-htpc/prowlarr/Definitions/haidan.yml
+++ b/mock-htpc/prowlarr/Definitions/haidan.yml
@@ -63,6 +63,8 @@ settings:
type: info
label: Alert
default: HaiDan has switched to a group torrent list, which means this Indexer can only display the first item in each group.
This yml Indexer will eventually be re-written in c# as soon as a c# dev volunteers, to display all items in a group.
+ - name: info_flaresolverr
+ type: info_flaresolverr
- name: info_activity
type: info
label: Account Inactivity
diff --git a/mock-htpc/prowlarr/Definitions/happyfappy.yml b/mock-htpc/prowlarr/Definitions/happyfappy.yml
index bc62fff..c86154a 100644
--- a/mock-htpc/prowlarr/Definitions/happyfappy.yml
+++ b/mock-htpc/prowlarr/Definitions/happyfappy.yml
@@ -11,10 +11,11 @@ links:
caps:
categorymappings:
- {id: 11, cat: XXX, desc: "Asian"}
+ - {id: 6, cat: XXX, desc: "Fansite"}
+ - {id: 13, cat: XXX, desc: "Games"}
- {id: 3, cat: XXX, desc: "Gay"}
- {id: 4, cat: XXX, desc: "Interracial"}
- {id: 5, cat: XXX, desc: "Lesbian"}
- - {id: 6, cat: XXX, desc: "Onlyfans"}
- {id: 9, cat: XXX, desc: "Packs"}
- {id: 10, cat: XXX, desc: "Pics"}
- {id: 1, cat: XXX, desc: "Pron"}
diff --git a/mock-htpc/prowlarr/Definitions/happyfappy2fa.yml b/mock-htpc/prowlarr/Definitions/happyfappy2fa.yml
new file mode 100644
index 0000000..ae8962e
--- /dev/null
+++ b/mock-htpc/prowlarr/Definitions/happyfappy2fa.yml
@@ -0,0 +1,148 @@
+---
+id: happyfappy2fa
+name: HappyFappy2FA
+description: "HappyFappy is a Private Torrent Tracker for 3X. This indexer uses cookie login for 2FA."
+language: en-US
+type: private
+encoding: UTF-8
+links:
+ - https://www.happyfappy.org/
+
+caps:
+ categorymappings:
+ - {id: 11, cat: XXX, desc: "Asian"}
+ - {id: 6, cat: XXX, desc: "Fansite"}
+ - {id: 13, cat: XXX, desc: "Games"}
+ - {id: 3, cat: XXX, desc: "Gay"}
+ - {id: 4, cat: XXX, desc: "Interracial"}
+ - {id: 5, cat: XXX, desc: "Lesbian"}
+ - {id: 9, cat: XXX, desc: "Packs"}
+ - {id: 10, cat: XXX, desc: "Pics"}
+ - {id: 1, cat: XXX, desc: "Pron"}
+ - {id: 8, cat: XXX, desc: "Retro"}
+ - {id: 12, cat: XXX, desc: "Transsexual"}
+ - {id: 7, cat: XXX, desc: "VR"}
+
+ modes:
+ search: [q]
+
+settings:
+ - name: cookie
+ type: text
+ label: Cookie
+ - name: info_cookie
+ type: info_cookie
+ - name: freeleech
+ type: checkbox
+ label: Search freeleech only
+ default: false
+ - name: info_tpp
+ type: info
+ label: Results Per Page
+ default: For best results, change the Torrents per page: setting to 100 on your account profile.
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: time
+ options:
+ time: created
+ seeders: seeders
+ size: size
+ - name: type
+ type: select
+ label: Order requested from site
+ default: desc
+ options:
+ desc: desc
+ asc: asc
+ - name: info_activity
+ type: info
+ label: Account Inactivity
+ default: "To keep your account active, sign in and browse the site at least once every 120 days. Seeding torrents does not count as account activity, so in order to remain active you need to sign in and browse the site. Pornstar Trainee (and above) have a longer inactivity timer, but logging in regularly is recommended to learn about special events and new features."
+
+login:
+ # using cookie method because login page can present second page for 2FA when enabled
+ method: cookie
+ inputs:
+ cookie: "{{ .Config.cookie }}"
+ test:
+ path: /
+ selector: "#nav_userinfo"
+
+search:
+ paths:
+ - path: torrents.php
+ inputs:
+ $raw: "{{ range .Categories }}filter_cat[{{.}}]=1&{{end}}"
+ title: "{{ .Keywords }}"
+ order_by: "{{ .Config.sort }}"
+ order_way: "{{ .Config.type }}"
+ action: advanced
+ filter_freeleech: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
+
+ rows:
+ selector: table#torrent_table > tbody > tr[class^="torrent row"]:has(a[href*="action=download"])
+
+ fields:
+ category:
+ selector: a[href^="/torrents.php?filter_cat["]
+ attribute: href
+ filters:
+ - name: regexp
+ args: \[(\d+)\]
+ title:
+ selector: a[href^="/torrents.php?id="]
+ details:
+ selector: a[href^="/torrents.php?id="]
+ attribute: href
+ download:
+ selector: a[href^="torrents.php?action=download&id="]
+ attribute: href
+ description_tags:
+ selector: div.tags
+ description:
+ case:
+ span.icon_okay: "Verified: {{ .Result.description_tags }}"
+ "*": "Unverified: {{ .Result.description_tags }}"
+ poster:
+ selector: td:nth-child(2) > script
+ filters:
+ - name: regexp
+ args: "src=\\\\\"(.*?)\\\\\""
+ - name: re_replace
+ args: ["\\\\(.)", "$1"]
+ - name: replace
+ args: ["/static/common/noartwork/noimage.png", ""]
+ files:
+ selector: td:nth-child(3)
+ date:
+ selector: td:nth-child(5) > span
+ attribute: title
+ # auto adjusted by site account profile
+ filters:
+ - name: dateparse
+ args: "MMM dd yyyy, HH:mm"
+ size:
+ selector: td:nth-child(6)
+ grabs:
+ selector: td:nth-child(7)
+ seeders:
+ selector: td:nth-child(8)
+ leechers:
+ selector: td:nth-child(9)
+ downloadvolumefactor:
+ case:
+ span.icon[title*="Freeleech"]: 0
+ "img[alt=\"Freeleech\"]": 0
+ "*": 1
+ uploadvolumefactor:
+ case:
+ span.icon[title*="DoubleSeed"]: 2
+ "img[alt=\"DoubleSeed\"]": 2
+ "*": 1
+ minimumratio:
+ text: 0.5
+ minimumseedtime:
+ # 3 days (as seconds = 3 x 24 x 60 x 60)
+ text: 259200
+# Luminance
diff --git a/mock-htpc/prowlarr/Definitions/hawke-uno.yml b/mock-htpc/prowlarr/Definitions/hawke-uno.yml
index e1a39b5..613603d 100644
--- a/mock-htpc/prowlarr/Definitions/hawke-uno.yml
+++ b/mock-htpc/prowlarr/Definitions/hawke-uno.yml
@@ -1,7 +1,7 @@
---
id: hawke-uno
name: hawke-uno
-description: "hawke-uno is a Private Torrent Tracker for (X265 / HEVC) MOVIES / TV"
+description: "hawke-uno (HUNO) is a Private Torrent Tracker for (X265 / HEVC) MOVIES / TV"
language: en-US
type: private
encoding: UTF-8
@@ -61,11 +61,12 @@ login:
- selector: a[href*="/login"]
message:
text: "The API key was not accepted by {{ .Config.sitelink }}."
+ - selector: :root:contains("Account is Banned")
search:
paths:
- # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v7.0.0)
- # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L349
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
- path: "/api/torrents/filter"
response:
type: json
@@ -153,4 +154,4 @@ search:
minimumseedtime:
# 5 days (as seconds = 5 x 24 x 60 x 60)
text: 432000
-# json UNIT3D 5.3.0
+# json UNIT3D 5.3.0 (custom 0.5.0)
diff --git a/mock-htpc/prowlarr/Definitions/hd-unit3d-api.yml b/mock-htpc/prowlarr/Definitions/hd-unit3d-api.yml
index e848e65..2076dae 100644
--- a/mock-htpc/prowlarr/Definitions/hd-unit3d-api.yml
+++ b/mock-htpc/prowlarr/Definitions/hd-unit3d-api.yml
@@ -33,6 +33,10 @@ settings:
type: checkbox
label: Search freeleech only
default: false
+ - name: single_file_release_use_filename
+ type: checkbox
+ label: Use filename as title for single file releases
+ default: true
- name: sort
type: select
label: Sort requested from site
@@ -62,11 +66,12 @@ login:
- selector: a[href*="/login"]
message:
text: "The API key was not accepted by {{ .Config.sitelink }}."
+ - selector: :root:contains("Account is Banned")
search:
paths:
- # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v7.0.0)
- # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L349
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
- path: "/api/torrents/filter"
response:
type: json
@@ -99,8 +104,15 @@ search:
fields:
category:
selector: category_id
- title:
+ title_optional:
selector: name
+ title_filename:
+ selector: "files[0].name"
+ optional: true
+ files:
+ selector: num_file
+ title:
+ text: "{{ if and (.Config.single_file_release_use_filename) (eq .Result.files \"1\") (.Result.title_filename) }}{{ .Result.title_filename }}{{ else }}{{ .Result.title_optional }}{{ end }}"
details:
selector: details_link
download:
@@ -121,8 +133,6 @@ search:
genre:
selector: meta.genres
filters:
- - name: re_replace
- args: ["(?i)^None$", ""]
- name: re_replace
args: ["(?i)(Science Fiction)", "Science_Fiction"]
- name: re_replace
@@ -131,8 +141,6 @@ search:
args: [" & ", "_&_"]
description:
text: "{{ .Result.genre }}"
- files:
- selector: num_file
seeders:
selector: seeders
leechers:
@@ -149,7 +157,12 @@ search:
args: "MM/dd/yyyy HH:mm:ss zzz"
size:
selector: size
- downloadvolumefactor:
+ _featured:
+ selector: featured
+ case:
+ False: "{{ .False }}"
+ True: "{{ .True }}"
+ downloadvolumefactor_freeleech:
# api returns 0%, 25%, 50%, 75%, 100%
selector: freeleech
case:
@@ -159,13 +172,17 @@ search:
75%: 0.25
100%: 0 # freeleech
"*": 0 # catch errors
- uploadvolumefactor:
+ downloadvolumefactor:
+ text: "{{ if .Result._featured }}0{{ else }}{{ .Result.downloadvolumefactor_freeleech }}{{ end }}"
+ uploadvolumefactor_double_upload:
# api returns False, True
selector: double_upload
case:
False: 1 # normal
True: 2 # double
+ uploadvolumefactor:
+ text: "{{ if .Result._featured }}2{{ else }}{{ .Result.uploadvolumefactor_double_upload }}{{ end }}"
minimumseedtime:
# 3 days (as seconds = 3 x 24 x 60 x 60)
text: 259200
-# json UNIT3D 7.2.5
+# json UNIT3D 8.3.2
diff --git a/mock-htpc/prowlarr/Definitions/hd4fans.yml b/mock-htpc/prowlarr/Definitions/hd4fans.yml
index 667d0e5..cbffdbd 100644
--- a/mock-htpc/prowlarr/Definitions/hd4fans.yml
+++ b/mock-htpc/prowlarr/Definitions/hd4fans.yml
@@ -22,8 +22,8 @@ caps:
modes:
search: [q]
- tv-search: [q, season, ep, imdbid]
- movie-search: [q, imdbid]
+ tv-search: [q, season, ep, imdbid, doubanid]
+ movie-search: [q, imdbid, doubanid]
music-search: [q]
settings:
@@ -33,30 +33,57 @@ settings:
- name: password
type: password
label: Password
+ - name: 2facode
+ type: text
+ label: 2FA code
+ - name: info_2fa
+ type: info
+ label: "About 2FA code"
+ default: "Only fill in the 2FA code box if you have enabled 2FA on the Free Farm Web Site. Otherwise just leave it empty."
- name: freeleech
type: checkbox
label: Search freeleech only
default: false
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: 4
+ options:
+ 4: created
+ 7: seeders
+ 5: size
+ 1: title
+ - name: type
+ type: select
+ label: Order requested from site
+ default: desc
+ options:
+ desc: desc
+ asc: asc
- name: info_tpp
type: info
label: Results Per Page
default: For best results, change the Torrents per page: setting to 100 on your account profile.
login:
- path: takelogin.php
- method: post
- cookies: ["c_lang_folder=en"]
+ path: login.php
+ method: form
+ form: form[action="takelogin.php"]
+ captcha:
+ type: image
+ selector: img[alt="CAPTCHA"]
+ input: imagestring
inputs:
+ secret: ""
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
+ two_step_code: "{{ .Config.2facode }}"
logout: ""
securelogin: ""
ssl: yes
trackerssl: yes
error:
- selector: td.embedded:has(h2:contains("失败"))
- message:
- selector: td.text
test:
path: index.php
selector: a[href="logout.php"]
@@ -66,21 +93,29 @@ search:
- path: torrents.php
inputs:
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
- search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
- # 0=incldead, 1=active, 2=dead
+ search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }} {{ else }}{{ .Keywords }}{{ end }}{{ if .Query.DoubanID }}{{ .Query.DoubanID }}{{ else }}{{ end }}"
+ # 0 incldead, 1 active, 2 dead
incldead: 0
- # show promotions: 0=all, 1=normal, 2=free, 3=2x, 4=2xFree, 5=50%, 6=2x50%, 7=30%
+ # 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x50%, 7 30%
spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
- # 0=title, 1=descr, 3=uploader, 4=imdb URL
- search_area: "{{ if .Query.IMDBID }}4{{ else }}0{{ end }}"
- # 0=AND, 1=OR, 2=Exact
+ # 0 title, 1 descr, 3 uploader, 4 imdburl
+ search_area: "{{ if .Query.IMDBID }}4{{ else }}{{ end }}{{ if .Query.DoubanID }}1{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }}{{ else }}0{{ end }}"
+ # 0 AND, 2 exact
search_mode: 0
+ sort: "{{ .Config.sort }}"
+ type: "{{ .Config.type }}"
notnewword: 1
rows:
- selector: table.torrents > tbody > tr:has(table.torrentname)
+ selector: table.torrents > tbody > tr:has(a[href^="download.php?id="])
fields:
+ category:
+ selector: a[href^="?cat="]
+ attribute: href
+ filters:
+ - name: querystring
+ args: cat
title_default:
selector: a[href^="details.php?id="]
title:
@@ -88,18 +123,23 @@ search:
attribute: title
optional: true
default: "{{ .Result.title_default }}"
- category:
- selector: a[href^="?cat="]
- attribute: href
- filters:
- - name: querystring
- args: cat
details:
selector: a[href^="details.php?id="]
attribute: href
download:
selector: a[href^="download.php?id="]
attribute: href
+ poster:
+ selector: img[data-src]
+ attribute: data-src
+ imdbid:
+ # site currently only has a badge and rating, the id is not present. just in case a future update.
+ selector: a[href*="imdb.com/title/tt"]
+ attribute: href
+ doubanid:
+ # site currently only has a badge and rating, the id is not present. just in case a future update.
+ selector: a[href*="movie.douban.com/subject/"]
+ attribute: href
date_elapsed:
# time type: time elapsed (default)
selector: td.rowfollow:nth-child(4) > span[title]
@@ -146,4 +186,4 @@ search:
description:
selector: td.rowfollow:nth-child(2)
remove: a, b, font, img, span
-# NexusPHP Standard v1.5 Beta 4
+# NexusPHP v1.8.8 2023-09-25
diff --git a/mock-htpc/prowlarr/Definitions/hdarea.yml b/mock-htpc/prowlarr/Definitions/hdarea.yml
index 70dde56..dcda16b 100644
--- a/mock-htpc/prowlarr/Definitions/hdarea.yml
+++ b/mock-htpc/prowlarr/Definitions/hdarea.yml
@@ -42,10 +42,8 @@ settings:
- name: cookie
type: text
label: Cookie
- - name: info
- type: info
- label: How to get the Cookie
- default: "- Login to this tracker with your browser
- Open the DevTools panel by pressing F12
- Select the Network tab
- Click on the Doc button (Chrome Browser) or HTML button (FireFox)
- Refresh the page by pressing F5
- Click on the first row entry
- Select the Headers tab on the Right panel
- Find 'cookie:' in the Request Headers section
- Select and Copy the whole cookie string (everything after 'cookie: ') and Paste here.
"
+ - name: info_cookie
+ type: info_cookie
- name: freeleech
type: checkbox
label: Search freeleech only
@@ -76,6 +74,7 @@ settings:
default: "Account Retention Rules:- Veteran Users and above will be retained forever
- Insane User and above will not be deleted after parking (in the control panel)
- Users with a parked account will be deleted if they do not log in for 150 consecutive days
- Users with a non-parked account will be deleted if they do not log in for 60 consecutive days.
- Newly registered users who have no traffic for 7 days (i.e., upload/download data is 0) will be deleted.
"
login:
+ # switched from the form method to the cookie method due to #9577
method: cookie
inputs:
cookie: "{{ .Config.cookie }}"
@@ -83,6 +82,11 @@ login:
path: index.php
selector: a[href="usercp.php"]
+download:
+ selectors:
+ - selector: a[href^="download.php?id="]
+ attribute: href
+
search:
paths:
- path: torrents.php
@@ -122,14 +126,14 @@ search:
selector: a[href^="details.php?id="]
attribute: href
download:
- selector: a[href^="download.php?id="]
+ selector: a[href^="details.php?id="]
attribute: href
imdbid:
selector: a[href*="imdb.com/title/tt"]
attribute: href
date_elapsed:
# time type: time elapsed (default)
- selector: td:nth-child(4) > span[title]
+ selector: td.rowfollow:nth-last-child(6) > span[title]
attribute: title
optional: true
filters:
@@ -139,7 +143,7 @@ search:
args: "yyyy-MM-dd HH:mm:ss zzz"
date_added:
# time added
- selector: td:nth-child(4):not(:has(span))
+ selector: td.rowfollow:nth-last-child(6):not(:has(span))
optional: true
filters:
- name: append
@@ -149,13 +153,13 @@ search:
date:
text: "{{ if or .Result.date_elapsed .Result.date_added }}{{ or .Result.date_elapsed .Result.date_added }}{{ else }}now{{ end }}"
size:
- selector: td:nth-child(5)
+ selector: td.rowfollow:nth-last-child(5)
seeders:
- selector: td:nth-child(6)
+ selector: td.rowfollow:nth-last-child(4)
leechers:
- selector: td:nth-child(7)
+ selector: td.rowfollow:nth-last-child(3)
grabs:
- selector: td:nth-child(8)
+ selector: td.rowfollow:nth-last-child(2)
downloadvolumefactor:
case:
img.pro_free: 0
@@ -175,4 +179,4 @@ search:
description:
selector: td:nth-child(2)
remove: a, b, font, img, span
-# NexusPHP Standard v1.5 Beta 4
+# NexusPHP Standard v1.5 Beta 4 (customised)
diff --git a/mock-htpc/prowlarr/Definitions/hdatmos.yml b/mock-htpc/prowlarr/Definitions/hdatmos.yml
index 69cd1bc..d056efe 100644
--- a/mock-htpc/prowlarr/Definitions/hdatmos.yml
+++ b/mock-htpc/prowlarr/Definitions/hdatmos.yml
@@ -65,7 +65,7 @@ settings:
- name: info_activity
type: info
label: Account Inactivity
- default: "Cherish your user account. Inactive accounts would be deleted based on the following rules:- Veteran User or above would never be deleted.
- Elite User or above would never be deleted if packed (at User CP).
- Packed accounts would be deleted if users have not logged in for more than 400 days in a row.
- Unpacked accounts would be deleted if users have not logged in for more than 150 days in a row.
- Accounts with both uploaded and downloaded amount being 0 would be deleted if users have not logged in for more than 100 days in a row.
"
+ default: "Cherish your user account. Inactive accounts would be deleted based on the following rules:- Veteran User or above would never be deleted.
- Elite User or above would never be deleted if parked (at User CP).
- Parked accounts would be deleted if users have not logged in for more than 400 days in a row.
- Unparked accounts would be deleted if users have not logged in for more than 150 days in a row.
- Accounts with both uploaded and downloaded amount being 0 would be deleted if users have not logged in for more than 100 days in a row.
"
login:
path: login.php
@@ -179,4 +179,4 @@ search:
description:
selector: td:nth-child(2)
remove: a, b, font, img, span
-# NexusPHP v1.8.8 2023-09-25
+# NexusPHP v1.8.12 2024-07-13
diff --git a/mock-htpc/prowlarr/Definitions/hdc.yml b/mock-htpc/prowlarr/Definitions/hdc.yml
index 30cabcf..f3a24f2 100644
--- a/mock-htpc/prowlarr/Definitions/hdc.yml
+++ b/mock-htpc/prowlarr/Definitions/hdc.yml
@@ -33,13 +33,13 @@ caps:
music-search: [q]
settings:
+ # not entirely sure why cookie method is being used. while the login page uses non-standard field names, the form seems regular enough.
+ # but since none of the team have an account we cannot switch to using form method without having any testing validation.
- name: cookie
type: text
label: Cookie
- - name: info
- type: info
- label: How to get the Cookie
- default: "- Login to this tracker with your browser
- Open the DevTools panel by pressing F12
- Select the Network tab
- Click on the Doc button (Chrome Browser) or HTML button (FireFox)
- Refresh the page by pressing F5
- Click on the first row entry
- Select the Headers tab on the Right panel
- Find 'cookie:' in the Request Headers section
- Select and Copy the whole cookie string (everything after 'cookie: ') and Paste here.
"
+ - name: info_cookie
+ type: info_cookie
- name: freeleech
type: checkbox
label: Search freeleech only
diff --git a/mock-htpc/prowlarr/Definitions/hdclone.yml b/mock-htpc/prowlarr/Definitions/hdclone.yml
new file mode 100644
index 0000000..1469402
--- /dev/null
+++ b/mock-htpc/prowlarr/Definitions/hdclone.yml
@@ -0,0 +1,201 @@
+---
+id: hdclone
+name: HDClone
+description: "HDClone is a CHINESE Private Torrent Tracker for MOVIES / TV / GENERAL"
+language: zh-CN
+type: private
+encoding: UTF-8
+links:
+ - https://pt.hdclone.org/
+
+caps:
+ categorymappings:
+ - {id: 401, cat: Movies, desc: "Movies/电影"}
+ - {id: 402, cat: TV, desc: "TV Series/电视剧"}
+ - {id: 404, cat: TV/Documentary, desc: "Documentaries/纪录片"}
+ - {id: 403, cat: TV, desc: "TV Shows/综艺"}
+ - {id: 405, cat: TV/Anime, desc: "Animations/动漫、动画"}
+ - {id: 408, cat: Audio/Video, desc: "Playlet/短剧"}
+ - {id: 410, cat: Audio/Video, desc: "MV/演唱会"}
+ - {id: 406, cat: Audio, desc: "Music/音乐"}
+ - {id: 407, cat: Other, desc: "Others/其他(慎选)"}
+
+ modes:
+ search: [q]
+ tv-search: [q, season, ep, imdbid]
+ movie-search: [q, imdbid]
+ music-search: [q]
+ book-search: [q]
+
+settings:
+ - name: username
+ type: text
+ label: Username
+ - name: password
+ type: password
+ label: Password
+ - name: 2facode
+ type: text
+ label: 2FA code
+ - name: info_2fa
+ type: info
+ label: "About 2FA code"
+ default: "Only fill in the 2FA code box if you have enabled 2FA on the HDClone Web Site. Otherwise just leave it empty."
+ - name: freeleech
+ type: checkbox
+ label: Search freeleech only
+ default: false
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: 4
+ options:
+ 4: created
+ 7: seeders
+ 5: size
+ 1: title
+ - name: type
+ type: select
+ label: Order requested from site
+ default: desc
+ options:
+ desc: desc
+ asc: asc
+ - name: info_tpp
+ type: info
+ label: Results Per Page
+ default: For best results, change the Torrents per page: setting to 100 on your account profile.
+ - name: info_activity
+ type: info
+ label: Account Inactivity
+ default: "Account retention rules:- Veteran User and above will be retained forever
- Elite User and above will not have their account deleted after parking (in the control panel)
- Users with a parked account will be deleted if they do not log in for 80 consecutive days
- Users with a non-parked account will be deleted if they do not log in for 60 consecutive days
- Users who have no traffic (i.e. upload/download data are both 0) will be deleted if they do not log in for 10 consecutive days.
"
+
+login:
+ path: login.php
+ method: form
+ form: form[action="takelogin.php"]
+ captcha:
+ type: image
+ selector: img[alt="CAPTCHA"]
+ input: imagestring
+ inputs:
+ secret: ""
+ username: "{{ .Config.username }}"
+ password: "{{ .Config.password }}"
+ two_step_code: "{{ .Config.2facode }}"
+ logout: ""
+ securelogin: ""
+ ssl: yes
+ trackerssl: yes
+ error:
+ - selector: td.embedded:has(h2:contains("失败"))
+ message:
+ selector: td.text
+ test:
+ path: index.php
+ selector: a[href="logout.php"]
+
+search:
+ paths:
+ - path: torrents.php
+ inputs:
+ $raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
+ search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }} {{ else }}{{ .Keywords }}{{ end }}{{ if .Query.DoubanID }}{{ .Query.DoubanID }}{{ else }}{{ end }}"
+ # 0 incldead, 1 active, 2 dead
+ incldead: 0
+ # 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x50%, 7 30%
+ spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
+ # 0 title, 1 descr, 3 uploader, 4 imdburl
+ search_area: "{{ if .Query.IMDBID }}4{{ else }}{{ end }}{{ if .Query.DoubanID }}1{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }}{{ else }}0{{ end }}"
+ # 0 AND, 2 exact
+ search_mode: 0
+ sort: "{{ .Config.sort }}"
+ type: "{{ .Config.type }}"
+ notnewword: 1
+
+ rows:
+ selector: table.torrents > tbody > tr:has(table.torrentname)
+
+ fields:
+ category:
+ selector: a[href^="?cat="]
+ attribute: href
+ filters:
+ - name: querystring
+ args: cat
+ title_default:
+ selector: a[href^="details.php?id="]
+ title:
+ selector: a[title][href^="details.php?id="]
+ attribute: title
+ optional: true
+ default: "{{ .Result.title_default }}"
+ details:
+ selector: a[href^="details.php?id="]
+ attribute: href
+ download:
+ selector: a[href^="download.php?id="]
+ attribute: href
+ poster:
+ selector: img[data-src]
+ attribute: data-src
+ imdbid:
+ # site currently only has a badge and rating, the id is not present. just in case a future update.
+ selector: a[href*="imdb.com/title/tt"]
+ attribute: href
+ doubanid:
+ # site currently only has a badge and rating, the id is not present. just in case a future update.
+ selector: a[href*="movie.douban.com/subject/"]
+ attribute: href
+ date_elapsed:
+ # time type: time elapsed (default)
+ selector: td.rowfollow:nth-child(4) > span[title]
+ attribute: title
+ optional: true
+ filters:
+ - name: append
+ args: " +08:00" # CST
+ - name: dateparse
+ args: "yyyy-MM-dd HH:mm:ss zzz"
+ date_added:
+ # time added
+ selector: td.rowfollow:nth-child(4):not(:has(span))
+ optional: true
+ filters:
+ - name: append
+ args: " +08:00" # CST
+ - name: dateparse
+ args: "yyyy-MM-ddHH:mm:ss zzz"
+ date:
+ text: "{{ if or .Result.date_elapsed .Result.date_added }}{{ or .Result.date_elapsed .Result.date_added }}{{ else }}now{{ end }}"
+ size:
+ selector: td.rowfollow:nth-child(5)
+ seeders:
+ selector: td.rowfollow:nth-child(6)
+ leechers:
+ selector: td.rowfollow:nth-child(7)
+ grabs:
+ selector: td.rowfollow:nth-child(8)
+ downloadvolumefactor:
+ case:
+ img.pro_free: 0
+ img.pro_free2up: 0
+ img.pro_50pctdown: 0.5
+ img.pro_50pctdown2up: 0.5
+ img.pro_30pctdown: 0.3
+ "*": 1
+ uploadvolumefactor:
+ case:
+ img.pro_50pctdown2up: 2
+ img.pro_free2up: 2
+ img.pro_2up: 2
+ "*": 1
+ minimumratio:
+ text: 1
+ minimumseedtime:
+ # 3 days (as seconds = 3 x 24 x 60 x 60)
+ text: 259200
+ description:
+ selector: td:nth-child(2)
+ remove: a, b, font, img, span
+# NexusPHP v1.8.11 2024-03-27
diff --git a/mock-htpc/prowlarr/Definitions/hddolby.yml b/mock-htpc/prowlarr/Definitions/hddolby.yml
new file mode 100644
index 0000000..25dc218
--- /dev/null
+++ b/mock-htpc/prowlarr/Definitions/hddolby.yml
@@ -0,0 +1,175 @@
+---
+id: hddolby
+name: HD Dolby
+description: "HD Dolby is a CHINESE Private Torrent Tracker for HD MOVIES / TV / GENERAL"
+language: zh-CN
+type: private
+encoding: UTF-8
+links:
+ - https://www.hddolby.com/
+
+caps:
+ categorymappings:
+ - {id: 401, cat: Movies, desc: "Movies电影"}
+ - {id: 402, cat: TV, desc: "TV Series电视剧"}
+ - {id: 404, cat: TV/Documentary, desc: "Documentaries纪录片"}
+ - {id: 405, cat: TV/Anime, desc: "Animations动漫"}
+ - {id: 403, cat: TV, desc: "TV Shows综艺"}
+ - {id: 406, cat: Audio/Video, desc: "Music Videos"}
+ - {id: 407, cat: TV/Sport, desc: "Sports体育"}
+ - {id: 408, cat: Audio, desc: "HQ Audio音乐"}
+ - {id: 410, cat: PC/Games, desc: "Games游戏"}
+ - {id: 411, cat: Other, desc: "Study学习"}
+ - {id: 409, cat: Other, desc: "Others其他"}
+
+ modes:
+ search: [q]
+ tv-search: [q, season, ep, imdbid, doubanid]
+ movie-search: [q, imdbid, doubanid]
+ music-search: [q]
+
+settings:
+ - name: cookie
+ type: text
+ label: Cookie
+ - name: info_cookie
+ type: info_cookie
+ - name: freeleech
+ type: checkbox
+ label: Search freeleech only
+ default: false
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: 4
+ options:
+ 4: created
+ 7: seeders
+ 5: size
+ 1: title
+ - name: type
+ type: select
+ label: Order requested from site
+ default: desc
+ options:
+ desc: desc
+ asc: asc
+ - name: info_flaresolverr
+ type: info_flaresolverr
+ - name: info_tpp
+ type: info
+ label: Results Per Page
+ default: For best results, change the Torrents per page: setting to 100 on your account profile.
+ - name: info_activity
+ type: info
+ label: Account Inactivity
+ default: "Account retention rules:- (Division Commander) Extreme User and above will be retained forever
- (Brigadier Commander) Veteran Users and above will not be deleted after their account has been parked (in the Control Panel)
- Users who have parked their accounts will be disabled if they do not log in for 180 consecutive days
- Users with a non-parked account will have their account disabled if they do not log in for 90 consecutive days
- Newly registered users who do not have traffic (i.e., upload and download data is 0) and do not log in for 5 consecutive days will be disabld.
"
+
+login:
+ # using cookie method because login page can present second page for 2FA when enabled
+ method: cookie
+ inputs:
+ cookie: "{{ .Config.cookie }}"
+ test:
+ path: index.php
+ selector: a[href="logout.php"]
+
+search:
+ paths:
+ - path: torrents.php
+ inputs:
+ $raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
+ search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }} {{ else }}{{ .Keywords }}{{ end }}{{ if .Query.DoubanID }}{{ .Query.DoubanID }}{{ else }}{{ end }}"
+ # 0=incldead, 1=active, 2=dead
+ incldead: 0
+ # show promotions: 0=all, 1=normal, 2=free, 3=2x, 4=2xFree, 5=50%, 6=2x50%, 7=30%
+ spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
+ # 0=title, 1=descr, 3=uploader
+ search_area: "{{ if or .Query.IMDBID .Query.DoubanID }}1{{ else }}0{{ end }}"
+ # 0=AND, 1=OR, 2=Exact
+ search_mode: 0
+ sort: "{{ .Config.sort }}"
+ type: "{{ .Config.type }}"
+ notnewword: 1
+
+ rows:
+ selector: table.torrents > tbody > tr:has(table.torrentname)
+
+ fields:
+ category:
+ selector: a[href^="?cat="]
+ attribute: href
+ filters:
+ - name: querystring
+ args: cat
+ title_default:
+ selector: a[href^="details.php?id="]
+ title:
+ selector: a[title][href^="details.php?id="]
+ attribute: title
+ optional: true
+ default: "{{ .Result.title_default }}"
+ details:
+ selector: a[href^="details.php?id="]
+ attribute: href
+ download:
+ selector: a[href^="download.php?id="]
+ attribute: href
+ tmdbid:
+ selector: a[href*="themoviedb.org/movie/"], a[href*="themoviedb.org/tv/"]
+ attribute: href
+ date_elapsed:
+ # time type: time elapsed (default)
+ selector: td.rowfollow:nth-child(4) > span[title]
+ attribute: title
+ optional: true
+ filters:
+ - name: append
+ args: " +08:00" # CST
+ - name: dateparse
+ args: "yyyy-MM-dd HH:mm:ss zzz"
+ date_added:
+ # time added
+ selector: td.rowfollow:nth-child(4):not(:has(span))
+ optional: true
+ filters:
+ - name: append
+ args: " +08:00" # CST
+ - name: dateparse
+ args: "yyyy-MM-ddHH:mm:ss zzz"
+ date:
+ text: "{{ if or .Result.date_elapsed .Result.date_added }}{{ or .Result.date_elapsed .Result.date_added }}{{ else }}now{{ end }}"
+ size:
+ selector: td.rowfollow:nth-child(5)
+ seeders:
+ selector: td.rowfollow:nth-child(6)
+ leechers:
+ selector: td.rowfollow:nth-child(7)
+ grabs:
+ selector: td.rowfollow:nth-child(8)
+ downloadvolumefactor:
+ case:
+ img.pro_free: 0
+ img.pro_free2up: 0
+ img.pro_50pctdown: 0.5
+ img.pro_50pctdown2up: 0.5
+ img.pro_30pctdown: 0.3
+ "*": 1
+ uploadvolumefactor:
+ case:
+ img.pro_50pctdown2up: 2
+ img.pro_free2up: 2
+ img.pro_2up: 2
+ "*": 1
+ minimumratio:
+ text: 1.5
+ minimumseedtime:
+ # 2 days (as seconds = 2 x 24 x 60 x 60)
+ text: 172800
+ description:
+ selector: td.rowfollow:nth-child(2)
+ remove: a, b, font, img, span.tags
+ filters:
+ - name: re_replace
+ args: ["(?i)\\s*(剩余时间:|剩餘時間:|will end in)\\s*", ""]
+# NexusPHP Standard v1.5 Beta 4
diff --git a/mock-htpc/prowlarr/Definitions/hdfans.yml b/mock-htpc/prowlarr/Definitions/hdfans.yml
index ec76eb2..a10ea5b 100644
--- a/mock-htpc/prowlarr/Definitions/hdfans.yml
+++ b/mock-htpc/prowlarr/Definitions/hdfans.yml
@@ -195,7 +195,10 @@ search:
img.pro_2up: 2
"*": 1
minimumratio:
- text: 0.81
+ text: 1
+ minimumseedtime:
+ # 3 days (as seconds = 3 x 24 x 60 x 60)
+ text: 259200
description_verified:
case:
span[title="通过"], span[title="通過"], span[title="Allowed"]: "Verified:"
@@ -207,4 +210,4 @@ search:
filters:
- name: prepend
args: "{{ .Result.description_verified }} "
-# NexusPHP v1.8.9 2023-11-15
+# NexusPHP v1.8.14 2024-09-24
diff --git a/mock-htpc/prowlarr/Definitions/hdforever.yml b/mock-htpc/prowlarr/Definitions/hdforever.yml
index 2345bce..d27ce74 100644
--- a/mock-htpc/prowlarr/Definitions/hdforever.yml
+++ b/mock-htpc/prowlarr/Definitions/hdforever.yml
@@ -133,16 +133,19 @@ search:
args: "&usetoken=1"
download:
text: "{{ if .Config.usetoken }}{{ .Result.download_usetoken }}{{ else }}{{ .Result.download_regular }}{{ end }}"
+ _release_group:
+ selector: span.team_name
+ optional: true
+ filters:
+ - name: trim
title_phase1:
selector: div.group_info
- remove: span:nth-child(1), div.tags
+ remove: :scope > span.team_name, :scope > span:nth-child(2), div.tags, div.vote_controls, .add_bookmark, img
filters:
- name: replace
- args: ["\n", ""]
+ args: ["\n", " "]
- name: re_replace
- args: ["^(.+) (.+)", "$2-$1"]
- - name: replace
- args: [" ", " "]
+ args: ["\\s+", " "]
- name: replace
args: ["Blu-Ray Original", "Complete.BluRay"]
- name: replace
@@ -236,6 +239,8 @@ search:
args: [".VOF", ".FRENCH"]
- name: replace
args: [".VFQ.MULTI", ".MULTI.VFQ"]
+ - name: append
+ args: "{{ if .Result._release_group }}-{{ .Result._release_group }}{{ else }}{{ end }}"
title_vostfr:
text: "{{ .Result.title_phase1 }}"
filters:
diff --git a/mock-htpc/prowlarr/Definitions/hdfun.yml b/mock-htpc/prowlarr/Definitions/hdfun.yml
index 1841c83..64b4427 100644
--- a/mock-htpc/prowlarr/Definitions/hdfun.yml
+++ b/mock-htpc/prowlarr/Definitions/hdfun.yml
@@ -7,6 +7,7 @@ type: private
encoding: UTF-8
links:
- https://hdzone.me/
+legacylinks:
- https://hdfun.me/
caps:
diff --git a/mock-htpc/prowlarr/Definitions/hdgalaktik.yml b/mock-htpc/prowlarr/Definitions/hdgalaktik.yml
index 111de41..f5c0a3c 100644
--- a/mock-htpc/prowlarr/Definitions/hdgalaktik.yml
+++ b/mock-htpc/prowlarr/Definitions/hdgalaktik.yml
@@ -40,10 +40,8 @@ settings:
- name: cookie
type: text
label: Cookie
- - name: info
- type: info
- label: How to get the Cookie
- default: "- Login to this tracker with your browser
- Open the DevTools panel by pressing F12
- Select the Network tab
- Click on the Doc button (Chrome Browser) or HTML button (FireFox)
- Refresh the page by pressing F5
- Click on the first row entry
- Select the Headers tab on the Right panel
- Find 'cookie:' in the Request Headers section
- Select and Copy the whole cookie string (everything after 'cookie: ') and Paste here.
"
+ - name: info_cookie
+ type: info_cookie
- name: stripcyrillic
type: checkbox
label: Strip Cyrillic Letters
@@ -78,6 +76,7 @@ settings:
default: For best results, change the Torrents per page: setting to 100 on your account profile.
login:
+ # using the cookie method because the site expects a single session only, so using browser and Jackett can cause a lockout
method: cookie
inputs:
cookie: "{{ .Config.cookie }}"
@@ -116,26 +115,20 @@ search:
args: ["[^a-zA-Z0-9]+", "%"]
rows:
- selector: table.embedded > tbody > tr.torcontduo
+ selector: table.table > tbody > tr.torcontduo
fields:
- category_default:
- selector: td:nth-child(1)
- optional: true
- filters:
- - name: replace
- args: ["---", 4]
category:
selector: a[href^="browse.php?cat="]
attribute: href
optional: true
- default: "{{ .Result.category_default }}"
+ default: 4
filters:
- name: querystring
args: cat
title:
- selector: a.alink
- attribute: onmouseover
+ selector: a.link-secondary
+ attribute: title
filters:
- name: regexp
args: \'>(.+?)Login to this tracker with your browserOpen the DevTools panel by pressing F12Select the Network tabClick on the Doc button (Chrome Browser) or HTML button (FireFox)Refresh the page by pressing F5Click on the first row entrySelect the Headers tab on the Right panelFind 'cookie:' in the Request Headers sectionSelect and Copy the whole cookie string (everything after 'cookie: ') and Paste here."
+ - name: info_cookie
+ type: info_cookie
- name: freeleech
type: checkbox
label: Search freeleech only
@@ -87,6 +85,7 @@ settings:
default: For best results, change the Torrents per page: setting to 100 on your account profile.
login:
+ # using cookie method due to #6460
method: cookie
inputs:
cookie: "{{ .Config.cookie }}"
@@ -102,7 +101,6 @@ search:
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
incldead: 1
spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
- inclbookmarked: 0
search_area: "{{ if .Query.IMDBID }}4{{ else }}0{{ end }}"
search_mode: 0
notnewword: 1
diff --git a/mock-htpc/prowlarr/Definitions/hdkylin.yml b/mock-htpc/prowlarr/Definitions/hdkylin.yml
new file mode 100644
index 0000000..8dddd60
--- /dev/null
+++ b/mock-htpc/prowlarr/Definitions/hdkylin.yml
@@ -0,0 +1,170 @@
+---
+id: hdkylin
+name: HDKylin (麒麟)
+description: "HDKylin (麒麟) is a Private CHINESE tracker for MOVIES / TV / GENERAL"
+language: zh-CN
+type: private
+encoding: UTF-8
+links:
+ - https://na.hdkylin.com/
+ - https://www.hdkyl.in/
+
+caps:
+ categorymappings:
+ - {id: 401, cat: Movies, desc: "Movies/电影"}
+ - {id: 402, cat: TV, desc: "TV Series/电视剧"}
+ - {id: 404, cat: Other, desc: "Record Education/纪录教育"}
+ - {id: 408, cat: Audio, desc: "HQ Audio/音乐"}
+ - {id: 421, cat: TV/Other, desc: "Playlet/短剧"}
+ - {id: 405, cat: TV/Anime, desc: "Animations/动漫"}
+ - {id: 419, cat: Other, desc: "Study/学习"}
+ - {id: 407, cat: TV/Sport, desc: "Sports/体育运动"}
+ - {id: 406, cat: Audio/Video, desc: "Music Videos/音乐视频"}
+ - {id: 411, cat: PC, desc: "software/软件"}
+ - {id: 412, cat: Console, desc: "Game/游戏"}
+ - {id: 413, cat: Books, desc: "Ebook/电子书"}
+ - {id: 409, cat: Other, desc: "Misc/其他"}
+ - {id: 420, cat: TV, desc: "TV Shows/综艺"}
+
+ modes:
+ search: [q]
+ tv-search: [q, season, ep, imdbid, doubanid]
+ movie-search: [q, imdbid, doubanid]
+ music-search: [q]
+ book-search: [q]
+
+settings:
+ - name: cookie
+ type: text
+ label: Cookie
+ - name: info_cookie
+ type: info_cookie
+ - name: freeleech
+ type: checkbox
+ label: Search freeleech only
+ default: false
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: 4
+ options:
+ 4: created
+ 7: seeders
+ 5: size
+ 1: title
+ - name: type
+ type: select
+ label: Order requested from site
+ default: desc
+ options:
+ desc: desc
+ asc: asc
+ - name: info_tpp
+ type: info
+ label: Results Per Page
+ default: For best results, change the Torrents per page: setting to 100 on your account profile.
+ - name: info_activity
+ type: info
+ label: Account Inactivity
+ default: "Retention rules:- [Veteran User] and above will be retained forever.
- [Elite User] and above will not be deleted after parking their accounts (in the Control Panel).
- Users with a parked account will be deleted if they do not log in for 400 consecutive days.
- Users with a non-parked account will be deleted if they do not log in for 150 consecutive days.
- Users with no traffic (i.e. upload/download data are both 0) will have their accounts deleted if they do not log in for 40 consecutive days.
"
+
+login:
+ # using cookie method because the form method did not work when first the indexer was created.
+ method: cookie
+ inputs:
+ cookie: "{{ .Config.cookie }}"
+ test:
+ path: index.php
+ selector: a[href="logout.php"]
+
+search:
+ paths:
+ - path: torrents.php
+ inputs:
+ $raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
+ search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }} {{ else }}{{ .Keywords }}{{ end }}{{ if .Query.DoubanID }}{{ .Query.DoubanID }}{{ else }}{{ end }}"
+ # 0 incldead, 1 active, 2 dead
+ incldead: 0
+ # 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x50%, 7 30%
+ spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
+ # 0 title, 1 descr, 3 uploader, 4 imdburl
+ search_area: "{{ if or .Query.IMDBID .Query.DoubanID }}1{{ else }}0{{ end }}"
+ # 0 AND, 2 exact
+ search_mode: 0
+ sort: "{{ .Config.sort }}"
+ type: "{{ .Config.type }}"
+ notnewword: 1
+
+ rows:
+ selector: table.torrents > tbody > tr:has(table.torrentname)
+
+ fields:
+ category:
+ selector: a[href^="?cat="]
+ attribute: href
+ filters:
+ - name: querystring
+ args: cat
+ title_default:
+ selector: a[href^="details.php?id="]
+ title:
+ selector: a[title][href^="details.php?id="]
+ attribute: title
+ optional: true
+ default: "{{ .Result.title_default }}"
+ details:
+ selector: a[href^="details.php?id="]
+ attribute: href
+ download:
+ selector: a[href^="download.php?id="]
+ attribute: href
+ date_elapsed:
+ # time type: time elapsed (default)
+ selector: td:nth-child(4) > span[title]
+ attribute: title
+ optional: true
+ filters:
+ - name: append
+ args: " +08:00" # CST
+ - name: dateparse
+ args: "yyyy-MM-dd HH:mm:ss zzz"
+ date_added:
+ # time added
+ selector: td:nth-child(4):not(:has(span))
+ optional: true
+ filters:
+ - name: append
+ args: " +08:00" # CST
+ - name: dateparse
+ args: "yyyy-MM-ddHH:mm:ss zzz"
+ date:
+ text: "{{ if or .Result.date_elapsed .Result.date_added }}{{ or .Result.date_elapsed .Result.date_added }}{{ else }}now{{ end }}"
+ size:
+ selector: td:nth-child(5)
+ seeders:
+ selector: td:nth-child(6)
+ leechers:
+ selector: td:nth-child(7)
+ grabs:
+ selector: td:nth-child(8)
+ downloadvolumefactor:
+ case:
+ img.pro_free: 0
+ img.pro_free2up: 0
+ img.pro_50pctdown: 0.5
+ img.pro_50pctdown2up: 0.5
+ img.pro_30pctdown: 0.3
+ "*": 1
+ uploadvolumefactor:
+ case:
+ img.pro_50pctdown2up: 2
+ img.pro_free2up: 2
+ img.pro_2up: 2
+ "*": 1
+ minimumseedtime:
+ # 2 days (as seconds = 2 x 24 x 60 x 60)
+ text: 172800
+ description:
+ selector: td:nth-child(2)
+ remove: a, b, font, img, span
+# NexusPHP v1.8.12 2024-07-13
diff --git a/mock-htpc/prowlarr/Definitions/hdolimpo-api.yml b/mock-htpc/prowlarr/Definitions/hdolimpo-api.yml
index 502283b..8b7e50c 100644
--- a/mock-htpc/prowlarr/Definitions/hdolimpo-api.yml
+++ b/mock-htpc/prowlarr/Definitions/hdolimpo-api.yml
@@ -32,10 +32,6 @@ settings:
type: info
label: About your API key
default: "Find or Generate a new API Token by accessing your account My configuration / Mi configuración => Secutiy / Seguridad page and clicking on the API Token tab."
- - name: freeleech
- type: checkbox
- label: Search freeleech only
- default: false
- name: sort
type: select
label: Sort requested from site
@@ -61,11 +57,12 @@ login:
- selector: a[href*="/login"]
message:
text: "The API key was not accepted by {{ .Config.sitelink }}."
+ - selector: :root:contains("Account is Banned")
search:
paths:
- # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v7.0.0)
- # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L349
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
- path: api/torrents/filter
response:
type: json
@@ -82,7 +79,6 @@ search:
imdbId: "{{ .Query.IMDBIDShort }}"
tmdbId: "{{ .Query.TMDBID }}"
tvdbId: "{{ .Query.TVDBID }}"
- "free": "{{ if .Config.freeleech }}100{{ else }}{{ end }}"
sortField: "{{ .Config.sort }}"
sortDirection: "{{ .Config.type }}"
perPage: 100
@@ -94,63 +90,72 @@ search:
fields:
categorydesc:
selector: category
- title:
+ title_phase1:
selector: name
filters:
- name: re_replace
- args: ["\\[", " "]
+ args: ["(?i)\\b(full uhd|(uhd )?full\\s?(blu-?ray|uhd))\\b", "BRDISK"]
- name: re_replace
- args: ["\\]", " "]
+ args: ["\\bE-AC-3\\b", "EAC3"]
- name: re_replace
- args: ["(?i)(full(bluray)?)", "BRDISK"] # FULL(BR/UHD) -> BRDISK
- - name: replace
- args: ["HDOlimpo", ""] # Delete HDOlimpo
- - name: replace
- args: ["HD-Olimpo", ""] # Delete HD-Olimpo
- - name: replace
- args: ["E-AC-3", "EAC3"]
+ args: ["(?i)\\b(es-cat?-en|es-en-cat?|en-cat?-es|en-es-cat?|cat?-es-en|cat?-en-es)\\b", "MULTi SPANiSH CATALAN ENGLiSH"]
- name: re_replace
- args: ["[ -](?i)español[ -]", " SPANiSH "]
+ args: ["(?i)\\b(es-cat?-(ja|ja?p)|es-(ja|ja?p)-cat?|cat?-es-(ja|ja?p)|cat?-(ja|ja?p)-es|(ja|ja?p)-es-cat?|(ja|ja?p)-cat?-es)\\b", "MULTi SPANiSH CATALAN JAPANES"] # misspelled to accomodate negative lookback, corrected later
- name: re_replace
- args: ["[ -](?i)castellano[ -]", " SPANiSH "]
+ args: ["(?i)\\b(es-en|en-es)\\b", "MULTi SPANiSH ENGLiSH"]
- name: re_replace
- args: ["[ -](?i)spa[ -]", " SPANiSH "]
+ args: ["(?i)\\b(es-cat?|cat?-es)\\b", "MULTi SPANiSH CATALAN"]
- name: re_replace
- args: ["[ -](?i)esp[ -]", " SPANiSH "]
+ args: ["(?i)\\b(es-(ja|ja?p)|(ja|ja?p)-es)\\b", "MULTi SPANiSH JAPANES"] # misspelled to accomodate negative lookback, corrected later
- name: re_replace
- args: [" ES ", " SPANiSH "]
+ args: ["(?i)\\b(es-fr[ae]?n?|fr[ae]?n?-es)\\b", "MULTi SPANiSH FRENCHx"] # misspelled to accomodate negative lookback, corrected later
- name: re_replace
- args: ["[ -](?i)ingl[eé]s[ -]", " English "]
+ args: ["(?i)\\b(es-ita?|ita?-es)\\b", "MULTi SPANiSH iTALiAN"]
- name: re_replace
- args: ["[ -](?i)[ei]ng[ -]", " English "]
+ args: ["(?i)\\b(es-rus?|rus?-es)\\b", "MULTi SPANiSH RUSSiAN"]
- name: re_replace
- args: ["[ -](?i)cat[ -]", " Catalan "]
+ args: ["(?i)\\b(es-(ger?|al(e|em)?)|(ger?|al(e|em)?)-es)\\b", "MULTi SPANiSH GERMANx"] # misspelled to accomodate negative lookback, corrected later
- name: re_replace
- args: ["[ -](?i)vas[ -]", " Basque "]
+ args: ["(?i)\\btriaudio\\b", "MULTi SPANiSH"]
- name: re_replace
- args: ["[ -](?i)fr[ae][ -]", " French "]
+ args: ["(?i)\\b(espa[ñn]ol|castellano|esp)\\b", "SPANiSH"]
- name: re_replace
- args: ["[ -](?i)jap[ -]", " Japanese "]
+ args: ["(?i)\\b(ingl[ée]s|[ei]ng)\\b", "ENGLiSH"]
- name: re_replace
- args: ["[ -](?i)ita[ -]", " Italian "]
+ args: ["(?i)\\bcat\\b", "CATALAN"]
- name: re_replace
- args: ["[ -](?i)rus[ -]", " Russian "]
+ args: ["(?i)\\bfr[ae]?n?\\b", "FRENCHx"] # misspelled to accomodate negative lookback, corrected later
- name: re_replace
- args: ["[ -](?i)ger[ -]", " German "]
+ args: ["(?i)\\b(jap|jp)\\b", "JAPANES"] # misspelled to accomodate negative lookback, corrected later
- name: re_replace
- args: ["(?i)(triaudio)", "MULTi SPANiSH English"]
+ args: ["(?i)\\bita\\b", "iTALiAN"]
- name: re_replace
- args: ["(?i)(dual)", " MULTi SPANiSH "]
+ args: ["(?i)\\brus?\\b", "RUSSiAN"]
- name: re_replace
- args: ["(?i)(es-en)", " MULTi SPANiSH "]
+ args: ["(?i)\\b(ger?|alem)\\b", "GERMANx"] # misspelled to accomodate negative lookback, corrected later
- name: re_replace
- args: ["(?i)(en-es)", " MULTi SPANiSH "]
+ args: ["(\\s|\\.)+", "$1"]
+ # add MULTi SPANiSH if not preceded by another language or followed by SPANiSH
- name: re_replace
- args: ["\\.+", "."] # More than 1 dot -> .
+ args: ["(?Login to this tracker with your browserOpen the DevTools panel by pressing F12Select the Network tabClick on the Doc button (Chrome Browser) or HTML button (FireFox)Refresh the page by pressing F5Click on the first row entrySelect the Headers tab on the Right panelFind 'cookie:' in the Request Headers sectionSelect and Copy the whole cookie string (everything after 'cookie: ') and Paste here."
+ - name: info_cookie
+ type: info_cookie
- name: freeleech
type: checkbox
label: Search freeleech only
diff --git a/mock-htpc/prowlarr/Definitions/hdspace.yml b/mock-htpc/prowlarr/Definitions/hdspace.yml
new file mode 100644
index 0000000..951e4b4
--- /dev/null
+++ b/mock-htpc/prowlarr/Definitions/hdspace.yml
@@ -0,0 +1,178 @@
+---
+id: hdspace
+name: HD-Space
+description: "HD-Space is a Private Torrent Tracker for MOVIES / TV / GENERAL"
+language: en-US
+type: private
+encoding: UTF-8
+links:
+ - https://hd-space.org/
+
+caps:
+ categorymappings:
+ - {id: 15, cat: Movies/BluRay, desc: "Movie / Blu-ray"}
+ - {id: 40, cat: Movies/HD, desc: "Movie / Remux"}
+ - {id: 18, cat: Movies/HD, desc: "Movie / 720p"}
+ - {id: 19, cat: Movies/HD, desc: "Movie / 1080p"}
+ - {id: 46, cat: Movies/UHD, desc: "Movie / 2160p"}
+ - {id: 21, cat: TV/HD, desc: "TV Show / 720p HDTV"}
+ - {id: 22, cat: TV/HD, desc: "TV Show / 1080p HDTV"}
+ - {id: 45, cat: TV/UHD, desc: "TV Show / 2160p HDTV"}
+ - {id: 24, cat: TV/Documentary, desc: "Documentary / 720p"}
+ - {id: 25, cat: TV/Documentary, desc: "Documentary / 1080p"}
+ - {id: 47, cat: TV/Documentary, desc: "Documentary / 2160p"}
+ - {id: 27, cat: TV/Anime, desc: "Animation / 720p"}
+ - {id: 28, cat: TV/Anime, desc: "Animation / 1080p"}
+ - {id: 48, cat: TV/Anime, desc: "Animation / 2160p"}
+ - {id: 30, cat: Audio/Lossless, desc: "Music / HQ Audio"}
+ - {id: 31, cat: Audio/Video, desc: "Music / Videos"}
+ - {id: 33, cat: XXX, desc: "XXX / 720p"}
+ - {id: 34, cat: XXX, desc: "XXX / 1080p"}
+ - {id: 49, cat: XXX, desc: "XXX / 2160p"}
+ - {id: 36, cat: Movies/Other, desc: "Trailers"}
+ - {id: 37, cat: PC, desc: "Software"}
+ - {id: 38, cat: Other, desc: "Others"}
+ - {id: 41, cat: Movies/UHD, desc: "Movie / 4K UHD"}
+
+ modes:
+ search: [q]
+ tv-search: [q, season, ep, imdbid]
+ movie-search: [q, imdbid]
+ 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: 3
+ options:
+ 3: created
+ 5: seeders
+ 4: size
+ 2: title
+ - name: type
+ type: select
+ label: Order requested from site
+ default: 2
+ options:
+ 2: desc
+ 1: asc
+ - name: info_flaresolverr
+ type: info_flaresolverr
+
+login:
+ path: index.php?page=login
+ method: post
+ inputs:
+ uid: "{{ .Config.username }}"
+ pwd: "{{ .Config.password }}"
+ logout: ""
+ error:
+ - selector: tr td span[style="color:#FF0000;"]
+ test:
+ path: index.php
+ selector: a[href="logout.php"]
+
+search:
+ paths:
+ # https://hd-space.org/index.php?page=torrents&search=&active=0&options=0&category=15;18;19
+ - path: index.php
+ inputs:
+ page: torrents
+ search: "{{ if .Query.IMDBID }}{{ .Query.IMDBIDShort }}{{ else }}{{ .Keywords }}{{ end }}"
+ category: "{{ if .Categories }}{{ range .Categories }}{{.}};{{end}}{{ else }}0{{ end }}"
+ # 0 default, 1 genre, 2 imdb, 3 uploader
+ options: "{{ if .Query.IMDBID }}2{{ else }}0{{ end }}"
+ # 0 all, 1 activeonly, 2 deadonly
+ active: 0
+ order: "{{ .Config.sort }}"
+ by: "{{ .Config.type }}"
+
+ rows:
+ selector: "table.lista[width=\"100%\"] > tbody > style ~ tr{{ if .Config.freeleech }}:has(img[src=\"gold/gold.png\"]){{ else }}{{ end }}, table.lista[width=\"100%\"] > tbody > style ~ tr{{ if .Config.freeleech }}:has(img[src=\"images/sf.png\"]){{ else }}{{ end }}"
+
+ fields:
+ category:
+ selector: td a[href^="index.php?page=torrents&category="]
+ attribute: href
+ filters:
+ - name: querystring
+ args: category
+ title:
+ selector: td a[href^="index.php?page=torrent-details"]
+ details:
+ selector: td a[href^="index.php?page=torrent-details"]
+ attribute: href
+ download:
+ selector: a[href^="download.php?id="]
+ attribute: href
+ poster:
+ selector: td a[href^="index.php?page=torrent-details"]
+ attribute: onmouseover
+ filters:
+ - name: regexp
+ args: src=\./(.+?)\s
+ imdbid:
+ selector: td a[href^="index.php?page=torrent-details"]
+ attribute: onmouseover
+ filters:
+ - name: regexp
+ args: /(\d{8}).jpg
+ date_day:
+ # Today at 09:17:08
+ # Yesterday at 17:11:03
+ selector: td:nth-child(5):contains("day")
+ # auto adjusted by site account profile
+ optional: true
+ filters:
+ - name: re_replace
+ args: ["[ ]at|[//\xa0\\s,]+", " "]
+ date_year:
+ # January 30, 2024, 20:23:21
+ selector: td:nth-child(5):not(:contains("day"))
+ # auto adjusted by site account profile
+ optional: true
+ filters:
+ - name: re_replace
+ args: ["[//\xa0\\s,]+", " "]
+ - name: dateparse
+ args: "MMMM dd yyyy HH:mm:ss"
+ date:
+ text: "{{ if or .Result.date_day .Result.date_year }}{{ or .Result.date_day .Result.date_year }}{{ else }}now{{ end }}"
+ size:
+ selector: td:nth-child(6)
+ seeders:
+ selector: td:nth-child(8)
+ leechers:
+ selector: td:nth-child(9)
+ grabs:
+ selector: td:nth-child(10)
+ genre:
+ selector: td:nth-child(2)
+ remove: a
+ description:
+ text: "{{ .Result.genre }}"
+ downloadvolumefactor:
+ case:
+ img[src="images/sf.png"]: 0 # side freeleech
+ img[src="gold/gold.png"]: 0
+ img[src="gold/silver.png"]: 0.5
+ "*": 1
+ uploadvolumefactor:
+ text: 1
+ minimumratio:
+ text: 1.0
+ minimumseedtime:
+ # 1 day (as seconds = 1 x 24 x 60 x 60)
+ text: 86400
+# xbtit
diff --git a/mock-htpc/prowlarr/Definitions/hdt-lafenice.yml b/mock-htpc/prowlarr/Definitions/hdt-lafenice.yml
new file mode 100644
index 0000000..2926bd0
--- /dev/null
+++ b/mock-htpc/prowlarr/Definitions/hdt-lafenice.yml
@@ -0,0 +1,167 @@
+---
+id: hdt-lafenice
+name: HDT-LaFenice
+description: "HDT-LaFenice is an ITALIAN Private Torrent Tracker for MOVIES / TV / GENERAL"
+language: it-IT
+type: private
+encoding: UTF-8
+links:
+ - https://hdtlafenice.eu/
+
+caps:
+ categorymappings:
+ - {id: 32, cat: Movies/BluRay, desc: "BluRay"}
+ - {id: 33, cat: Movies/UHD, desc: "Film-2160p"}
+ - {id: 34, cat: Movies/HD, desc: "Film-1080p"}
+ - {id: 35, cat: Movies/HD, desc: "Film-720p"}
+ - {id: 37, cat: Movies/DVD, desc: "Film-DVD"}
+ - {id: 50, cat: Movies/SD, desc: "Film-DVDRip"}
+ - {id: 48, cat: TV/Other, desc: "Cartoni"}
+ - {id: 39, cat: TV/Anime, desc: "Anime"}
+ - {id: 51, cat: Movies/SD, desc: "Film-Cine"}
+ - {id: 40, cat: TV/HD, desc: "TV-HD"}
+ - {id: 41, cat: TV/SD, desc: "TV-SD"}
+ - {id: 46, cat: Audio, desc: "Musica"}
+ - {id: 42, cat: PC/Games, desc: "PC-Giochi"}
+ - {id: 43, cat: PC/0day, desc: "App-Win"}
+ - {id: 44, cat: PC/Mac, desc: "App-Mac"}
+ - {id: 45, cat: PC/Mobile-Android, desc: "Android"}
+ - {id: 47, cat: Books/EBook, desc: "E-Book"}
+ - {id: 52, cat: Books/Mags, desc: "Edicola"}
+ - {id: 49, cat: Other, desc: "Altro"}
+
+ modes:
+ search: [q]
+ tv-search: [q, season, ep]
+ movie-search: [q]
+ music-search: [q]
+ book-search: [q]
+
+settings:
+ - name: username
+ type: text
+ label: Username
+ - name: password
+ type: password
+ label: Password
+ - name: freeleech
+ type: checkbox
+ label: Filter freeleech only
+ default: false
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: added
+ options:
+ added: created
+ seeders: seeders
+ size: size
+ - name: type
+ type: select
+ label: Order requested from site
+ default: desc
+ options:
+ desc: desc
+ asc: asc
+ - name: info_activity
+ type: info
+ label: Account Inactivity
+ default: "Inactive accounts are automatically deleted."
+
+login:
+ path: ajax/login.php
+ method: post
+ inputs:
+ action: login
+ loginbox_membername: "{{ .Config.username }}"
+ loginbox_password: "{{ .Config.password }}"
+ loginbox_remember: 1
+ error:
+ - selector: div.error
+ - selector: :contains("-ERROR-")
+ test:
+ path: ?p=home&pid=1
+ selector: div#member_info_bar
+
+search:
+ paths:
+ - path: /?p=torrents&pid=10
+ method: post
+ keywordsfilters:
+ - name: re_replace
+ args: ["[^a-zA-Z0-9]+", "%25"]
+ inputs:
+ $raw: "{{ range .Categories }}cid[]={{.}}&{{end}}"
+ keywords: "{{ .Keywords }}"
+ # name, description, both, uploader
+ search_type: name
+ "sortOptions[sortBy]": "{{ .Config.sort }}"
+ "sortOptions[sortOrder]": "{{ .Config.type }}"
+ # does not support imdbid search but has imdbid links in results.
+ error:
+ - selector: div.error:not(:contains("There are no results found."))
+
+ rows:
+ selector: "div.torrent-box[id^=\"torrent_\"]{{ if .Config.freeleech }}:has(img[src$=\"/torrent_free.png\"]){{ else }}{{ end }}, tr:has(a[href*=\"?p=torrents\"][href*=\"&action=details\"]){{ if .Config.freeleech }}:has(img[src$=\"/torrent_free.png\"]){{ else }}{{ end }}"
+
+ fields:
+ category:
+ selector: a[href*="?p=torrents&pid=10&cid="]
+ attribute: href
+ filters:
+ - name: querystring
+ args: cid
+ title:
+ selector: a[href*="?p=torrents&pid=10&action=details&tid="]
+ details:
+ selector: a[href*="?p=torrents&pid=10&action=details&tid="]
+ attribute: href
+ download:
+ selector: a[href*="?p=torrents&pid=10&action=download&tid="]
+ attribute: href
+ poster:
+ selector: a[href*="data/torrents/torrent_images/"]
+ attribute: href
+ imdbid:
+ selector: a[href*="imdb.com/title/tt"]
+ attribute: href
+ size:
+ selector: a[rel="torrent_size"]
+ grabs:
+ selector: a[rel="times_completed"]
+ seeders:
+ selector: a[rel="torrent_seeders"]
+ leechers:
+ selector: a[rel="torrent_leechers"]
+ date_day:
+ selector: div.torrentOwner:contains("day")
+ # auto adjusted by site account profile
+ optional: true
+ filters:
+ - name: regexp
+ args: "Uploaded (.+?) by"
+ - name: fuzzytime
+ date_year:
+ selector: div.torrentOwner:contains("-")
+ # auto adjusted by site account profile
+ optional: true
+ filters:
+ - name: regexp
+ args: "Uploaded (.+?) by"
+ - name: dateparse
+ args: "dd-MM-yyyy HH:mm"
+ date_unix:
+ selector: div.torrentOwner abbr
+ optional: true
+ attribute: data-time
+ date:
+ text: "{{ if or .Result.date_day .Result.date_year .Result.date_unix }}{{ or .Result.date_day .Result.date_year .Result.date_unix }}{{ else }}now{{ end }}"
+ downloadvolumefactor:
+ case:
+ img[src$="/torrent_free.png"]: 0
+ "*": 1
+ uploadvolumefactor:
+ text: 1
+ minimumratio:
+ text: 0.8
+# TSUE 2.2
diff --git a/mock-htpc/prowlarr/Definitions/hdtime.yml b/mock-htpc/prowlarr/Definitions/hdtime.yml
index db53a38..212e023 100644
--- a/mock-htpc/prowlarr/Definitions/hdtime.yml
+++ b/mock-htpc/prowlarr/Definitions/hdtime.yml
@@ -192,4 +192,4 @@ search:
description:
selector: td.rowfollow:nth-child(2)
remove: a, b, font, img, span
-# NexusPHP v1.8.5 2023-07-15
+# NexusPHP vv1.8.7 2023-08-22
diff --git a/mock-htpc/prowlarr/Definitions/hdtorrentsit.yml b/mock-htpc/prowlarr/Definitions/hdtorrentsit.yml
index 87103ff..92e9f7d 100644
--- a/mock-htpc/prowlarr/Definitions/hdtorrentsit.yml
+++ b/mock-htpc/prowlarr/Definitions/hdtorrentsit.yml
@@ -1,7 +1,7 @@
---
id: hdtorrentsit
name: HDTorrents.it
-description: "HDTorrents.it is an ITALIAN Private site for TV / MOVIES"
+description: "HDTorrents.it is an ITALIAN Private PAY2DL site for TV / MOVIES"
language: it-IT
type: private
encoding: UTF-8
@@ -34,6 +34,10 @@ settings:
type: checkbox
label: Search freeleech only
default: false
+ - name: single_file_release_use_filename
+ type: checkbox
+ label: Use filename as title for single file releases
+ default: true
- name: sort
type: select
label: Sort requested from site
@@ -59,11 +63,12 @@ login:
- selector: a[href*="/login"]
message:
text: "The API key was not accepted by {{ .Config.sitelink }}."
+ - selector: :root:contains("Account is Banned")
search:
paths:
- # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v7.0.0)
- # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L349
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
- path: "/api/torrents/filter"
response:
type: json
@@ -98,8 +103,15 @@ search:
fields:
category:
selector: category_id
- title:
+ title_optional:
selector: name
+ title_filename:
+ selector: "files[0].name"
+ optional: true
+ files:
+ selector: num_file
+ title:
+ text: "{{ if and (.Config.single_file_release_use_filename) (eq .Result.files \"1\") (.Result.title_filename) }}{{ .Result.title_filename }}{{ else }}{{ .Result.title_optional }}{{ end }}"
filters:
- name: re_replace
args: ["\\.", " "]
@@ -127,8 +139,6 @@ search:
genre:
selector: meta.genres
filters:
- - name: re_replace
- args: ["(?i)^None$", ""]
- name: re_replace
args: ["(?i)(Science Fiction)", "Science_Fiction"]
- name: re_replace
@@ -137,8 +147,6 @@ search:
args: [" & ", "_&_"]
description:
text: "{{ .Result.genre }}"
- files:
- selector: num_file
seeders:
selector: seeders
leechers:
@@ -155,7 +163,12 @@ search:
args: "MM/dd/yyyy HH:mm:ss zzz"
size:
selector: size
- downloadvolumefactor:
+ _featured:
+ selector: featured
+ case:
+ False: "{{ .False }}"
+ True: "{{ .True }}"
+ downloadvolumefactor_freeleech:
# api returns 0%, 25%, 50%, 75%, 100%
selector: freeleech
case:
@@ -165,11 +178,15 @@ search:
75%: 0.25
100%: 0 # freeleech
"*": 0 # catch errors
- uploadvolumefactor:
+ downloadvolumefactor:
+ text: "{{ if .Result._featured }}0{{ else }}{{ .Result.downloadvolumefactor_freeleech }}{{ end }}"
+ uploadvolumefactor_double_upload:
# api returns False, True
selector: double_upload
case:
False: 1 # normal
True: 2 # double
+ uploadvolumefactor:
+ text: "{{ if .Result._featured }}2{{ else }}{{ .Result.uploadvolumefactor_double_upload }}{{ end }}"
# as a pay site there is no MR or MST
-# json UNIT3D 7.2.5
+# json UNIT3D 8.3.3 (custom)
diff --git a/mock-htpc/prowlarr/Definitions/hdturk.yml b/mock-htpc/prowlarr/Definitions/hdturk.yml
index 4e0c948..3db91cd 100644
--- a/mock-htpc/prowlarr/Definitions/hdturk.yml
+++ b/mock-htpc/prowlarr/Definitions/hdturk.yml
@@ -92,16 +92,15 @@ settings:
- name: cookie
type: text
label: Cookie
- - name: info
- type: info
- label: How to get the Cookie
- default: "- Login to this tracker with your browser
- Open the DevTools panel by pressing F12
- Select the Network tab
- Click on the Doc button (Chrome Browser) or HTML button (FireFox)
- Refresh the page by pressing F5
- Click on the first row entry
- Select the Headers tab on the Right panel
- Find 'cookie:' in the Request Headers section
- Select and Copy the whole cookie string (everything after 'cookie: ') and Paste here.
"
+ - name: info_cookie
+ type: info_cookie
- name: freeleech
type: checkbox
label: Filter freeleech only
default: false
login:
+ # switched from the form method to the cookie method due to #9270
method: cookie
inputs:
cookie: "{{ .Config.cookie }}"
diff --git a/mock-htpc/prowlarr/Definitions/hdu.yml b/mock-htpc/prowlarr/Definitions/hdu.yml
index 6ae620a..02a5aa3 100644
--- a/mock-htpc/prowlarr/Definitions/hdu.yml
+++ b/mock-htpc/prowlarr/Definitions/hdu.yml
@@ -63,7 +63,7 @@ settings:
- name: info_activity
type: info
label: Account Inactivity
- default: "Cherish your user account. Inactive accounts would be deleted based on the following rules:- Veteran User or above would never be deleted.
- Elite User or above would never be deleted if packed (at User CP).
- Packed accounts would be deleted if users have not logged in for more than 365 days in a row.
- Unpacked accounts would be deleted if users have not logged in for more than 120 days in a row.
- Accounts with both uploaded and downloaded amount being 0 would be deleted if users have not logged in for more than 3 days in a row.
"
+ default: "Cherish your user account. Inactive accounts would be deleted based on the following rules:- Veteran User or above would never be deleted.
- Elite User or above would never be deleted if parked (at User CP).
- Parked accounts would be deleted if users have not logged in for more than 365 days in a row.
- Unparked accounts would be deleted if users have not logged in for more than 120 days in a row.
- Accounts with both uploaded and downloaded amount being 0 would be deleted if users have not logged in for more than 3 days in a row.
"
login:
path: login.php
diff --git a/mock-htpc/prowlarr/Definitions/hdvideo.yml b/mock-htpc/prowlarr/Definitions/hdvideo.yml
index d4181fa..d24d817 100644
--- a/mock-htpc/prowlarr/Definitions/hdvideo.yml
+++ b/mock-htpc/prowlarr/Definitions/hdvideo.yml
@@ -29,10 +29,8 @@ settings:
- name: cookie
type: text
label: Cookie
- - name: info
- type: info
- label: How to get the Cookie
- default: "- Login to this tracker with your browser
- Open the DevTools panel by pressing F12
- Select the Network tab
- Click on the Doc button (Chrome Browser) or HTML button (FireFox)
- Refresh the page by pressing F5
- Click on the first row entry
- Select the Headers tab on the Right panel
- Find 'cookie:' in the Request Headers section
- Select and Copy the whole cookie string (everything after 'cookie: ') and Paste here.
"
+ - name: info_cookie
+ type: info_cookie
- name: freeleech
type: checkbox
label: Search freeleech only
@@ -63,6 +61,7 @@ settings:
default: "Accounts inactive (i.e. not logged in for a long time) are automatically deleted."
login:
+ # switched from form method to cookie method when it was restored the second time #15071 reason was not recorded
method: cookie
inputs:
cookie: "{{ .Config.cookie }}"
diff --git a/mock-htpc/prowlarr/Definitions/hdzero.yml b/mock-htpc/prowlarr/Definitions/hdzero.yml
new file mode 100644
index 0000000..6a64d2c
--- /dev/null
+++ b/mock-htpc/prowlarr/Definitions/hdzero.yml
@@ -0,0 +1,187 @@
+---
+id: hdzero-api
+name: HDZero (API)
+description: "HD Zero is a SPANISH Private Torrent Tracker for MOVIES / TV / GENERAL"
+language: es-ES
+type: private
+encoding: UTF-8
+links:
+ - https://hdzero.org/
+
+caps:
+ categorymappings:
+ - {id: 1, cat: Movies, desc: "Películas"}
+ - {id: 2, cat: TV, desc: "Series"}
+ - {id: 5, cat: TV, desc: "Series Emision"}
+ - {id: 6, cat: TV/Anime, desc: "Animacion Peliculas"}
+ - {id: 7, cat: TV/Anime, desc: "Animacion Series"}
+ - {id: 8, cat: TV/Anime, desc: "Anime Peliculas"}
+ - {id: 9, cat: TV/Anime, desc: "Anime Series"}
+ - {id: 10, cat: TV/Documentary, desc: "Documentales"}
+ - {id: 11, cat: TV/Documentary, desc: "Documentales Series"}
+ - {id: 12, cat: TV, desc: "Programas TV"}
+ - {id: 13, cat: TV, desc: "Telenovelas"}
+ - {id: 3, cat: Other, desc: "Delete"}
+ modes:
+ search: [q]
+ tv-search: [q, season, ep, imdbid, tvdbid, tmdbid]
+ movie-search: [q, imdbid, tmdbid]
+
+settings:
+ - name: apikey
+ type: text
+ label: APIKey
+ - name: info_key
+ type: info
+ label: About your API key
+ default: "Find or Generate a new API Token by accessing your HD Zero account My Settings page and clicking on the API Key tab."
+ - name: freeleech
+ type: checkbox
+ label: Search freeleech only
+ default: false
+ - name: single_file_release_use_filename
+ type: checkbox
+ label: Use filename as title for single file releases
+ default: true
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: created_at
+ options:
+ created_at: created
+ seeders: seeders
+ size: size
+ name: title
+ - name: type
+ type: select
+ label: Order requested from site
+ default: desc
+ options:
+ desc: desc
+ asc: asc
+
+login:
+ path: /api/torrents
+ method: get
+ error:
+ - selector: a[href*="/login"]
+ message:
+ text: "The API key was not accepted by {{ .Config.sitelink }}."
+ - selector: :root:contains("Account is Banned")
+
+search:
+ paths:
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
+ - path: "/api/torrents/filter"
+ response:
+ type: json
+
+ headers:
+ Authorization: ["Bearer {{ .Config.apikey }}"]
+
+ inputs:
+ # if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
+ $raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
+ name: "{{ .Keywords }}"
+ seasonNumber: "{{ .Query.Season }}"
+ episodeNumber: "{{ .Query.Ep }}"
+ imdbId: "{{ .Query.IMDBIDShort }}"
+ tmdbId: "{{ .Query.TMDBID }}"
+ tvdbId: "{{ .Query.TVDBID }}"
+ "free[]": "{{ if .Config.freeleech }}100{{ else }}{{ end }}"
+ sortField: "{{ .Config.sort }}"
+ sortDirection: "{{ .Config.type }}"
+ perPage: 100
+
+ keywordsfilters:
+ - name: re_replace
+ args: ["\\.", " "]
+
+ rows:
+ selector: data
+ attribute: attributes
+
+ fields:
+ category:
+ selector: category_id
+ title_optional:
+ selector: name
+ title_filename:
+ selector: "files[0].name"
+ optional: true
+ files:
+ selector: num_file
+ title:
+ text: "{{ if and (.Config.single_file_release_use_filename) (eq .Result.files \"1\") (.Result.title_filename) }}{{ .Result.title_filename }}{{ else }}{{ .Result.title_optional }}{{ end }} Spanish"
+ details:
+ selector: details_link
+ download:
+ selector: download_link
+ infohash:
+ selector: info_hash
+ poster:
+ selector: meta.poster
+ filters:
+ - name: replace
+ args: ["https://via.placeholder.com/90x135", ""]
+ imdbid:
+ selector: imdb_id
+ tmdbid:
+ selector: tmdb_id
+ tvdbid:
+ selector: tvdb_id
+ genre:
+ selector: meta.genres
+ filters:
+ - name: replace
+ args: [" & ", "_&_"]
+ description:
+ text: "{{ .Result.genre }}"
+ seeders:
+ selector: seeders
+ leechers:
+ selector: leechers
+ grabs:
+ selector: times_completed
+ date:
+ # "created_at": "2021-10-18T00:34:50.000000Z" is returned by Newtonsoft.Json.Linq as 18/10/2021 00:34:50
+ selector: created_at
+ filters:
+ - name: append
+ args: " +00:00" # GMT
+ - name: dateparse
+ args: "MM/dd/yyyy HH:mm:ss zzz"
+ size:
+ selector: size
+ _featured:
+ selector: featured
+ case:
+ False: "{{ .False }}"
+ True: "{{ .True }}"
+ downloadvolumefactor_freeleech:
+ # api returns 0%, 25%, 50%, 75%, 100%
+ selector: freeleech
+ case:
+ 0%: 1 # not free
+ 25%: 0.75
+ 50%: 0.5
+ 75%: 0.25
+ 100%: 0 # freeleech
+ "*": 0 # catch errors
+ downloadvolumefactor:
+ text: "{{ if .Result._featured }}0{{ else }}{{ .Result.downloadvolumefactor_freeleech }}{{ end }}"
+ uploadvolumefactor_double_upload:
+ # api returns False, True
+ selector: double_upload
+ case:
+ False: 1 # normal
+ True: 2 # double
+ uploadvolumefactor:
+ text: "{{ if .Result._featured }}2{{ else }}{{ .Result.uploadvolumefactor_double_upload }}{{ end }}"
+ minimumratio:
+ text: 1.0
+ minimumseedtime:
+ # 5 days (as seconds = 5 x 24 x 60 x 60)
+ text: 432000
+# json UNIT3D 8.3.2
diff --git a/mock-htpc/prowlarr/Definitions/hebits.yml b/mock-htpc/prowlarr/Definitions/hebits.yml
index 9636d18..37aaff3 100644
--- a/mock-htpc/prowlarr/Definitions/hebits.yml
+++ b/mock-htpc/prowlarr/Definitions/hebits.yml
@@ -5,6 +5,7 @@ description: "The Israeli Tracker"
language: he-IL
type: private
encoding: UTF-8
+# Status: https://status.hebits.net/
links:
- https://hebits.net/
@@ -32,10 +33,8 @@ settings:
- name: cookie
type: text
label: Cookie
- - name: info
- type: info
- label: How to get the Cookie
- default: "- Login to this tracker with your browser
- Open the DevTools panel by pressing F12
- Select the Network tab
- Click on the Doc button (Chrome Browser) or HTML button (FireFox)
- Refresh the page by pressing F5
- Click on the first row entry
- Select the Headers tab on the Right panel
- Find 'cookie:' in the Request Headers section
- Select and Copy the whole cookie string (everything after 'cookie: ') and Paste here.
"
+ - name: info_cookie
+ type: info_cookie
- name: freeleech
type: checkbox
label: Search freeleech only
@@ -59,8 +58,13 @@ settings:
type: info
label: Account Inactivity
default: "There is an automatic system for blocking inactive accounts. The system will block any account below Heb Prophet rank without activity for at least 90 days."
+ - name: info_results
+ type: info
+ label: Search results
+ default: "If you are getting the error Login failed: Selector \"a[href*=\"/logout.php?auth=\"]\" didn't match then first access the site with your browser and check that you are not being forced to change your password because it has expired after 180 days."
login:
+ # using cookie method because login page has a custom captcha with multiple possible answers on individual radio buttons not supported via yaml
method: cookie
inputs:
cookie: "{{ .Config.cookie }}"
@@ -75,7 +79,7 @@ search:
type: json
inputs:
- searchstr: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
+ searchstr: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }} {{ else }}{{ end }}{{ .Keywords }}"
order_by: "{{ .Config.sort }}"
order_way: "{{ .Config.type }}"
imdbgt: 0
@@ -83,6 +87,7 @@ search:
# 1 freeleech, 2 neutral, 3 50%, 4 2x, 5 3x, 9 75%, 11 only perks, 0 normal
freetorrent: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
action: browse
+ group_results: 0
$raw: "{{ range .Categories }}filter_cat[{{.}}]=1&{{end}}"
rows:
diff --git a/mock-htpc/prowlarr/Definitions/hellashut-api.yml b/mock-htpc/prowlarr/Definitions/hellashut-api.yml
new file mode 100644
index 0000000..e527893
--- /dev/null
+++ b/mock-htpc/prowlarr/Definitions/hellashut-api.yml
@@ -0,0 +1,170 @@
+---
+id: hellashut-api
+name: HellasHut (API)
+description: "HellasHut is a GREEK Private Torrent Tracker for MOVIES / TV / GENERAL"
+language: el-GR
+type: private
+encoding: UTF-8
+testlinktorrent: false
+links:
+ - https://hellashut.net/
+legacylinks:
+ - https://hellashut.de/
+
+caps:
+ categorymappings:
+ - {id: 85, cat: TV/Anime, desc: "Anime/Cartoon 4K"}
+ - {id: 28, cat: TV/Anime, desc: "Anime/Cartoon HD"}
+ - {id: 47, cat: TV/Anime, desc: "Anime/Cartoon HDTV"}
+ - {id: 48, cat: TV/Anime, desc: "Anime/Cartoon SD"}
+ - {id: 50, cat: TV/Anime, desc: "Anime/Cartoon SD Emb"}
+ - {id: 51, cat: TV/Anime, desc: "Anime/Cartoon TV"}
+ - {id: 77, cat: PC, desc: "Applications DOS"}
+ - {id: 20, cat: PC, desc: "Applications Linux"}
+ - {id: 19, cat: PC/Mac, desc: "Applications MAC"}
+ - {id: 68, cat: PC, desc: "Applications OS2 WARP"}
+ - {id: 21, cat: PC, desc: "Applications Other"}
+ - {id: 18, cat: PC/0day, desc: "Applications Windows"}
+ - {id: 52, cat: Books, desc: "Books/Magazines All"}
+ - {id: 9, cat: TV/Documentary, desc: "Documentaries All"}
+ - {id: 53, cat: TV/Documentary, desc: "Documentaries Greek"}
+ - {id: 54, cat: TV/Documentary, desc: "Documentaries HD"}
+ - {id: 55, cat: Movies/DVD, desc: "DVD-R All"}
+ - {id: 17, cat: Console/Other, desc: "Games Other"}
+ - {id: 11, cat: Console/PS4, desc: "Games PSX"}
+ - {id: 10, cat: PC/Games, desc: "Games Windows"}
+ - {id: 13, cat: Console/XBox, desc: "Games Xbox"}
+ - {id: 56, cat: Other, desc: "Miscellaneous All"}
+ - {id: 57, cat: PC/Mobile-Other, desc: "Mobile All"}
+ - {id: 1, cat: Movies/3D, desc: "Movies 3D"}
+ - {id: 2, cat: Movies/UHD, desc: "Movies 4K"}
+ - {id: 42, cat: Movies/BluRay, desc: "Movies BluRay"}
+ - {id: 78, cat: Movies/SD, desc: "Movies CAM"}
+ - {id: 58, cat: Movies/DVD, desc: "Movies DVD"}
+ - {id: 84, cat: Movies, desc: "Movies Fake HD"}
+ - {id: 4, cat: Movies/HD, desc: "Movies HD"}
+ - {id: 69, cat: Movies/HD, desc: "Movies HD Packs"}
+ - {id: 3, cat: Movies/SD, desc: "Movies SD"}
+ - {id: 67, cat: Movies/SD, desc: "Movies SD Packs"}
+ - {id: 71, cat: Audio, desc: "Music CDA"}
+ - {id: 59, cat: Audio, desc: "Music Discographies"}
+ - {id: 23, cat: Audio/Lossless, desc: "Music FLAC"}
+ - {id: 22, cat: Audio/MP3, desc: "Music MP3"}
+ - {id: 25, cat: Audio/Video, desc: "Music Video"}
+ - {id: 75, cat: Movies/HD, desc: "NO IN SUBS Movies HD"}
+ - {id: 76, cat: Movies/UHD, desc: "NO SUBS IN Movies 4K"}
+ - {id: 35, cat: TV/Sport, desc: "Sports HD"}
+ - {id: 34, cat: TV/Sport, desc: "Sports SD"}
+ - {id: 80, cat: Books, desc: "Tutorials Books"}
+ - {id: 79, cat: TV/Other, desc: "Tutorials Video"}
+ - {id: 5, cat: TV, desc: "TV Greek Movies"}
+ - {id: 6, cat: TV, desc: "TV Greek Series"}
+ - {id: 7, cat: TV, desc: "TV Greek Series Packs"}
+ - {id: 60, cat: TV, desc: "TV Greek Shows"}
+ - {id: 41, cat: TV/HD, desc: "TV HD"}
+ - {id: 61, cat: TV, desc: "TV Series"}
+ - {id: 82, cat: TV/UHD, desc: "TV Series 4K"}
+ - {id: 83, cat: TV/UHD, desc: "TV Series 4K Packs"}
+ - {id: 62, cat: TV, desc: "TV Series Emb"}
+ - {id: 63, cat: TV, desc: "TV Series Emb Packs"}
+ - {id: 64, cat: TV/HD, desc: "TV Series HD"}
+ - {id: 65, cat: TV/HD, desc: "TV Series HD Packs"}
+ - {id: 66, cat: TV, desc: "TV Series Packs"}
+ - {id: 73, cat: Movies/BluRay, desc: "UNTOUCHED BluRay"}
+ - {id: 72, cat: Movies/DVD, desc: "UNTOUCHED DVD"}
+
+ modes:
+ search: [q]
+ tv-search: [q, season, ep]
+ movie-search: [q]
+ music-search: [q]
+ book-search: [q]
+
+settings:
+ - name: passkey
+ type: text
+ label: PassKey
+ - name: info_key
+ type: info
+ label: About your PassKey
+ default: "Find your PassKey by accessing your HellasHut profile on the My Profile page and scrolling down to the PassKey field."
+ - name: freeleech
+ type: checkbox
+ label: Search freeleech only
+ default: false
+ - name: info_activity
+ type: info
+ label: Account Inactivity
+ default: "Accounts inactive for more than 45 days are automatically deleted."
+
+login:
+ path: api.php
+ method: get
+ inputs:
+ passkey: "{{ .Config.passkey }}"
+ error:
+ - selector: ":root:contains(\"Bad passkey\")"
+
+search:
+ paths:
+ - path: api.php
+ response:
+ type: json
+
+ inputs:
+ # API documentation is at https://hellashut.net/getapi.php
+ # https://hellashut.net/api.php?passkey=1234567890abcdef&search=&incldead=1&freeleech=0&c[]=85
+ passkey: "{{ .Config.passkey }}"
+ $raw: "{{ range .Categories }}&c[]={{.}}{{end}}"
+ search: "{{ .Keywords }}"
+ # 0 active, 1 both, 2 dead
+ incldead: 1
+ # 0 all, 1 nofree, 2 free
+ freeleech: "{{ if .Config.freeleech }}2{{ else }}{{ end }}"
+
+ rows:
+ selector: torrents
+ count:
+ selector: results
+
+ fields:
+ category:
+ selector: category
+ title:
+ selector: name
+ details:
+ selector: details
+ download:
+ selector: dl
+ filters:
+ - name: append
+ args: "&passkey={{ .Config.passkey }}"
+ imdbid:
+ selector: imdb
+ files:
+ selector: numfiles
+ size:
+ selector: size
+ date:
+ # unix
+ selector: added
+ seeders:
+ selector: seeders
+ leechers:
+ selector: leechers
+ grabs:
+ selector: times_completed
+ downloadvolumefactor:
+ selector: freeleech
+ # 0 notfree, 1 free
+ case:
+ 0: 1
+ 1: 0
+ uploadvolumefactor:
+ text: 1
+ minimumratio:
+ text: 1.0
+ minimumseedtime:
+ # 10 day (as seconds = 10 x 24 x 60 x 60)
+ text: 864000
+# JSON honAPI v2.2.6
diff --git a/mock-htpc/prowlarr/Definitions/hellashut.yml b/mock-htpc/prowlarr/Definitions/hellashut.yml
index 057a978..5d0ea62 100644
--- a/mock-htpc/prowlarr/Definitions/hellashut.yml
+++ b/mock-htpc/prowlarr/Definitions/hellashut.yml
@@ -13,6 +13,7 @@ legacylinks:
caps:
categorymappings:
+ - {id: 85, cat: TV/Anime, desc: "Anime/Cartoon 4K"}
- {id: 28, cat: TV/Anime, desc: "Anime/Cartoon HD"}
- {id: 47, cat: TV/Anime, desc: "Anime/Cartoon HDTV"}
- {id: 48, cat: TV/Anime, desc: "Anime/Cartoon SD"}
@@ -112,9 +113,9 @@ settings:
default: "Accounts inactive for more than 45 days are automatically deleted."
login:
- path: account-login.php
+ path: login.php
method: form
- form: form[action="account-login.php"]
+ form: form[action="login.php"]
captcha:
type: image
selector: img[src="captcha.php?ext=.gif"]
@@ -136,8 +137,8 @@ download:
search:
paths:
- # https://hellashut.de/torrents-search.php?c52=1&search=&cat=0&incldead=1&advanced=1&lang=0&blah=0&freeleech=0&sort=id&order=desc
- - path: torrents-search.php
+ # https://hellashut.net/browse.php?search=&incldead=1&freeleech=0&lang=0&blah=0&team=0
+ - path: browse.php
inputs:
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
diff --git a/mock-htpc/prowlarr/Definitions/helltorrents.yml b/mock-htpc/prowlarr/Definitions/helltorrents.yml
index c81961e..68022ba 100644
--- a/mock-htpc/prowlarr/Definitions/helltorrents.yml
+++ b/mock-htpc/prowlarr/Definitions/helltorrents.yml
@@ -95,15 +95,13 @@ settings:
default: POLISH
options:
POLISH: POLISH
- MULTi POLISH: MULTIi POLISH
+ MULTi POLISH: MULTi POLISH
- name: info_tpp
type: info
label: Results Per Page
default: For best results, change the Torrentów na stronę: (Torrents per page) setting to 100 on your account profile.
- - name: flaresolverr
- type: info
- label: FlareSolverr
- default: This site may use Cloudflare DDoS Protection, therefore Prowlarr requires FlareSolverr to access it.
+ - name: info_flaresolverr
+ type: info_flaresolverr
login:
path: login.php
@@ -130,7 +128,7 @@ search:
# does not support sorting results, or imdbid searching, or have imdb in results
rows:
- selector: table.header:has(a[href^="details.php?id="])
+ selector: table.header:has(a[href*="download.php?id="]), table.header:has(a[href*="piekielny.php"])
fields:
categorydesc:
diff --git a/mock-htpc/prowlarr/Definitions/hhd-api.yml b/mock-htpc/prowlarr/Definitions/hhd-api.yml
new file mode 100644
index 0000000..e47b5ec
--- /dev/null
+++ b/mock-htpc/prowlarr/Definitions/hhd-api.yml
@@ -0,0 +1,189 @@
+---
+id: hhd-api
+name: HHD (API)
+description: "HHD is a Private Torrent Tracker for MOVIES / TV / GAMES"
+language: en-US
+type: private
+encoding: UTF-8
+links:
+ - https://homiehelpdesk.net/
+
+caps:
+ categorymappings:
+ - {id: 1, cat: Movies, desc: "Movies"}
+ - {id: 2, cat: TV, desc: "TV"}
+ - {id: 8, cat: TV/Anime, desc: "Anime"}
+ - {id: 7, cat: Audio, desc: "Music"}
+ - {id: 4, cat: Console, desc: "Games"}
+ - {id: 6, cat: PC, desc: "Apps"}
+ - {id: 9, cat: Books/Technical, desc: "Books/E-Learning"}
+ - {id: 10, cat: Books/Comics, desc: "Manga"}
+ - {id: 11, cat: XXX, desc: "XXX"}
+
+ modes:
+ search: [q]
+ tv-search: [q, season, ep, imdbid, tvdbid, tmdbid]
+ movie-search: [q, imdbid, tmdbid]
+ music-search: [q]
+ book-search: [q]
+
+settings:
+ - name: apikey
+ type: text
+ label: APIKey
+ - name: info_key
+ type: info
+ label: About your API key
+ default: "Find or Generate a new API Token by accessing your HHD account My Settings page and clicking on the API Key tab."
+ - name: freeleech
+ type: checkbox
+ label: Search freeleech only
+ default: false
+ - name: single_file_release_use_filename
+ type: checkbox
+ label: Use filename as title for single file releases
+ default: true
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: created_at
+ options:
+ created_at: created
+ seeders: seeders
+ size: size
+ name: title
+ - name: type
+ type: select
+ label: Order requested from site
+ default: desc
+ options:
+ desc: desc
+ asc: asc
+
+login:
+ path: /api/torrents
+ method: get
+ error:
+ - selector: a[href*="/login"]
+ message:
+ text: "The API key was not accepted by {{ .Config.sitelink }}."
+ - selector: :root:contains("Account is Banned")
+
+search:
+ paths:
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
+ - path: "/api/torrents/filter"
+ response:
+ type: json
+
+ headers:
+ Authorization: ["Bearer {{ .Config.apikey }}"]
+
+ inputs:
+ # if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
+ $raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
+ name: "{{ .Keywords }}"
+ seasonNumber: "{{ .Query.Season }}"
+ episodeNumber: "{{ .Query.Ep }}"
+ imdbId: "{{ .Query.IMDBIDShort }}"
+ tmdbId: "{{ .Query.TMDBID }}"
+ tvdbId: "{{ .Query.TVDBID }}"
+ "free[]": "{{ if .Config.freeleech }}100{{ else }}{{ end }}"
+ sortField: "{{ .Config.sort }}"
+ sortDirection: "{{ .Config.type }}"
+ perPage: 100
+
+ keywordsfilters:
+ - name: re_replace
+ args: ["\\.", " "]
+
+ rows:
+ selector: data
+ attribute: attributes
+
+ fields:
+ category:
+ selector: category_id
+ title_optional:
+ selector: name
+ title_filename:
+ selector: "files[0].name"
+ optional: true
+ files:
+ selector: num_file
+ title:
+ text: "{{ if and (.Config.single_file_release_use_filename) (eq .Result.files \"1\") (.Result.title_filename) }}{{ .Result.title_filename }}{{ else }}{{ .Result.title_optional }}{{ end }}"
+ details:
+ selector: details_link
+ download:
+ selector: download_link
+ infohash:
+ selector: info_hash
+ poster:
+ selector: meta.poster
+ filters:
+ - name: replace
+ args: ["https://via.placeholder.com/90x135", ""]
+ imdbid:
+ selector: imdb_id
+ tmdbid:
+ selector: tmdb_id
+ tvdbid:
+ selector: tvdb_id
+ genre:
+ selector: meta.genres
+ filters:
+ - name: re_replace
+ args: ["(?i)(Science Fiction)", "Science_Fiction"]
+ - name: replace
+ args: [" & ", "_&_"]
+ description:
+ text: "{{ .Result.genre }}"
+ seeders:
+ selector: seeders
+ leechers:
+ selector: leechers
+ grabs:
+ selector: times_completed
+ date:
+ # "created_at": "2021-10-18T00:34:50.000000Z" is returned by Newtonsoft.Json.Linq as 18/10/2021 00:34:50
+ selector: created_at
+ filters:
+ - name: append
+ args: " -10:00" # HAST
+ - name: dateparse
+ args: "MM/dd/yyyy HH:mm:ss zzz"
+ size:
+ selector: size
+ _featured:
+ selector: featured
+ case:
+ False: "{{ .False }}"
+ True: "{{ .True }}"
+ downloadvolumefactor_freeleech:
+ # api returns 0%, 25%, 50%, 75%, 100%
+ selector: freeleech
+ case:
+ 0%: 1 # not free
+ 25%: 0.75
+ 50%: 0.5
+ 75%: 0.25
+ 100%: 0 # freeleech
+ "*": 0 # catch errors
+ downloadvolumefactor:
+ text: "{{ if .Result._featured }}0{{ else }}{{ .Result.downloadvolumefactor_freeleech }}{{ end }}"
+ uploadvolumefactor_double_upload:
+ # api returns False, True
+ selector: double_upload
+ case:
+ False: 1 # normal
+ True: 2 # double
+ uploadvolumefactor:
+ text: "{{ if .Result._featured }}2{{ else }}{{ .Result.uploadvolumefactor_double_upload }}{{ end }}"
+ minimumratio:
+ text: 7.0
+ minimumseedtime:
+ # 7 days (as seconds = 7 x 24 x 60 x 60)
+ text: 604800
+# json UNIT3D 8.3.4
diff --git a/mock-htpc/prowlarr/Definitions/homeporntorrents.yml b/mock-htpc/prowlarr/Definitions/homeporntorrents.yml
new file mode 100644
index 0000000..e6f4732
--- /dev/null
+++ b/mock-htpc/prowlarr/Definitions/homeporntorrents.yml
@@ -0,0 +1,168 @@
+---
+id: homeporntorrents
+name: HomePornTorrents
+description: "HomePornTorrents (HPT) is a Private Torrent Tracker for Amateur 3X"
+language: en-US
+type: private
+encoding: UTF-8
+links:
+ - https://www.homeporntorrents.club/
+
+caps:
+ categorymappings:
+ - {id: 1, cat: XXX, desc: "Anal"}
+ - {id: 3, cat: XXX, desc: "Asian"}
+ - {id: 4, cat: XXX, desc: "BBW"}
+ - {id: 2, cat: XXX, desc: "BDSM"}
+ - {id: 31, cat: XXX, desc: "Big Boobs"}
+ - {id: 5, cat: XXX, desc: "Black"}
+ - {id: 7, cat: XXX, desc: "Creampie"}
+ - {id: 8, cat: XXX, desc: "Cumshot"}
+ - {id: 9, cat: XXX, desc: "Fetish"}
+ - {id: 32, cat: XXX, desc: "Fisting"}
+ - {id: 10, cat: XXX, desc: "Gangbang"}
+ - {id: 11, cat: XXX, desc: "Gay"}
+ - {id: 25, cat: XXX, desc: "Hardcore"}
+ - {id: 12, cat: XXX, desc: "Interracial"}
+ - {id: 13, cat: XXX, desc: "Latina"}
+ - {id: 14, cat: XXX, desc: "Lesbian"}
+ - {id: 26, cat: XXX, desc: "Masturbation"}
+ - {id: 15, cat: XXX, desc: "Mature"}
+ - {id: 16, cat: XXX, desc: "Oral"}
+ - {id: 19, cat: XXX, desc: "Other"}
+ - {id: 24, cat: XXX, desc: "Pictures"}
+ - {id: 27, cat: XXX, desc: "Pissing"}
+ - {id: 21, cat: XXX, desc: "Pregnant"}
+ - {id: 28, cat: XXX, desc: "Softcore"}
+ - {id: 22, cat: XXX, desc: "Squirt"}
+ - {id: 18, cat: XXX, desc: "Teen (18+)"}
+ - {id: 17, cat: XXX, desc: "Transsexual"}
+ - {id: 30, cat: XXX, desc: "VIP"}
+ - {id: 23, cat: XXX, desc: "Voyeur"}
+ - {id: 29, cat: XXX, desc: "Webcam"}
+
+ modes:
+ 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: time
+ options:
+ time: created
+ seeders: seeders
+ size: size
+ - 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 Torrents per page setting to 100 on your User Settings. The default is 25.
+
+login:
+ path: login
+ method: form
+ form: form[action="/login"]
+ inputs:
+ username: "{{ .Config.username }}"
+ password: "{{ .Config.password }}"
+ keeplogged: 1
+ cinfo: "1920|1080|24|-60"
+ selectorinputs:
+ token:
+ selector: input[name="token"]
+ attribute: value
+ error:
+ - selector: div.flash.error
+ test:
+ path: index.php
+ selector: "li#nav_logout"
+
+search:
+ paths:
+ # https://www.homeporntorrents.club/torrents.php?order_by=time&order_way=desc&filter_freeleech=1&searchtext=&search_type=0&taglist=&tags_type=0
+ - path: torrents.php
+ inputs:
+ $raw: "{{ range .Categories }}filter_cat[{{.}}]=1&{{end}}"
+ title: "{{ .Keywords }}"
+ order_by: "{{ .Config.sort }}"
+ order_way: "{{ .Config.type }}"
+ action: advanced
+ filter_freeleech: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
+
+ rows:
+ # exclude redbar torrents
+ selector: table#torrent_table > tbody > tr[class^="torrent row"]
+
+ fields:
+ category:
+ selector: a[href*="filter_cat"]
+ attribute: href
+ filters:
+ - name: regexp
+ args: \[(\d+?)\]
+ title:
+ selector: a[href^="/torrents.php?id="]
+ details:
+ selector: a[href^="/torrents.php?id="]
+ attribute: href
+ download:
+ selector: a[href^="/torrents.php?action=download&id="]
+ attribute: href
+ description:
+ selector: div.tags
+ poster:
+ # src=\"https:\/\/fapping.empornium.sx\/images\/2023\/05\/30\/MrLuckyPOV2023AlexisFawxXXX720pHEVCx265PRTmp4snapshot0950.jpg\">
+ selector: td:nth-child(2) > script
+ filters:
+ - name: regexp
+ args: "src=(.*?)>"
+ - name: re_replace
+ args: ["[\\\\\"]", ""]
+ - name: replace
+ args: ["/static/common/noartwork/noimage.png", ""]
+ files:
+ selector: td:nth-child(3)
+ date:
+ selector: td:nth-child(5) > span
+ attribute: title
+ filters:
+ # auto adjusted by site account profile
+ - name: append
+ args: " +00:00" # GMT
+ - name: dateparse
+ args: "MMM dd yyyy, HH:mm zzz"
+ size:
+ selector: td:nth-child(6)
+ grabs:
+ selector: td:nth-child(7)
+ seeders:
+ selector: td:nth-child(8)
+ leechers:
+ selector: td:nth-child(9)
+ downloadvolumefactor:
+ case:
+ span.icon[title*="Freeleech"]: 0
+ img[alt="Freeleech"]: 0
+ "*": 1
+ uploadvolumefactor:
+ text: 1
+ minimumratio:
+ text: 0.7
+# Luminance
diff --git a/mock-htpc/prowlarr/Definitions/houseofdevil.yml b/mock-htpc/prowlarr/Definitions/houseofdevil.yml
index 0aece55..a95cf5a 100644
--- a/mock-htpc/prowlarr/Definitions/houseofdevil.yml
+++ b/mock-htpc/prowlarr/Definitions/houseofdevil.yml
@@ -39,6 +39,7 @@ caps:
- {id: 115, cat: PC/0day, desc: "Programme - Windows"}
- {id: 116, cat: TV/Documentary, desc: "Serien - Dokus"}
- {id: 118, cat: TV/Sport, desc: "Serien - Sport"}
+ - {id: 142, cat: TV, desc: "Serien - Pack"}
- {id: 129, cat: Other, desc: "Sonstiges"}
- {id: 109, cat: PC/Mobile-Other, desc: "Spiele - Handy"}
- {id: 112, cat: Console, desc: "Spiele - Konsolen"}
diff --git a/mock-htpc/prowlarr/Definitions/hudbt.yml b/mock-htpc/prowlarr/Definitions/hudbt.yml
new file mode 100644
index 0000000..cf86404
--- /dev/null
+++ b/mock-htpc/prowlarr/Definitions/hudbt.yml
@@ -0,0 +1,199 @@
+---
+id: hudbt
+name: HUDBT (蝴蝶)
+description: "HUDBT (蝴蝶) is a CHINESE Private Torrent Tracker for MOVIES / TV / GENERAL"
+language: zh-CN
+type: private
+encoding: UTF-8
+links:
+ - https://hudbt.hust.edu.cn/
+
+caps:
+ categorymappings:
+ - {id: 401, cat: Movies, desc: "大陆电影"}
+ - {id: 413, cat: Movies, desc: "港台电影"}
+ - {id: 414, cat: Movies, desc: "亚洲电影"}
+ - {id: 415, cat: Movies, desc: "欧美电影"}
+ - {id: 430, cat: PC/Mobile-iOS, desc: "iPad"}
+ - {id: 433, cat: Movies, desc: "抢先视频"}
+ - {id: 402, cat: TV, desc: "大陆剧集"}
+ - {id: 417, cat: TV, desc: "港台剧集"}
+ - {id: 416, cat: TV, desc: "亚洲剧集"}
+ - {id: 418, cat: TV, desc: "欧美剧集"}
+ - {id: 404, cat: TV/Documentary, desc: "纪录片"}
+ - {id: 407, cat: TV/Sport, desc: "体育"}
+ - {id: 403, cat: TV, desc: "大陆综艺"}
+ - {id: 419, cat: TV, desc: "港台综艺"}
+ - {id: 420, cat: TV, desc: "亚洲综艺"}
+ - {id: 421, cat: TV, desc: "欧美综艺"}
+ - {id: 408, cat: Audio, desc: "华语音乐"}
+ - {id: 422, cat: Audio, desc: "日韩音乐"}
+ - {id: 423, cat: Audio, desc: "欧美音乐"}
+ - {id: 424, cat: Audio, desc: "古典音乐"}
+ - {id: 425, cat: Audio, desc: "原声音乐"}
+ - {id: 406, cat: Audio/Video, desc: "音乐MV"}
+ - {id: 409, cat: Other/Misc, desc: "其他"}
+ - {id: 432, cat: Books/EBook, desc: "电子书"}
+ - {id: 405, cat: TV/Anime, desc: "完结动漫"}
+ - {id: 427, cat: TV/Anime, desc: "连载动漫"}
+ - {id: 428, cat: TV/Anime, desc: "剧场OVA"}
+ - {id: 429, cat: TV/Anime, desc: "动漫周边"}
+ - {id: 410, cat: PC/Games, desc: "游戏"}
+ - {id: 431, cat: Console, desc: "游戏视频"}
+ - {id: 411, cat: PC/0day, desc: "软件"}
+ - {id: 412, cat: Books, desc: "学习"}
+ - {id: 426, cat: PC/Mac, desc: "MAC"}
+ - {id: 1037, cat: Other, desc: "HUST"}
+
+ modes:
+ search: [q]
+ tv-search: [q, season, ep, imdbid, doubanid]
+ movie-search: [q, imdbid, doubanid]
+ music-search: [q]
+ book-search: [q]
+
+settings:
+ - name: username
+ type: text
+ label: Username
+ - name: password
+ type: password
+ label: Password
+ - name: freeleech
+ type: checkbox
+ label: Search freeleech only
+ default: false
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: 4
+ options:
+ 4: created
+ 7: seeders
+ 5: size
+ 1: title
+ - name: type
+ type: select
+ label: Order requested from site
+ default: desc
+ options:
+ desc: desc
+ asc: asc
+ - name: info_tpp
+ type: info
+ label: Results Per Page
+ default: For best results, change the Torrents per page: setting to 100 on your account profile.
+ - name: info_activity
+ type: info
+ label: Account Inactivity
+ default: "Account retention rules:- Veteran User and above will be retained forever
- Elite User and above will not be deleted after parking (in the control panel)
- Users with a parked account who do not log in for 240 consecutive days will be deleted
- Users with non-parked account will be deleted if they do not log in for 120 consecutive days
- Users with no traffic (that is, upload/download data are both 0) will be deleted if they do not log in for 30 consecutive days, or if the registration time reaches 60 days.
"
+
+login:
+ path: login.php
+ method: form
+ form: form[action="takelogin.php"]
+ captcha:
+ type: image
+ selector: img[alt="CAPTCHA"]
+ input: imagestring
+ inputs:
+ username: "{{ .Config.username }}"
+ password: "{{ .Config.password }}"
+ logout: ""
+ securelogin: ""
+ ssl: yes
+ trackerssl: yes
+ error:
+ - selector: div#stderr:has(h2:contains("失败"))
+ test:
+ path: index.php
+ selector: form[action$="logout.php"]
+
+search:
+ paths:
+ - path: torrents.php
+ inputs:
+ $raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
+ # currently supports only one query id at one time.
+ search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }} {{ else }}{{ .Keywords }}{{ end }}{{ if .Query.DoubanID }}{{ .Query.DoubanID }}{{ else }}{{ end }}"
+ # 0 incldead, 1 active, 2 dead
+ incldead: 0
+ # 0 no limit, 3 3days, 7 1week, 30 1month, 90 3months
+ indate: 0
+ # 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x50%, 7 30%, 8 special offer, 9 all promotions
+ spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
+ # 0 title, 1 descr, 3 uploader, 4 imdburl
+ search_area: "{{ if .Query.IMDBID }}4{{ else }}{{ end }}{{ if .Query.DoubanID }}1{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }}{{ else }}0{{ end }}"
+ sort: "{{ .Config.sort }}"
+ type: "{{ .Config.type }}"
+ notnewword: 1
+
+ rows:
+ selector: table.torrents > tbody > tr:has(div.torrent-title)
+
+ fields:
+ category:
+ selector: a[href*="cat="]
+ attribute: href
+ filters:
+ - name: querystring
+ args: cat
+ title_default:
+ selector: a[href*="details.php?id="]
+ title:
+ selector: a[title][href*="details.php?id="]
+ attribute: title
+ optional: true
+ default: "{{ .Result.title_default }}"
+ details:
+ selector: a[href*="details.php?id="]
+ attribute: href
+ download:
+ selector: a[href*="download.php?id="]
+ attribute: href
+ date_elapsed:
+ # time type: time elapsed (default)
+ selector: td:nth-child(4) > span[title]
+ attribute: title
+ optional: true
+ filters:
+ - name: append
+ args: " +08:00" # CST
+ - name: dateparse
+ args: "yyyy-MM-dd HH:mm:ss zzz"
+ date_added:
+ # time added
+ selector: td:nth-child(4):not(:has(span))
+ optional: true
+ filters:
+ - name: append
+ args: " +08:00" # CST
+ - name: dateparse
+ args: "yyyy-MM-ddHH:mm:ss zzz"
+ date:
+ text: "{{ if or .Result.date_elapsed .Result.date_added }}{{ or .Result.date_elapsed .Result.date_added }}{{ else }}now{{ end }}"
+ size:
+ selector: td:nth-child(5)
+ seeders:
+ selector: td:nth-child(6)
+ leechers:
+ selector: td:nth-child(7)
+ grabs:
+ selector: td:nth-child(8)
+ downloadvolumefactor:
+ case:
+ img.free: 0
+ img.twoupfree: 0
+ img.halfdown: 0.5
+ img.twouphalfdown: 0.5
+ img.thirtypercent: 0.3
+ "*": 1
+ uploadvolumefactor:
+ case:
+ img.twouphalfdown: 2
+ img.twoupfree: 2
+ img.twoup: 2
+ "*": 1
+ description:
+ selector: td:nth-child(2) div.torrent-title h3
+# NexusPHP HUDBT自优化版本 2013-05-13
diff --git a/mock-htpc/prowlarr/Definitions/huntorrent.yml b/mock-htpc/prowlarr/Definitions/huntorrent.yml
index 3be2fb2..ebf5672 100644
--- a/mock-htpc/prowlarr/Definitions/huntorrent.yml
+++ b/mock-htpc/prowlarr/Definitions/huntorrent.yml
@@ -52,17 +52,13 @@ settings:
- name: cookie
type: text
label: Cookie
- - name: info
- type: info
- label: How to get the Cookie
- default: "- Login to this tracker with your browser
- Open the DevTools panel by pressing F12
- Select the Network tab
- Click on the Doc button (Chrome Browser) or HTML button (FireFox)
- Refresh the page by pressing F5
- Click on the first row entry
- Select the Headers tab on the Right panel
- Find 'cookie:' in the Request Headers section
- Select and Copy the whole cookie string (everything after 'cookie: ') and Paste here.
"
+ - name: info_cookie
+ type: info_cookie
- name: useragent
type: text
label: User-Agent
- name: info_useragent
- type: info
- label: How to get the User-Agent
- default: "- From the same place you fetched the cookie,
- Find 'user-agent:' in the Request Headers section
- Select and Copy the whole user-agent string (everything after 'user-agent: ') and Paste here.
"
+ type: info_useragent
- name: sort
type: select
label: Sort requested from site
@@ -86,6 +82,7 @@ settings:
login:
method: cookie
+ # using cookie method because login page has embedded Google reCAPTCHA
inputs:
cookie: "{{ .Config.cookie }}"
test:
@@ -134,8 +131,13 @@ search:
details:
text: "details.php?id={{ .Result._id }}"
download:
- selector: a[href^="download.php?torrent="]
+ selector: a.download-link
attribute: href
+ filters:
+ - name: replace
+ args: ["please_wait=1&", ""]
+ - name: replace
+ args: ["&please_wait=1", ""]
genre:
selector: "span[style=\"font-size: 6pt; font-weight: bold;\"]"
description:
diff --git a/mock-htpc/prowlarr/Definitions/ianon.yml b/mock-htpc/prowlarr/Definitions/ianon.yml
new file mode 100644
index 0000000..7a67347
--- /dev/null
+++ b/mock-htpc/prowlarr/Definitions/ianon.yml
@@ -0,0 +1,140 @@
+---
+id: ianon
+name: iAnon
+description: "MacOS software tracker"
+language: en-US
+type: private
+encoding: UTF-8
+links:
+ - https://ianon.app/
+
+caps:
+ categorymappings:
+ - {id: 1, cat: PC/Mac, desc: Applications}
+ - {id: 2, cat: PC/Games, desc: Games}
+ - {id: 3, cat: PC/Mobile-iOS, desc: IOS Applications}
+ - {id: 4, cat: PC/Mobile-iOS, desc: IOS Games}
+ - {id: 5, cat: Other, desc: Graphics}
+ - {id: 6, cat: Audio, desc: Audio}
+ - {id: 7, cat: Other, desc: Tutorials}
+ - {id: 8, cat: Other, desc: Other}
+
+ modes:
+ search: [q]
+ music-search: [q, year, genre]
+
+settings:
+ - name: username
+ type: text
+ label: Username
+ - name: password
+ type: password
+ label: Password
+ - name: 2fa_code
+ type: text
+ label: 2FA code
+ - name: info_2fa
+ type: info
+ label: "About 2FA code"
+ default: "Only fill in the 2FA code box if you have enabled 2FA on the iAnon Web Site. Otherwise just leave it empty."
+ - name: freeleech
+ type: checkbox
+ label: Search freeleech only
+ default: false
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: time
+ options:
+ time: created
+ seeders: seeders
+ size: size
+ - name: type
+ type: select
+ label: Order requested from site
+ default: desc
+ options:
+ desc: desc
+ asc: asc
+
+login:
+ path: login.php
+ method: post
+ inputs:
+ username: "{{ .Config.username }}"
+ password: "{{ .Config.password }}"
+ twofa: "{{ .Config.2fa_code }}"
+ keeplogged: 1
+ error:
+ - selector: div.main div.warning-login
+ test:
+ path: torrents.php
+ selector: a[href^="logout.php?auth="]
+
+search:
+ paths:
+ - path: torrents.php
+ inputs:
+ $raw: "{{ range .Categories }}filter_cat[{{.}}]=1&{{end}}"
+ searchstr: "{{ .Keywords }}"
+ # freetorrent: 0 normal, 1 freeleech, 2 neutral leech
+ freetorrent: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
+ group_results: 0
+ action: advanced
+ year: "{{ .Query.Year }}"
+ order_by: "{{ .Config.sort }}"
+ order_way: "{{ .Config.type }}"
+ searchsubmit: 1
+
+ rows:
+ selector: table.torrent_table tr.torrent:has(a[title="Download"])
+
+ fields:
+ categorydesc:
+ selector: a[href*="filter_cat"]
+ attribute: href
+ filters:
+ - name: querystring
+ args: filter_cat
+ details:
+ selector: a[href^="torrents.php?id="]
+ attribute: href
+ genre:
+ selector: div.tags a[href*="taglist"]
+ download:
+ selector: span > a[href^="torrents.php?action=download&id="]
+ attribute: href
+ date:
+ selector: span.time.tooltip
+ attribute: title
+ filters:
+ - name: append
+ args: " +00:00" # GMT
+ - name: dateparse
+ args: "MMM dd yyyy, HH:mm zzz"
+ size:
+ selector: td.number_column.nobr
+ files:
+ selector: td:nth-last-child(6)
+ seeders:
+ selector: td:nth-last-child(2)
+ leechers:
+ selector: td:nth-last-child(1)
+ grabs:
+ selector: td:nth-last-child(3)
+ downloadvolumefactor:
+ case:
+ strong.torrent_label.tl_free: 0
+ "*": 1
+ uploadvolumefactor:
+ text: 1
+ minimumratio:
+ text: 0.6
+ title:
+ selector: a[href^="torrents.php?id="]
+ remove: strong.torrent_label
+ filters:
+ - name: trim
+ args: "/"
+ - name: trim
+# Gazelle
diff --git a/mock-htpc/prowlarr/Definitions/icc2022.yml b/mock-htpc/prowlarr/Definitions/icc2022.yml
index bd083c9..25e5421 100644
--- a/mock-htpc/prowlarr/Definitions/icc2022.yml
+++ b/mock-htpc/prowlarr/Definitions/icc2022.yml
@@ -5,25 +5,20 @@ description: "ICC2022 (冰淇淋) is a CHINESE Private Torrent Tracker for HD MO
language: zh-CN
type: private
encoding: UTF-8
-requestDelay: 2
links:
- https://www.icc2022.com/
caps:
categorymappings:
- - {id: 401, cat: Movies, desc: "Movies/电影", default: true}
- - {id: 404, cat: TV/Documentary, desc: "Documentaries/纪录片", default: true}
- - {id: 405, cat: TV/Anime, desc: "Animations/动漫", default: true}
- - {id: 402, cat: TV, desc: "TV Series/电视剧", default: true}
- - {id: 403, cat: TV, desc: "TV Shows/综艺", default: true}
- - {id: 406, cat: Audio/Video, desc: "MusicVideo/MV", default: true}
- - {id: 407, cat: TV/Sport, desc: "Sports/体育", default: true}
- - {id: 409, cat: Other, desc: "Misc/其他", default: true}
- - {id: 408, cat: Audio, desc: "Music/音乐", default: true}
- # special
- - {id: 410, cat: Movies, desc: "Video/视频资料", default: false}
- - {id: 411, cat: Audio, desc: "Audio/音频资料", default: false}
- - {id: 412, cat: Other, desc: "Other/其他资料", default: false}
+ - {id: 408, cat: Audio, desc: "Music/音乐"}
+ - {id: 409, cat: Other, desc: "Misc/其他"}
+ - {id: 407, cat: TV/Sport, desc: "Sports/体育"}
+ - {id: 406, cat: Audio/Video, desc: "MusicVideo/MV"}
+ - {id: 403, cat: TV, desc: "TV Shows/综艺"}
+ - {id: 402, cat: TV, desc: "TV Series/电视剧"}
+ - {id: 405, cat: TV/Anime, desc: "Animations/动漫"}
+ - {id: 404, cat: TV/Documentary, desc: "Documentaries/纪录片"}
+ - {id: 401, cat: Movies, desc: "Movies/电影"}
modes:
search: [q]
@@ -72,7 +67,7 @@ settings:
- name: info_activity
type: info
label: Account Inactivity
- default: "Cherish your user account. Inactive accounts would be deleted based on the following rules:- Veteran User or above would never be deleted.
- Elite User or above would never be deleted if packed (at User CP).
- Packed accounts would be deleted if users have not logged in for more than 400 days in a row.
- Unpacked accounts would be deleted if users have not logged in for more than 150 days in a row.
- Accounts with both uploaded and downloaded amount being 0 would be deleted if users have not logged in for more than 100 days in a row.
"
+ default: "Cherish your user account. Inactive accounts would be deleted based on the following rules:- Veteran User or above would never be deleted.
- Elite User or above would never be deleted if parked (at User CP).
- Parked accounts would be deleted if users have not logged in for more than 400 days in a row.
- Unparked accounts would be deleted if users have not logged in for more than 150 days in a row.
- Accounts with both uploaded and downloaded amount being 0 would be deleted if users have not logged in for more than 100 days in a row.
"
login:
path: login.php
@@ -100,9 +95,6 @@ login:
search:
paths:
- path: torrents.php
- categories: [401, 402, 403, 404, 405, 406, 407, 408, 409]
- - path: special.php
- categories: [410, 411, 412]
inputs:
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }} {{ else }}{{ .Keywords }}{{ end }}{{ if .Query.DoubanID }}{{ .Query.DoubanID }}{{ else }}{{ end }}"
@@ -193,4 +185,4 @@ search:
description:
selector: td.rowfollow:nth-child(2)
remove: a, b, font, img, span
-# NexusPHP v1.8.6 2023-08-18
+# NexusPHP v1.8.11 2024-03-27
diff --git a/mock-htpc/prowlarr/Definitions/idope.yml b/mock-htpc/prowlarr/Definitions/idope.yml
index b906e0a..a3ce1f0 100644
--- a/mock-htpc/prowlarr/Definitions/idope.yml
+++ b/mock-htpc/prowlarr/Definitions/idope.yml
@@ -60,10 +60,8 @@ settings:
3: "created asc"
1: "seeders asc"
2: "size asc"
- - name: flaresolverr
- type: info
- label: FlareSolverr
- default: This site may use Cloudflare DDoS Protection, therefore Prowlarr requires FlareSolverr to access it.
+ - name: info_flaresolverr
+ type: info_flaresolverr
search:
paths:
diff --git a/mock-htpc/prowlarr/Definitions/ilcorsaroblu.yml b/mock-htpc/prowlarr/Definitions/ilcorsaroblu.yml
index 2fb04ae..f5e9d5b 100644
--- a/mock-htpc/prowlarr/Definitions/ilcorsaroblu.yml
+++ b/mock-htpc/prowlarr/Definitions/ilcorsaroblu.yml
@@ -84,12 +84,10 @@ settings:
label: Password
- name: freeleech
type: checkbox
- label: Search freeleech only
+ label: Filter freeleech only
default: false
- - name: flaresolverr
- type: info
- label: FlareSolverr
- default: This site may use Cloudflare DDoS Protection, therefore Prowlarr requires FlareSolverr to access it.
+ - name: info_flaresolverr
+ type: info_flaresolverr
- name: sort
type: select
label: Sort requested from site
@@ -140,7 +138,8 @@ search:
search: "{{ .Keywords }}"
category: "{{ if .Categories }}{{ range .Categories }}{{.}};{{end}}{{ else }}0{{ end }}"
# 0 title, 1 title & descr, 2 descr, 3 uploaders, 5 gold, 6 silver, 7 bronze
- options: "{{ if .Config.freeleech }}5{{ else }}0{{ end }}"
+ # note the options are exclusive, so searching for gold means the search keywords are ignored
+ options: 0
# 0 all, 1 activeonly, 2 deadonly
active: 0
order: "{{ .Config.sort }}"
@@ -148,7 +147,7 @@ search:
# does not support imdbid searches and does not return imdb link in results
rows:
- selector: div.b-content > table > tbody > tr > td > table.lista > tbody > tr:has(a[href^="index.php?page=torrents&category="])
+ selector: "div.b-content > table > tbody > tr > td > table.lista > tbody > tr:has(a[href^=\"index.php?page=torrents&category=\"]){{ if .Config.freeleech }}:has(img[src$=\"gold.gif\"]){{ else }}{{ end }}"
filters:
- name: andmatch
diff --git a/mock-htpc/prowlarr/Definitions/ilcorsaronero.yml b/mock-htpc/prowlarr/Definitions/ilcorsaronero.yml
index f330b0b..2fc196c 100644
--- a/mock-htpc/prowlarr/Definitions/ilcorsaronero.yml
+++ b/mock-htpc/prowlarr/Definitions/ilcorsaronero.yml
@@ -1,11 +1,10 @@
---
id: ilcorsaronero
-name: Il Corsaro Nero
-description: "Il Corsaro Nero is an ITALIAN Public site for TV / MOVIES / GENERAL"
+name: ilCorSaRoNeRo
+description: "ilCorSaRoNeRo is an ITALIAN Public site for TV / MOVIES / GENERAL"
language: it-IT
type: public
-encoding: Windows-1252
-requestDelay: 2
+encoding: UTF-8
links:
- https://ilcorsaronero.link/
- https://ilcorsaronero.torrentbay.st/
@@ -18,37 +17,41 @@ legacylinks:
- https://ilcorsaronero.pizza/
- https://ilcorsaronero.pw/
- https://ilcorsaronero.xyz/
- - https://ilcorsaronero.nocensor.world/
- - https://ilcorsaronero.nocensor.lol/
- - https://ilcorsaronero.nocensor.art/
- https://ilcorsaronero.torrentbay.to/
- https://ilcorsaronero.fun/
- https://ilcorsaronero.pro/
- - https://ilcorsaronero.mrunblock.guru/
- - https://ilcorsaronero.mrunblock.life/
- - https://ilcorsaronero.nocensor.click/
- https://ilcorsaronero.torrentbay.net/
- https://ilcorsaronero.mrunblock.bond/
- https://ilcorsaronero.nocensor.cloud/
caps:
categorymappings:
- - {id: 1, cat: Movies/HD, desc: "Movies BDRiP", default: true}
- - {id: 2, cat: Audio, desc: "Music", default: true}
- - {id: 3, cat: PC/Games, desc: "Games PC", default: true}
- - {id: 4, cat: Other, desc: "Other", default: true}
- - {id: 5, cat: TV/Anime, desc: "Anime", default: true}
- - {id: 6, cat: Books/EBook, desc: "Ebooks", default: true}
- - {id: 7, cat: PC/0day, desc: "App Windows", default: true}
- - {id: 8, cat: PC, desc: "App Linux", default: true}
- - {id: 9, cat: PC/Mac, desc: "App Mac", default: true}
- - {id: 13, cat: Console/PSP, desc: "Games Playstation", default: true}
- - {id: 14, cat: Console/XBox, desc: "Games Xbox", default: true}
- - {id: 15, cat: TV, desc: "TV Series", default: true}
- - {id: 16, cat: Other, desc: "Other", default: true}
- - {id: 18, cat: Audio/Audiobook, desc: "Audio Book", default: true}
- - {id: 19, cat: Movies/SD, desc: "Movies Screener", default: true}
- - {id: 20, cat: Movies/DVD, desc: "Movies DVD", default: true}
+ - {id: film, cat: Movies, desc: "Film"}
+ - {id: serie-tv, cat: TV, desc: "Serie TV"}
+ - {id: animazione, cat: TV/Anime, desc: "Animazione"}
+ - {id: animazione-film, cat: TV/Anime, desc: "Animazione - Film"}
+ - {id: animazione-serie, cat: TV/Anime, desc: "Animazione - Serie"}
+ - {id: musica, cat: Audio, desc: "Musica"}
+ - {id: musica-audio, cat: Audio, desc: "Musica - Audio"}
+ - {id: musica-video, cat: Audio/Video, desc: "Musica - Video Musicali"}
+ - {id: libri, cat: Books, desc: "Libri"}
+ - {id: libri-ebook, cat: Books/EBook, desc: "Libri - eBook"}
+ - {id: libri-audio, cat: Audio/Audiobook, desc: "Libri - Audiolibri"}
+ - {id: libri-fumetti, cat: Books/Comics, desc: "Libri - Fumetti"}
+ - {id: libri-edicola, cat: Books/Mags, desc: "Libri - Edicola"}
+ - {id: giochi, cat: PC/Games, desc: "Giochi"}
+ - {id: giochi-pc, cat: PC/Games, desc: "Giochi - PC"}
+ - {id: giochi-console, cat: PC/Games, desc: "Giochi - Console"}
+ - {id: software, cat: PC, desc: "Software"}
+ - {id: software-windows, cat: PC/0day, desc: "Software - Windows"}
+ - {id: software-macos, cat: PC/Mac, desc: "Software - macOS"}
+ - {id: software-linux, cat: PC, desc: "Software - Linux"}
+ - {id: software-mobile, cat: PC/Mobile-Other, desc: "Software - Mobile"}
+ - {id: altro, cat: Other, desc: "Altro"}
+ - {id: altro-docu, cat: Other, desc: "Altro - Documentari"}
+ - {id: altro-tv, cat: Other, desc: "Altro - Programmi TV"}
+ - {id: altro-corsi, cat: Other, desc: "Altro - Videocorsi"}
+ - {id: altro-altro, cat: Other, desc: "Altro - Altro"}
modes:
search: [q]
@@ -58,38 +61,53 @@ caps:
book-search: [q]
settings:
- - name: itorrents-links
- type: checkbox
- label: Add download links via itorrents.org
+ - name: category-id
+ type: select
+ label: Category (for Keyword search)
+ default: all
+ options:
+ all: "All categories"
+ film: "Film"
+ serie-tv: "Serie TV"
+ animazione: "Animazione"
+ musica: "Musica"
+ libri: "Libri"
+ giochi: "Giochi"
+ software: "Software"
+ altro: "Altro"
+ - name: dl_type
+ type: select
+ label: Download type
+ default: Magnet
+ options:
+ Magnet: "magnet"
+ Torrent: "torrent"
+
+download:
+ selectors:
+ - selector: a:has(span:contains("{{ .Config.dl_type }}"))
+ attribute: href
search:
paths:
- - path: "{{ if .Keywords }}advsearch.php?&category={{ range .Categories }}{{.}};{{end}}&search={{ .Keywords }}&order=data&by=DESC&page=0{{ else }}/browse/0{{ end }}"
- - path: "{{ if .Keywords }}advsearch.php?&category={{ range .Categories }}{{.}};{{end}}&search={{ .Keywords }}&order=data&by=DESC&page=1{{ else }}/browse/1{{ end }}"
- - path: "{{ if .Keywords }}advsearch.php?&category={{ range .Categories }}{{.}};{{end}}&search={{ .Keywords }}&order=data&by=DESC&page=2{{ else }}/browse/2{{ end }}"
+ - path: "{{ if .Keywords }}search{{ else }}{{ end }}"
+ inputs:
+ q: "{{ .Keywords }}"
+ cat: "{{ if .Keywords }}{{ re_replace .Config.category-id \"all\" \"\" }}{{ else }}{{ end }}"
rows:
- selector: "tr.odd,tr.odd2"
+ selector: table > tbody > tr
filters:
- name: andmatch
fields:
- category:
- selector: td:nth-child(1) a
- attribute: href
- filters:
- - name: split
- args: ["/", -1]
+ categorydesc:
+ selector: td:nth-child(1)
title:
- selector: td:nth-child(2) a.tab
- attribute: href
+ selector: a[href^="/torrent/"]
filters:
- - name: split
- args: ["/", -1]
- - name: replace # replace underscore with " " (space)
- args: ["_", " "]
- - name: re_replace # replace multiple spaces
- args: ["[ ]{2,}", " "]
+ - name: re_replace
+ args: ["\\.", " "]
# normalize to SXXEYY format
- name: re_replace # S01 E01 to S01E01
args: ["(?i)\\bS(\\d+)\\sE(\\d+)\\b", "S$1E$2"]
@@ -124,49 +142,22 @@ search:
args: ["(?i)WEB\\sDL", "WEB-DL"]
- name: re_replace
args: ["(?i)HDTVRIP", "HDTV"]
- description:
- selector: td:nth-child(1) a
- attribute: href
- filters:
- - name: split
- args: ["/", -1]
- - name: prepend
- args: "cat="
details:
- selector: td:nth-child(4) a
+ selector: a[href^="/torrent/"]
attribute: href
- download_itorrents:
- selector: input.downarrow
- attribute: value
- filters:
- - name: prepend
- args: "http://itorrents.org/torrent/"
- - name: append
- args: ".torrent"
download:
- text: "{{ if .Config.itorrents-links }}{{ .Result.download_itorrents }}{{ else }}{{ end }}"
- infohash:
- selector: input.downarrow
- attribute: value
- size:
- selector: td:nth-child(3) font
- date:
- selector: td:nth-child(5) font
- filters:
- - name: append
- args: " +01:00" # CET
- - name: dateparse
- args: "dd.MM.yy zzz"
+ selector: a[href^="/torrent/"]
+ attribute: href
seeders:
- selector: td:nth-child(6) font
- filters:
- - name: replace
- args: ["n/a", "0"]
+ selector: td:nth-child(3)
leechers:
- selector: td:nth-child(7) font
- filters:
- - name: replace
- args: ["n/a", "0"]
+ selector: td:nth-child(4)
+ size:
+ selector: td:nth-child(5)
+ date:
+ # unix
+ selector: td:nth-child(6)
+ attribute: data-timestamp
downloadvolumefactor:
text: 0
uploadvolumefactor:
diff --git a/mock-htpc/prowlarr/Definitions/ildragonero.yml b/mock-htpc/prowlarr/Definitions/ildragonero.yml
index 2fe6acc..7de403d 100644
--- a/mock-htpc/prowlarr/Definitions/ildragonero.yml
+++ b/mock-htpc/prowlarr/Definitions/ildragonero.yml
@@ -5,7 +5,6 @@ description: "ilDraGoNeRo is an ITALIAN Semi-Private Torrent Tracker for MOVIES
language: it-IT
type: semi-private
encoding: UTF-8
-requestDelay: 5
links:
- https://ildragonero2.info/
diff --git a/mock-htpc/prowlarr/Definitions/ilolicon.yml b/mock-htpc/prowlarr/Definitions/ilolicon.yml
new file mode 100644
index 0000000..b58400d
--- /dev/null
+++ b/mock-htpc/prowlarr/Definitions/ilolicon.yml
@@ -0,0 +1,171 @@
+---
+id: ilolicon
+name: ilolicon PT
+description: "ilolicon PT is a CHINESE Private torrent tracker for LOLICON / MOVIES / 3X"
+language: zh-CN
+type: private
+encoding: UTF-8
+links:
+ - https://share.ilolicon.com/
+
+caps:
+ categorymappings:
+ - {id: 401, cat: Movies, desc: "电影 (Movie)"}
+ - {id: 402, cat: TV, desc: 电视剧/综艺 (TV Series/TV Show)"}
+ - {id: 405, cat: TV/Anime, desc: "动画 (Animation)"}
+ - {id: 408, cat: Audio, desc: "音乐 (Music)"}
+ - {id: 410, cat: Audio/Video, desc: "舞台演出 (Stage Performance)"}
+ - {id: 404, cat: TV/Documentary, desc: "纪录片 (Documentary)"}
+ - {id: 412, cat: Console, desc: "游戏 (Game)"}
+ - {id: 413, cat: PC, desc: "软件 (Software)"}
+ - {id: 411, cat: Other, desc: "漫画/图集/绘本/写真 (Photo)"}
+ - {id: 418, cat: Other, desc: "三次元图集/写真/Cosplay套图"}
+
+ modes:
+ search: [q]
+ tv-search: [q, season, ep, imdbid, doubanid]
+ movie-search: [q, imdbid, doubanid]
+ music-search: [q]
+
+settings:
+ - name: cookie
+ type: text
+ label: Cookie
+ - name: info_cookie
+ type: info_cookie
+ - name: freeleech
+ type: checkbox
+ label: Search freeleech only
+ default: false
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: 4
+ options:
+ 4: created
+ 7: seeders
+ 5: size
+ 1: title
+ - name: type
+ type: select
+ label: Order requested from site
+ default: desc
+ options:
+ desc: desc
+ asc: asc
+ - name: info_tpp
+ type: info
+ label: Results Per Page
+ default: For best results, change the Torrents per page: setting to 100 on your account profile.Choosing more may cause the web site to fail to deliver complete results.
+ - name: info_activity
+ type: info
+ label: Account Inactivity
+ default: "Cherish your user account. Inactive accounts would be deleted based on the following rules:- Veteran User or above would never be deleted.
- Elite User or above would never be deleted if parked (at User CP).
- Parked accounts would be deleted if users have not logged in for more than 400 days in a row.
- Unparked accounts would be deleted if users have not logged in for more than 150 days in a row.
- Accounts with both uploaded and downloaded amount being 0 would be deleted if users have not logged in for more than 100 days in a row.
"
+
+login:
+ method: cookie
+ inputs:
+ cookie: "{{ .Config.cookie }}"
+ test:
+ path: index.php
+ selector: a[href="logout.php"]
+
+search:
+ paths:
+ - path: torrents.php
+ inputs:
+ $raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
+ search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }} {{ else }}{{ .Keywords }}{{ end }}{{ if .Query.DoubanID }}{{ .Query.DoubanID }}{{ else }}{{ end }}"
+ # 0 incldead, 1 active, 2 dead
+ incldead: 0
+ # 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x50%, 7 30%
+ spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
+ # 0 title, 1 descr, 3 uploader, 4 imdburl
+ search_area: "{{ if .Query.IMDBID }}4{{ else }}{{ end }}{{ if .Query.DoubanID }}1{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }}{{ else }}0{{ end }}"
+ # 0 AND, 2 exact
+ search_mode: 0
+ sort: "{{ .Config.sort }}"
+ type: "{{ .Config.type }}"
+ notnewword: 1
+
+ rows:
+ selector: table.torrents > tbody > tr:has(a[href^="details.php?id="])
+
+ fields:
+ category:
+ selector: a[href^="?cat="]
+ attribute: href
+ filters:
+ - name: querystring
+ args: cat
+ title_default:
+ selector: a[href^="details.php?id="]
+ title:
+ selector: a[title][href^="details.php?id="]
+ attribute: title
+ optional: true
+ default: "{{ .Result.title_default }}"
+ details:
+ selector: a[href^="details.php?id="]
+ attribute: href
+ download:
+ selector: a[href^="download.php?id="]
+ attribute: href
+ poster:
+ selector: img[data-src]
+ attribute: data-src
+ imdbid:
+ # site currently only has a badge and rating, the id is not present. just in case a future update.
+ selector: a[href*="imdb.com/title/tt"]
+ attribute: href
+ doubanid:
+ # site currently only has a badge and rating, the id is not present. just in case a future update.
+ selector: a[href*="movie.douban.com/subject/"]
+ attribute: href
+ date_elapsed:
+ # time type: time elapsed (default)
+ selector: td.rowfollow:nth-child(4) > span[title]
+ attribute: title
+ optional: true
+ filters:
+ - name: append
+ args: " +08:00" # CST
+ - name: dateparse
+ args: "yyyy-MM-dd HH:mm:ss zzz"
+ date_added:
+ # time added
+ selector: td.rowfollow:nth-child(4):not(:has(span))
+ optional: true
+ filters:
+ - name: append
+ args: " +08:00" # CST
+ - name: dateparse
+ args: "yyyy-MM-ddHH:mm:ss zzz"
+ date:
+ text: "{{ if or .Result.date_elapsed .Result.date_added }}{{ or .Result.date_elapsed .Result.date_added }}{{ else }}now{{ end }}"
+ size:
+ selector: td.rowfollow:nth-child(5)
+ seeders:
+ selector: td.rowfollow:nth-child(6)
+ leechers:
+ selector: td.rowfollow:nth-child(7)
+ grabs:
+ selector: td.rowfollow:nth-child(8)
+ downloadvolumefactor:
+ case:
+ img.pro_free: 0
+ img.pro_free2up: 0
+ img.pro_50pctdown: 0.5
+ img.pro_50pctdown2up: 0.5
+ img.pro_30pctdown: 0.3
+ "*": 1
+ uploadvolumefactor:
+ case:
+ img.pro_50pctdown2up: 2
+ img.pro_free2up: 2
+ img.pro_2up: 2
+ "*": 1
+ description:
+ selector: td.rowfollow:nth-child(2) td:nth-child(2)
+ remove: a, b, font, img
+# NexusPHP v1.8.12 2024-07-13
diff --git a/mock-htpc/prowlarr/Definitions/infinity-api.yml b/mock-htpc/prowlarr/Definitions/infinity-api.yml
new file mode 100644
index 0000000..d66ec77
--- /dev/null
+++ b/mock-htpc/prowlarr/Definitions/infinity-api.yml
@@ -0,0 +1,180 @@
+---
+id: infinity-api
+name: INFINITY (API)
+description: "INFINITY is a Private Torrent Tracker for MOVIES / TV"
+language: en-US
+type: private
+encoding: UTF-8
+links:
+ - https://infinitylibrary.net/
+
+caps:
+ categorymappings:
+ - {id: 1, cat: Movies, desc: "Movies"}
+ - {id: 2, cat: TV, desc: "TV"}
+
+ modes:
+ search: [q]
+ tv-search: [q, season, ep, imdbid, tvdbid, tmdbid]
+ movie-search: [q, imdbid, tmdbid]
+
+settings:
+ - name: apikey
+ type: text
+ label: APIKey
+ - name: info_key
+ type: info
+ label: About your API key
+ default: "Find or Generate a new API Token by accessing your INFINITY account My Settings page and clicking on the API Key tab."
+ - name: freeleech
+ type: checkbox
+ label: Search freeleech only
+ default: false
+ - name: single_file_release_use_filename
+ type: checkbox
+ label: Use filename as title for single file releases
+ default: true
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: created_at
+ options:
+ created_at: created
+ seeders: seeders
+ size: size
+ name: title
+ - name: type
+ type: select
+ label: Order requested from site
+ default: desc
+ options:
+ desc: desc
+ asc: asc
+
+login:
+ path: /api/torrents
+ method: get
+ error:
+ - selector: a[href*="/login"]
+ message:
+ text: "The API key was not accepted by {{ .Config.sitelink }}."
+ - selector: :root:contains("Account is Banned")
+
+search:
+ paths:
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
+ - path: "/api/torrents/filter"
+ response:
+ type: json
+
+ headers:
+ Authorization: ["Bearer {{ .Config.apikey }}"]
+
+ inputs:
+ # if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
+ $raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
+ name: "{{ .Keywords }}"
+ seasonNumber: "{{ .Query.Season }}"
+ episodeNumber: "{{ .Query.Ep }}"
+ imdbId: "{{ .Query.IMDBIDShort }}"
+ tmdbId: "{{ .Query.TMDBID }}"
+ tvdbId: "{{ .Query.TVDBID }}"
+ "free[]": "{{ if .Config.freeleech }}100{{ else }}{{ end }}"
+ sortField: "{{ .Config.sort }}"
+ sortDirection: "{{ .Config.type }}"
+ perPage: 100
+
+ keywordsfilters:
+ - name: re_replace
+ args: ["\\.", " "]
+
+ rows:
+ selector: data
+ attribute: attributes
+
+ fields:
+ category:
+ selector: category_id
+ title_optional:
+ selector: name
+ title_filename:
+ selector: "files[0].name"
+ optional: true
+ files:
+ selector: num_file
+ title:
+ text: "{{ if and (.Config.single_file_release_use_filename) (eq .Result.files \"1\") (.Result.title_filename) }}{{ .Result.title_filename }}{{ else }}{{ .Result.title_optional }}{{ end }}"
+ details:
+ selector: details_link
+ download:
+ selector: download_link
+ infohash:
+ selector: info_hash
+ poster:
+ selector: meta.poster
+ filters:
+ - name: replace
+ args: ["https://via.placeholder.com/90x135", ""]
+ imdbid:
+ selector: imdb_id
+ tmdbid:
+ selector: tmdb_id
+ tvdbid:
+ selector: tvdb_id
+ genre:
+ selector: meta.genres
+ filters:
+ - name: re_replace
+ args: ["(?i)(Science Fiction)", "Science_Fiction"]
+ - name: re_replace
+ args: ["(?i)(TV Movie)", "TV_Movie"]
+ - name: replace
+ args: [" & ", "_&_"]
+ description:
+ text: "{{ .Result.genre }}"
+ seeders:
+ selector: seeders
+ leechers:
+ selector: leechers
+ grabs:
+ selector: times_completed
+ date:
+ # "created_at": "2021-10-18T00:34:50.000000Z" is returned by Newtonsoft.Json.Linq as 18/10/2021 00:34:50
+ selector: created_at
+ filters:
+ - name: append
+ args: " +00:00" # GMT
+ - name: dateparse
+ args: "MM/dd/yyyy HH:mm:ss zzz"
+ size:
+ selector: size
+ _featured:
+ selector: featured
+ case:
+ False: "{{ .False }}"
+ True: "{{ .True }}"
+ downloadvolumefactor_freeleech:
+ # api returns 0%, 25%, 50%, 75%, 100%
+ selector: freeleech
+ case:
+ 0%: 1 # not free
+ 25%: 0.75
+ 50%: 0.5
+ 75%: 0.25
+ 100%: 0 # freeleech
+ "*": 0 # catch errors
+ downloadvolumefactor:
+ text: "{{ if .Result._featured }}0{{ else }}{{ .Result.downloadvolumefactor_freeleech }}{{ end }}"
+ uploadvolumefactor_double_upload:
+ # api returns False, True
+ selector: double_upload
+ case:
+ False: 1 # normal
+ True: 2 # double
+ uploadvolumefactor:
+ text: "{{ if .Result._featured }}2{{ else }}{{ .Result.uploadvolumefactor_double_upload }}{{ end }}"
+ minimumseedtime:
+ # 7 days (as seconds = 7 x 24 x 60 x 60)
+ text: 604800
+# json UNIT3D 8.1.3
diff --git a/mock-htpc/prowlarr/Definitions/infire.yml b/mock-htpc/prowlarr/Definitions/infire.yml
index cfbf318..4d31d0d 100644
--- a/mock-htpc/prowlarr/Definitions/infire.yml
+++ b/mock-htpc/prowlarr/Definitions/infire.yml
@@ -30,6 +30,7 @@ caps:
- {id: 97, cat: Movies/UHD, desc: "BluRay 2160p", default: true}
- {id: 99, cat: Movies/HD, desc: "BRRip 720p", default: true}
- {id: 100, cat: Movies/HD, desc: "BRRip 1080p", default: true}
+ - {id: 101, cat: Movies/HD, desc: "BRRip", default: true}
# TV
- {id: 23, cat: TV, desc: "TV", default: true}
- {id: 24, cat: TV/HD, desc: "HDTV 720p", default: true}
@@ -84,6 +85,7 @@ caps:
- {id: 45, cat: PC/Mobile-iOS, desc: "iOS", default: true}
- {id: 46, cat: PC/Mac, desc: "Mac", default: true}
- {id: 47, cat: PC/ISO, desc: "Linux", default: true}
+ - {id: 102, cat: Other, desc: "3D STL", default: true}
# Dokumentarni
- {id: 95, cat: TV/Documentary, desc: "Dokumentarni Film", default: true}
- {id: 96, cat: TV/Documentary, desc: "Dokumentarna Serija", default: true}
@@ -144,7 +146,7 @@ login:
search:
paths:
- path: torrents.php
- categories: [14, 15, 16, 20, 21, 49, 50, 51, 52, 55, 71, 72, 73, 74, 77, 97, 99, 100, 23, 24, 75, 76, 78, 79, 80, 81, 82, 98, 26, 56, 93, 29, 30, 31, 34, 83, 42, 43, 53, 54, 62, 37, 85, 86, 87, 88, 89, 90, 91, 38, 39, 40, 41, 44, 45, 46, 47, 95, 96]
+ categories: [14, 15, 16, 20, 21, 49, 50, 51, 52, 55, 71, 72, 73, 74, 77, 97, 99, 100, 23, 24, 75, 76, 78, 79, 80, 81, 82, 98, 26, 56, 93, 29, 30, 31, 34, 83, 42, 43, 53, 54, 62, 37, 85, 86, 87, 88, 89, 90, 91, 38, 39, 40, 41, 44, 45, 46, 47, 102, 95, 96]
- path: xxx.php
categories: [60, 61, 66, 67, 68, 69, 84]
inputs:
diff --git a/mock-htpc/prowlarr/Definitions/irishtv.yml b/mock-htpc/prowlarr/Definitions/irishtv.yml
new file mode 100644
index 0000000..d965c0a
--- /dev/null
+++ b/mock-htpc/prowlarr/Definitions/irishtv.yml
@@ -0,0 +1,186 @@
+---
+id: irishtv
+name: IrishTV
+description: "IrishTV (ITV) is an IRISH Private Torrent Tracker for MOVIES / TV / GENERAL"
+language: en-US
+type: private
+encoding: UTF-8
+links:
+ - http://irishtv.xyz/
+
+caps:
+ categorymappings:
+ - {id: 1, cat: TV, desc: "Comedy"}
+ - {id: 2, cat: TV, desc: "Drama"}
+ - {id: 3, cat: TV, desc: "Documentary"}
+ - {id: 6, cat: TV, desc: "Entertainment"}
+ - {id: 4, cat: TV, desc: "Lifestyle"}
+ - {id: 7, cat: TV, desc: "Kids"}
+ - {id: 8, cat: TV, desc: "Culture"}
+ - {id: 9, cat: TV, desc: "Science & Nature"}
+ - {id: 12, cat: TV/Sport, desc: "Sport"}
+ - {id: 13, cat: TV, desc: "News Current Affairs"}
+ - {id: 14, cat: TV, desc: "Classics"}
+ - {id: 17, cat: TV, desc: "Crime"}
+ - {id: 16, cat: TV, desc: "Boxsets"}
+ - {id: 18, cat: Audio, desc: "Music"}
+ - {id: 19, cat: Movies, desc: "Film"}
+ - {id: 20, cat: Movies, desc: "VIP"}
+
+ modes:
+ search: [q]
+ tv-search: [q, season, ep]
+ movie-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: novip
+ type: checkbox
+ label: Hide VIP releases
+ default: true
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: 3
+ options:
+ 3: created
+ 5: seeders
+ 4: size
+ 2: title
+ - name: type
+ type: select
+ label: Order requested from site
+ default: 2
+ options:
+ 2: desc
+ 1: asc
+ - name: info
+ type: info
+ label: Results Per Page
+ default: For best results, change the Torrents per page: setting to 100 on your account profile.
+
+login:
+ path: index.php?page=login
+ method: post
+ inputs:
+ uid: "{{ .Config.username }}"
+ pwd: "{{ .Config.password }}"
+ error:
+ - selector: tr td span[style="color:#FF0000;"]
+ test:
+ path: index.php
+ selector: a[href="logout.php"]
+
+search:
+ paths:
+ # http://irishtv.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
+ options: 0
+ # 0 all, 1 active only, 2 dead only
+ active: 0
+ order: "{{ .Config.sort }}"
+ by: "{{ .Config.type }}"
+ # does not support imdbid search and does not return imdb link in results, does not support Genre search or return them in results.
+
+ keywordsfilters:
+ - name: re_replace
+ args: ["\\.", " "]
+
+ rows:
+ selector: "table.lista > tbody > tr:has(a[href^=\"download.php?id=\"]){{ if .Config.novip }}:not(:has(a[href$=\"category=20\"])){{ else }}{{ end }}{{ if .Config.freeleech }}:has(img[src$=\"gold.gif\"]){{ else }}{{ end }}, table.lista > tbody > tr:has(a[href^=\"download.php?id=\"]){{ if .Config.novip }}:not(:has(a[href$=\"category=20\"])){{ else }}{{ end }}{{ if .Config.freeleech }}:has(img[src$=\"freeleech.gif\"]){{ else }}{{ end }}"
+
+ fields:
+ category:
+ selector: a[href^="index.php?page=torrents&category="]
+ attribute: href
+ filters:
+ - name: querystring
+ args: category
+ title_torrent:
+ selector: a[href^="download.php?id="]
+ attribute: href
+ filters:
+ - name: querystring
+ args: f
+ - name: htmldecode
+ - name: re_replace
+ args: ["(?i)\\.torrent$", ""]
+ title_text:
+ selector: a[href^="index.php?page=torrent-details&id="]
+ title:
+ text: "{{ if .Result.title_torrent }}{{ .Result.title_torrent }}{{ else }}{{ .Result.title_text }}{{ end }}"
+ poster:
+ selector: a[href^="index.php?page=torrent-details&id="]
+ attribute: onmouseover
+ filters:
+ - name: regexp
+ args: "src=(.*?) "
+ - name: replace
+ args: ["torrentimg/nocover.jpg", ""]
+ details:
+ selector: a[href^="index.php?page=torrent-details&id="]
+ attribute: href
+ download:
+ selector: a[href^="download.php?id="]
+ attribute: href
+ size:
+ # Size: 2.00 GB
+ selector: td:has(a[href^="download.php?id="]) p:contains("Size:")
+ filters:
+ - name: regexp
+ args: (\d.+[B]$)
+ date:
+ # AddDate: 12:54:01 24/10/2024
+ selector: td:has(a[href^="download.php?id="]) p:contains("AddDate:")
+ # auto adjusted by site account profile
+ filters:
+ - name: regexp
+ args: (\d{2}:\d{2}:\d{2}\s\d{1,2}\/\d{2}\/\d{4})
+ - name: dateparse
+ args: "HH:mm:ss d/MM/yyyy"
+ seeders:
+ selector: td:has(a[href^="download.php?id="]) p:contains("Seeds:") > a
+ leechers:
+ selector: td:has(a[href^="download.php?id="]) p:contains("Seeds:") > a:nth-child(2)
+ grabs:
+ selector: td:has(a[href^="download.php?id="]) p:contains("Seeds:") > a:nth-child(3)
+ downloadvolumefactor:
+ case:
+ 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="images/2x.gif"]: 2
+ img[src="images/3x.gif"]: 3
+ img[src="images/4x.gif"]: 4
+ img[src="images/5x.gif"]: 5
+ img[src="images/6x.gif"]: 6
+ img[src="images/7x.gif"]: 7
+ img[src="images/8x.gif"]: 8
+ img[src="images/9x.gif"]: 9
+ img[src="images/10x.gif"]: 10
+ "*": 1
+ minimumratio:
+ text: 1.5
+ minimumseedtime:
+ # 7 days (as seconds = 7 x 24 x 60 x 60)
+ text: 259200
+# xbtitFM v4.1.31
diff --git a/mock-htpc/prowlarr/Definitions/isohunt2.yml b/mock-htpc/prowlarr/Definitions/isohunt2.yml
index 479e1d0..81b0049 100644
--- a/mock-htpc/prowlarr/Definitions/isohunt2.yml
+++ b/mock-htpc/prowlarr/Definitions/isohunt2.yml
@@ -6,12 +6,12 @@ language: en-US
type: public
encoding: UTF-8
links:
- - https://isohunt.nz/
- - https://isohunt.fun/
- - https://isohunt.tv/
- https://isohunt.ch/
legacylinks:
- - https://isohunt2.net/
+ - https://isohunt2.net/ # redirects to torrentproject.cc
+ - https://isohunt.fun/ # redirects to torrentproject.cc
+ - https://isohunt.tv/ # redirects to torrentproject.cc
+ - https://isohunt.nz/
caps:
categorymappings:
diff --git a/mock-htpc/prowlarr/Definitions/itatorrents.yml b/mock-htpc/prowlarr/Definitions/itatorrents.yml
index 18d8921..8226aea 100644
--- a/mock-htpc/prowlarr/Definitions/itatorrents.yml
+++ b/mock-htpc/prowlarr/Definitions/itatorrents.yml
@@ -19,6 +19,9 @@ caps:
- {id: 7, cat: Books/EBook, desc: "E-Book"}
- {id: 8, cat: Audio/Audiobook, desc: "AudioLibri"}
- {id: 12, cat: Other, desc: "Corsi"}
+ - {id: 13, cat: Books/Comics, desc: "Fumetti"}
+ - {id: 14, cat: Audio/Video, desc: "Concerti"}
+ - {id: 15, cat: Audio, desc: "Discografie"}
modes:
search: [q]
@@ -34,11 +37,15 @@ settings:
- name: info_key
type: info
label: About your API key
- default: "Find or Generate a new API Token by accessing your ItaTorrents account My Security page and clicking on the API Token tab."
+ default: "Find or Generate a new API Token by accessing your ItaTorrents account My Settings page and clicking on the API Key tab."
- name: freeleech
type: checkbox
label: Search freeleech only
default: false
+ - name: single_file_release_use_filename
+ type: checkbox
+ label: Use filename as title for single file releases
+ default: true
- name: sort
type: select
label: Sort requested from site
@@ -68,11 +75,12 @@ login:
- selector: a[href*="/login"]
message:
text: "The API key was not accepted by {{ .Config.sitelink }}."
+ - selector: :root:contains("Account is Banned")
search:
paths:
- # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v7.0.0)
- # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L349
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
- path: "/api/torrents/filter"
response:
type: json
@@ -107,8 +115,15 @@ search:
fields:
category:
selector: category_id
- title:
+ title_optional:
selector: name
+ title_filename:
+ selector: "files[0].name"
+ optional: true
+ files:
+ selector: num_file
+ title:
+ text: "{{ if and (.Config.single_file_release_use_filename) (eq .Result.files \"1\") (.Result.title_filename) }}{{ .Result.title_filename }}{{ else }}{{ .Result.title_optional }}{{ end }}"
filters:
- name: re_replace
args: ["\\.", " "]
@@ -136,16 +151,12 @@ search:
genre:
selector: meta.genres
filters:
- - name: re_replace
- args: ["(?i)^None$", ""]
- name: re_replace
args: ["(?i)(televisione film)", "televisione_film"]
- name: replace
args: [" & ", "_&_"]
description:
text: "{{ .Result.genre }}"
- files:
- selector: num_file
seeders:
selector: seeders
leechers:
@@ -162,7 +173,12 @@ search:
args: "MM/dd/yyyy HH:mm:ss zzz"
size:
selector: size
- downloadvolumefactor:
+ _featured:
+ selector: featured
+ case:
+ False: "{{ .False }}"
+ True: "{{ .True }}"
+ downloadvolumefactor_freeleech:
# api returns 0%, 25%, 50%, 75%, 100%
selector: freeleech
case:
@@ -172,13 +188,17 @@ search:
75%: 0.25
100%: 0 # freeleech
"*": 0 # catch errors
- uploadvolumefactor:
- # api returns 0=false, 1=true
+ downloadvolumefactor:
+ text: "{{ if .Result._featured }}0{{ else }}{{ .Result.downloadvolumefactor_freeleech }}{{ end }}"
+ uploadvolumefactor_double_upload:
+ # api returns False, True
selector: double_upload
case:
- 0: 1 # normal
- 1: 2 # double
+ False: 1 # normal
+ True: 2 # double
+ uploadvolumefactor:
+ text: "{{ if .Result._featured }}2{{ else }}{{ .Result.uploadvolumefactor_double_upload }}{{ end }}"
minimumseedtime:
# 7 days (as seconds = 7 x 24 x 60 x 60)
text: 604800
-# json UNIT3D 6.5.0
+# json UNIT3D 8.3.4 (custom)
diff --git a/mock-htpc/prowlarr/Definitions/itorrent.yml b/mock-htpc/prowlarr/Definitions/itorrent.yml
index b526a6c..1c2ba63 100644
--- a/mock-htpc/prowlarr/Definitions/itorrent.yml
+++ b/mock-htpc/prowlarr/Definitions/itorrent.yml
@@ -8,9 +8,7 @@ encoding: UTF-8
links:
- https://itorrent.ws/
legacylinks:
- - https://itorrent.unblockit.pro/
- - https://itorrent.unblockit.one/
- - https://itorrent.unblockit.me/ # currently mirroring 01torrent.net
+ - https://itorrent.hu/
caps:
categorymappings:
diff --git a/mock-htpc/prowlarr/Definitions/jav-torrent.yml b/mock-htpc/prowlarr/Definitions/jav-torrent.yml
index 3846b27..8385ed8 100644
--- a/mock-htpc/prowlarr/Definitions/jav-torrent.yml
+++ b/mock-htpc/prowlarr/Definitions/jav-torrent.yml
@@ -6,6 +6,8 @@ language: en-US
type: public
encoding: UTF-8
links:
+ - https://jav-torrent.net/
+legacylinks:
- https://jav-torrent.org/
caps:
diff --git a/mock-htpc/prowlarr/Definitions/jme-reunit3d-api.yml b/mock-htpc/prowlarr/Definitions/jme-reunit3d-api.yml
index 6e65ad9..f79d1fe 100644
--- a/mock-htpc/prowlarr/Definitions/jme-reunit3d-api.yml
+++ b/mock-htpc/prowlarr/Definitions/jme-reunit3d-api.yml
@@ -60,7 +60,7 @@ settings:
- name: info_activity
type: info
label: Account Inactivity
- default: "You must seed at least 1 torrent or log in every 90 days to avoid being pruned."
+ default: "You must seed at least 1 torrent or log in every 30 days to avoid being pruned."
login:
path: /api/torrents
@@ -70,11 +70,12 @@ login:
- selector: a[href*="/login"]
message:
text: "The API key was not accepted by {{ .Config.sitelink }}."
+ - selector: :root:contains("Account is Banned")
search:
paths:
- # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v7.0.0)
- # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L349
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
- path: "/api/torrents/filter"
response:
type: json
diff --git a/mock-htpc/prowlarr/Definitions/joyhd.yml b/mock-htpc/prowlarr/Definitions/joyhd.yml
index d59317c..b9e8578 100644
--- a/mock-htpc/prowlarr/Definitions/joyhd.yml
+++ b/mock-htpc/prowlarr/Definitions/joyhd.yml
@@ -18,6 +18,7 @@ caps:
- {id: 407, cat: TV/Sport, desc: "体育Sports"}
- {id: 404, cat: TV/Documentary, desc: "纪录片Documentaries"}
- {id: 406, cat: Audio/Video, desc: "音乐视频Music Videos"}
+ - {id: 408, cat: PC, desc: "软件Appz"}
- {id: 410, cat: PC/Games, desc: "游戏Game"}
- {id: 411, cat: Other, desc: "学习Study"}
- {id: 409, cat: Other, desc: "其他Misc"}
@@ -82,7 +83,6 @@ search:
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
# 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x50%, 7 30%
spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
- inclbookmarked: 0
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }} {{ else }}{{ .Keywords }}{{ end }}{{ if .Query.DoubanID }}{{ .Query.DoubanID }}{{ else }}{{ end }}"
# 0 title, 1 descr, 3 uploader, 4 imdburl (4 does not appear to work).
search_area: "{{ if or .Query.IMDBID .Query.DoubanID }}1{{ else }}0{{ end }}"
diff --git a/mock-htpc/prowlarr/Definitions/jpopsuki.yml b/mock-htpc/prowlarr/Definitions/jpopsuki.yml
index af31b5c..db8af80 100644
--- a/mock-htpc/prowlarr/Definitions/jpopsuki.yml
+++ b/mock-htpc/prowlarr/Definitions/jpopsuki.yml
@@ -86,6 +86,8 @@ search:
searchtags: "{{ .Query.Genre }}"
# 0 Any, 1 All
tags_type: 1
+ error:
+ - selector: :root:contains("Database error.")
rows:
selector: table#torrent_table > tbody > tr[class^="torrent"]
diff --git a/mock-htpc/prowlarr/Definitions/jptv-api.yml b/mock-htpc/prowlarr/Definitions/jptv-api.yml
index d8e028a..0c4b99d 100644
--- a/mock-htpc/prowlarr/Definitions/jptv-api.yml
+++ b/mock-htpc/prowlarr/Definitions/jptv-api.yml
@@ -66,11 +66,12 @@ login:
- selector: a[href*="/login"]
message:
text: "The API key was not accepted by {{ .Config.sitelink }}."
+ - selector: :root:contains("Account is Banned")
search:
paths:
- # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v7.0.0)
- # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L349
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
- path: "/api/torrents/filter"
response:
type: json
diff --git a/mock-htpc/prowlarr/Definitions/kamept.yml b/mock-htpc/prowlarr/Definitions/kamept.yml
index a7efc59..dcaa7b6 100644
--- a/mock-htpc/prowlarr/Definitions/kamept.yml
+++ b/mock-htpc/prowlarr/Definitions/kamept.yml
@@ -34,10 +34,8 @@ settings:
- name: cookie
type: text
label: Cookie
- - name: info
- type: info
- label: How to get the Cookie
- default: "- Login to this tracker with your browser
- Open the DevTools panel by pressing F12
- Select the Network tab
- Click on the Doc button (Chrome Browser) or HTML button (FireFox)
- Refresh the page by pressing F5
- Click on the first row entry
- Select the Headers tab on the Right panel
- Find 'cookie:' in the Request Headers section
- Select and Copy the whole cookie string (everything after 'cookie: ') and Paste here.
"
+ - name: info_cookie
+ type: info_cookie
- name: freeleech
type: checkbox
label: Search freeleech only
@@ -64,6 +62,7 @@ settings:
default: For best results, change the Torrents per page: setting to 100 on your account profile.
login:
+ # using cookie method because login page has embedded Clouflare turnstile
method: cookie
inputs:
cookie: "{{ .Config.cookie }}"
diff --git a/mock-htpc/prowlarr/Definitions/keepfriends.yml b/mock-htpc/prowlarr/Definitions/keepfriends.yml
index 13f714e..6e3d6a5 100644
--- a/mock-htpc/prowlarr/Definitions/keepfriends.yml
+++ b/mock-htpc/prowlarr/Definitions/keepfriends.yml
@@ -40,10 +40,8 @@ settings:
- name: cookie
type: text
label: Cookie
- - name: info
- type: info
- label: How to get the Cookie
- default: "- Login to this tracker with your browser
- Open the DevTools panel by pressing F12
- Select the Network tab
- Click on the Doc button (Chrome Browser) or HTML button (FireFox)
- Refresh the page by pressing F5
- Click on the first row entry
- Select the Headers tab on the Right panel
- Find 'cookie:' in the Request Headers section
- Select and Copy the whole cookie string (everything after 'cookie: ') and Paste here.
"
+ - name: info_cookie
+ type: info_cookie
- name: freeleech
type: checkbox
label: Search freeleech only
@@ -74,6 +72,7 @@ settings:
default: For best results, change the Torrents per page: setting to 100 on your account profile.
login:
+ # using cookie method because login page has embedded Clouflare turnstile
method: cookie
inputs:
cookie: "{{ .Config.cookie }}"
diff --git a/mock-htpc/prowlarr/Definitions/kelu.yml b/mock-htpc/prowlarr/Definitions/kelu.yml
new file mode 100644
index 0000000..99b26ce
--- /dev/null
+++ b/mock-htpc/prowlarr/Definitions/kelu.yml
@@ -0,0 +1,186 @@
+---
+id: kelu
+name: Kelu
+description: "Kelu is a CHINESE Private Torrent Tracker for GAY 3X"
+language: zh-CN
+type: private
+encoding: UTF-8
+links:
+ - https://our.kelu.one/
+
+caps:
+ categorymappings:
+ - {id: 408, cat: XXX/Other, desc: "其他"}
+ - {id: 409, cat: XXX/Other, desc: "动漫/二次元"}
+ - {id: 403, cat: XXX, desc: "SM"}
+ - {id: 402, cat: XXX, desc: "日韩"}
+ - {id: 405, cat: XXX, desc: "欧美"}
+ - {id: 404, cat: XXX, desc: "国产"}
+ - {id: 401, cat: XXX/ImageSet, desc: "写真"}
+ - {id: 410, cat: XXX, desc: "影视"}
+ - {id: 411, cat: PC/Games, desc: "游戏"}
+
+ modes:
+ search: [q]
+
+settings:
+ - name: username
+ type: text
+ label: Username
+ - name: password
+ type: password
+ label: Password
+ - name: 2facode
+ type: text
+ label: 2FA code
+ - name: info_2fa
+ type: info
+ label: "About 2FA code"
+ default: "Only fill in the 2FA code box if you have enabled 2FA on the Kelu Web Site. Otherwise just leave it empty."
+ - name: freeleech
+ type: checkbox
+ label: Search freeleech only
+ default: false
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: 4
+ options:
+ 4: created
+ 7: seeders
+ 5: size
+ 1: title
+ - name: type
+ type: select
+ label: Order requested from site
+ default: desc
+ options:
+ desc: desc
+ asc: asc
+ - name: info_tpp
+ type: info
+ label: Results Per Page
+ default: For best results, change the Torrents per page: setting to 100 on your account profile.
+ - name: info_activity
+ type: info
+ label: Account Inactivity
+ default: "Inactive accounts (i.e. not logged in for a long time) are automatically deleted."
+
+login:
+ path: login.php
+ method: form
+ form: form[action="takelogin.php"]
+ captcha:
+ type: image
+ selector: img[alt="CAPTCHA"]
+ input: imagestring
+ inputs:
+ secret: ""
+ username: "{{ .Config.username }}"
+ password: "{{ .Config.password }}"
+ two_step_code: "{{ .Config.2facode }}"
+ logout: ""
+ securelogin: ""
+ ssl: yes
+ trackerssl: yes
+ error:
+ - selector: td.embedded:has(h2:contains("失败"))
+ test:
+ path: index.php
+ selector: a[href="logout.php"]
+
+search:
+ paths:
+ - path: torrents.php
+ inputs:
+ $raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
+ search: "{{ .Keywords }}"
+ # 0 incldead, 1 active, 2 dead
+ incldead: 0
+ # 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x50%, 7 30%
+ spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
+ # 0 title, 1 descr, 3 uploader, 4 imdburl
+ search_area: 0
+ # 0 AND, 2 exact
+ search_mode: 0
+ sort: "{{ .Config.sort }}"
+ type: "{{ .Config.type }}"
+ notnewword: 1
+
+ rows:
+ selector: table.torrents > tbody > tr:has(a[href^="details.php?id="])
+
+ fields:
+ category:
+ selector: a[href^="?cat="]
+ attribute: href
+ filters:
+ - name: querystring
+ args: cat
+ title_default:
+ selector: a[href^="details.php?id="]
+ title:
+ selector: a[title][href^="details.php?id="]
+ attribute: title
+ optional: true
+ default: "{{ .Result.title_default }}"
+ details:
+ selector: a[href^="details.php?id="]
+ attribute: href
+ download:
+ selector: a[href^="download.php?id="]
+ attribute: href
+ poster:
+ selector: img[data-src]
+ attribute: data-src
+ date_elapsed:
+ # time type: time elapsed (default)
+ selector: td.rowfollow:nth-child(4) > span[title]
+ attribute: title
+ optional: true
+ filters:
+ - name: append
+ args: " +08:00" # CST
+ - name: dateparse
+ args: "yyyy-MM-dd HH:mm:ss zzz"
+ date_added:
+ # time added
+ selector: td.rowfollow:nth-child(4):not(:has(span))
+ optional: true
+ filters:
+ - name: append
+ args: " +08:00" # CST
+ - name: dateparse
+ args: "yyyy-MM-ddHH:mm:ss zzz"
+ date:
+ text: "{{ if or .Result.date_elapsed .Result.date_added }}{{ or .Result.date_elapsed .Result.date_added }}{{ else }}now{{ end }}"
+ size:
+ selector: td.rowfollow:nth-child(5)
+ seeders:
+ selector: td.rowfollow:nth-child(6)
+ leechers:
+ selector: td.rowfollow:nth-child(7)
+ grabs:
+ selector: td.rowfollow:nth-child(8)
+ downloadvolumefactor:
+ case:
+ img.pro_free: 0
+ img.pro_free2up: 0
+ img.pro_50pctdown: 0.5
+ img.pro_50pctdown2up: 0.5
+ img.pro_30pctdown: 0.3
+ "*": 1
+ uploadvolumefactor:
+ case:
+ img.pro_50pctdown2up: 2
+ img.pro_free2up: 2
+ img.pro_2up: 2
+ "*": 1
+ minimumseedtime:
+ case:
+ img.hitandrun: 86400
+ "*": 0
+ description:
+ selector: td.rowfollow:nth-child(2)
+ remove: a, b, font, img, span
+# NexusPHP v1.8.6 2023-08-18
diff --git a/mock-htpc/prowlarr/Definitions/kickasstorrents-to.yml b/mock-htpc/prowlarr/Definitions/kickasstorrents-to.yml
index 384aaea..faa65c3 100644
--- a/mock-htpc/prowlarr/Definitions/kickasstorrents-to.yml
+++ b/mock-htpc/prowlarr/Definitions/kickasstorrents-to.yml
@@ -13,9 +13,12 @@ links:
- https://kickasstorrents.unblockninja.com/
- https://kickasstorrents.ninjaproxy1.com/
- https://kickasstorrents.proxyninja.org/
+ - https://kickasstorrents.proxyninja.net/
- https://kickass.torrentbay.st/
+ - https://kickass.torrentsbay.org/
legacylinks:
- https://kat.root.yt/
+ - https://kickasstorrents.abcproxy.org/
caps:
categorymappings:
@@ -38,6 +41,13 @@ caps:
book-search: [q]
settings:
+ - name: useragent
+ type: text
+ label: User-Agent
+ - name: info_useragent
+ type: info
+ label: How to get the User-Agent
+ default: "- Access this tracker with your browser
- Open the DevTools panel by pressing F12
- Select the Network tab
- Click on the Doc button (Chrome Browser) or HTML button (FireFox)
- Refresh the page by pressing F5
- Click on the first row entry
- Select the Headers tab on the Right panel
- Find 'user-agent:' in the Request Headers section
- Select and Copy the whole user-agent string (everything after 'user-agent: ') and Paste here.
"
- name: sort
type: select
label: Sort requested from site
@@ -60,6 +70,9 @@ download:
attribute: href
search:
+ headers:
+ User-Agent: ["{{ .Config.useragent }}"]
+
paths:
# 20 rows per page
- path: "{{ if .Keywords }}usearch/{{ .Keywords }}/{{ else }}new/{{ end }}?sortby={{ .Config.sort }}&sort={{ .Config.type }}"
@@ -68,6 +81,11 @@ search:
- path: "{{ if .Keywords }}usearch/{{ .Keywords }}/{{ else }}new/{{ end }}4/?sortby={{ .Config.sort }}&sort={{ .Config.type }}"
- path: "{{ if .Keywords }}usearch/{{ .Keywords }}/{{ else }}new/{{ end }}5/?sortby={{ .Config.sort }}&sort={{ .Config.type }}"
+ error:
+ - selector: h1:contains("403 Forbidden")
+ message:
+ text: "Site returned 403 Forbidden. Try updating your indexer config with a new/different user-agent."
+
rows:
selector: table.data tr.odd:has(a[class="cellMainLink"]), table.data tr.even:has(a[class="cellMainLink"])
filters:
diff --git a/mock-htpc/prowlarr/Definitions/kickasstorrents-ws.yml b/mock-htpc/prowlarr/Definitions/kickasstorrents-ws.yml
index 70924b5..0870e0b 100644
--- a/mock-htpc/prowlarr/Definitions/kickasstorrents-ws.yml
+++ b/mock-htpc/prowlarr/Definitions/kickasstorrents-ws.yml
@@ -1,5 +1,7 @@
---
id: kickasstorrents-ws
+replaces:
+ - kickasstorrent-kathow
name: kickasstorrents.ws
description: "kickasstorrents.ws is a Public KickAssTorrent clone for TV / MOVIES / GENERAL"
language: en-US
@@ -23,13 +25,6 @@ legacylinks:
- https://kat.li/
- https://katcr.to/ # kickasstorrents-to proxy
- https://kickasstorrent.cr/ # kickasstorrents-to proxy
- - https://kickass.unblockit.pro/
- - https://kickass.unblockit.one/
- - https://kickass.unblockit.me/
- - https://kickass.unblockit.pw/
- - https://kickass.unblockit.id/
- - https://kickass.unblockit.win/
- - https://kickass.unblockit.top/ # currently redirects to https://kat.unblockit.lat/ (newkatcr.co proxy)
- https://kickasstorrents.unblockninja.com/ # currently kickasstorrents-to proxy
- https://kickass-kat.com/
@@ -73,7 +68,7 @@ search:
- path: "{{ if .Keywords }}usearch/{{ .Keywords }}/{{ else }}new/{{ end }}?field={{ .Config.sort }}&sorder={{ .Config.type }}"
rows:
- selector: table.data tr[id]
+ selector: table.data tr[id]:has(a[data-download])
fields:
category_optional:
@@ -93,7 +88,7 @@ search:
attribute: href
download:
# the official site delivers mylink so we skip to the magnet URI
- selector: td:nth-child(1) > div > a[data-download=""]
+ selector: td:nth-child(1) > div > a[data-download]
attribute: href
filters:
- name: querystring
diff --git a/mock-htpc/prowlarr/Definitions/korsar.yml b/mock-htpc/prowlarr/Definitions/korsar.yml
index 3c283e8..4613225 100644
--- a/mock-htpc/prowlarr/Definitions/korsar.yml
+++ b/mock-htpc/prowlarr/Definitions/korsar.yml
@@ -435,17 +435,13 @@ settings:
- name: cookie
type: text
label: Cookie
- - name: info
- type: info
- label: How to get the Cookie
- default: "- Login to this tracker with your browser
- Open the DevTools panel by pressing F12
- Select the Network tab
- Click on the Doc button (Chrome Browser) or HTML button (FireFox)
- Refresh the page by pressing F5
- Click on the first row entry
- Select the Headers tab on the Right panel
- Find 'cookie:' in the Request Headers section
- Select and Copy the whole cookie string (everything after 'cookie: ') and Paste here.
"
+ - name: info_cookie
+ type: info_cookie
- name: useragent
type: text
label: User-Agent
- name: info_useragent
- type: info
- label: How to get the User-Agent
- default: "- From the same place you fetched the cookie,
- Find 'user-agent:' in the Request Headers section
- Select and Copy the whole user-agent string (everything after 'user-agent: ') and Paste here.
"
+ type: info_useragent
- name: sort
type: select
label: Sort requested from site
@@ -464,6 +460,7 @@ settings:
a: asc
login:
+ # using cookie method because I could not get the form method to work when I first created the indexer, some hidden security check
method: cookie
inputs:
cookie: "{{ .Config.cookie }}"
diff --git a/mock-htpc/prowlarr/Definitions/krazyzone.yml b/mock-htpc/prowlarr/Definitions/krazyzone.yml
index d07af5a..d4f5fa6 100644
--- a/mock-htpc/prowlarr/Definitions/krazyzone.yml
+++ b/mock-htpc/prowlarr/Definitions/krazyzone.yml
@@ -16,24 +16,26 @@ caps:
- {id: 80, cat: Audio, desc: "DMC: DMC"}
- {id: 49, cat: Audio/MP3, desc: "KZN MP3 Weekly: Ex-Vip"}
- {id: 76, cat: Audio, desc: "KZN-Exclusive: Exclusive "}
- - {id: 98, cat: Audio/MP3, desc: "Other Mp3 Weely: Mp3"}
- {id: 77, cat: Audio, desc: "KZN Ex VIP: Ex VIP"}
+ - {id: 98, cat: Audio/MP3, desc: "Other Mp3 Weely: Mp3"}
+ - {id: 99, cat: Audio/MP3, desc: "KZ Internal : KZ Internal"}
- {id: 74, cat: Audio, desc: "Discography: Collection"}
- - {id: 78, cat: Audio, desc: "Dj-Only: Dj-Music"}
- {id: 82, cat: Audio/Lossless, desc: "Flac: Flac - Flac Packs"}
- - {id: 81, cat: Audio, desc: "Albums : Assorted Albums"}
+ - {id: 81, cat: Audio, desc: "Albums : Albums / Singles"}
- {id: 46, cat: Audio/Video, desc: "Music Videos: Music Videos"}
- {id: 24, cat: Audio, desc: "Karaoke: All Karaoke"}
- - {id: 28, cat: Movies, desc: "Movies: 2024"}
+ - {id: 78, cat: Audio, desc: "Dj-Only: Dj-Music"}
- {id: 47, cat: Movies/BluRay, desc: "Movies: Bluray-HD"}
- - {id: 9, cat: Movies/DVD, desc: "Movies: Dvdr-ISO"}
+ - {id: 28, cat: Movies, desc: "Movies: 2024"}
+ - {id: 25, cat: Movies/WEB-DL, desc: "Movies: Web-DL"}
- {id: 52, cat: Movies, desc: "Classic Movies: Pre90s"}
- {id: 48, cat: Movies/SD, desc: "Movies: AVI-XVID-Dvdrip"}
- {id: 41, cat: Movies/3D, desc: "Remux - 3D: Remux - 3D"}
- - {id: 22, cat: Movies/Foreign, desc: "Movies: Foreign"}
- - {id: 23, cat: Movies/Other, desc: "Movies: Kids"}
- - {id: 25, cat: Movies/WEB-DL, desc: "Movies: Netflix"}
+ - {id: 86, cat: Movies/HD, desc: "1440P QHD: 1440P QHD"}
- {id: 27, cat: Movies/UHD, desc: "Movies: 4K"}
+ - {id: 23, cat: Movies/Other, desc: "Movies: Kid-Anime-Family"}
+ - {id: 9, cat: Movies/DVD, desc: "Movies: Dvdr-ISO"}
+ - {id: 22, cat: Movies/Foreign, desc: "Movies: Foreign"}
- {id: 53, cat: Movies, desc: "Movie Packs: Movie Pks"}
- {id: 54, cat: Movies, desc: "Movie Pack: Pre-90s"}
- {id: 6, cat: Movies/Other, desc: "Kids Movie Pk: Movie Pks"}
@@ -46,7 +48,6 @@ caps:
- {id: 83, cat: Movies, desc: "TV Packs: Pre90s"}
- {id: 84, cat: Audio/Audiobook, desc: "Audio Books: A-Books"}
- {id: 85, cat: Books, desc: "Ebooks: Ebooks-Mags-Comics"}
- - {id: 86, cat: Movies/HD, desc: "1440P QHD: 1440P QHD"}
- {id: 87, cat: PC/0day, desc: "Apps: windows-Linux"}
- {id: 88, cat: TV/Anime, desc: "Anime: All Anime"}
- {id: 89, cat: PC/Games, desc: "Games: Pc - Iso"}
@@ -56,7 +57,7 @@ caps:
- {id: 93, cat: Movies/Other, desc: "Xmas Movies : Packs"}
- {id: 94, cat: Audio/Other, desc: "Xmas Music Pack: Packs"}
- {id: 95, cat: Other, desc: "To Be Edited: Edit"}
- - {id: 99, cat: PC/Mac, desc: "Apps Mac: Apps Mac"}
+ - {id: 100, cat: Audio/Lossless, desc: "Web Music: Flac - MP3"}
modes:
search: [q]
diff --git a/mock-htpc/prowlarr/Definitions/kufei.yml b/mock-htpc/prowlarr/Definitions/kufei.yml
index b72056f..11b195d 100644
--- a/mock-htpc/prowlarr/Definitions/kufei.yml
+++ b/mock-htpc/prowlarr/Definitions/kufei.yml
@@ -75,7 +75,7 @@ settings:
- name: info_activity
type: info
label: Account Inactivity
- default: "Cherish your user account. Inactive accounts would be deleted based on the following rules:- Veteran User or above would never be deleted
- Elite User or above would never be deleted if parked (at User CP)
- Parked accounts would be deleted if users have not logged in for more than 400 days in a row
- Un-parked accounts would be deleted if users have not logged in for more than 150 days in a row
- Accounts with both uploaded and downloaded amount being 0 would be deleted if users have not logged in for more than 100 days in a row.
"
+ default: "Cherish your user account. Inactive accounts would be deleted based on the following rules:- Veteran User or above would never be deleted
- Elite User or above would never be deleted if parked (at User CP)
- Parked accounts would be deleted if users have not logged in for more than 400 days in a row
- Un-parked accounts would be deleted if users have not logged in for more than 150 days in a row
- Accounts with both uploaded and downloaded amount being 0 would be deleted if users have not logged in for more than 30 days in a row.
"
login:
path: login.php
@@ -200,4 +200,4 @@ search:
description:
selector: td:nth-child(2)
remove: a, b, font, img, span
-# NexusPHP v1.8.9 2023-11-15
+# NexusPHP v1.8.14 2024-09-24
diff --git a/mock-htpc/prowlarr/Definitions/laidbackmanor.yml b/mock-htpc/prowlarr/Definitions/laidbackmanor.yml
index adb8469..18919ed 100644
--- a/mock-htpc/prowlarr/Definitions/laidbackmanor.yml
+++ b/mock-htpc/prowlarr/Definitions/laidbackmanor.yml
@@ -16,6 +16,7 @@ caps:
- {id: 4, cat: Console, desc: "Game"}
- {id: 5, cat: PC, desc: "Application"}
- {id: 6, cat: Books, desc: "Books"}
+ - {id: 8, cat: TV/Sport, desc: "Sports"}
modes:
search: [q]
@@ -65,11 +66,12 @@ login:
- selector: a[href*="/login"]
message:
text: "The API key was not accepted by {{ .Config.sitelink }}."
+ - selector: :root:contains("Account is Banned")
search:
paths:
- # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v7.0.0)
- # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L349
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
- path: "/api/torrents/filter"
response:
type: json
diff --git a/mock-htpc/prowlarr/Definitions/lastdigitalunderground.yml b/mock-htpc/prowlarr/Definitions/lastdigitalunderground.yml
index 87a61f7..a150110 100644
--- a/mock-htpc/prowlarr/Definitions/lastdigitalunderground.yml
+++ b/mock-htpc/prowlarr/Definitions/lastdigitalunderground.yml
@@ -6,42 +6,51 @@ language: en-US
type: private
encoding: UTF-8
links:
+ - https://theldu.to/
+legacylinks:
- https://theldu.net/
caps:
categorymappings:
- {id: 1, cat: Movies, desc: "Films: General"}
+ - {id: 33, cat: Movies/Other, desc: "Films: [TMDB UnListed]"}
- {id: 21, cat: Movies/3D, desc: "Films: 3D"}
- {id: 25, cat: Movies/Other, desc: "Films: Musical"}
- {id: 18, cat: Movies/Other, desc: "Films: Silent"}
- {id: 24, cat: Movies/Other, desc: "Films: Holiday"}
- {id: 19, cat: Movies/Other, desc: "Films: Shorts"}
+ - {id: 42, cat: Movies/Other, desc: "Films: Shorts [TMDB UnListed]"}
- {id: 17, cat: TV/Documentary, desc: "Films: Documentary"}
- {id: 12, cat: Movies/Other, desc: "Films: FanEdits/Restorations"}
- - {id: 33, cat: Movies/Other, desc: "Films: [No TMDB]"}
- {id: 27, cat: Movies/Foreign, desc: "Films SP1: Dub or Vid issues"}
- {id: 22, cat: Movies/Foreign, desc: "Films SP2: No English"}
- {id: 28, cat: Movies/Other, desc: "Films SP3: Other"}
- {id: 8, cat: Movies/Other, desc: "Anime: Films"}
- {id: 9, cat: TV/Anime, desc: "Anime: Series/OVAs"}
- {id: 2, cat: TV, desc: "Series/TV: General"}
+ - {id: 41, cat: TV, desc: "Series/TV: Single Episodes"}
- {id: 31, cat: TV/Foreign, desc: "Series/TV SP1: Dub"}
- {id: 29, cat: TV/Foreign, desc: "Series/TV SP2: No English"}
- {id: 32, cat: TV/Other, desc: "Series/TV SP3: Other"}
+ - {id: 38, cat: TV/Other, desc: "Series/TV [TMDB unlisted]"}
+ - {id: 40, cat: TV/Documentary, desc: "Series: Documentary"}
- {id: 20, cat: TV/Other, desc: "Culture: Stand-up"}
- {id: 7, cat: Books/EBook, desc: "Culture: Ebooks"}
- {id: 3, cat: Audio, desc: "Culture: Music"}
- {id: 16, cat: Audio/Video, desc: "Culture: Music Videos"}
- {id: 34, cat: Audio/Audiobook, desc: "Culture: Audio Books"}
- {id: 35, cat: TV/Sport, desc: "Culture: Sports"}
- - {id: 6, cat: XXX, desc: "XXX: Mainstream Smut [TMDB]"}
- - {id: 30, cat: XXX, desc: "XXX: Filthy Smut [No TMDB]"}
- - {id: 15, cat: XXX/Pack, desc: "XXX: MegaPacks"}
- - {id: 10, cat: XXX, desc: "XXX: Hentai"}
- - {id: 14, cat: XXX/Other, desc: "XXX: Creators Corner"}
- - {id: 13, cat: XXX/Other, desc: "XXX: Other"}
- - {id: 11, cat: XXX/Other, desc: "XXX: Zoo"}
- - {id: 26, cat: Other, desc: "FuckedUpShit"}
+ - {id: 37, cat: TV/Other, desc: "Culture: Firearms and Freedom"}
+ - {id: 36, cat: TV/Other, desc: "Culture: Roms"}
+ - {id: 6, cat: XXX, desc: "Mature: NSFW [TMDB Listed]"}
+ - {id: 30, cat: XXX, desc: "Mature: NSFW [TMDB UnListed]"}
+ - {id: 15, cat: XXX/Pack, desc: "Mature: NSFW MegaPacks"}
+ - {id: 10, cat: XXX, desc: "Mature: Hentai"}
+ - {id: 14, cat: XXX/Other, desc: "Mature: Creators Corner"}
+ - {id: 39, cat: XXX/Other, desc: "Mature: NSFL [Listed]"}
+ - {id: 11, cat: XXX/Other, desc: "Mature: NSFL [Unlisted]"}
+ - {id: 44, cat: XXX/Other, desc: "Mature: Audio"}
+ - {id: 43, cat: Other, desc: "Internal Testing"}
- {id: 23, cat: Other, desc: "Other_Or_Not_Sure"}
modes:
@@ -58,11 +67,15 @@ settings:
- name: info_key
type: info
label: About your API key
- default: "Find or Generate a new API Token by accessing your Last Digital Underground account My Settings page and clicking on the API Key tab."
+ default: "Find or Generate a new API Token by accessing your Last Digital Underground account My Settings page and clicking on the API Key tab."
- name: freeleech
type: checkbox
label: Search freeleech only
default: false
+ - name: single_file_release_use_filename
+ type: checkbox
+ label: Use filename as title for single file releases
+ default: true
- name: sort
type: select
label: Sort requested from site
@@ -79,6 +92,10 @@ settings:
options:
desc: desc
asc: asc
+ - name: info_activity
+ type: info
+ label: Account Inactivity
+ default: "You are required to log in once per month. We will be purging user accounts via automated script set at an undisclosed interval."
login:
path: /api/torrents
@@ -88,11 +105,12 @@ login:
- selector: a[href*="/login"]
message:
text: "The API key was not accepted by {{ .Config.sitelink }}."
+ - selector: :root:contains("Account is Banned")
search:
paths:
- # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v7.0.0)
- # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L349
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
- path: "/api/torrents/filter"
response:
type: json
@@ -125,8 +143,15 @@ search:
fields:
category:
selector: category_id
- title:
+ title_optional:
selector: name
+ title_filename:
+ selector: "files[0].name"
+ optional: true
+ files:
+ selector: num_file
+ title:
+ text: "{{ if and (.Config.single_file_release_use_filename) (eq .Result.files \"1\") (.Result.title_filename) }}{{ .Result.title_filename }}{{ else }}{{ .Result.title_optional }}{{ end }}"
details:
selector: details_link
download:
@@ -147,8 +172,6 @@ search:
genre:
selector: meta.genres
filters:
- - name: re_replace
- args: ["(?i)^None$", ""]
- name: re_replace
args: ["(?i)(Science Fiction)", "Science_Fiction"]
- name: re_replace
@@ -157,8 +180,6 @@ search:
args: [" & ", "_&_"]
description:
text: "{{ .Result.genre }}"
- files:
- selector: num_file
seeders:
selector: seeders
leechers:
@@ -175,7 +196,12 @@ search:
args: "MM/dd/yyyy HH:mm:ss zzz"
size:
selector: size
- downloadvolumefactor:
+ _featured:
+ selector: featured
+ case:
+ False: "{{ .False }}"
+ True: "{{ .True }}"
+ downloadvolumefactor_freeleech:
# api returns 0%, 25%, 50%, 75%, 100%
selector: freeleech
case:
@@ -185,16 +211,20 @@ search:
75%: 0.25
100%: 0 # freeleech
"*": 0 # catch errors
- uploadvolumefactor:
+ downloadvolumefactor:
+ text: "{{ if .Result._featured }}0{{ else }}{{ .Result.downloadvolumefactor_freeleech }}{{ end }}"
+ uploadvolumefactor_double_upload:
# api returns False, True
selector: double_upload
case:
False: 1 # normal
True: 2 # double
+ uploadvolumefactor:
+ text: "{{ if .Result._featured }}2{{ else }}{{ .Result.uploadvolumefactor_double_upload }}{{ end }}"
# global MR is 0.4 but torrents must be seeded for 7 days regardless of ratio
# minimumratio:
# text: 0.4
minimumseedtime:
- # 7 day (as seconds = 7 x 24 x 60 x 60)
+ # 7 days (as seconds = 7 x 24 x 60 x 60)
text: 604800
-# json UNIT3D 7.2.5
+# json UNIT3D 8.1.3
diff --git a/mock-htpc/prowlarr/Definitions/lastfiles.yml b/mock-htpc/prowlarr/Definitions/lastfiles.yml
index 68d6d02..b49c62e 100644
--- a/mock-htpc/prowlarr/Definitions/lastfiles.yml
+++ b/mock-htpc/prowlarr/Definitions/lastfiles.yml
@@ -1,17 +1,17 @@
---
id: lastfiles
name: LastFiles
-description: "LastFiles (LF) is a ROMANIAN Private Torrent Tracker for 0DAY / GENERAL"
+description: "LastFiles (LF) is a ROMANIAN Private Torrent Tracker for MOVIES / TV / GENERAL"
language: ro-RO
type: private
encoding: UTF-8
followredirect: true
requestDelay: 2
links:
+ - https://last-torrents.org/
- https://www.last-torrents.org/
legacylinks:
- http://last-torrents.org/
- - https://last-torrents.org/
- https://www.lastfiles.ro/
- http://www.lastfiles.ro/
- http://www.last-torrents.org/
@@ -38,12 +38,13 @@ caps:
- {id: 24, cat: Movies/SD, desc: "Movies: XVID", default: true}
- {id: 25, cat: Movies/SD, desc: "Movies: XVID-Ro", default: true}
- {id: 26, cat: PC/0day, desc: "Software", default: true}
- - {id: 27, cat: XXX, desc: "Movies: XXX", default: false}
+ - {id: 27, cat: XXX/x264, desc: "Movies: XXX", default: false}
- {id: 28, cat: Audio, desc: "Music", default: true}
- {id: 30, cat: PC/Games, desc: "Games: PC-ISO", default: true}
- {id: 31, cat: Movies/UHD, desc: "Movies: 4K", default: true}
- - {id: 32, cat: Movies/UHD, desc: "Movies: 4K-Ro", default: true}
+ - {id: 32, cat: Movies/UHD, desc: "Movies: 4KRo", default: true}
- {id: 33, cat: PC/Games, desc: "Games: Packs", default: true}
+ - {id: 34, cat: XXX/Pack, desc: "XXX Pack", default: false}
- {id: 42, cat: TV/Sport, desc: "Sport", default: true}
- {id: 43, cat: Books, desc: "Documents", default: true}
- {id: 44, cat: Other, desc: "Images", default: true}
@@ -53,10 +54,7 @@ caps:
- {id: 55, cat: Movies/WEB-DL, desc: "Movies: WEB-DL Ro", default: true}
- {id: 56, cat: TV/Documentary, desc: "Documentary", default: true}
- {id: 57, cat: TV/Documentary, desc: "Documentary-Ro", default: true}
- - {id: 58, cat: Movies/SD, desc: "Movies: Cam", default: true}
- - {id: 59, cat: Movies/SD, desc: "Movies: Cam-Ro", default: true}
- - {id: 61, cat: Movies/3D, desc: "Movies: 3D", default: true}
- - {id: 62, cat: Movies/3D, desc: "Movies: 3D-Ro", default: true}
+ - {id: 60, cat: XXX/ImageSet, desc: "ImagesXXX", default: false}
- {id: 81, cat: Movies/HD, desc: "Movies: x265-Ro", default: true}
- {id: 82, cat: Movies/HD, desc: "Movies: x265", default: true}
@@ -78,89 +76,105 @@ settings:
type: checkbox
label: Search freeleech only
default: false
- - name: flaresolverr
- type: info
- label: FlareSolverr
- default: This site may use Cloudflare DDoS Protection, therefore Prowlarr requires FlareSolverr to access it.
+ - name: info_flaresolverr
+ type: info_flaresolverr
- name: info_activity
type: info
label: Account Inactivity
default: "Accounts inactive for more than 42 days are automatically deleted."
-# - name: sort
-# type: select
-# label: Sort requested from site
-# default: 3
-# options:
-# 3: created
-# 6: seeders
-# 4: size
-# 1: title
-# - name: type
-# type: select
-# label: Order requested from site
-# default: desc
-# options:
-# desc: desc
-# asc: asc
login:
- path: takelogin.php
- method: post
+ path: login
+ method: form
+ form: form[action$="/login"]
inputs:
- username: "{{ .Config.username }}"
+ name: "{{ .Config.username }}"
password: "{{ .Config.password }}"
- submitme: Login!
- use_ssl: 1
- perm_ssl: 1
+ remember: on
+ selectorinputs:
+ _token:
+ selector: input[name="_token"]
+ attribute: value
error:
- - selector: td.embedded:contains("Login failed")
+ - selector: div.alert-danger:contains("Invalid credentials")
test:
- path: index.php
- selector: a[href*="/logout.php?hash_please="]
+ path: /
+ selector: a[href$="/logout"]
search:
paths:
- # https://www.last-torrents.org/browse.php?search=the+nun+ii&searchin=title&type=0&cat=+
- # cannot support imdbid or tmdbid searches while using path category filters
- - path: browse.php
- categories: [1, 2, 5, 6, 9, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 21, 22, 24, 25, 26, 28, 30, 31, 32, 33, 42, 43, 44, 49, 51, 54, 55, 56, 57, 58, 59, 60, 61, 62, 81, 82]
- - path: browseadult.php
- categories: [27]
+ # https://www.last-torrents.org/torrents?keyword=tt8337290&category=32&genre=&torrent_status=free
+ - path: torrents
+ categories: [1, 2, 5, 6, 9, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 21, 22, 24, 25, 26, 28, 30, 31, 32, 33, 42, 43, 44, 49, 51, 54, 55, 56, 57, 81, 82]
+ - path: torrents/adult
+ categories: [27, 34, 60]
inputs:
- $raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
- search: "{{ if .Query.Genre }}{{ .Query.Genre }} {{ else }}{{ end }}{{ .Keywords }}"
- # title, genre, all
- searchin: "{{ if .Query.Genre }}all{{ else }}title{{ end }}"
- # 0 active, 1 incldead, 2 onlydead, 3 free, 4 silver, 5 seedbox
- type: "{{ if .Config.freeleech }}3{{ else }}1{{ end }}"
-# sort and type can only be used in a non-search query due to conflicting parameters
-# sort: "{{ .Config.sort }}"
-# type: "{{ .Config.type }}"
+ # does not support multi categories, leaving out category keyword defaults to all
+ keyword: "{{ .Keywords }}"
+ # active, dead, free, double, seedbox
+ torrent_status: "{{ if .Config.freeleech }}free{{ else }}active{{ end }}"
+ # has sort for size and seeders but not for title or date
rows:
- selector: div.py-3
- filters:
- - name: andmatch
+ selector: table.table-responsive > tbody > tr
fields:
category:
- selector: a[href*="cat="]
- attribute: href
- filters:
- - name: querystring
- args: cat
+ selector: img[src*="images/categories/"], img[src*="images/categoriesNORMALE/"]
+ attribute: src
+ case:
+ # not all categories are available at the moment, so some are deduced and unconfirmed
+ img[src$="/anime.png"]: 1
+ img[src$="/anime-ro.png"]: 2
+ img[src$="/bluray.png"]: 5
+ img[src$="/bluray-ro.png"]: 6
+ img[src$="/dvd.png"]: 9
+ img[src$="/dvd-ro.png"]: 10
+ img[src$="/hd.png"]: 11
+ img[src$="/hd-ro.png"]: 12
+ img[src$="/hdtve.png"]: 13
+ img[src$="/hdtve-ro.png"]: 14
+ img[src$="/oldies.png"]: 16
+ img[src$="/oldies-ro.png"]: 17
+ img[src$="/pack.png"]: 18
+ img[src$="/pack-ro.png"]: 19
+ img[src$="/tvepisode.png"]: 20
+ img[src$="/tvepisode-ro.png"]: 21
+ img[src$="/rocontent.png"]: 22
+ img[src$="/xvid.png"]: 24
+ img[src$="/xvid-ro.png"]: 25
+ img[src$="/soft.png"]: 26
+ img[src$="/xxx.png"]: 27
+ img[src$="/music.png"]: 28
+ img[src$="/pciso.png"]: 30
+ img[src$="/4k.png"]: 31
+ img[src$="/4kRO.png"]: 32
+ img[src$="/packs.png"]: 33
+ img[src$="/xxxpacks.png"]: 34
+ img[src$="/sport.png"]: 42
+ img[src$="/docs.png"]: 43
+ img[src$="/images.png"]: 44
+ img[src$="/misc.png"]: 49
+ img[src$="/android.png"]: 51
+ img[src$="/web-DL.png"]: 54
+ img[src$="/web-DLRO.png"]: 55
+ img[src$="/doc.png"]: 56
+ img[src$="/doc-ro.png"]: 57
+ img[src$="/imagesxxx.png"]: 60
+ img[src$="/x265ro.png"]: 81
+ img[src$="/x265.png"]: 82
title:
- selector: a[href^="t"]
+ selector: a.torrent-name
details:
- selector: a[href^="t"]
+ selector: a.torrent-name
attribute: href
poster:
- selector: a[href^="t"]
- attribute: title
+ selector: a.torrent-name
+ attribute: data-bs-title
filters:
- name: regexp
- args: "src=(.+?) "
+ args: "src='(.+?)'"
genre:
selector: i:has(a[href$="searchin=genre"]), font[size]
filters:
@@ -173,46 +187,32 @@ search:
description:
text: "{{ .Result.genre }}"
download:
- selector: a[href^="download.php"]
+ selector: a[href*="/download/"]
attribute: href
- date_day:
- selector: div.col-sm-4:nth-of-type(3):contains("day")
- # auto adjusted by site account profile
- optional: true
- filters:
- - name: fuzzytime
- date_year:
- selector: div.col-sm-4:nth-of-type(3):contains(":"):not(:contains("day"))
- # auto adjusted by site account profile
- optional: true
+ date:
+ selector: td:nth-of-type(4)
filters:
- name: dateparse
- args: "MMM d yyyy, hh:mm tt"
- date:
- text: "{{ if or .Result.date_day .Result.date_year }}{{ or .Result.date_day .Result.date_year }}{{ else }}now{{ end }}"
+ args: "dd-MMM-yyyy"
size:
- selector: div.col-sm-4:nth-of-type(4)
+ selector: td:nth-of-type(5)
grabs:
- selector: div.col-sm-3:contains("Completed") b
+ selector: td:nth-of-type(6)
seeders:
- selector: div.col-sm-3:contains("Seeders") b
+ selector: td:nth-of-type(7)
leechers:
- selector: div.col-sm-2:contains("Leechers") b
+ selector: td:nth-of-type(8)
downloadvolumefactor:
case:
- img[src$="half2.png"]: 0.5
- a#free-btn: 0
+ div.free-btn: 0
"*": 1
uploadvolumefactor:
case:
- a#double-btn: 2
+ div.double-btn: 2
"*": 1
minimumratio:
text: 1.0
minimumseedtime:
- # freeleech 2 days (as seconds = 2 x 24 x 60 x 60)
- # notfree 1.5 days (as seconds = 1.5 x 24 x 60 x 60)
- case:
- a#free-btn: 172800
- "*": 129600
-# U-232 V5
+ # 3 days (as seconds = 3 x 24 x 60 x 60)
+ text: 259200
+# Last Files V1
diff --git a/mock-htpc/prowlarr/Definitions/lat-team-api.yml b/mock-htpc/prowlarr/Definitions/lat-team-api.yml
index 641bf8a..cdac5c8 100644
--- a/mock-htpc/prowlarr/Definitions/lat-team-api.yml
+++ b/mock-htpc/prowlarr/Definitions/lat-team-api.yml
@@ -2,7 +2,7 @@
id: lat-team-api
name: Lat-Team (API)
description: "Lat-Team is a SPANISH Private Torrent Tracker for MOVIES / TV"
-language: es-ES
+language: es-MX
type: private
encoding: UTF-8
links:
@@ -12,19 +12,21 @@ caps:
categorymappings:
- {id: 1, cat: Movies, desc: "Peliculas"}
- {id: 2, cat: TV, desc: "TV Series"}
- - {id: 3, cat: Audio, desc: "Musica"}
- - {id: 4, cat: Console, desc: "Juegos"}
- {id: 5, cat: TV/Anime, desc: "Anime"}
- - {id: 8, cat: TV/Foreign, desc: "Telenovelas"}
- - {id: 9, cat: Audio/Video, desc: "Conciertos"}
- - {id: 11, cat: Audio/Audiobook, desc: "Audiolibros"}
- - {id: 12, cat: XXX, desc: "XXX"}
- - {id: 16, cat: TV/Sport, desc: "Eventos Deportivos"}
- - {id: 17, cat: PC, desc: "Software & O.S."}
- - {id: 18, cat: Books, desc: "E-Books"}
- {id: 20, cat: TV/Foreign, desc: "Doramas & Turcas"}
+ - {id: 8, cat: TV/Foreign, desc: "Telenovelas"}
+ - {id: 3, cat: Audio, desc: "Musica"}
+ - {id: 9, cat: Audio/Video, desc: "Conciertos"}
+ - {id: 16, cat: TV/Sport, desc: "Eventos Deportivos"}
- {id: 22, cat: TV/Other, desc: "Playlist_Collection"}
+ - {id: 17, cat: PC, desc: "Software & O.S."}
+ - {id: 12, cat: XXX, desc: "XXX"}
+ - {id: 18, cat: Books/EBook, desc: "E-Books"}
+ - {id: 11, cat: Audio/Audiobook, desc: "Audiolibros"}
+ - {id: 4, cat: Console, desc: "Juegos"}
- {id: 24, cat: Other, desc: "Cursos"}
+ - {id: 29, cat: Books/Mags, desc: "Revistas & Periódicos"}
+ - {id: 30, cat: Books/Comics, desc: "Comics & Manga"}
modes:
search: [q]
@@ -40,11 +42,15 @@ settings:
- name: info_key
type: info
label: About your API key
- default: "Find or Generate a new API Token by accessing your Lat-Team account My Security page and clicking on the API Token tab."
+ default: "Find or Generate a new API Token by accessing your Lat-Team account My Settings page and clicking on the API Key tab."
- name: freeleech
type: checkbox
label: Search freeleech only
default: false
+ - name: single_file_release_use_filename
+ type: checkbox
+ label: Use filename as title for single file releases
+ default: true
- name: sort
type: select
label: Sort requested from site
@@ -70,11 +76,12 @@ login:
- selector: a[href*="/login"]
message:
text: "The API key was not accepted by {{ .Config.sitelink }}."
+ - selector: :root:contains("Account is Banned")
search:
paths:
- # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v7.0.0)
- # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L349
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
- path: "/api/torrents/filter"
response:
type: json
@@ -91,7 +98,7 @@ search:
imdbId: "{{ .Query.IMDBIDShort }}"
tmdbId: "{{ .Query.TMDBID }}"
tvdbId: "{{ .Query.TVDBID }}"
- free[]: "{{ if .Config.freeleech }}100{{ else }}{{ end }}"
+ "free[]": "{{ if .Config.freeleech }}100{{ else }}{{ end }}"
sortField: "{{ .Config.sort }}"
sortDirection: "{{ .Config.type }}"
perPage: 100
@@ -107,20 +114,20 @@ search:
fields:
category:
selector: category_id
+ title_optional:
+ selector: name
+ title_filename:
+ selector: "files[0].name"
+ optional: true
+ files:
+ selector: num_file
+ title_phase1:
+ text: "{{ if and (.Config.single_file_release_use_filename) (eq .Result.files \"1\") (.Result.title_filename) }}{{ .Result.title_filename }}{{ else }}{{ .Result.title_optional }}{{ end }}"
title_vose:
selector: name:contains(VOSE)
optional: true
- filters:
- - name: append
- args: " ENGLiSH"
- title_notvose:
- selector: name:not(:contains(VOSE))
- optional: true
- filters:
- - name: append
- args: " SPANiSH"
title:
- text: "{{ if .Result.title_vose }}{{ .Result.title_vose }}{{ else }}{{ .Result.title_notvose }}{{ end }}"
+ text: "{{ .Result.title_phase1 }}{{ if .Result.title_vose }} ENGLiSH{{ else }} SPANiSH{{ end }}"
details:
selector: details_link
download:
@@ -141,8 +148,6 @@ search:
genre:
selector: meta.genres
filters:
- - name: re_replace
- args: ["(?i)^None$", ""]
- name: re_replace
args: ["(?i)(Science Fiction)", "Science_Fiction"]
- name: re_replace
@@ -151,8 +156,6 @@ search:
args: [" & ", "_&_"]
description:
text: "{{ .Result.genre }}"
- files:
- selector: num_file
seeders:
selector: seeders
leechers:
@@ -169,7 +172,12 @@ search:
args: "MM/dd/yyyy HH:mm:ss zzz"
size:
selector: size
- downloadvolumefactor:
+ _featured:
+ selector: featured
+ case:
+ False: "{{ .False }}"
+ True: "{{ .True }}"
+ downloadvolumefactor_freeleech:
# api returns 0%, 25%, 50%, 75%, 100%
selector: freeleech
case:
@@ -179,16 +187,20 @@ search:
75%: 0.25
100%: 0 # freeleech
"*": 0 # catch errors
- uploadvolumefactor:
- # api returns 0=false, 1=true
+ downloadvolumefactor:
+ text: "{{ if .Result._featured }}0{{ else }}{{ .Result.downloadvolumefactor_freeleech }}{{ end }}"
+ uploadvolumefactor_double_upload:
+ # api returns False, True
selector: double_upload
case:
- 0: 1 # normal
- 1: 2 # double
-# global MR is 0.4 but torrents must be seeded for 2 days regardless of ratio
+ False: 1 # normal
+ True: 2 # double
+ uploadvolumefactor:
+ text: "{{ if .Result._featured }}2{{ else }}{{ .Result.uploadvolumefactor_double_upload }}{{ end }}"
+# global MR is 0.25 but torrents must be seeded for 3 days regardless of ratio
# minimumratio:
-# text: 0.4
+# text: 0.25
minimumseedtime:
- # 2 days (as seconds = 2 x 24 x 60 x 60)
- text: 172800
-# json UNIT3D 6.5.0
+ # 3 days (as seconds = 3 x 24 x 60 x 60)
+ text: 259200
+# json UNIT3D 8.2.0 (custom)
diff --git a/mock-htpc/prowlarr/Definitions/le-cinephile.yml b/mock-htpc/prowlarr/Definitions/le-cinephile.yml
index 8265e44..5039f22 100644
--- a/mock-htpc/prowlarr/Definitions/le-cinephile.yml
+++ b/mock-htpc/prowlarr/Definitions/le-cinephile.yml
@@ -12,11 +12,11 @@ caps:
categorymappings:
# FILM
- {id: 2, cat: Movies/DVD, desc: "FILM DVD"}
+ - {id: 107, cat: Movies, desc: "FILM ANIME"}
- {id: 104, cat: Movies, desc: "FILM DVDRip"}
- {id: 101, cat: TV/Documentary, desc: "FILM Documentaire"}
- {id: 75, cat: Movies/UHD, desc: "FILM 2160 P"}
- {id: 63, cat: Movies/WEB-DL, desc: "FILM WEB"}
- - {id: 62, cat: Movies/WEB-DL, desc: "FILM WEB"}
- {id: 66, cat: Movies/HD, desc: "FILM HDRip"}
- {id: 34, cat: Movies/SD, desc: "FILM TVRip"}
- {id: 33, cat: Movies/SD, desc: "FILM HDTV"}
@@ -28,9 +28,11 @@ caps:
- {id: 26, cat: Movies/BluRay, desc: "FILM BluRay"}
- {id: 25, cat: Movies/BluRay, desc: "FILM ISO"}
- {id: 4, cat: Movies/HD, desc: "FILM 1080"}
- - {id: 107, cat: Movies, desc: "FILM ANIME"}
+ - {id: 111, cat: Movies, desc: "FILM Nouveautés 2024"}
# SERIE
- {id: 9, cat: TV/SD, desc: "SERIE DVD"}
+ - {id: 108, cat: TV/HD, desc: "SERIE BlueRay"}
+ - {id: 106, cat: TV/Anime, desc: "SERIE ANIME"}
- {id: 105, cat: TV, desc: "SERIE Pack"}
- {id: 102, cat: TV/Documentary, desc: "SERIE Documentaire"}
- {id: 72, cat: TV/UHD, desc: "SERIE 2160 P"}
@@ -43,8 +45,11 @@ caps:
- {id: 15, cat: TV/WEB-DL, desc: "SERIE WEB.1080p"}
- {id: 14, cat: TV/WEB-DL, desc: "SERIE WEB.720p"}
- {id: 12, cat: TV/WEB-DL, desc: "SERIE WEB"}
- - {id: 106, cat: TV/Anime, desc: "SERIE ANIME"}
- - {id: 108, cat: TV/HD, desc: "SERIE BlueRay"}
+ - {id: 110, cat: TV, desc: "SERIE Nouveautés 2024"}
+ # ANIMEE
+ - {id: 113, cat: TV/Anime, desc: "ANIMEE Nouveautées 2024"}
+ - {id: 114, cat: Movies/Other, desc: "ANIMEE Fim"}
+ - {id: 115, cat: TV/Anime, desc: "ANIMEE Serie"}
# LOGICIELS
- {id: 56, cat: PC/ISO, desc: "LOGICIELS Linux"}
- {id: 24, cat: PC/Mac, desc: "LOGICIELS Apple"}
@@ -56,6 +61,8 @@ caps:
- {id: 49, cat: Books/EBook, desc: "EBOOK Livres"}
# MUSIC
- {id: 5, cat: Audio/Video, desc: "MUSIC clip video"}
+ - {id: 109, cat: Audio/Video, desc: "MUSIC Spectacles.Theatre"}
+ - {id: 112, cat: Audio/Video, desc: "MUSIC Concert filmé"}
# JEUX
- {id: 96, cat: PC/Games, desc: "JEUX Apple"}
- {id: 8, cat: Console/PS3, desc: "JEUX PS3"}
@@ -161,7 +168,7 @@ search:
sort: "{{ .Config.type }}"
rows:
- selector: "div.selection_wrap"
+ selector: div.selection_wrap
fields:
category_p1:
diff --git a/mock-htpc/prowlarr/Definitions/leech24-api.yml b/mock-htpc/prowlarr/Definitions/leech24-api.yml
new file mode 100644
index 0000000..a2a60d8
--- /dev/null
+++ b/mock-htpc/prowlarr/Definitions/leech24-api.yml
@@ -0,0 +1,193 @@
+---
+id: leech24-api
+name: leech24 (API)
+description: "leech24 is a Private Torrent Tracker for MOVIES / TV / GENERAL"
+language: en-US
+type: private
+encoding: UTF-8
+links:
+ - https://leech24.net/
+
+caps:
+ categorymappings:
+ - {id: 1, cat: Movies, desc: "Movie"}
+ - {id: 2, cat: TV, desc: "TV"}
+ - {id: 3, cat: Console, desc: "Game"}
+ - {id: 4, cat: Audio, desc: "Music"}
+ - {id: 5, cat: Other, desc: "Misc"}
+
+ modes:
+ search: [q]
+ tv-search: [q, season, ep, imdbid, tvdbid, tmdbid]
+ movie-search: [q, imdbid, tmdbid]
+ music-search: [q]
+ book-search: [q]
+
+settings:
+ - name: apikey
+ type: text
+ label: APIKey
+ - name: info_key
+ type: info
+ label: About your API key
+ default: "Find or Generate a new API Token by accessing your leech24 account My Settings page and clicking on the API Key tab."
+ - name: freeleech
+ type: checkbox
+ label: Search freeleech only
+ default: false
+ - name: single_file_release_use_filename
+ type: checkbox
+ label: Use filename as title for single file releases
+ default: true
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: created_at
+ options:
+ created_at: created
+ seeders: seeders
+ size: size
+ name: title
+ - name: type
+ type: select
+ label: Order requested from site
+ default: desc
+ options:
+ desc: desc
+ asc: asc
+ - name: info_activity
+ type: info
+ label: Account Inactivity
+ default: "You must log in to the leech24 web site with your browser once every 120 days to prevent your account from getting disabled."
+
+login:
+ path: /api/torrents
+ method: get
+ inputs: {} # TODO: remove in v10
+ error:
+ - selector: a[href*="/login"]
+ message:
+ text: "The API key was not accepted by {{ .Config.sitelink }}."
+ - selector: :root:contains("Account is Banned")
+
+search:
+ paths:
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
+ - path: "/api/torrents/filter"
+ response:
+ type: json
+
+ headers:
+ Authorization: ["Bearer {{ .Config.apikey }}"]
+
+ inputs:
+ # if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
+ $raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
+ name: "{{ .Keywords }}"
+ seasonNumber: "{{ .Query.Season }}"
+ episodeNumber: "{{ .Query.Ep }}"
+ imdbId: "{{ .Query.IMDBIDShort }}"
+ tmdbId: "{{ .Query.TMDBID }}"
+ tvdbId: "{{ .Query.TVDBID }}"
+ "free[]": "{{ if .Config.freeleech }}100{{ else }}{{ end }}"
+ sortField: "{{ .Config.sort }}"
+ sortDirection: "{{ .Config.type }}"
+ perPage: 100
+
+ keywordsfilters:
+ - name: re_replace
+ args: ["\\.", " "]
+
+ rows:
+ selector: data
+ attribute: attributes
+
+ fields:
+ category:
+ selector: category_id
+ title_optional:
+ selector: name
+ title_filename:
+ selector: "files[0].name"
+ optional: true
+ files:
+ selector: num_file
+ title:
+ text: "{{ if and (.Config.single_file_release_use_filename) (eq .Result.files \"1\") (.Result.title_filename) }}{{ .Result.title_filename }}{{ else }}{{ .Result.title_optional }}{{ end }}"
+ details:
+ selector: details_link
+ download:
+ selector: download_link
+ infohash:
+ selector: info_hash
+ poster:
+ selector: meta.poster
+ filters:
+ - name: replace
+ args: ["https://via.placeholder.com/90x135", ""]
+ imdbid:
+ selector: imdb_id
+ tmdbid:
+ selector: tmdb_id
+ tvdbid:
+ selector: tvdb_id
+ genre:
+ selector: meta.genres
+ filters:
+ - name: re_replace
+ args: ["(?i)(Science Fiction)", "Science_Fiction"]
+ - name: re_replace
+ args: ["(?i)(TV Movie)", "TV_Movie"]
+ - name: replace
+ args: [" & ", "_&_"]
+ description:
+ text: "{{ .Result.genre }}"
+ seeders:
+ selector: seeders
+ leechers:
+ selector: leechers
+ grabs:
+ selector: times_completed
+ date:
+ # "created_at": "2021-10-18T00:34:50.000000Z" is returned by Newtonsoft.Json.Linq as 18/10/2021 00:34:50
+ selector: created_at
+ filters:
+ - name: append
+ args: " +00:00" # GMT
+ - name: dateparse
+ args: "MM/dd/yyyy HH:mm:ss zzz"
+ size:
+ selector: size
+ _featured:
+ selector: featured
+ case:
+ False: "{{ .False }}"
+ True: "{{ .True }}"
+ downloadvolumefactor_freeleech:
+ # api returns 0%, 25%, 50%, 75%, 100%
+ selector: freeleech
+ case:
+ 0%: 1 # not free
+ 25%: 0.75
+ 50%: 0.5
+ 75%: 0.25
+ 100%: 0 # freeleech
+ "*": 0 # catch errors
+ downloadvolumefactor:
+ text: "{{ if .Result._featured }}0{{ else }}{{ .Result.downloadvolumefactor_freeleech }}{{ end }}"
+ uploadvolumefactor_double_upload:
+ # api returns False, True
+ selector: double_upload
+ case:
+ False: 1 # normal
+ True: 2 # double
+ uploadvolumefactor:
+ text: "{{ if .Result._featured }}2{{ else }}{{ .Result.uploadvolumefactor_double_upload }}{{ end }}"
+# global MR is 1.0 but torrents must be seeded for 7 days regardless of ratio
+# minimumratio:
+# text: 1.0
+ minimumseedtime:
+ # 7 days (as seconds = 7 x 24 x 60 x 60)
+ text: 604800
+# json UNIT3D 8.2.0
diff --git a/mock-htpc/prowlarr/Definitions/lemonhd.yml b/mock-htpc/prowlarr/Definitions/lemonhd.yml
new file mode 100644
index 0000000..112d5e0
--- /dev/null
+++ b/mock-htpc/prowlarr/Definitions/lemonhd.yml
@@ -0,0 +1,173 @@
+---
+id: lemonhd
+name: LemonHD
+description: "LemonHD is a CHINESE Private Torrent Tracker for HD MOVIES / TV"
+language: zh-CN
+type: private
+encoding: UTF-8
+links:
+ - https://lemonhd.club/
+legacylinks:
+ - https://leaguehd.com/
+ - https://lemonhd.org/
+
+caps:
+ categorymappings:
+ - {id: 401, cat: Movies, desc: "Movies/电影"}
+ - {id: 411, cat: Audio, desc: "Music/无损音乐"}
+ - {id: 405, cat: TV/Anime, desc: "Animations/动漫"}
+ - {id: 406, cat: Audio/Video, desc: "Music Videos/音乐MV"}
+ - {id: 404, cat: TV/Documentary, desc: "Documentaries/纪录片"}
+ - {id: 402, cat: TV, desc: "TV Series/剧集"}
+ - {id: 403, cat: TV, desc: "TV Shows/综艺"}
+ - {id: 410, cat: Movies/3D, desc: "Movies 3D"}
+
+ modes:
+ search: [q]
+ tv-search: [q, season, ep, imdbid, doubanid]
+ movie-search: [q, imdbid, doubanid]
+ music-search: [q]
+
+settings:
+ - name: username
+ type: text
+ label: Username
+ - name: password
+ type: password
+ label: Password
+ - name: freeleech
+ type: checkbox
+ label: Search freeleech only
+ default: false
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: 4
+ options:
+ 4: created
+ 7: seeders
+ 5: size
+ 1: title
+ - name: type
+ type: select
+ label: Order requested from site
+ default: desc
+ options:
+ desc: desc
+ asc: asc
+ - name: info_tpp
+ type: info
+ label: Results Per Page
+ default: For best results, change the Torrents per page: setting to 100 on your account profile.
+
+login:
+ path: login.php
+ method: form
+ form: form[action="takelogin.php"]
+ captcha:
+ type: image
+ selector: img[alt="CAPTCHA"]
+ input: imagestring
+ inputs:
+ username: "{{ .Config.username }}"
+ password: "{{ .Config.password }}"
+ logout: ""
+ securelogin: ""
+ ssl: yes
+ trackerssl: yes
+ error:
+ - selector: td.embedded:has(h2:contains("失败"))
+ test:
+ path: index.php
+ selector: a[href$="logout.php"]
+
+search:
+ paths:
+ - path: torrents.php
+ inputs:
+ $raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
+ search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }} {{ else }}{{ .Keywords }}{{ end }}{{ if .Query.DoubanID }}{{ .Query.DoubanID }}{{ else }}{{ end }}"
+ # 0 incldead, 1 active, 2 justdead
+ incldead: 0
+ # promotion: 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x 50%, 7 30%
+ spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
+ # 0 title, 1 descr, 3 uploader, 4 imdb, 5 douban
+ search_area: "{{ if .Query.IMDBID }}4{{ else }}{{ end }}{{ if .Query.DoubanID }}5{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }}{{ else }}0{{ end }}"
+ # 0 AND, 1 OR, 2 exact
+ search_mode: 0
+ sort: "{{ .Config.sort }}"
+ type: "{{ .Config.type }}"
+ notnewword: 1
+
+ rows:
+ selector: table.torrents > tbody > tr:has(table.torrentname)
+
+ fields:
+ category:
+ selector: a[href*="?cat="]
+ attribute: href
+ filters:
+ - name: querystring
+ args: cat
+ title:
+ selector: a[href*="details.php?id="] > b[title]
+ attribute: title
+ details:
+ selector: a[href*="details.php?id="]
+ attribute: href
+ download:
+ selector: a[href*="download.php?id="]
+ attribute: href
+ imdbid:
+ selector: a[href*="imdb.com/title/tt"]
+ attribute: href
+ doubanid:
+ selector: a[href*="movie.douban.com/subject/"]
+ attribute: href
+ date_elapsed:
+ # time type: time elapsed (default)
+ selector: td.rowfollow:nth-child(4) > span[title]
+ attribute: title
+ optional: true
+ filters:
+ - name: append
+ args: " +08:00" # CST
+ - name: dateparse
+ args: "yyyy-MM-dd HH:mm:ss zzz"
+ date_added:
+ # time added
+ selector: td.rowfollow:nth-child(4):not(:has(span))
+ optional: true
+ filters:
+ - name: append
+ args: " +08:00" # CST
+ - name: dateparse
+ args: "yyyy-MM-ddHH:mm:ss zzz"
+ date:
+ text: "{{ if or .Result.date_elapsed .Result.date_added }}{{ or .Result.date_elapsed .Result.date_added }}{{ else }}now{{ end }}"
+ size:
+ selector: td.rowfollow:nth-child(5)
+ seeders:
+ selector: td.rowfollow:nth-child(6)
+ leechers:
+ selector: td.rowfollow:nth-child(7)
+ grabs:
+ selector: td.rowfollow:nth-child(8)
+ downloadvolumefactor:
+ case:
+ img.pro_free: 0
+ img.pro_free2up: 0
+ img.pro_50pctdown: 0.5
+ img.pro_50pctdown2up: 0.5
+ img.pro_30pctdown: 0.3
+ "*": 1
+ uploadvolumefactor:
+ case:
+ img.pro_50pctdown2up: 2
+ img.pro_free2up: 2
+ img.pro_2up: 2
+ "*": 1
+ description:
+ selector: td:nth-child(2)
+ remove: a, img
+# NexusPHP Standard v1.5 Beta 4
diff --git a/mock-htpc/prowlarr/Definitions/lepornoinfo.yml b/mock-htpc/prowlarr/Definitions/lepornoinfo.yml
index 90569ee..58084e1 100644
--- a/mock-htpc/prowlarr/Definitions/lepornoinfo.yml
+++ b/mock-htpc/prowlarr/Definitions/lepornoinfo.yml
@@ -50,10 +50,8 @@ settings:
options:
2: desc
1: asc
- - name: flaresolverr
- type: info
- label: FlareSolverr
- default: This site may use Cloudflare DDoS Protection, therefore Prowlarr requires FlareSolverr to access it.
+ - name: info_flaresolverr
+ type: info_flaresolverr
search:
paths:
diff --git a/mock-htpc/prowlarr/Definitions/libronube.yml b/mock-htpc/prowlarr/Definitions/libronube.yml
new file mode 100644
index 0000000..8c3c02c
--- /dev/null
+++ b/mock-htpc/prowlarr/Definitions/libronube.yml
@@ -0,0 +1,75 @@
+---
+id: libronube
+name: Libronube
+description: "Libronube is a Spanish Public tracker for EBOOKS"
+language: es-ES
+type: public
+encoding: UTF-8
+links:
+ - https://www.libronube.com/
+
+caps:
+ categorymappings:
+ - {id: ebook, cat: Books, desc: "EBook"}
+
+ modes:
+ search: [q]
+ book-search: [q]
+
+settings:
+ - name: ebook
+ type: select
+ label: Ebook Type
+ default: epub
+ options:
+ epub: EPUB
+ mobi: MOBI
+ pdf: PDF
+
+download:
+ selectors:
+ - selector: "a[href*=\"magnet\"][href*=\"{{ .Config.ebook }}\"]"
+ attribute: href
+ filters:
+ - name: replace
+ args: ["http://demagnetize.link/?magnet=", ""]
+ - name: urldecode
+
+search:
+ paths:
+ - path: dibros/
+ allowEmptyInputs: true
+ inputs:
+ q1: "{{ .Keywords }}"
+ sin_filtrar: on
+
+ rows:
+ selector: div.row[style^="margin-top"][style*="margin-bottom"]:first-of-type > div.ebookitem
+
+ fields:
+ category:
+ text: ebook
+ title:
+ selector: h1
+ details:
+ selector: a[href^="/descargar-"]
+ attribute: href
+ download:
+ selector: a[href^="/descargar-"]
+ attribute: href
+ poster:
+ selector: img.tapa
+ attribute: src
+ date:
+ text: now
+ size:
+ text: 512 MB
+ seeders:
+ text: 1
+ leechers:
+ text: 1
+ downloadvolumefactor:
+ text: 0
+ uploadvolumefactor:
+ text: 1
+# engine n/a
diff --git a/mock-htpc/prowlarr/Definitions/limetorrents.yml b/mock-htpc/prowlarr/Definitions/limetorrents.yml
index 69af20c..81a33fc 100644
--- a/mock-htpc/prowlarr/Definitions/limetorrents.yml
+++ b/mock-htpc/prowlarr/Definitions/limetorrents.yml
@@ -8,33 +8,17 @@ encoding: UTF-8
# changes to this indexer should also be made to limetorrentsclone
links:
- https://www.limetorrents.lol/
- - https://limetorrents.unblockit.africa/
- https://limetorrents.unblockninja.com/
- https://limetorrents.ninjaproxy1.com/
- https://limetorrents.proxyninja.org/
+ - https://limetorrents.proxyninja.net/
- https://limetorrents.torrentbay.st/
+ - https://limetorrents.torrentsbay.org/
legacylinks:
- - https://limetorrents.nocensor.lol/
- - https://limetorrents.unblockit.ink/
- - https://limetorrents.nocensor.art/
- - https://limetorrents.unblockit.bio/
- - https://limetorrents.unblockit.boo/
- - https://limetorrents.mrunblock.guru/
- - https://limetorrents.unblockit.click/
- - https://limetorrents.unblockit.asia/
- - https://limetorrents.unblockit.mov/
- - https://limetorrents.mrunblock.life/
- - https://limetorrents.unblockit.rsvp/
- - https://limetorrents.nocensor.click/
- - https://limetorrents.unblockit.vegas/
- - https://limetorrents.unblockit.esq/
- - https://limetorrents.unblockit.zip/
- - https://limetorrents.unblockit.foo/
- - https://limetorrents.unblockit.ing/
- https://limetorrents.mrunblock.bond/
- https://limetorrents.nocensor.cloud/
- - https://limetorrents.unblockit.date/
- - https://limetorrents.unblockit.dad/
+ - https://limetorrents.abcproxy.org/
+ - https://limetorrents.unblockit.download/
caps:
categorymappings:
@@ -81,7 +65,7 @@ settings:
date: created
seeds: seeders
size: size
- - name: info_8000
+ - name: info_category_8000
type: info
label: About LimeTorrents Categories
default: LimeTorrents only returns category Other in its Keywordless search results page.To pass your apps' indexer TEST you will need to include the 8000(Other) category.
diff --git a/mock-htpc/prowlarr/Definitions/locadora.yml b/mock-htpc/prowlarr/Definitions/locadora.yml
index 2a9ea90..3081e0b 100644
--- a/mock-htpc/prowlarr/Definitions/locadora.yml
+++ b/mock-htpc/prowlarr/Definitions/locadora.yml
@@ -1,7 +1,7 @@
---
id: locadora
name: Locadora
-description: "Locadora is a BRAZILIAN Private Tracker for MOVIES and TV"
+description: "Locadora is a BRAZILIAN Private Tracker for MOVIES, TV and ANIME"
language: pt-BR
type: private
encoding: UTF-8
@@ -30,11 +30,15 @@ settings:
- name: info_key
type: info
label: About your API key
- default: "Find or Generate a new API Token by accessing your Locadora account My Security page and clicking on the API Token tab."
+ default: "Find or Generate a new API Token by accessing your Locadora account My Settings page and clicking on the API Key tab."
- name: freeleech
type: checkbox
label: Search freeleech only
default: false
+ - name: single_file_release_use_filename
+ type: checkbox
+ label: Use filename as title for single file releases
+ default: false
- name: sort
type: select
label: Sort requested from site
@@ -64,11 +68,12 @@ login:
- selector: a[href*="/login"]
message:
text: "The API key was not accepted by {{ .Config.sitelink }}."
+ - selector: :root:contains("Account is Banned")
search:
paths:
- # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v7.0.0)
- # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L349
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
- path: "/api/torrents/filter"
response:
type: json
@@ -85,15 +90,12 @@ search:
imdbId: "{{ .Query.IMDBIDShort }}"
tmdbId: "{{ .Query.TMDBID }}"
tvdbId: "{{ .Query.TVDBID }}"
- free: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
+ "free[]": "{{ if .Config.freeleech }}100{{ else }}{{ end }}"
sortField: "{{ .Config.sort }}"
sortDirection: "{{ .Config.type }}"
perPage: 100
keywordsfilters:
- # strip season and/or ep
- - name: re_replace
- args: ["\\b([SE]\\d{1,4}){1,2}\\b", ""]
- name: re_replace
args: ["\\.", " "]
@@ -104,11 +106,15 @@ search:
fields:
category:
selector: category_id
- title:
+ title_optional:
selector: name
- filters:
- - name: re_replace
- args: ["\\.", " "]
+ title_filename:
+ selector: "files[0].name"
+ optional: true
+ files:
+ selector: num_file
+ title:
+ text: "{{ if and (.Config.single_file_release_use_filename) (eq .Result.files \"1\") (.Result.title_filename) }}{{ .Result.title_filename }}{{ else }}{{ .Result.title_optional }}{{ end }}"
details:
selector: details_link
download:
@@ -116,7 +122,7 @@ search:
infohash:
selector: info_hash
poster:
- selector: poster
+ selector: meta.poster
filters:
- name: replace
args: ["https://via.placeholder.com/90x135", ""]
@@ -126,8 +132,17 @@ search:
selector: tmdb_id
tvdbid:
selector: tvdb_id
- files:
- selector: num_file
+ genre:
+ selector: meta.genres
+ filters:
+ - name: re_replace
+ args: ["(?i)(Cinema TV)", "Cinema_TV"]
+ - name: re_replace
+ args: ["(?i)(Ficção científica)", "Ficção_científica"]
+ - name: replace
+ args: [" & ", "_&_"]
+ description:
+ text: "{{ .Result.genre }}"
seeders:
selector: seeders
leechers:
@@ -144,7 +159,12 @@ search:
args: "MM/dd/yyyy HH:mm:ss zzz"
size:
selector: size
- downloadvolumefactor:
+ _featured:
+ selector: featured
+ case:
+ False: "{{ .False }}"
+ True: "{{ .True }}"
+ downloadvolumefactor_freeleech:
# api returns 0%, 25%, 50%, 75%, 100%
selector: freeleech
case:
@@ -154,16 +174,20 @@ search:
75%: 0.25
100%: 0 # freeleech
"*": 0 # catch errors
- uploadvolumefactor:
- # api returns 0=false, 1=true
+ downloadvolumefactor:
+ text: "{{ if .Result._featured }}0{{ else }}{{ .Result.downloadvolumefactor_freeleech }}{{ end }}"
+ uploadvolumefactor_double_upload:
+ # api returns False, True
selector: double_upload
case:
- 0: 1 # normal
- 1: 2 # double
+ False: 1 # normal
+ True: 2 # double
+ uploadvolumefactor:
+ text: "{{ if .Result._featured }}2{{ else }}{{ .Result.uploadvolumefactor_double_upload }}{{ end }}"
# global MR is 0.4 but torrents must be seeded for 3 days regardless of ratio
# minimumratio:
# text: 0.4
minimumseedtime:
# 3 days (as seconds = 3 x 24 x 60 x 60)
text: 259200
-# json UNIT3D 6.3.0
+# json UNIT3D 8.2.0
diff --git a/mock-htpc/prowlarr/Definitions/losslessclub.yml b/mock-htpc/prowlarr/Definitions/losslessclub.yml
index 1002370..356884b 100644
--- a/mock-htpc/prowlarr/Definitions/losslessclub.yml
+++ b/mock-htpc/prowlarr/Definitions/losslessclub.yml
@@ -16,6 +16,18 @@ caps:
search: [q]
music-search: [q, artist]
+settings:
+ - name: username
+ type: text
+ label: Username
+ - name: password
+ type: password
+ label: Password
+ - name: info_login
+ type: info
+ label: About LosslessClub Forum versus LosslessClub Tracker
+ default: "The LosslessClub Forum credentials are different from the LosslessClub Tracker credentials so if the indexer is giving you 'Error Username or password is incorrect' then you are likely using the Forum credentials to access the Tracker."
+
login:
path: takelogin.php
method: post
@@ -85,4 +97,4 @@ search:
text: 1
uploadvolumefactor:
text: 1
-# engine tbd
+# Кinokрk releaser v. 2.40.473
diff --git a/mock-htpc/prowlarr/Definitions/lst.yml b/mock-htpc/prowlarr/Definitions/lst.yml
index b34d8e9..77430d2 100644
--- a/mock-htpc/prowlarr/Definitions/lst.yml
+++ b/mock-htpc/prowlarr/Definitions/lst.yml
@@ -38,6 +38,10 @@ settings:
type: checkbox
label: Search freeleech only
default: false
+ - name: single_file_release_use_filename
+ type: checkbox
+ label: Use filename as title for single file releases
+ default: true
- name: sort
type: select
label: Sort requested from site
@@ -67,11 +71,12 @@ login:
- selector: a[href*="/login"]
message:
text: "The API key was not accepted by {{ .Config.sitelink }}."
+ - selector: :root:contains("Account is Banned")
search:
paths:
- # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v7.0.0)
- # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L349
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
- path: "/api/torrents/filter"
response:
type: json
@@ -104,8 +109,15 @@ search:
fields:
category:
selector: category_id
- title:
+ title_optional:
selector: name
+ title_filename:
+ selector: "files[0].name"
+ optional: true
+ files:
+ selector: num_file
+ title:
+ text: "{{ if and (.Config.single_file_release_use_filename) (eq .Result.files \"1\") (.Result.title_filename) }}{{ .Result.title_filename }}{{ else }}{{ .Result.title_optional }}{{ end }}"
details:
selector: details_link
download:
@@ -126,8 +138,6 @@ search:
genre:
selector: meta.genres
filters:
- - name: re_replace
- args: ["(?i)^None$", ""]
- name: re_replace
args: ["(?i)(Science Fiction)", "Science_Fiction"]
- name: re_replace
@@ -136,8 +146,6 @@ search:
args: [" & ", "_&_"]
description:
text: "{{ .Result.genre }}"
- files:
- selector: num_file
seeders:
selector: seeders
leechers:
@@ -154,7 +162,12 @@ search:
args: "MM/dd/yyyy HH:mm:ss zzz"
size:
selector: size
- downloadvolumefactor:
+ _featured:
+ selector: featured
+ case:
+ False: "{{ .False }}"
+ True: "{{ .True }}"
+ downloadvolumefactor_freeleech:
# api returns 0%, 25%, 50%, 75%, 100%
selector: freeleech
case:
@@ -164,16 +177,20 @@ search:
75%: 0.25
100%: 0 # freeleech
"*": 0 # catch errors
- uploadvolumefactor:
+ downloadvolumefactor:
+ text: "{{ if .Result._featured }}0{{ else }}{{ .Result.downloadvolumefactor_freeleech }}{{ end }}"
+ uploadvolumefactor_double_upload:
# api returns False, True
selector: double_upload
case:
False: 1 # normal
True: 2 # double
-# global MR is 1.0 but torrents must be seeded for 5 days regardless of ratio
+ uploadvolumefactor:
+ text: "{{ if .Result._featured }}2{{ else }}{{ .Result.uploadvolumefactor_double_upload }}{{ end }}"
+# global MR is 1.0 but torrents must be seeded for 3 days regardless of ratio
# minimumratio:
# text: 1.0
minimumseedtime:
- # 7 days (as seconds = 7 x 24 x 60 x 60)
- text: 604800
-# json UNIT3D 7.1.2
+ # 3 days (as seconds = 3 x 24 x 60 x 60)
+ text: 259200
+# json UNIT3D 8.3.1
diff --git a/mock-htpc/prowlarr/Definitions/lusthive.yml b/mock-htpc/prowlarr/Definitions/lusthive.yml
new file mode 100644
index 0000000..a22de27
--- /dev/null
+++ b/mock-htpc/prowlarr/Definitions/lusthive.yml
@@ -0,0 +1,182 @@
+---
+id: lusthive
+name: LustHive
+description: "LustHive is a Private Torrent Tracker for 3X"
+language: en-US
+type: private
+encoding: UTF-8
+links:
+ - https://lusthive.org/
+
+caps:
+ categorymappings:
+ - {id: 1, cat: XXX, desc: "Amateur"}
+ - {id: 3, cat: XXX, desc: "Anal"}
+ - {id: 4, cat: XXX, desc: "Asian"}
+ - {id: 5, cat: XXX, desc: "BBW"}
+ - {id: 6, cat: XXX, desc: "BDSM"}
+ - {id: 7, cat: XXX, desc: "Big Ass"}
+ - {id: 8, cat: XXX, desc: "Big Tits"}
+ - {id: 9, cat: XXX, desc: "Black"}
+ - {id: 10, cat: XXX, desc: "Classic"}
+ - {id: 11, cat: XXX, desc: "Creampie"}
+ - {id: 12, cat: XXX, desc: "Cumshot"}
+ - {id: 13, cat: XXX, desc: "Fetish"}
+ - {id: 14, cat: XXX, desc: "Games"}
+ - {id: 15, cat: XXX, desc: "Gay / Bi"}
+ - {id: 16, cat: XXX, desc: "Hairy"}
+ - {id: 17, cat: XXX, desc: "Hardcore"}
+ - {id: 18, cat: XXX, desc: "HD"}
+ - {id: 19, cat: XXX, desc: "Hentai"}
+ - {id: 20, cat: XXX, desc: "Homemade"}
+ - {id: 21, cat: XXX, desc: "Interracial"}
+ - {id: 22, cat: XXX, desc: "Latina"}
+ - {id: 23, cat: XXX, desc: "Lesbian"}
+ - {id: 24, cat: XXX, desc: "Lingerie"}
+ - {id: 25, cat: XXX, desc: "Magazines"}
+ - {id: 26, cat: XXX, desc: "Manga"}
+ - {id: 27, cat: XXX, desc: "Masturbation"}
+ - {id: 28, cat: XXX, desc: "Mature"}
+ - {id: 29, cat: XXX, desc: "Oral"}
+ - {id: 30, cat: XXX, desc: "Orgy"}
+ - {id: 31, cat: XXX, desc: "Other"}
+ - {id: 32, cat: XXX, desc: "Pack"}
+ - {id: 33, cat: XXX, desc: "Parody"}
+ - {id: 34, cat: XXX, desc: "Paysite"}
+ - {id: 35, cat: XXX, desc: "Pictures"}
+ - {id: 36, cat: XXX, desc: "Piss"}
+ - {id: 46, cat: XXX, desc: "POV"}
+ - {id: 37, cat: XXX, desc: "Pregnant"}
+ - {id: 38, cat: XXX, desc: "Scat / Puke"}
+ - {id: 39, cat: XXX, desc: "Siterip"}
+ - {id: 40, cat: XXX, desc: "Softcore"}
+ - {id: 41, cat: XXX, desc: "Squirt"}
+ - {id: 42, cat: XXX, desc: "Straight"}
+ - {id: 2, cat: XXX, desc: "Teen"}
+ - {id: 43, cat: XXX, desc: "Transgender"}
+ - {id: 44, cat: XXX, desc: "Voyeur"}
+ - {id: 45, cat: XXX, desc: "VR"}
+
+ modes:
+ search: [q]
+
+settings:
+ - name: username
+ type: text
+ label: Username
+ - name: password
+ type: password
+ label: Password
+ - name: freeleech
+ type: checkbox
+ label: Search freeleech only
+ default: false
+ - name: info_tpp
+ type: info
+ label: Results Per Page
+ default: For best results, change the Torrents per page: setting to 100 on your account profile.
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: time
+ options:
+ time: created
+ seeders: seeders
+ size: size
+ - name: type
+ type: select
+ label: Order requested from site
+ default: desc
+ options:
+ desc: desc
+ asc: asc
+
+login:
+ path: login
+ method: form
+ inputs:
+ username: "{{ .Config.username }}"
+ password: "{{ .Config.password }}"
+ cinfo: "2550|1350|24|-60"
+ iplocked: 0
+ keeploggedin: 1
+ error:
+ - selector: div.error
+ test:
+ path: /
+ selector: "#nav_userinfo"
+
+search:
+ paths:
+ - path: torrents.php
+ inputs:
+ $raw: "{{ range .Categories }}filter_cat[{{.}}]=1&{{end}}"
+ title: "{{ .Keywords }}"
+ order_by: "{{ .Config.sort }}"
+ order_way: "{{ .Config.type }}"
+ action: advanced
+ filter_freeleech: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
+
+ rows:
+ selector: table#torrent_table > tbody > tr[class^="torrent row"]:has(a[href*="action=download"])
+
+ fields:
+ category:
+ selector: a[href^="/torrents.php?filter_cat["]
+ attribute: href
+ filters:
+ - name: regexp
+ args: \[(\d+)\]
+ title:
+ selector: a[href^="/torrents.php?id="]
+ details:
+ selector: a[href^="/torrents.php?id="]
+ attribute: href
+ download:
+ selector: a[href^="/torrents.php?action=download&id="]
+ attribute: href
+ description_tags:
+ selector: div.tags
+ description:
+ case:
+ i.icon_torrent_okay: "Verified: {{ .Result.description_tags }}"
+ "*": "Unverified: {{ .Result.description_tags }}"
+ poster:
+ selector: td:nth-child(2) > script
+ filters:
+ - name: regexp
+ args: "src=\\\\\"(.*?)\\\\\""
+ - name: re_replace
+ args: ["\\\\(.)", "$1"]
+ - name: replace
+ args: ["/static/common/noartwork/noimage.png", ""]
+ files:
+ selector: td:nth-child(3)
+ date:
+ selector: td:nth-child(5) > span
+ attribute: title
+ # auto adjusted by site account profile
+ filters:
+ - name: dateparse
+ args: "MMM dd yyyy, HH:mm"
+ size:
+ selector: td:nth-child(6)
+ grabs:
+ selector: td:nth-child(7)
+ seeders:
+ selector: td:nth-child(8)
+ leechers:
+ selector: td:nth-child(9)
+ downloadvolumefactor:
+ case:
+ span.icon[title*="Freeleech"]: 0
+ "img[alt=\"Freeleech\"]": 0
+ "*": 1
+ uploadvolumefactor:
+ case:
+ span.icon[title*="DoubleSeed"]: 2
+ "img[alt=\"DoubleSeed\"]": 2
+ "*": 1
+ minimumratio:
+ text: 0.5
+# Luminance
diff --git a/mock-htpc/prowlarr/Definitions/mactorrentsdownload.yml b/mock-htpc/prowlarr/Definitions/mactorrentsdownload.yml
index 27743cb..d3c13cc 100644
--- a/mock-htpc/prowlarr/Definitions/mactorrentsdownload.yml
+++ b/mock-htpc/prowlarr/Definitions/mactorrentsdownload.yml
@@ -10,7 +10,7 @@ links:
caps:
categorymappings:
- - {id: "applications", cat: PC/Mac, desc: "Apps"}
+ - {id: "apps", cat: PC/Mac, desc: "Apps"}
- {id: "games", cat: PC/Games, desc: Games}
- {id: "design-assets", cat: Other, desc: Design Assets}
- {id: "uncategorized", cat: Other, desc: Uncategorized}
@@ -19,15 +19,23 @@ caps:
search: [q]
settings:
- - name: flaresolverr
- type: info
- label: FlareSolverr
- default: This site may use Cloudflare DDoS Protection, therefore Prowlarr requires FlareSolverr to access it.
+ - name: info_flaresolverr
+ type: info_flaresolverr
download:
- selectors:
- - selector: a[href$=".torrent"]
+ before:
+ pathselector:
+ selector: a[href^="/download?"]
attribute: href
+ filters:
+ - name: replace
+ args: ["/download?", "/download/?"]
+ selectors:
+ - selector: script:contains("downloadLink")
+ usebeforeresponse: true
+ filters:
+ - name: regexp
+ args: "downloadLink = '(.+?)';"
search:
paths:
diff --git a/mock-htpc/prowlarr/Definitions/magnetcat.yml b/mock-htpc/prowlarr/Definitions/magnetcat.yml
new file mode 100644
index 0000000..2dd73c9
--- /dev/null
+++ b/mock-htpc/prowlarr/Definitions/magnetcat.yml
@@ -0,0 +1,102 @@
+---
+id: magnetcat
+name: Magnet Cat
+description: "Magnet Cat is a Public Tracker for MOVIES / TV / GENERAL"
+language: en-US
+type: public
+encoding: UTF-8
+# current domain finder https://魔法猫咪.lol/ or https://哆啦a猫.com/
+links:
+ - https://magnetcatcat.com/
+ - https://clmclm.com/
+ - https://www.clm446.buzz/
+ - https://www.clm447.buzz/
+ - https://www.clm448.buzz/
+ - https://www.clm449.buzz/
+ - https://www.clm450.buzz/
+
+caps:
+ categorymappings:
+ - {id: 影视, cat: TV, desc: 影视}
+ - {id: 影视, cat: Movies, desc: 影视}
+ - {id: 音乐, cat: Audio, desc: 音乐}
+ - {id: 图像, cat: Other, desc: 图像}
+ - {id: 文档书籍, cat: Books, desc: 文档书籍}
+ - {id: 压缩文件, cat: Other, desc: 压缩文件}
+ - {id: 安装包, cat: PC, desc: 安装包}
+ - {id: 其他, cat: Other, desc: 其他}
+
+ modes:
+ search: [q]
+ tv-search: [q, season, ep]
+ movie-search: [q]
+ music-search: [q]
+ book-search: [q]
+
+settings:
+ - name: cat-id
+ type: select
+ label: Category
+ default: 0
+ options:
+ 0: All categories
+ 1: Movies and TV shows
+ 2: Music
+ 3: Images
+ 4: Documents and books
+ 5: Compressed files
+ 6: Installer packages
+ 7: Other
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: 2
+ options:
+ 2: created
+ 1: size
+ 0: relevance
+
+search:
+ paths:
+ - path: "search-{{ if .Keywords }}{{ .Keywords }}{{ else }}{{ .Today.Year }}{{ end }}-{{ .Config.cat-id }}-{{ .Config.sort }}-1.html"
+ error:
+ - selector: :root:contains("Internal Server Error")
+
+ rows:
+ selector: div.ssbox
+
+ fields:
+ categorydesc:
+ selector: div.title > h3 > span
+ filters:
+ - name: re_replace
+ args: ["([\\[\\]]+)", ""]
+ title:
+ selector: a[href^="/hash/"]
+ details:
+ selector: a[href^="/hash/"]
+ attribute: href
+ infohash:
+ selector: a[href^="magnet:?xt="]
+ attribute: href
+ filters:
+ - name: regexp
+ args: ([A-F|a-f|0-9]{40})
+ date:
+ selector: div.sbar > span:contains("Date added:") > b, div.sbar > span:contains("添加时间:") > b
+ filters:
+ - name: append
+ args: " +08:00" # CST
+ - name: dateparse
+ args: "yyyy-MM-dd zzz"
+ size:
+ selector: div.sbar > span:contains("Size:") > b, div.sbar > span:contains("大小:") > b
+ seeders:
+ text: 1
+ leechers:
+ text: 1
+ downloadvolumefactor:
+ text: 0
+ uploadvolumefactor:
+ text: 1
+# engine n/a
diff --git a/mock-htpc/prowlarr/Definitions/majomparade.yml b/mock-htpc/prowlarr/Definitions/majomparade.yml
index adc858e..669d861 100644
--- a/mock-htpc/prowlarr/Definitions/majomparade.yml
+++ b/mock-htpc/prowlarr/Definitions/majomparade.yml
@@ -59,23 +59,20 @@ settings:
- name: cookie
type: text
label: Cookie
- - name: info
- type: info
- label: How to get the Cookie
- default: "- Login to this tracker with your browser
- Open the DevTools panel by pressing F12
- Select the Network tab
- Click on the Doc button (Chrome Browser) or HTML button (FireFox)
- Refresh the page by pressing F5
- Click on the first row entry
- Select the Headers tab on the Right panel
- Find 'cookie:' in the Request Headers section
- Select and Copy the whole cookie string (everything after 'cookie: ') and Paste here.
"
+ - name: info_cookie
+ type: info_cookie
- name: useragent
type: text
label: User-Agent
- name: info_useragent
- type: info
- label: How to get the User-Agent
- default: "- From the same place you fetched the cookie,
- Find 'user-agent:' in the Request Headers section
- Select and Copy the whole user-agent string (everything after 'user-agent: ') and Paste here.
"
+ type: info_useragent
- name: info_activity
type: info
label: Account Inactivity
default: "Users who have been inactive for more than 25 weeks are automatically deleted."
login:
+ # using cookie method because login page is using some some hidden security check
method: cookie
inputs:
cookie: "{{ .Config.cookie }}"
diff --git a/mock-htpc/prowlarr/Definitions/malayabits-api.yml b/mock-htpc/prowlarr/Definitions/malayabits-api.yml
new file mode 100644
index 0000000..ae07a02
--- /dev/null
+++ b/mock-htpc/prowlarr/Definitions/malayabits-api.yml
@@ -0,0 +1,186 @@
+---
+id: malayabits-api
+name: Malayabits (API)
+description: "Malayabits is a MALAYSIAN Private Torrent Tracker for MOVIES / TV / MUSIC"
+language: en-US
+type: private
+encoding: UTF-8
+links:
+ - https://malayabits.cc/
+
+caps:
+ categorymappings:
+ - {id: 1, cat: Movies, desc: "Movie"}
+ - {id: 2, cat: TV, desc: "TV"}
+ - {id: 3, cat: Audio, desc: "Musik"}
+
+ modes:
+ search: [q]
+ tv-search: [q, season, ep, imdbid, tvdbid, tmdbid]
+ movie-search: [q, imdbid, tmdbid]
+ music-search: [q]
+
+settings:
+ - name: apikey
+ type: text
+ label: APIKey
+ - name: info_key
+ type: info
+ label: About your API key
+ default: "Find or Generate a new API Token by accessing your Malayabits account My Settings page and clicking on the API Key tab."
+ - name: freeleech
+ type: checkbox
+ label: Search freeleech only
+ default: false
+ - name: single_file_release_use_filename
+ type: checkbox
+ label: Use filename as title for single file releases
+ default: true
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: created_at
+ options:
+ created_at: created
+ seeders: seeders
+ size: size
+ name: title
+ - name: type
+ type: select
+ label: Order requested from site
+ default: desc
+ options:
+ desc: desc
+ asc: asc
+ - name: info_activity
+ type: info
+ label: Account Inactivity
+ default: "You must log in to the Malayabits web site with your browser once every 90 days to prevent your account from getting disabled."
+
+login:
+ path: /api/torrents
+ method: get
+ error:
+ - selector: a[href*="/login"]
+ message:
+ text: "The API key was not accepted by {{ .Config.sitelink }}."
+ - selector: :root:contains("Account is Banned")
+
+search:
+ paths:
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
+ - path: "/api/torrents/filter"
+ response:
+ type: json
+ noResultsMessage: "No Torrents Found"
+
+ headers:
+ Authorization: ["Bearer {{ .Config.apikey }}"]
+
+ inputs:
+ # if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
+ $raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
+ name: "{{ .Keywords }}"
+ seasonNumber: "{{ .Query.Season }}"
+ episodeNumber: "{{ .Query.Ep }}"
+ imdbId: "{{ .Query.IMDBIDShort }}"
+ tmdbId: "{{ .Query.TMDBID }}"
+ tvdbId: "{{ .Query.TVDBID }}"
+ "free[]": "{{ if .Config.freeleech }}100{{ else }}{{ end }}"
+ sortField: "{{ .Config.sort }}"
+ sortDirection: "{{ .Config.type }}"
+ perPage: 100
+
+ keywordsfilters:
+ - name: re_replace
+ args: ["\\.", " "]
+
+ rows:
+ selector: data
+ attribute: attributes
+
+ fields:
+ category:
+ selector: category_id
+ title_optional:
+ selector: name
+ title_filename:
+ selector: "files[0].name"
+ optional: true
+ files:
+ selector: num_file
+ title:
+ text: "{{ if and (.Config.single_file_release_use_filename) (eq .Result.files \"1\") (.Result.title_filename) }}{{ .Result.title_filename }}{{ else }}{{ .Result.title_optional }}{{ end }}"
+ details:
+ selector: details_link
+ download:
+ selector: download_link
+ infohash:
+ selector: info_hash
+ poster:
+ selector: meta.poster
+ filters:
+ - name: replace
+ args: ["https://via.placeholder.com/90x135", ""]
+ imdbid:
+ selector: imdb_id
+ tmdbid:
+ selector: tmdb_id
+ tvdbid:
+ selector: tvdb_id
+ genre:
+ selector: meta.genres
+ filters:
+ - name: replace
+ args: [" & ", "_&_"]
+ description:
+ text: "{{ .Result.genre }}"
+ seeders:
+ selector: seeders
+ leechers:
+ selector: leechers
+ grabs:
+ selector: times_completed
+ date:
+ # "created_at": "2021-10-18T00:34:50.000000Z" is returned by Newtonsoft.Json.Linq as 18/10/2021 00:34:50
+ selector: created_at
+ filters:
+ - name: append
+ args: " +00:00" # GMT
+ - name: dateparse
+ args: "MM/dd/yyyy HH:mm:ss zzz"
+ size:
+ selector: size
+ _featured:
+ selector: featured
+ case:
+ False: "{{ .False }}"
+ True: "{{ .True }}"
+ downloadvolumefactor_freeleech:
+ # api returns 0%, 25%, 50%, 75%, 100%
+ selector: freeleech
+ case:
+ 0%: 1 # not free
+ 25%: 0.75
+ 50%: 0.5
+ 75%: 0.25
+ 100%: 0 # freeleech
+ "*": 0 # catch errors
+ downloadvolumefactor:
+ text: "{{ if .Result._featured }}0{{ else }}{{ .Result.downloadvolumefactor_freeleech }}{{ end }}"
+ uploadvolumefactor_double_upload:
+ # api returns False, True
+ selector: double_upload
+ case:
+ False: 1 # normal
+ True: 2 # double
+ uploadvolumefactor:
+ text: "{{ if .Result._featured }}2{{ else }}{{ .Result.uploadvolumefactor_double_upload }}{{ end }}"
+# global MR is 0.4 but torrents must be seeded for 1 day regardless of ratio
+# minimumratio:
+# text: 0.4
+ minimumseedtime:
+ # 1 day (as seconds = 1 x 24 x 60 x 60)
+ text: 86400
+# json UNIT3D 8.3.0
diff --git a/mock-htpc/prowlarr/Definitions/marinetracker.yml b/mock-htpc/prowlarr/Definitions/marinetracker.yml
index 8e66010..6f8c0d7 100644
--- a/mock-htpc/prowlarr/Definitions/marinetracker.yml
+++ b/mock-htpc/prowlarr/Definitions/marinetracker.yml
@@ -20,17 +20,6 @@ caps:
- {id: 308, cat: Books, desc: "Shipbuilding & Shiprepairing-Shipbuilding Standard @ Register"}
- {id: 196, cat: Books, desc: "Shipbuilding & Shiprepairing-Welding"}
- {id: 195, cat: Books, desc: "Shipbuilding & Shiprepairing-Turnary"}
- - {id: 226, cat: Books, desc: "Mobile Apps for Seafarers"}
- - {id: 6, cat: PC, desc: "Maritime Software"}
- - {id: 211, cat: PC, desc: "Maritime Software-Navigation soft & Charts"}
- - {id: 19, cat: PC, desc: "Maritime Software-Training software"}
- - {id: 13, cat: PC, desc: "Maritime Software-Marine Tests"}
- - {id: 14, cat: PC, desc: "Maritime Software-Maritime Simulators"}
- - {id: 12, cat: PC, desc: "Maritime Software-Answers to tests"}
- - {id: 20, cat: PC, desc: "Maritime Software-Calculation soft"}
- - {id: 179, cat: PC, desc: "Maritime Software-Programming and SDK software"}
- - {id: 317, cat: PC, desc: "Maritime Software-Shareware (demo, trial)"}
- - {id: 188, cat: PC, desc: "Maritime Software-Other soft"}
- {id: 21, cat: Books, desc: "Deckofficer's Library"}
- {id: 283, cat: Books, desc: "Deckofficer's Library-Radar at sea"}
- {id: 114, cat: Books, desc: "Deckofficer's Library-Watch keeping"}
@@ -45,18 +34,6 @@ caps:
- {id: 94, cat: Books, desc: "Deckofficer's Library-Nautical charts, tables, sailing directions"}
- {id: 116, cat: Books, desc: "Deckofficer's Library-Global Maritime Distress and Safety System (GMDSS)"}
- {id: 192, cat: Books, desc: "Deckofficer's Library-Navigation in the ice"}
- - {id: 42, cat: Books, desc: "Safety of Navigation"}
- - {id: 307, cat: Books, desc: "Safety of Navigation-Life Safety at Sea"}
- - {id: 306, cat: Books, desc: "Safety of Navigation-Casualties and Incidents"}
- - {id: 305, cat: Books, desc: "Safety of Navigation-Safety Digest, Lessons from Marine Accident Reports"}
- - {id: 304, cat: Books, desc: "Safety of Navigation-Fire fighting at sea"}
- - {id: 303, cat: Books, desc: "Safety of Navigation-Anti-Piracy Security"}
- - {id: 302, cat: Books, desc: "Safety of Navigation-Emergency and life-saving equipment"}
- - {id: 301, cat: Books, desc: "Safety of Navigation-Cybersecurity"}
- - {id: 8, cat: Movies, desc: "Video for Seamen"}
- - {id: 234, cat: Movies, desc: "Video for Seamen-Video for Deck Officers"}
- - {id: 233, cat: Movies, desc: "Video for Seamen-Video for Marine Engineers"}
- - {id: 235, cat: Movies, desc: "Video for Seamen-Other videos"}
- {id: 102, cat: Books, desc: "Marine Engineer's Library"}
- {id: 316, cat: Books, desc: "Marine Engineer's Library-Marine Fuels & Lubricants"}
- {id: 28, cat: Books, desc: Marine Engineer's Library-Ship's systems and mechanisms"}
@@ -71,19 +48,6 @@ caps:
- {id: 108, cat: Books, desc: Marine Engineer's Library-Hydraulics"}
- {id: 16, cat: Books, desc: Marine Engineer's Library-MAN B&W"}
- {id: 17, cat: Books, desc: Marine Engineer's Library-Wärtsilä & Sulzer"}
- - {id: 7, cat: Books, desc: "Technical Books (Not maritime)"}
- - {id: 328, cat: Books, desc: "Technical Books (Not maritime)-Hydraulics"}
- - {id: 327, cat: Books, desc: "Technical Books (Not maritime)-Mechanics"}
- - {id: 326, cat: Books, desc: "Technical Books (Not maritime)-Electricity"}
- - {id: 10, cat: Books, desc: "English for seamen"}
- - {id: 265, cat: Books, desc: "English for seamen-Marine dictionaries and glossaries RU↔RU/EN↔EN"}
- - {id: 266, cat: Books, desc: "English for seamen-English for Deck Officers"}
- - {id: 267, cat: Books, desc: "English for seamen-English for Marine Engineers"}
- - {id: 268, cat: Books, desc: "English for seamen-English for ETO's"}
- - {id: 269, cat: Books, desc: "English for seamen-English for Shipbuilders"}
- - {id: 270, cat: Books, desc: "English for seamen-RU↔EN dictionaries & phrasebooks"}
- - {id: 271, cat: Books, desc: "English for seamen-Business English and Correspondence"}
- - {id: 205, cat: Books, desc: "General english"}
- {id: 101, cat: Books, desc: "Electrical Technical Officer's Library"}
- {id: 29, cat: Books, desc: "Electrical Technical Officer's Library-Marine Electronics"}
- {id: 103, cat: Books, desc: "Electrical Technical Officer's Library-Ship's automatics"}
@@ -94,43 +58,91 @@ caps:
- {id: 107, cat: Books, desc: "Electrical Technical Officer's Library-ETO Handbooks"}
- {id: 105, cat: Books, desc: "Electrical Technical Officer's Library-Sources of electricity"}
- {id: 37, cat: Books, desc: "Organization and management of maritime transport"}
- - {id: 11, cat: Books, desc: "Section for cadets"}
- - {id: 285, cat: Books, desc: "Section for cadets-Encyclopedias and atlases"}
- - {id: 191, cat: Books, desc: "Maritime Law"}
- - {id: 329, cat: Books, desc: "Maritime Law-Lloyd's, ABS, BV, DNV-GL, TÜV, NKK, RMRS and other approvals"}
- - {id: 240, cat: Books, desc: "Maritime Law-IMO Resolutions"}
- - {id: 212, cat: Books, desc: "Ship's documentation"}
- - {id: 190, cat: Books, desc: "Catalogs"}
- - {id: 113, cat: Books, desc: "Medicine"}
- - {id: 299, cat: Books, desc: "Sailing Kitchen"}
+ - {id: 6, cat: PC, desc: "Maritime Software"}
+ - {id: 211, cat: PC, desc: "Maritime Software-Navigation soft & Charts"}
+ - {id: 13, cat: PC, desc: "Maritime Software-Marine Tests"}
+ - {id: 19, cat: PC, desc: "Maritime Software-Training software"}
+ - {id: 20, cat: PC, desc: "Maritime Software-Calculation soft"}
+ - {id: 14, cat: PC, desc: "Maritime Software-Maritime Simulators"}
+ - {id: 376, cat: PC, desc: "Maritime Software-Games"}
+ - {id: 179, cat: PC, desc: "Maritime Software-Programming and SDK software"}
+ - {id: 317, cat: PC, desc: "Maritime Software-Shareware (demo, trial)"}
+ - {id: 188, cat: PC, desc: "Maritime Software-Other soft"}
+ - {id: 226, cat: Books, desc: "Mobile Apps for Seafarers"}
+ - {id: 380, cat: PC, desc: "Mobile Apps for Seafarers-Apps for Deck Officers"}
+ - {id: 381, cat: PC, desc: "Mobile Apps for Seafarers-Apps for Marine Engineers"}
+ - {id: 383, cat: PC, desc: "Mobile Apps for Seafarers-Exam Apps &Test Answers"}
+ - {id: 384, cat: PC, desc: "Mobile Apps for Seafarers-Foreign languages learning"}
+ - {id: 382, cat: PC, desc: "Mobile Apps for Seafarers-Other mobile Apps"}
+ - {id: 8, cat: Movies, desc: "Video for Seamen"}
+ - {id: 377, cat: Movies, desc: "Video for Seamen-Documentary video"}
+ - {id: 234, cat: Movies, desc: "Video for Seamen-Video for Deck Officers"}
+ - {id: 233, cat: Movies, desc: "Video for Seamen-Video for Marine Engineers"}
+ - {id: 235, cat: Movies, desc: "Video for Seamen-Other videos"}
+ - {id: 42, cat: Books, desc: "Safety of Navigation"}
+ - {id: 307, cat: Books, desc: "Safety of Navigation-Life Safety at Sea"}
+ - {id: 306, cat: Books, desc: "Safety of Navigation-Casualties and Incidents"}
+ - {id: 305, cat: Books, desc: "Safety of Navigation-Safety Digest, Lessons from Marine Accident Reports"}
+ - {id: 304, cat: Books, desc: "Safety of Navigation-Fire fighting at sea"}
+ - {id: 303, cat: Books, desc: "Safety of Navigation-Anti-Piracy Security"}
+ - {id: 302, cat: Books, desc: "Safety of Navigation-Emergency and life-saving equipment"}
+ - {id: 301, cat: Books, desc: "Safety of Navigation-Cybersecurity"}
+ - {id: 10, cat: Books, desc: "English for seamen"}
+ - {id: 270, cat: Books, desc: "English for seamen-EN↔RU dictionaries & phrasebooks"}
+ - {id: 387, cat: Books, desc: "English for seamen-English for Radio Operators"}
+ - {id: 266, cat: Books, desc: "English for seamen-English for Deck Officers"}
+ - {id: 267, cat: Books, desc: "English for seamen-English for Marine Engineers"}
+ - {id: 268, cat: Books, desc: "English for seamen-English for ETO's"}
+ - {id: 269, cat: Books, desc: "English for seamen-English for Shipbuilders"}
+ - {id: 388, cat: Books, desc: "English for seamen-English for Yachtsmen"}
+ - {id: 265, cat: Books, desc: "English for seamen-Marine dictionaries and glossaries RU↔RU/EN↔EN"}
+ - {id: 271, cat: Books, desc: "English for seamen-Business English and Correspondence"}
+ - {id: 205, cat: Books, desc: "General english"}
- {id: 39, cat: Books, desc: "Purpose-built ships"}
+ - {id: 250, cat: Books, desc: "Purpose-built ships-LNG \ LPG - CNG"}
- {id: 51, cat: Books, desc: "Purpose-built ships-Oil & Chemical Tankers"}
- {id: 52, cat: Books, desc: "Purpose-built ships-Dry cargo vessels"}
- - {id: 250, cat: Books, desc: "Purpose-built ships-LNG \ LPG"}
- {id: 284, cat: Books, desc: "Purpose-built ships-Nuclear powered ships"}
- {id: 54, cat: Books, desc: "Purpose-built ships-Passenger ships"}
+ - {id: 385, cat: Books, desc: "Purpose-built ships-Towing vessels"}
- {id: 248, cat: Books, desc: "Purpose-built ships-Fishing vessels"}
- {id: 239, cat: Books, desc: "Purpose-built ships-Offshore"}
- {id: 349, cat: Books, desc: "Purpose-built ships-Dynamic positioning vessels"}
+ - {id: 386, cat: Books, desc: "Purpose-built ships-Submarine vehicles"}
+ - {id: 212, cat: Books, desc: "Ship's documentation"}
+ - {id: 190, cat: Books, desc: "Catalogs"}
+ - {id: 191, cat: Books, desc: "Maritime Law"}
+ - {id: 329, cat: Books, desc: "Maritime Law-Lloyd's, ABS, BV, DNV-GL, TÜV, NKK, RMRS and other approvals"}
+ - {id: 240, cat: Books, desc: "Maritime Law-IMO Resolutions"}
+ - {id: 113, cat: Books, desc: "Medicine"}
+ - {id: 299, cat: Books, desc: "Sailing Kitchen"}
+ - {id: 11, cat: Books, desc: "Section for cadets"}
+ - {id: 285, cat: Books, desc: "Section for cadets-Encyclopedias and atlases"}
- {id: 330, cat: Books, desc: "Examinations"}
- - {id: 333, cat: Books, desc: "Examinations-IMU CET"}
- - {id: 334, cat: Books, desc: "Examinations-NCV"}
- - {id: 336, cat: Books, desc: "Examinations-ASM"}
- - {id: 337, cat: Books, desc: "Examinations-TME"}
- - {id: 338, cat: Books, desc: "Examinations-MEO"}
- - {id: 341, cat: Books, desc: "Examinations-Chief Mates (Phase I)"}
+ - {id: 12, cat: Books, desc: "Examinations-Answers to tests"}
+ - {id: 333, cat: Books, desc: "Examinations-IMU CET (Indian Maritime University Common Entrance Test)"}
+ - {id: 334, cat: Books, desc: "Examinations-NCV (Near Coastal Voyages)"}
+ - {id: 336, cat: Books, desc: "Examinations-ASM (Master)"}
+ - {id: 337, cat: Books, desc: "Examinations-TME (Trainee Marine Engineer)"}
+ - {id: 338, cat: Books, desc: "Examinations-MEO (Maritime Engineering Officer)"}
+ - {id: 341, cat: Books, desc: "Examinations-Chief Mates (Phase I) & Orals"}
- {id: 343, cat: Books, desc: "Examinations-ROR - Colregs"}
- {id: 335, cat: Books, desc: "Examinations-Second Mates"}
- {id: 342, cat: Books, desc: "Examinations-Chief Mates (Phase II)"}
- {id: 340, cat: Books, desc: "Examinations-Text books"}
- {id: 339, cat: Books, desc: "Examinations-Miscellaneous"}
- {id: 99, cat: Audio, desc: "Audio"}
- - {id: 288, cat: Audio, desc: "Audio-♬ Music"}
+ - {id: 375, cat: Audio, desc: "Audio-Documentary"}
+ - {id: 374, cat: Audio, desc: "Audio-Historical literature"}
+ - {id: 286, cat: Audio, desc: "Audio-Fantastic"}
+ - {id: 373, cat: Audio, desc: "Audio-Fiction"}
- {id: 287, cat: Audio, desc: "Audio-Non-Fiction"}
- - {id: 286, cat: Audio, desc: "Audio-Fiction"}
+ - {id: 288, cat: Audio, desc: "Audio-♬ Music"}
- {id: 111, cat: Books, desc: "Yachting, sailing, boating"}
+ - {id: 389, cat: Books, desc: "Yachting, sailing, boating-Sailboat terminology"}
- {id: 345, cat: Books, desc: "Yachting, sailing, boating-Solar boats"}
- {id: 318, cat: Books, desc: "Yachting, sailing, boating-Sailing life"}
+ - {id: 300, cat: Books, desc: "Yachting, sailing, boating-RYA"}
- {id: 298, cat: Books, desc: "Yachting, sailing, boating-Cruising Guides"}
- {id: 297, cat: Books, desc: "Yachting, sailing, boating-Weather Sailing"}
- {id: 296, cat: Books, desc: "Yachting, sailing, boating-How to Buy a Boat?"}
@@ -154,44 +166,69 @@ caps:
- {id: 197, cat: Books, desc: "Marine bulletins"}
- {id: 219, cat: Books, desc: "Marine History"}
- {id: 347, cat: Books, desc: "Marine History-Sea Life"}
- - {id: 323, cat: Books, desc: "Marine History-History of Submarines"}
- - {id: 282, cat: Books, desc: "Marine History-Fleets history"}
- {id: 281, cat: Books, desc: "Marine History-History of Merchant Marine"}
- - {id: 280, cat: Books, desc: "Marine History-Historic ships"}
- - {id: 279, cat: Books, desc: "Marine History-Marine vessels"}
- - {id: 278, cat: Books, desc: "Marine History-Warships"}
- - {id: 351, cat: Books, desc: "Marine History-Battleships"}
- {id: 259, cat: Books, desc: "Marine History-Shipbuilding history"}
- - {id: 277, cat: Books, desc: "Marine History-Wars at Sea"}
- - {id: 276, cat: Books, desc: "Marine History-War at sea (World War I)"}
- - {id: 261, cat: Books, desc: "Marine History-War at sea (World War II)"}
- - {id: 262, cat: Books, desc: "Marine History-The history of sailing ships"}
- {id: 273, cat: Books, desc: "Marine History-History of Seafaring"}
- {id: 275, cat: Books, desc: "Marine History-Accidents and disasters at sea"}
- {id: 264, cat: Books, desc: "Marine History-Marine cartography"}
- {id: 274, cat: Books, desc: "Marine History-Pirates"}
- - {id: 218, cat: Books, desc: "Maritime Fiction"}
+ - {id: 282, cat: Books, desc: "Fleets history"}
+ - {id: 370, cat: Books, desc: "Fleets history-Maritime museums of the world"}
+ - {id: 357, cat: Books, desc: "Fleets history-China"}
+ - {id: 354, cat: Books, desc: "Fleets history-USA"}
+ - {id: 356, cat: Books, desc: "Fleets history-Russia | USSR"}
+ - {id: 358, cat: Books, desc: "Fleets history-India"}
+ - {id: 355, cat: Books, desc: "Fleets history-Japan"}
+ - {id: 364, cat: Books, desc: "Fleets history-The United Kingdom"}
+ - {id: 359, cat: Books, desc: "Fleets history-Germany"}
+ - {id: 360, cat: Books, desc: "Fleets history-France"}
+ - {id: 368, cat: Books, desc: "Fleets history-Netherlands"}
+ - {id: 369, cat: Books, desc: "Fleets history-Spain"}
+ - {id: 277, cat: Books, desc: "Wars at Sea"}
+ - {id: 276, cat: Books, desc: "Wars at Sea-War at sea (World War I)"}
+ - {id: 261, cat: Books, desc: "Wars at Sea-War at sea (World War II)"}
+ - {id: 363, cat: Books, desc: "Wars at Sea-Russo-Japanese War"}
+ - {id: 362, cat: Books, desc: "History of Naval Shipbuilding"}
+ - {id: 279, cat: Books, desc: "History of Naval Shipbuilding-Marine vessels"}
+ - {id: 280, cat: Books, desc: "History of Naval Shipbuilding-Historic ships"}
+ - {id: 278, cat: Books, desc: "History of Naval Shipbuilding-Warships"}
+ - {id: 351, cat: Books, desc: "History of Naval Shipbuilding-Battleships"}
+ - {id: 353, cat: Books, desc: "History of Naval Shipbuilding-Cruisers"}
+ - {id: 365, cat: Books, desc: "History of Naval Shipbuilding-Aircraft carriers"}
+ - {id: 366, cat: Books, desc: "History of Naval Shipbuilding-Destroyers"}
+ - {id: 367, cat: Books, desc: "History of Naval Shipbuilding-Frigates"}
+ - {id: 371, cat: Books, desc: "History of Naval Shipbuilding-Combat boats"}
+ - {id: 372, cat: Books, desc: "History of Naval Shipbuilding-Coastal defense ships"}
+ - {id: 262, cat: Books, desc: "History of Naval Shipbuilding-The history of sailing ships"}
+ - {id: 323, cat: Books, desc: "History of Naval Shipbuilding-History of Submarines"}
- {id: 198, cat: Books, desc: "Navy"}
- - {id: 272, cat: Books, desc: "Navy-Naval magazines"}
- {id: 260, cat: Books, desc: "Navy-Naval shipbuilding (1950 - 20??)"}
- - {id: 220, cat: Books, desc: "Fishing & Spearfishing"}
- - {id: 319, cat: Books, desc: "Fishing tackle and knots"}
+ - {id: 272, cat: Books, desc: "Navy-Naval magazines"}
- {id: 294, cat: Books, desc: "Environmental protection"}
- {id: 242, cat: Books, desc: "Foreign language books"}
- {id: 344, cat: Books, desc: "Foreign language books-Yachting"}
+ - {id: 218, cat: Books, desc: "Maritime Fiction"}
+ - {id: 350, cat: Other, desc: "Art"}
- {id: 243, cat: Books, desc: "Rarity"}
- {id: 244, cat: Books, desc: "Rarity-1900 - 1950"}
- {id: 245, cat: Books, desc: "Rarity-1800 - 1900"}
- {id: 246, cat: Books, desc: "Rarity-1700 - 1800"}
- {id: 247, cat: Books, desc: "Rarity-1600 - 1700"}
- - {id: 350, cat: Other, desc: "Art"}
- {id: 324, cat: Other, desc: "Posters, placards, signs"}
+ - {id: 220, cat: Books, desc: "Fishing & Spearfishing"}
+ - {id: 319, cat: Books, desc: "Fishing tackle and knots"}
+ - {id: 7, cat: Books, desc: "Technical Books (Not maritime)"}
+ - {id: 328, cat: Books, desc: "Technical Books (Not maritime)-Hydraulics"}
+ - {id: 327, cat: Books, desc: "Technical Books (Not maritime)-Mechanics"}
+ - {id: 326, cat: Books, desc: "Technical Books (Not maritime)-Electricity"}
- {id: 187, cat: Books, desc: "Others (not maritime)"}
- {id: 38, cat: Books, desc: "Archive-Uncategorized"}
- {id: 162, cat: Books, desc: "Archive"}
-# - {id: 325, cat: Other, desc: "Corrupt torrents (hash errors)"} # we filter these out in the rows selector
- - {id: 322, cat: Books, desc: "Archive-No seeds"}
- {id: 321, cat: Books, desc: "Archive-Outdated software"}
+ - {id: 379, cat: Books, desc: "Archive-Video materials (Archive)"}
+ - {id: 378, cat: Books, desc: "Archive-Audio materials (Archive) "}
+ - {id: 322, cat: Books, desc: "Archive-No seeds"}
+# - {id: 325, cat: Other, desc: "Corrupt torrents (hash errors)"} # we filter these out in the rows selector
- {id: 295, cat: Books, desc: "Archive-Unregistered"}
modes:
@@ -206,7 +243,7 @@ settings:
- name: password
type: password
label: Password
- - name: freeleech
+ - name: freeleech_50
type: checkbox
label: Search freeleech and 50% freeleech only
default: false
@@ -226,10 +263,8 @@ settings:
options:
2: desc
1: asc
- - name: flaresolverr
- type: info
- label: FlareSolverr
- default: This site may use Cloudflare DDoS Protection, therefore Prowlarr requires FlareSolverr to access it.
+ - name: info_flaresolverr
+ type: info_flaresolverr
login:
path: /
@@ -275,7 +310,7 @@ search:
df: 1
da: 1
dl: 1
- tor_type: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
+ tor_type: "{{ if .Config.freeleech_50 }}1{{ else }}{{ end }}"
submit: "%C2%A0%C2%A0Search%C2%A0%C2%A0"
rows:
diff --git a/mock-htpc/prowlarr/Definitions/masters-tb.yml b/mock-htpc/prowlarr/Definitions/masters-tb.yml
index d0e8f6d..53714b6 100644
--- a/mock-htpc/prowlarr/Definitions/masters-tb.yml
+++ b/mock-htpc/prowlarr/Definitions/masters-tb.yml
@@ -50,10 +50,8 @@ settings:
- name: cookie
type: text
label: Cookie
- - name: info
- type: info
- label: How to get the Cookie
- default: "- Login to this tracker with your browser
- Open the DevTools panel by pressing F12
- Select the Network tab
- Click on the Doc button (Chrome Browser) or HTML button (FireFox)
- Refresh the page by pressing F5
- Click on the first row entry
- Select the Headers tab on the Right panel
- Find 'cookie:' in the Request Headers section
- Select and Copy the whole cookie string (everything after 'cookie: ') and Paste here.
"
+ - name: info_cookie
+ type: info_cookie
- name: freeleech
type: checkbox
label: Filter freeleech only
@@ -80,6 +78,7 @@ settings:
default: For best results, change the Tоренти на страница: setting to 100 on your account profile. The default is 20.
login:
+ # using cookie method because login page has embedded Google reCAPTCHA
method: cookie
inputs:
cookie: "{{ .Config.cookie }}"
diff --git a/mock-htpc/prowlarr/Definitions/mazepa.yml b/mock-htpc/prowlarr/Definitions/mazepa.yml
index 306301b..89857e4 100644
--- a/mock-htpc/prowlarr/Definitions/mazepa.yml
+++ b/mock-htpc/prowlarr/Definitions/mazepa.yml
@@ -16,10 +16,10 @@ caps:
- {id: 7, cat: Movies/SD, desc: "Українські фільми SD"}
- {id: 38, cat: TV/UHD, desc: "Українські серіали HD, UHD"}
- {id: 8, cat: TV/SD, desc: "Українські серіали SD"}
- - {id: 35, cat: TV/Anime, desc: "Українські мультфільми HD, UHD"}
- - {id: 5, cat: TV/Anime, desc: "Українські мультфільми SD"}
- - {id: 36, cat: TV/Anime, desc: "Українські мультсеріали HD, UHD"}
- - {id: 6, cat: TV/Anime, desc: "Українські мультсеріали SD"}
+ - {id: 35, cat: Movies/UHD, desc: "Українські мультфільми HD, UHD"}
+ - {id: 5, cat: Movies/SD, desc: "Українські мультфільми SD"}
+ - {id: 36, cat: TV/UHD, desc: "Українські мультсеріали HD, UHD"}
+ - {id: 6, cat: TV/SD, desc: "Українські мультсеріали SD"}
- {id: 39, cat: TV/Documentary, desc: "Українські документальні HD, UHD"}
- {id: 9, cat: TV/Documentary, desc: "Українські документальні SD"}
# Озвучений контент
@@ -31,11 +31,11 @@ caps:
- {id: 152, cat: TV/UHD, desc: "Озвучений контент Серіали UHD"}
- {id: 44, cat: TV/HD, desc: "Озвучений контент Серіали HD"}
- {id: 14, cat: TV/SD, desc: "Озвучений контент Серіали SD"}
- - {id: 155, cat: TV/Anime, desc: "Озвучений контент Мультфільми UHD"}
- - {id: 41, cat: TV/Anime, desc: "Озвучений контент Мультфільми HD"}
- - {id: 10, cat: TV/Anime, desc: "Озвучений контент Мультфільми SD"}
- - {id: 43, cat: TV/Anime, desc: "Озвучений контент Мультсеріали HD"}
- - {id: 11, cat: TV/Anime, desc: "Озвучений контент Мультсеріали SD"}
+ - {id: 155, cat: Movies/UHD, desc: "Озвучений контент Мультфільми UHD"}
+ - {id: 41, cat: Movies/HD, desc: "Озвучений контент Мультфільми HD"}
+ - {id: 10, cat: Movies/SD, desc: "Озвучений контент Мультфільми SD"}
+ - {id: 43, cat: TV/HD, desc: "Озвучений контент Мультсеріали HD"}
+ - {id: 11, cat: TV/SD, desc: "Озвучений контент Мультсеріали SD"}
- {id: 16, cat: TV/Anime, desc: "Аніме"}
- {id: 157, cat: TV/Documentary, desc: "Озвучений Документальне UHD"}
- {id: 42, cat: TV/Documentary, desc: "Озвучений Документальне HD"}
@@ -50,6 +50,7 @@ caps:
- {id: 47, cat: TV/Sport, desc: "Автоспорт Чемпіонат та кубок України"}
- {id: 46, cat: TV/Sport, desc: "Автоспорт Єврокубки"}
- {id: 48, cat: TV/Sport, desc: "Автоспорт Чемпіонат Світу"}
+ - {id: 182, cat: TV/Sport, desc: "Автоспорт Євро 2024"}
- {id: 49, cat: TV/Sport, desc: "Автоспорт Чемпіонат Європи"}
- {id: 53, cat: TV/Sport, desc: "Автоспорт Закордонні чемпіонати"}
- {id: 19, cat: TV/Sport, desc: "Бокс"}
@@ -85,16 +86,7 @@ caps:
- {id: 170, cat: PC, desc: "Програмне забезпечення Офіс, текстові редактори"}
- {id: 171, cat: PC, desc: "Програмне забезпечення Аудіо, відео обробка"}
- {id: 173, cat: PC, desc: "Програмне забезпечення Інше"}
- # Закритий розділ
- - {id: 160, cat: Audio, desc: "Закритий розділ Rock, Alternative, Punk, Metal"}
- - {id: 161, cat: Audio, desc: "Закритий розділ Pop"}
- - {id: 181, cat: Audio, desc: "Закритий розділ Synthpop, Futurepop, New Wave, Electropop"}
- - {id: 165, cat: Audio, desc: "Закритий розділ Jazz, Blues, Soul"}
- - {id: 180, cat: Audio, desc: "Закритий розділ New Age & Meditative"}
- - {id: 163, cat: Audio, desc: "Закритий розділ Rap, Hip-hop, RnB, Reggae"}
- - {id: 166, cat: Audio, desc: "Закритий розділ Country, Country pop, Bluegrass, Southern rock"}
- - {id: 162, cat: Audio, desc: "Закритий розділ Electronic"}
- - {id: 164, cat: Audio, desc: "Закритий розділ Other Styles"}
+ - {id: 185, cat: PC, desc: "Програмне забезпечення Ігри"}
# archive, not in tracker search category pulldown
- {id: 23, cat: Other, desc: "Архів"}
@@ -202,13 +194,13 @@ search:
fields:
category:
- selector: a[href^="tracker.php?f="]
- attribute: href
+ selector: a[onclick]
+ attribute: onclick
filters:
- - name: querystring
- args: f
+ - name: regexp
+ args: f=(\d+)
title:
- selector: a[href^="./viewtopic.php?t="]
+ selector: a.genmed
filters:
# normalize to SXXEYY format
# Ukrainian
@@ -290,11 +282,14 @@ search:
- name: re_replace
args: ["(?i)^\\(\\s*([SE]\\d+.*?)\\s*\\)[\\s\\/\\|]*(.+)", "$2 $1"]
details:
- selector: a[href^="./viewtopic.php?t="]
+ selector: a.genmed
attribute: href
download:
selector: a[href^="./dl.php?id="]
attribute: href
+ magnet:
+ selector: a[href^="magnet:?xt="]
+ attribute: href
size:
selector: a[href^="./dl.php?id="]
seeders:
@@ -310,9 +305,9 @@ search:
selector: td:last-child
filters:
- name: regexp
- args: (\d{2}:\d{2}\s\d{1,2}-\D{3}-\d{2})
+ args: (\d{2}:\d{2}\s+\d{1,2}-\D{3}-\d{2})
- name: re_replace
- args: ["\\s", " "]
+ args: ["\\s", ""]
- name: re_replace
args: ["(?i)Січ", "Jan"]
- name: re_replace
@@ -340,11 +335,14 @@ search:
- name: append
args: " +02:00" # EET
- name: dateparse
- args: "HH:mm d-MMM-yy zzz"
+ args: "HH:mmd-MMM-yy zzz"
downloadvolumefactor:
text: 0
uploadvolumefactor:
text: 1
description:
- selector: a[href^="./viewtopic.php?t="]
+ case:
+ span.tor-approved: Verified
+ span.tor-not-approved: Unverified
+ span.tor-dup: Temporary
# TorrentPier
diff --git a/mock-htpc/prowlarr/Definitions/mdan.yml b/mock-htpc/prowlarr/Definitions/mdan.yml
index e016416..8098a26 100644
--- a/mock-htpc/prowlarr/Definitions/mdan.yml
+++ b/mock-htpc/prowlarr/Definitions/mdan.yml
@@ -69,6 +69,7 @@ login:
password: "{{ .Config.password }}"
error:
- selector: :contains("incorret")
+ - selector: :root:contains("Too many users. Please")
test:
path: index.php
selector: a[href^="logout.php?hash_please="]
diff --git a/mock-htpc/prowlarr/Definitions/megapeer.yml b/mock-htpc/prowlarr/Definitions/megapeer.yml
index d02e098..53c9f85 100644
--- a/mock-htpc/prowlarr/Definitions/megapeer.yml
+++ b/mock-htpc/prowlarr/Definitions/megapeer.yml
@@ -93,17 +93,13 @@ search:
args: ["(\\w+)", "%$1"]
rows:
- selector: table#tor-tbl > tbody > tr.hl-tr
+ selector: tr.table_fon
fields:
category:
- selector: a[href^="/cat/"]
- attribute: href
- filters:
- - name: regexp
- args: (\d+)
+ text: 169
title:
- selector: a.tLink
+ selector: a[href^="/torrent/"]
filters:
# normalize to SXXEYY format
- name: re_replace
@@ -161,60 +157,51 @@ search:
- name: append
args: "{{ if .Config.addrussiantotitle }} RUS{{ else }}{{ end }}"
details:
- selector: a.tLink
+ selector: a[href^="/torrent/"]
attribute: href
download:
- selector: a.tr-dl
+ selector: a[href^="/download/"]
attribute: href
- poster:
- selector: img.tor-icon
- attribute: src
size:
- selector: a.tr-dl
+ selector: td:nth-child(4)
seeders:
- selector: span.seedmed
+ selector: td:last-child font:first-of-type
leechers:
- text: 1
+ selector: td:last-child font:last-of-type
date:
- # Добавлен: 5 октября 2021 в 06:56:08
- selector: p
+ # 28 Мая 24
+ selector: td:first-child
filters:
- name: replace
- args: ["Добавлен: ", ""]
+ args: ["Янв", "January"]
- name: replace
- args: [" в ", " "]
+ args: ["Фев", "February"]
- name: replace
- args: ["января", "January"]
+ args: ["Мар", "March"]
- name: replace
- args: ["февраля", "February"]
+ args: ["Апр", "Apr"]
- name: replace
- args: ["марта", "March"]
+ args: ["Мая", "May"]
- name: replace
- args: ["апреля", "April"]
+ args: ["Июн", "Jun"]
- name: replace
- args: ["мая", "May"]
+ args: ["Июл", "Jul"]
- name: replace
- args: ["июня", "June"]
+ args: ["Авг", "Aug"]
- name: replace
- args: ["июля", "July"]
+ args: ["Сен", "Sep"]
- name: replace
- args: ["августа", "August"]
+ args: ["Окт", "Oct"]
- name: replace
- args: ["сентября", "September"]
+ args: ["Ноя", "Nov"]
- name: replace
- args: ["октября", "October"]
- - name: replace
- args: ["ноября", "November"]
- - name: replace
- args: ["декабря", "December"]
+ args: ["Дек", "Dec"]
- name: append
args: " +03:00" # MSK
- name: dateparse
- args: "d MMMM yyyy HH:mm:ss zzz"
+ args: "d MMM yy zzz"
downloadvolumefactor:
text: 0
uploadvolumefactor:
text: 1
- description:
- selector: a.tLink
# engine n/a
diff --git a/mock-htpc/prowlarr/Definitions/miobt.yml b/mock-htpc/prowlarr/Definitions/miobt.yml
index ef89149..f18eeba 100644
--- a/mock-htpc/prowlarr/Definitions/miobt.yml
+++ b/mock-htpc/prowlarr/Definitions/miobt.yml
@@ -1,9 +1,11 @@
---
id: miobt
+replaces:
+ - kisssub
name: MioBT
-description: "MioBT is a CHINESE Public torrent index"
+description: "MioBT is a CHINESE Semi-Private torrent index"
language: zh-CN
-type: public
+type: semi-private
encoding: UTF-8
links:
- https://miobt.com/
@@ -27,6 +29,13 @@ caps:
settings: []
+login:
+ path: addon.php?r=document/view&page=visitor-test
+ method: form
+ form: form#visitor-test-form
+ inputs:
+ visitor_test: human
+
search:
paths:
# https://miobt.com/search.php?keyword=moon+720p
@@ -49,21 +58,14 @@ search:
filters:
- name: regexp
args: show-([0-9A-Fa-f]{40})
- date_today:
- # 今天 00:35 (Today)
+ date_day:
+ # 今天 00:35 (Today)
+ # 昨天 22:50 (Yesterday)
optional: true
- selector: td:nth-child(1):contains("今天")
+ selector: td:nth-child(1):contains("今天"), td:nth-child(1):contains("昨天")
filters:
- name: replace
args: ["今天", "Today"]
- - name: append
- args: " +08:00" # CST
- - name: fuzzytime
- date_yday:
- # 昨天 22:50 (Yesterday)
- optional: true
- selector: td:nth-child(1):contains("昨天")
- filters:
- name: replace
args: ["昨天", "Yesterday"]
- name: append
@@ -79,15 +81,13 @@ search:
- name: dateparse
args: "yyyy/MM/dd zzz"
date:
- text: "{{ if or .Result.date_year .Result.date_today .Result.date_yday }}{{ or .Result.date_year .Result.date_today .Result.date_yday }}{{ else }}now{{ end }}"
+ text: "{{ if or .Result.date_year .Result.date_day }}{{ or .Result.date_year .Result.date_day }}{{ else }}now{{ end }}"
size:
selector: td:nth-child(4)
seeders:
- selector: td:nth-child(5)
+ text: 1
leechers:
- selector: td:nth-child(6)
- grabs:
- selector: td:nth-child(7)
+ text: 1
downloadvolumefactor:
text: 0
uploadvolumefactor:
diff --git a/mock-htpc/prowlarr/Definitions/monikadesign-api.yml b/mock-htpc/prowlarr/Definitions/monikadesign-api.yml
index 9441441..3fbbb57 100644
--- a/mock-htpc/prowlarr/Definitions/monikadesign-api.yml
+++ b/mock-htpc/prowlarr/Definitions/monikadesign-api.yml
@@ -10,15 +10,15 @@ links:
caps:
categorymappings:
- - {id: 1, cat: Movies, desc: "Movies"}
- - {id: 2, cat: TV, desc: "TV"}
- - {id: 3, cat: Audio, desc: "Music of Movie"}
- - {id: 4, cat: PC, desc: "Game"}
- - {id: 5, cat: Movies, desc: "Action Live"}
- - {id: 6, cat: Movies/Other, desc: "Anime Movie"}
- - {id: 7, cat: Movies/Other, desc: "Anime Live"}
- {id: 8, cat: TV/Anime, desc: "Anime TV"}
+ - {id: 6, cat: Movies/Other, desc: "Anime Movie"}
+ - {id: 2, cat: TV, desc: "TV"}
+ - {id: 1, cat: Movies, desc: "Movie"}
- {id: 9, cat: Audio, desc: "Music of TV"}
+ - {id: 3, cat: Audio, desc: "Music of Movie"}
+ - {id: 7, cat: Movies/Other, desc: "Anime Live"}
+ - {id: 5, cat: Movies, desc: "Action Live"}
+ - {id: 4, cat: PC, desc: "Game"}
- {id: 11, cat: TV/Anime, desc: "Airing Anime TV"}
modes:
@@ -68,11 +68,12 @@ login:
- selector: a[href*="/login"]
message:
text: "The API key was not accepted by {{ .Config.sitelink }}."
+ - selector: :root:contains("Account is Banned")
search:
paths:
- # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v7.0.0)
- # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L349
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
- path: "/api/torrents/filter"
response:
type: json
@@ -129,14 +130,10 @@ search:
filters:
- name: re_replace
args: ["(?i)^None$", ""]
- - name: re_replace
- args: ["(?i)(Science Fiction)", "Science_Fiction"]
- name: replace
args: [" & ", "_&_"]
description:
text: "{{ .Result.genre }}"
- files:
- selector: num_file
seeders:
selector: seeders
leechers:
diff --git a/mock-htpc/prowlarr/Definitions/musebootlegs.yml b/mock-htpc/prowlarr/Definitions/musebootlegs.yml
index f742542..36c7575 100644
--- a/mock-htpc/prowlarr/Definitions/musebootlegs.yml
+++ b/mock-htpc/prowlarr/Definitions/musebootlegs.yml
@@ -100,6 +100,8 @@ settings:
type: info
label: Search results
default: "If you are getting the error Found no results while trying to browse this tracker then first access the site with your browser and check that you are not being forced to change your password because it has expired after 180 days."
+ - name: info_flaresolverr
+ type: info_flaresolverr
login:
path: ?p=home&pid=1
diff --git a/mock-htpc/prowlarr/Definitions/mvgroupforum.yml b/mock-htpc/prowlarr/Definitions/mvgroupforum.yml
index 8075e64..06691ec 100644
--- a/mock-htpc/prowlarr/Definitions/mvgroupforum.yml
+++ b/mock-htpc/prowlarr/Definitions/mvgroupforum.yml
@@ -26,10 +26,8 @@ settings:
- name: password
type: password
label: Password
- - name: info_8000
- type: info
- label: About MVGroup Categories
- default: MVGroup does not return categories in its search results.To add to your Apps' Torznab indexer, replace all categories with 8000(Other).
+ - name: info_category_8000
+ type: info_category_8000
- name: hidef
type: checkbox
label: Show MVGroup HiDef Releases only
diff --git a/mock-htpc/prowlarr/Definitions/mvgroupmain.yml b/mock-htpc/prowlarr/Definitions/mvgroupmain.yml
index e5b2ee3..5082fd2 100644
--- a/mock-htpc/prowlarr/Definitions/mvgroupmain.yml
+++ b/mock-htpc/prowlarr/Definitions/mvgroupmain.yml
@@ -26,10 +26,8 @@ settings:
- name: password
type: password
label: Password
- - name: info_8000
- type: info
- label: About MVGroup Categories
- default: MVGroup does not return categories in its search results.To add to your Apps' Torznab indexer, replace all categories with 8000(Other).
+ - name: info_category_8000
+ type: info_category_8000
- name: hidef
type: checkbox
label: Show MVGroup HiDef Releases only
diff --git a/mock-htpc/prowlarr/Definitions/mypornclub.yml b/mock-htpc/prowlarr/Definitions/mypornclub.yml
index 5937a08..19dfb1f 100644
--- a/mock-htpc/prowlarr/Definitions/mypornclub.yml
+++ b/mock-htpc/prowlarr/Definitions/mypornclub.yml
@@ -5,6 +5,8 @@ description: "MyPornClub is a Public Torrent Tracker for 3X"
language: en-US
type: public
encoding: UTF-8
+certificates:
+ - 21debda35c67d63e823d122df5824a3f8465759a # expired 2 Nov 2024
links:
- https://myporn.club/
@@ -16,10 +18,8 @@ caps:
search: [q]
settings:
- - name: flaresolverr
- type: info
- label: FlareSolverr
- default: This site may use Cloudflare DDoS Protection, therefore Prowlarr requires FlareSolverr to access it.
+ - name: info_flaresolverr
+ type: info_flaresolverr
download:
selectors:
diff --git a/mock-htpc/prowlarr/Definitions/myporno.yml b/mock-htpc/prowlarr/Definitions/myporno.yml
new file mode 100644
index 0000000..b481676
--- /dev/null
+++ b/mock-htpc/prowlarr/Definitions/myporno.yml
@@ -0,0 +1,70 @@
+---
+id: myporno
+name: Myporno
+description: "Myporno is a RUSSIAN Public tracker for 3X"
+language: ru-RU
+type: public
+encoding: UTF-8
+links:
+ - https://myporno.top/
+
+caps:
+ categorymappings:
+ - {id: XXX, cat: XXX, desc: XXX}
+
+ modes:
+ search: [q]
+
+settings: []
+
+download:
+ selectors:
+ - selector: div#download > a[href^="magnet:"]
+ attribute: href
+ - selector: div#download > a[href$=".torrent"]
+ attribute: href
+
+search:
+ paths:
+ # https://myporno.top//index.php?do=search&subaction=search&story=blonde&submit=search+by+name
+ - path: index.php
+ inputs:
+ do: search
+ subaction: search
+ story: "{{ if .Keywords }}{{ .Keywords }}{{ else }}{{ .Today.Year }}{{ end }}"
+ submit: "search by name"
+
+ rows:
+ selector: tr.gai
+
+ fields:
+ category:
+ text: XXX
+ title:
+ selector: td:nth-child(2) > a:last-of-type
+ details:
+ selector: td:nth-child(2) > a:last-of-type
+ attribute: href
+ download:
+ selector: td:nth-child(2) > a:last-of-type
+ attribute: href
+ date:
+ selector: td:first-child
+ filters:
+ - name: regexp
+ args: "(\\d{1,2}-\\d{2}-\\d{4})"
+ - name: append
+ args: " +03:00" # MSK
+ - name: dateparse
+ args: "d-MM-yyyy zzz"
+ size:
+ selector: td:nth-child(3)
+ seeders:
+ text: 1
+ leechers:
+ text: 1
+ downloadvolumefactor:
+ text: 0
+ uploadvolumefactor:
+ text: 1
+# engine n/a
diff --git a/mock-htpc/prowlarr/Definitions/newheaven.yml b/mock-htpc/prowlarr/Definitions/newheaven.yml
new file mode 100644
index 0000000..5b02177
--- /dev/null
+++ b/mock-htpc/prowlarr/Definitions/newheaven.yml
@@ -0,0 +1,217 @@
+---
+id: newheaven
+name: New Heaven
+description: New Heaven is a GERMAN Private tracker for MOVIES / AUDIO / TV / GENERAL
+language: de-DE
+type: private
+encoding: iso-8859-1
+requestDelay: 2
+links:
+ - https://newheaven.nl/
+legacylinks:
+ - https://torrentheaven.myfqdn.info/
+
+caps:
+ categorymappings:
+ - {id: 1, cat: PC/Games, desc: GAMES- PC}
+ - {id: 3, cat: Console, desc: GAMES - Sonstige}
+ - {id: 59, cat: Console/PS4, desc: GAMES - PlayStation}
+ - {id: 60, cat: Console/PSP, desc: GAMES- PSP}
+ - {id: 63, cat: Console/Wii, desc: GAMES - Wii}
+ - {id: 67, cat: Console/XBox 360, desc: GAMES - XBOX 360}
+ - {id: 68, cat: PC/Mobile-Other, desc: GAMES - PDA / Handy}
+ - {id: 72, cat: Console/NDS, desc: GAMES - NDS}
+ - {id: 7, cat: Movies/DVD, desc: MOVIES - DVD}
+ - {id: 8, cat: Movies/SD, desc: MOVIES - SD}
+ - {id: 37, cat: Movies/DVD, desc: MOVIES - DVD Spezial}
+ - {id: 41, cat: Movies/Foreign, desc: MOVIES - International}
+ - {id: 101, cat: Movies/HD, desc: MOVIES - 720p}
+ - {id: 102, cat: Movies/HD, desc: MOVIES - 1080p}
+ - {id: 103, cat: Movies/HD, desc: MOVIES - AVCHD}
+ - {id: 104, cat: Movies/BluRay, desc: MOVIES - Blu Ray}
+ - {id: 106, cat: Movies/3D, desc: MOVIES - 3D}
+ - {id: 109, cat: Movies/UHD, desc: MOVIES - 4K}
+ - {id: 14, cat: Audio/MP3, desc: AUDIO - Musik}
+ - {id: 15, cat: Audio/Audiobook, desc: AUDIO - Hoerbuecher}
+ - {id: 16, cat: Audio/Audiobook, desc: AUDIO - Hoerspiele}
+ - {id: 36, cat: Audio/Lossless, desc: AUDIO - Flac}
+ - {id: 42, cat: Audio/Other, desc: AUDIO/Soundtracks}
+ - {id: 58, cat: Audio/Video, desc: AUDIO - Musikvideos}
+ - {id: 18, cat: TV/SD, desc: TV/Serien - Serien SD}
+ - {id: 19, cat: TV/HD, desc: TV/Serien - Serien HD 720p}
+ - {id: 20, cat: TV/HD, desc: TV/Serien - Serien HD 1080p}
+ - {id: 49, cat: TV/SD, desc: TV/Serien - Serien DVD}
+ - {id: 51, cat: TV/Documentary, desc: TV/Serien - Doku SD}
+ - {id: 52, cat: TV/Documentary, desc: TV/Serien - Doku HD}
+ - {id: 53, cat: TV, desc: TV/Serien - Serien Complete Packs}
+ - {id: 54, cat: TV/Sport, desc: TV/Serien - Sport}
+ - {id: 66, cat: TV/Foreign, desc: TV/Serien - International}
+ - {id: 110, cat: TV/UHD, desc: TV/Serien - 4K}
+ - {id: 22, cat: Books/EBook, desc: MISC - EBooks}
+ - {id: 24, cat: Other, desc: MISC - Sonstiges}
+ - {id: 25, cat: Other, desc: MISC- Tonspuren}
+ - {id: 108, cat: TV/Anime, desc: TV/Serien - Anime}
+ - {id: 28, cat: PC, desc: APPLICATIONS - PC}
+ - {id: 29, cat: PC/Mobile-Other, desc: APPLICATIONS - Mobile}
+ - {id: 30, cat: PC, desc: APPLICATIONS - Sonstige}
+ - {id: 70, cat: PC, desc: APPLICATIONS - Linux}
+ - {id: 71, cat: PC/Mac, desc: APPLICATIONS - Mac}
+
+ modes:
+ search: [q]
+ tv-search: [q, season, ep, imdbid]
+ movie-search: [q, imdbid]
+ music-search: [q]
+ book-search: [q]
+
+settings:
+ # using cookie method because I could not get the form method to work when converting broken C# indexer to yaml #15527
+ - name: cookie
+ type: text
+ label: Cookie
+ - name: info_cookie
+ type: info_cookie
+ - name: onlyupload
+ type: checkbox
+ label: Filter OnlyUpload only
+ default: false
+ - name: info_free
+ type: info
+ label: About Freeleech and OnlyUpload at NewHeaven
+ default: "- FreeLeech are torrents where neither the download or upload is counted. (On the Jackett dashboard search results these are tagged as NoUpload).
- OnlyUpload are torrents where download is not counted but upload is. Good for building your Ratio up. (On the Jackett dashboard search results these are tagged as Freeleech).
"
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: torrent_added
+ options:
+ torrent_added: created
+ torrent_seeder: seeders
+ torrent_size: size
+ torrent_name: title
+ - name: type
+ type: select
+ label: Order requested from site
+ default: d
+ options:
+ d: desc
+ a: asc
+ n: none
+
+login:
+ method: cookie
+ inputs:
+ cookie: "{{ .Config.cookie }}"
+ test:
+ path: index.php
+ selector: a[href*="index.php?strWebValue=account&strWebAction=logout"]
+
+search:
+ paths:
+ # 25 rows per page
+ - path: index.php
+ inputs:
+ page: 0
+ - path: index.php
+ inputs:
+ page: 1
+ - path: index.php
+ inputs:
+ page: 2
+ - path: index.php
+ inputs:
+ page: 3
+
+ inputs:
+ strWebValue: torrent
+ strWebAction: search
+ sort: "{{ .Config.sort }}"
+ by: "{{ .Config.type }}"
+ $raw: "{{ range .Categories }}dirs{{.}}=1&{{end}}"
+ searchstring: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
+ # 0 active, 1 inactive, 2 all
+ type: 2
+ do_search: suchen
+ # 0 any, 1 1day, 7 1week, 30 30days, 90 90days
+ time: 0
+ # title, nfo, descr, all
+ details: "{{ if .Query.IMDBID }}descr{{ else }}title{{ end }}"
+
+ rows:
+ selector: "table.torrenttable > tbody > tr:not(:has(td.torrenttableheader)){{ if .Config.onlyupload }}:has(img[src$=\"/onlyup.png\"]){{ else }}{{ end }}"
+
+ fields:
+ category:
+ selector: a[href*="index.php?strWebValue=torrent&strWebAction=search&dir="]
+ attribute: href
+ filters:
+ - name: querystring
+ args: dir
+ title:
+ selector: a[href*="index.php?strWebValue=torrent&strWebAction=details&id="]
+ details:
+ selector: a[href*="index.php?strWebValue=torrent&strWebAction=details&id="]
+ attribute: href
+ _id:
+ selector: a[href*="index.php?strWebValue=torrent&strWebAction=details&id="]
+ attribute: href
+ filters:
+ - name: querystring
+ args: id
+ download:
+ text: "index.php?strWebValue=torrent&strWebAction=download&id={{ .Result._id }}"
+ imdbid:
+ selector: a[href*="imdb.com/title/tt"]
+ attribute: href
+ filters:
+ - name: querystring
+ args: url
+ # 2 flavours of dates
+ date_day:
+ # Heute 13:30
+ # Gestern 09:10
+ selector: font:has(a):contains("Heute"), font:has(a):contains("Gestern")
+ optional: true
+ filters:
+ - name: regexp
+ args: "((Heute|Gestern)(\\s\\d{2}\\:\\d{2}))"
+ - name: replace
+ args: ["Heute", "Today"]
+ - name: replace
+ args: ["Gestern", "Yesterday"]
+ - name: append
+ args: " +01:00" # CET
+ date_year:
+ # 16.04.2021 20:01
+ selector: font:has(a):not(:contains("Heute")):not(:contains("Gestern"))
+ optional: true
+ filters:
+ - name: regexp
+ args: "(\\d{2}\\.\\d{2}.\\d{4}\\s\\d{2}\\:\\d{2})"
+ - name: append
+ args: " +01:00" # CET
+ - name: dateparse
+ args: "dd.MM.yyyy HH:mm zzz"
+ date:
+ text: "{{ if or .Result.date_year .Result.date_day }}{{ or .Result.date_year .Result.date_day }}{{ else }}now{{ end }}"
+ size:
+ selector: td:nth-child(4)
+ grabs:
+ selector: td:nth-child(6)
+ seeders:
+ selector: td:nth-child(7)
+ leechers:
+ selector: td:nth-child(8)
+ downloadvolumefactor:
+ case:
+ div:contains("50% DL"): 0.5
+ div:contains("25% DL"): 0.25
+ img[src$="/onlyup.png"]: 0 # only upload is counted
+ "*": 1
+ uploadvolumefactor:
+ case:
+ img[src$="/freeleech.png"]: 0 # nothing is counted
+ div:contains("200% UP"): 2
+ "*": 1
+ minimumratio:
+ text: 0.8
+# Aeonflux
diff --git a/mock-htpc/prowlarr/Definitions/newstudiol.yml b/mock-htpc/prowlarr/Definitions/newstudiol.yml
index 6629f88..3855a58 100644
--- a/mock-htpc/prowlarr/Definitions/newstudiol.yml
+++ b/mock-htpc/prowlarr/Definitions/newstudiol.yml
@@ -34,7 +34,7 @@ settings:
type: checkbox
label: Add RUS to end of all titles to improve language detection by Sonarr and Radarr. Will cause English-only results to be misidentified.
default: false
- - name: freeleech
+ - name: freeleech_50
type: checkbox
label: Search freeleech and 50% freeleech only
default: false
@@ -78,7 +78,7 @@ search:
nm: "{{ .Keywords }}"
o: "{{ .Config.sort }}"
s: "{{ .Config.type }}"
- tor_type: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
+ tor_type: "{{ if .Config.freeleech_50 }}1{{ else }}{{ end }}"
keywordsfilters:
# strip season and/or ep
diff --git a/mock-htpc/prowlarr/Definitions/nicept.yml b/mock-htpc/prowlarr/Definitions/nicept.yml
index b301367..86f5a5a 100644
--- a/mock-htpc/prowlarr/Definitions/nicept.yml
+++ b/mock-htpc/prowlarr/Definitions/nicept.yml
@@ -187,4 +187,4 @@ search:
filters:
- name: prepend
args: "{{ .Result.description_verified }} "
-# NexusPHP v1.8.4 2023-06-18
+# NexusPHP v1.8.13 2024-09-21
diff --git a/mock-htpc/prowlarr/Definitions/noname-club.yml b/mock-htpc/prowlarr/Definitions/noname-club.yml
index 40d74f1..5f5edf9 100644
--- a/mock-htpc/prowlarr/Definitions/noname-club.yml
+++ b/mock-htpc/prowlarr/Definitions/noname-club.yml
@@ -1,5 +1,7 @@
---
id: noname-club
+replaces:
+ - nnm-club
name: NoNaMe Club
description: "NoNaMe Club (NNM-Club) is a RUSSIAN Public Tracker for TV / MOVIES / MUSIC"
language: ru-RU
@@ -308,6 +310,7 @@ caps:
- {id: 442, cat: Books, desc: " |- Точные и естественные науки"}
- {id: 441, cat: Books, desc: " |- Техническая литература"}
- {id: 875, cat: Books, desc: " |- Военно-историческая литература"}
+ - {id: 1176, cat: Books, desc: " |- Историческая литература"}
- {id: 444, cat: Books, desc: " |- Научно-популярная литература"}
- {id: 443, cat: Books, desc: " |- Здоровье и медицина"}
- {id: 440, cat: Books, desc: " |- Нормативная документация"}
@@ -318,12 +321,14 @@ caps:
- {id: 817, cat: Books, desc: " |- 2D графика"}
- {id: 818, cat: Books, desc: " |- 3D графика"}
- {id: 434, cat: Books, desc: "Художественная литература"}
+ - {id: 1349, cat: Books, desc: " |- Библиотеки"}
- {id: 957, cat: Books, desc: " |- Многоавторские сборники и Библиотеки"}
- {id: 931, cat: Books, desc: " |- Собрания книг русскоязычных авторов"}
- {id: 1152, cat: Books, desc: " |- Собрания книг иностранных авторов"}
- {id: 455, cat: Books, desc: " |- Сатира, Юмор"}
- {id: 1153, cat: Books, desc: " |- Боевики"}
- {id: 453, cat: Books, desc: " |- Детективы"}
+ - {id: 1063, cat: Books, desc: " |- Приключенческая проза "}
- {id: 452, cat: Books, desc: " |- Исторические книги"}
- {id: 449, cat: Books, desc: " |- Классика, Проза, Поэзия"}
- {id: 1063, cat: Books, desc: " |- Приключенческая литература"}
@@ -342,24 +347,25 @@ caps:
- {id: 470, cat: Books, desc: " |- Фантастика, Фэнтези (аудиокниги)"}
- {id: 896, cat: Books, desc: " |- Публицистика (аудиокниги)"}
- {id: 480, cat: Books, desc: " |- Другие аудиокниги"}
- - {id: 436, cat: Books, desc: "Обучающие аудиоматериалы"}
- - {id: 458, cat: Books, desc: " |- Бизнес и Менеджмент (аудиоматериалы)"}
- - {id: 457, cat: Books, desc: " |- Иностранные языки (аудиоматериалы)"}
- - {id: 1342, cat: Books, desc: " |- Здоровье и Медицина (аудиоматериалы)"}
- - {id: 459, cat: Books, desc: " |- Популярная психология и саморазвитие (аудиоматериалы)"}
- - {id: 460, cat: Books, desc: " |- Медитации (аудиоматериалы)"}
- - {id: 461, cat: Books, desc: " |- Религия (аудиоматериалы)"}
- - {id: 462, cat: Books, desc: " |- Прочие аудиоматериалы"}
+ - {id: 436, cat: Audio/Audiobook, desc: "Обучающие аудиоматериалы"}
+ - {id: 458, cat: Audio/Audiobook, desc: " |- Бизнес и Менеджмент (аудиоматериалы)"}
+ - {id: 457, cat: Audio/Audiobook, desc: " |- Иностранные языки (аудиоматериалы)"}
+ - {id: 1342, cat: Audio/Audiobook, desc: " |- Здоровье и Медицина (аудиоматериалы)"}
+ - {id: 459, cat: Audio/Audiobook, desc: " |- Популярная психология и саморазвитие (аудиоматериалы)"}
+ - {id: 460, cat: Audio/Audiobook, desc: " |- Медитации (аудиоматериалы)"}
+ - {id: 461, cat: Audio/Audiobook, desc: " |- Религия (аудиоматериалы)"}
+ - {id: 462, cat: Audio/Audiobook, desc: " |- Прочие аудиоматериалы"}
- {id: 437, cat: Books, desc: "Обучающие видеоматериалы"}
- - {id: 466, cat: Books, desc: " |- Бизнес и Менеджмент (видеокурсы)"}
- - {id: 1319, cat: Books, desc: " |- Иностранные языки (видеокурсы)"}
- - {id: 463, cat: Books, desc: " |- IT, Компьютерные видеокурсы"}
- - {id: 958, cat: Books, desc: " |- Дизайн, рисование (видеокурсы)"}
- - {id: 1223, cat: Books, desc: " |- Фотография и Видео (видеокурсы)"}
- - {id: 467, cat: Books, desc: " |- Здоровье и Спорт (видеокурсы)"}
- - {id: 464, cat: Books, desc: " |- Психология и саморазвитие (видеокурсы)"}
- - {id: 465, cat: Books, desc: " |- Музыка (видеокурсы)"}
- - {id: 469, cat: Books, desc: " |- Другие видеокурсы"}
+ - {id: 466, cat: TV, desc: " |- Бизнес и Менеджмент (видеокурсы)"}
+ - {id: 1319, cat: TV, desc: " |- Иностранные языки (видеокурсы)"}
+ - {id: 463, cat: TV, desc: " |- IT, Компьютерные видеокурсы"}
+ - {id: 958, cat: TV, desc: " |- Дизайн, рисование (видеокурсы)"}
+ - {id: 1223, cat: TV, desc: " |- Фотография и Видео (видеокурсы)"}
+ - {id: 467, cat: TV, desc: " |- Здоровье и Спорт (видеокурсы)"}
+ - {id: 464, cat: TV, desc: " |- Психология и саморазвитие (видеокурсы)"}
+ - {id: 465, cat: TV, desc: " |- Музыка (видеокурсы)"}
+ - {id: 1348, cat: TV, desc: " |- Домоводство, строительство и ремонт (видеокурсы)"}
+ - {id: 469, cat: TV, desc: " |- Другие видеокурсы"}
- {id: 439, cat: Books, desc: "Мультимедийные материалы"}
- {id: 477, cat: Books, desc: " |- Образование"}
- {id: 476, cat: Books, desc: " |- Иностранные языки"}
@@ -387,7 +393,6 @@ caps:
- {id: 492, cat: Books, desc: "Разное (категория книг)"}
- {id: 558, cat: Books, desc: " |- Бизнес, Менеджмент, Деловая литература"}
- {id: 1173, cat: Books, desc: " |- Публицистика"}
- - {id: 1176, cat: Books, desc: " |- Историография"}
- {id: 1174, cat: Books, desc: " |- Популярная психология и саморазвитие"}
- {id: 1171, cat: Books, desc: " |- Эзотерика"}
- {id: 662, cat: Books, desc: " |- Религиозная литература"}
@@ -408,114 +413,114 @@ caps:
- {id: 681, cat: Audio, desc: " |- Vinyl-Rip и Hand-Made"}
- {id: 330, cat: Audio, desc: "Классика"}
- {id: 1256, cat: Audio, desc: " |- Классика (HD Audio)"}
- - {id: 1285, cat: Audio, desc: " |- Полные собрания сочинений (Lossless)"}
+ - {id: 1285, cat: Audio/Lossless, desc: " |- Полные собрания сочинений (Lossless)"}
- {id: 370, cat: Audio, desc: " |- Полные собрания сочинений"}
- - {id: 1260, cat: Audio, desc: " |- Вокал (Lossless)"}
+ - {id: 1260, cat: Audio/Lossless, desc: " |- Вокал (Lossless)"}
- {id: 371, cat: Audio, desc: " |- Вокал"}
- - {id: 1261, cat: Audio, desc: " |- Концерты (Lossless)"}
+ - {id: 1261, cat: Audio/Lossless, desc: " |- Концерты (Lossless)"}
- {id: 375, cat: Audio, desc: " |- Концерты"}
- - {id: 1259, cat: Audio, desc: " |- Оркестровая (Lossless)"}
+ - {id: 1259, cat: Audio/Lossless, desc: " |- Оркестровая (Lossless)"}
- {id: 374, cat: Audio, desc: " |- Оркестровая"}
- - {id: 1257, cat: Audio, desc: " |- Камерная (Lossless)"}
+ - {id: 1257, cat: Audio/Lossless, desc: " |- Камерная (Lossless)"}
- {id: 373, cat: Audio, desc: " |- Камерная"}
- - {id: 1258, cat: Audio, desc: " |- Фортепиано (Lossless)"}
+ - {id: 1258, cat: Audio/Lossless, desc: " |- Фортепиано (Lossless)"}
- {id: 372, cat: Audio, desc: " |- Фортепиано"}
- - {id: 1160, cat: Audio, desc: " |- В обработке/Classical Crossover/Neoclassical (Lossless)"}
+ - {id: 1160, cat: Audio/Lossless, desc: " |- В обработке/Classical Crossover/Neoclassical (Lossless)"}
- {id: 876, cat: Audio, desc: " |- В обработке/Classical Crossover/Neoclassical"}
- - {id: 1255, cat: Audio, desc: " |- Классика (сборники) (Lossless)"}
+ - {id: 1255, cat: Audio/Lossless, desc: " |- Классика (сборники) (Lossless)"}
- {id: 376, cat: Audio, desc: " |- Классика (сборники)"}
- {id: 326, cat: Audio, desc: "Jazz, Blues, Soul"}
- - {id: 359, cat: Audio, desc: " |- Jazz (Lossless)"}
+ - {id: 359, cat: Audio/Lossless, desc: " |- Jazz (Lossless)"}
- {id: 358, cat: Audio, desc: " |- Jazz"}
- - {id: 1188, cat: Audio, desc: " |- Blues, Soul (Lossless)"}
+ - {id: 1188, cat: Audio/Lossless, desc: " |- Blues, Soul (Lossless)"}
- {id: 1189, cat: Audio, desc: " |- Blues, Soul"}
- {id: 328, cat: Audio, desc: "Шансон, Авторская и Военная песня"}
- - {id: 1180, cat: Audio, desc: " |- Зарубежный Шансон (Lossless)"}
+ - {id: 1180, cat: Audio/Lossless, desc: " |- Зарубежный Шансон (Lossless)"}
- {id: 1181, cat: Audio, desc: " |- Зарубежный Шансон"}
- - {id: 364, cat: Audio, desc: " |- Русский Шансон (Lossless)"}
+ - {id: 364, cat: Audio/Lossless, desc: " |- Русский Шансон (Lossless)"}
- {id: 363, cat: Audio, desc: " |- Русский Шансон"}
- - {id: 1179, cat: Audio, desc: " |- Авторская и Военная песня (Lossless)"}
+ - {id: 1179, cat: Audio/Lossless, desc: " |- Авторская и Военная песня (Lossless)"}
- {id: 879, cat: Audio, desc: " |- Авторская и Военная песня"}
- {id: 322, cat: Audio, desc: "Rock, Alternative, Punk, Metal"}
- - {id: 962, cat: Audio, desc: " |- Rock (Lossless)"}
+ - {id: 962, cat: Audio/Lossless, desc: " |- Rock (Lossless)"}
- {id: 333, cat: Audio, desc: " |- Rock"}
- - {id: 965, cat: Audio, desc: " |- Alternative, Punk (Lossless)"}
+ - {id: 965, cat: Audio/Lossless, desc: " |- Alternative, Punk (Lossless)"}
- {id: 336, cat: Audio, desc: " |- Alternative, Punk"}
- - {id: 337, cat: Audio, desc: " |- Hard Rock (Lossless)"}
+ - {id: 337, cat: Audio/Lossless, desc: " |- Hard Rock (Lossless)"}
- {id: 338, cat: Audio, desc: " |- Hard Rock"}
- - {id: 963, cat: Audio, desc: " |- Metal (Lossless)"}
+ - {id: 963, cat: Audio/Lossless, desc: " |- Metal (Lossless)"}
- {id: 334, cat: Audio, desc: " |- Metal"}
- - {id: 961, cat: Audio, desc: " |- Русский Рок (Lossless)"}
+ - {id: 961, cat: Audio/Lossless, desc: " |- Русский Рок (Lossless)"}
- {id: 332, cat: Audio, desc: " |- Русский рок"}
- {id: 325, cat: Audio, desc: "Pop"}
- - {id: 1165, cat: Audio, desc: " |- Eurodance, Euro-House, Technopop (Lossless)"}
+ - {id: 1165, cat: Audio/Lossless, desc: " |- Eurodance, Euro-House, Technopop (Lossless)"}
- {id: 1166, cat: Audio, desc: " |- Eurodance, Euro-House, Technopop"}
- {id: 1168, cat: Audio, desc: " |- Disco, Italo-Disco, Euro-Disco, Hi-NRG"}
- - {id: 1167, cat: Audio, desc: " |- Disco, Italo-Disco, Euro-Disco, Hi-NRG (Lossless)"}
- - {id: 1162, cat: Audio, desc: " |- Отечественная поп-музыка (Lossless)"}
+ - {id: 1167, cat: Audio/Lossless, desc: " |- Disco, Italo-Disco, Euro-Disco, Hi-NRG (Lossless)"}
+ - {id: 1162, cat: Audio/Lossless, desc: " |- Отечественная поп-музыка (Lossless)"}
- {id: 352, cat: Audio, desc: " |- Отечественная поп-музыка"}
- - {id: 1164, cat: Audio, desc: " |- Советская эстрада, Ретро (Lossless)"}
+ - {id: 1164, cat: Audio/Lossless, desc: " |- Советская эстрада, Ретро (Lossless)"}
- {id: 1163, cat: Audio, desc: " |- Советская эстрада, Ретро"}
- - {id: 1161, cat: Audio, desc: " |- Зарубежная поп-музыка (Lossless)"}
+ - {id: 1161, cat: Audio/Lossless, desc: " |- Зарубежная поп-музыка (Lossless)"}
- {id: 353, cat: Audio, desc: " |- Зарубежная поп-музыка"}
- {id: 324, cat: Audio, desc: "Electronic"}
- - {id: 1327, cat: Audio, desc: " |- Psybient, Psychill, Psydub (Lossless)"}
+ - {id: 1327, cat: Audio/Lossless, desc: " |- Psybient, Psychill, Psydub (Lossless)"}
- {id: 1328, cat: Audio, desc: " |- Psybient, Psychill, Psydub"}
- - {id: 1325, cat: Audio, desc: " |- Downtempo, Trip-Hop, Lounge (Lossless)"}
+ - {id: 1325, cat: Audio/Lossless, desc: " |- Downtempo, Trip-Hop, Lounge (Lossless)"}
- {id: 1326, cat: Audio, desc: " |- Downtempo, Trip-Hop, Lounge"}
- - {id: 1323, cat: Audio, desc: " |- Ambient, Experimental, Modern Classical (Lossless)"}
+ - {id: 1323, cat: Audio/Lossless, desc: " |- Ambient, Experimental, Modern Classical (Lossless)"}
- {id: 1324, cat: Audio, desc: " |- Ambient, Experimental, Modern Classical"}
- - {id: 976, cat: Audio, desc: " |- Trance (Lossless)"}
+ - {id: 976, cat: Audio/Lossless, desc: " |- Trance (Lossless)"}
- {id: 346, cat: Audio, desc: " |- Trance"}
- {id: 1243, cat: Audio, desc: " |- Label-Packs"}
- - {id: 977, cat: Audio, desc: " |- House, Techno, Electro, Minimal (Lossless)"}
+ - {id: 977, cat: Audio/Lossless, desc: " |- House, Techno, Electro, Minimal (Lossless)"}
- {id: 345, cat: Audio, desc: " |- House"}
- {id: 349, cat: Audio, desc: " |- Techno, Electro, Minimal"}
- {id: 347, cat: Audio, desc: " |- Easy listening"}
- - {id: 979, cat: Audio, desc: " |- Industrial, EBM, Dark Electro (Lossless)"}
+ - {id: 979, cat: Audio/Lossless, desc: " |- Industrial, EBM, Dark Electro (Lossless)"}
- {id: 673, cat: Audio, desc: " |- Experimental Electronic"}
- {id: 671, cat: Audio, desc: " |- Industrial, EBM, Dark Electro"}
- - {id: 1224, cat: Audio, desc: " |- IDM (Lossless)"}
+ - {id: 1224, cat: Audio/Lossless, desc: " |- IDM (Lossless)"}
- {id: 1225, cat: Audio, desc: " |- IDM"}
- - {id: 980, cat: Audio, desc: " |- Synthpop, New Wave (Lossless)"}
+ - {id: 980, cat: Audio/Lossless, desc: " |- Synthpop, New Wave (Lossless)"}
- {id: 672, cat: Audio, desc: " |- Synthpop, New Wave"}
- - {id: 1316, cat: Audio, desc: " |- Dubstep, Future Garage, Bass Music, UK Garage (Lossless)"}
+ - {id: 1316, cat: Audio/Lossless, desc: " |- Dubstep, Future Garage, Bass Music, UK Garage (Lossless)"}
- {id: 1317, cat: Audio, desc: " |- Dubstep, Future Garage, Bass Music, UK Garage"}
- - {id: 981, cat: Audio, desc: " |- Drum'n'Bass, Jungle, Breaks, Breakbeat (Lossless)"}
+ - {id: 981, cat: Audio/Lossless, desc: " |- Drum'n'Bass, Jungle, Breaks, Breakbeat (Lossless)"}
- {id: 344, cat: Audio, desc: " |- Drum'n'Bass, Jungle, Breaks, Breakbeat"}
- - {id: 983, cat: Audio, desc: " |- Hardstyle, Jumpstyle, Hardcore (Lossless)"}
+ - {id: 983, cat: Audio/Lossless, desc: " |- Hardstyle, Jumpstyle, Hardcore (Lossless)"}
- {id: 984, cat: Audio, desc: " |- Hardstyle, Jumpstyle, Hardcore"}
- - {id: 982, cat: Audio, desc: " |- Psychedelic, psytrance, fullon (Lossless)"}
+ - {id: 982, cat: Audio/Lossless, desc: " |- Psychedelic, psytrance, fullon (Lossless)"}
- {id: 348, cat: Audio, desc: " |- Psychedelic, psytrance, fullon"}
- {id: 674, cat: Audio, desc: " |- Radioshow, Live Mixes"}
- {id: 323, cat: Audio, desc: "Rap, Hip-hop, RnB, Reggae"}
- - {id: 1187, cat: Audio, desc: " |- Rap, Hip-hop зарубежный (Lossless)"}
+ - {id: 1187, cat: Audio/Lossless, desc: " |- Rap, Hip-hop зарубежный (Lossless)"}
- {id: 339, cat: Audio, desc: " |- Rap, Hip-hop зарубежный"}
- - {id: 1186, cat: Audio, desc: " |- Rap, Hip-hop отечественный (Lossless)"}
+ - {id: 1186, cat: Audio/Lossless, desc: " |- Rap, Hip-hop отечественный (Lossless)"}
- {id: 340, cat: Audio, desc: " |- Rap, Hip-hop отечественный"}
- - {id: 1185, cat: Audio, desc: " |- RnB, Reggae (Lossless)"}
+ - {id: 1185, cat: Audio/Lossless, desc: " |- RnB, Reggae (Lossless)"}
- {id: 341, cat: Audio, desc: " |- RnB, Reggae"}
- {id: 329, cat: Audio, desc: "East Asian Music"}
- - {id: 369, cat: Audio, desc: " |- Asian Traditional, Ethnic (Lossless)"}
+ - {id: 369, cat: Audio/Lossless, desc: " |- Asian Traditional, Ethnic (Lossless)"}
- {id: 368, cat: Audio, desc: " |- Asian Traditional, Ethnic"}
- - {id: 1218, cat: Audio, desc: " |- Asian Pop (Lossless)"}
+ - {id: 1218, cat: Audio/Lossless, desc: " |- Asian Pop (Lossless)"}
- {id: 365, cat: Audio, desc: " |- Asian Pop"}
- - {id: 1217, cat: Audio, desc: " |- Asian Rock, Metal (Lossless)"}
+ - {id: 1217, cat: Audio/Lossless, desc: " |- Asian Rock, Metal (Lossless)"}
- {id: 366, cat: Audio, desc: " |- Asian Rock, Metal"}
- - {id: 1215, cat: Audio, desc: " |- Doujin Music (Lossless)"}
+ - {id: 1215, cat: Audio/Lossless, desc: " |- Doujin Music (Lossless)"}
- {id: 1216, cat: Audio, desc: " |- Doujin Music"}
- - {id: 1213, cat: Audio, desc: " |- Other Asian (Lossless)"}
+ - {id: 1213, cat: Audio/Lossless, desc: " |- Other Asian (Lossless)"}
- {id: 367, cat: Audio, desc: " |- Other Asian"}
- {id: 331, cat: Audio, desc: "Other Styles"}
- - {id: 1157, cat: Audio, desc: " |- Instrumental (Lossless)"}
+ - {id: 1157, cat: Audio/Lossless, desc: " |- Instrumental (Lossless)"}
- {id: 711, cat: Audio, desc: " |- Instrumental"}
- - {id: 1159, cat: Audio, desc: " |- New Age/Meditative/Relax (Lossless)"}
+ - {id: 1159, cat: Audio/Lossless, desc: " |- New Age/Meditative/Relax (Lossless)"}
- {id: 378, cat: Audio, desc: " |- New Age/Meditative/Relax"}
- - {id: 1158, cat: Audio, desc: " |- Folk (Lossless)"}
+ - {id: 1158, cat: Audio/Lossless, desc: " |- Folk (Lossless)"}
- {id: 379, cat: Audio, desc: " |- Folk"}
- - {id: 380, cat: Audio, desc: " |- Other (Lossless)"}
+ - {id: 380, cat: Audio/Lossless, desc: " |- Other (Lossless)"}
- {id: 1178, cat: Audio, desc: " |- Other"}
- - {id: 361, cat: Audio, desc: " |- OST (Lossless)"}
+ - {id: 361, cat: Audio/Lossless, desc: " |- OST (Lossless)"}
- {id: 360, cat: Audio, desc: " |- OST"}
- {id: 327, cat: Audio, desc: "Неофициальные сборники"}
- {id: 1184, cat: Audio, desc: " |- Jazz, Blues, Soul (сборники)"}
@@ -631,9 +636,9 @@ caps:
- {id: 1156, cat: Other, desc: " |- Отечественное видео HD для устройств Apple"}
- {id: 1099, cat: Other, desc: " |- Зарубежное видео для устройств Apple"}
- {id: 1098, cat: Other, desc: " |- Зарубежное видео HD для устройств Apple"}
- - {id: 1096, cat: Other, desc: " |- Музыка (AAC)"}
- - {id: 1097, cat: Other, desc: " |- Музыка Lossless (ALAC)"}
- - {id: 1095, cat: Other, desc: " |- Аудиокниги (AAC)"}
+ - {id: 1096, cat: Audio, desc: " |- Музыка (AAC)"}
+ - {id: 1097, cat: Audio/Lossless, desc: " |- Музыка Lossless (ALAC)"}
+ - {id: 1095, cat: Audio/Audiobook, desc: " |- Аудиокниги (AAC)"}
# linux
- {id: 536, cat: Other, desc: "Linux, Unix и другие ОС"}
- {id: 563, cat: Other, desc: " |- ОС Linux"}
diff --git a/mock-htpc/prowlarr/Definitions/noname-clubl.yml b/mock-htpc/prowlarr/Definitions/noname-clubl.yml
index 4165ab7..bf0c6dc 100644
--- a/mock-htpc/prowlarr/Definitions/noname-clubl.yml
+++ b/mock-htpc/prowlarr/Definitions/noname-clubl.yml
@@ -308,6 +308,7 @@ caps:
- {id: 442, cat: Books, desc: " |- Точные и естественные науки"}
- {id: 441, cat: Books, desc: " |- Техническая литература"}
- {id: 875, cat: Books, desc: " |- Военно-историческая литература"}
+ - {id: 1176, cat: Books, desc: " |- Историческая литература"}
- {id: 444, cat: Books, desc: " |- Научно-популярная литература"}
- {id: 443, cat: Books, desc: " |- Здоровье и медицина"}
- {id: 440, cat: Books, desc: " |- Нормативная документация"}
@@ -318,12 +319,14 @@ caps:
- {id: 817, cat: Books, desc: " |- 2D графика"}
- {id: 818, cat: Books, desc: " |- 3D графика"}
- {id: 434, cat: Books, desc: "Художественная литература"}
+ - {id: 1349, cat: Books, desc: " |- Библиотеки"}
- {id: 957, cat: Books, desc: " |- Многоавторские сборники и Библиотеки"}
- {id: 931, cat: Books, desc: " |- Собрания книг русскоязычных авторов"}
- {id: 1152, cat: Books, desc: " |- Собрания книг иностранных авторов"}
- {id: 455, cat: Books, desc: " |- Сатира, Юмор"}
- {id: 1153, cat: Books, desc: " |- Боевики"}
- {id: 453, cat: Books, desc: " |- Детективы"}
+ - {id: 1063, cat: Books, desc: " |- Приключенческая проза "}
- {id: 452, cat: Books, desc: " |- Исторические книги"}
- {id: 449, cat: Books, desc: " |- Классика, Проза, Поэзия"}
- {id: 1063, cat: Books, desc: " |- Приключенческая литература"}
@@ -342,24 +345,25 @@ caps:
- {id: 470, cat: Books, desc: " |- Фантастика, Фэнтези (аудиокниги)"}
- {id: 896, cat: Books, desc: " |- Публицистика (аудиокниги)"}
- {id: 480, cat: Books, desc: " |- Другие аудиокниги"}
- - {id: 436, cat: Books, desc: "Обучающие аудиоматериалы"}
- - {id: 458, cat: Books, desc: " |- Бизнес и Менеджмент (аудиоматериалы)"}
- - {id: 457, cat: Books, desc: " |- Иностранные языки (аудиоматериалы)"}
- - {id: 1342, cat: Books, desc: " |- Здоровье и Медицина (аудиоматериалы)"}
- - {id: 459, cat: Books, desc: " |- Популярная психология и саморазвитие (аудиоматериалы)"}
- - {id: 460, cat: Books, desc: " |- Медитации (аудиоматериалы)"}
- - {id: 461, cat: Books, desc: " |- Религия (аудиоматериалы)"}
- - {id: 462, cat: Books, desc: " |- Прочие аудиоматериалы"}
+ - {id: 436, cat: Audio/Audiobook, desc: "Обучающие аудиоматериалы"}
+ - {id: 458, cat: Audio/Audiobook, desc: " |- Бизнес и Менеджмент (аудиоматериалы)"}
+ - {id: 457, cat: Audio/Audiobook, desc: " |- Иностранные языки (аудиоматериалы)"}
+ - {id: 1342, cat: Audio/Audiobook, desc: " |- Здоровье и Медицина (аудиоматериалы)"}
+ - {id: 459, cat: Audio/Audiobook, desc: " |- Популярная психология и саморазвитие (аудиоматериалы)"}
+ - {id: 460, cat: Audio/Audiobook, desc: " |- Медитации (аудиоматериалы)"}
+ - {id: 461, cat: Audio/Audiobook, desc: " |- Религия (аудиоматериалы)"}
+ - {id: 462, cat: Audio/Audiobook, desc: " |- Прочие аудиоматериалы"}
- {id: 437, cat: Books, desc: "Обучающие видеоматериалы"}
- - {id: 466, cat: Books, desc: " |- Бизнес и Менеджмент (видеокурсы)"}
- - {id: 1319, cat: Books, desc: " |- Иностранные языки (видеокурсы)"}
- - {id: 463, cat: Books, desc: " |- IT, Компьютерные видеокурсы"}
- - {id: 958, cat: Books, desc: " |- Дизайн, рисование (видеокурсы)"}
- - {id: 1223, cat: Books, desc: " |- Фотография и Видео (видеокурсы)"}
- - {id: 467, cat: Books, desc: " |- Здоровье и Спорт (видеокурсы)"}
- - {id: 464, cat: Books, desc: " |- Психология и саморазвитие (видеокурсы)"}
- - {id: 465, cat: Books, desc: " |- Музыка (видеокурсы)"}
- - {id: 469, cat: Books, desc: " |- Другие видеокурсы"}
+ - {id: 466, cat: TV, desc: " |- Бизнес и Менеджмент (видеокурсы)"}
+ - {id: 1319, cat: TV, desc: " |- Иностранные языки (видеокурсы)"}
+ - {id: 463, cat: TV, desc: " |- IT, Компьютерные видеокурсы"}
+ - {id: 958, cat: TV, desc: " |- Дизайн, рисование (видеокурсы)"}
+ - {id: 1223, cat: TV, desc: " |- Фотография и Видео (видеокурсы)"}
+ - {id: 467, cat: TV, desc: " |- Здоровье и Спорт (видеокурсы)"}
+ - {id: 464, cat: TV, desc: " |- Психология и саморазвитие (видеокурсы)"}
+ - {id: 465, cat: TV, desc: " |- Музыка (видеокурсы)"}
+ - {id: 1348, cat: TV, desc: " |- Домоводство, строительство и ремонт (видеокурсы)"}
+ - {id: 469, cat: TV, desc: " |- Другие видеокурсы"}
- {id: 439, cat: Books, desc: "Мультимедийные материалы"}
- {id: 477, cat: Books, desc: " |- Образование"}
- {id: 476, cat: Books, desc: " |- Иностранные языки"}
@@ -387,7 +391,6 @@ caps:
- {id: 492, cat: Books, desc: "Разное (категория книг)"}
- {id: 558, cat: Books, desc: " |- Бизнес, Менеджмент, Деловая литература"}
- {id: 1173, cat: Books, desc: " |- Публицистика"}
- - {id: 1176, cat: Books, desc: " |- Историография"}
- {id: 1174, cat: Books, desc: " |- Популярная психология и саморазвитие"}
- {id: 1171, cat: Books, desc: " |- Эзотерика"}
- {id: 662, cat: Books, desc: " |- Религиозная литература"}
@@ -408,114 +411,114 @@ caps:
- {id: 681, cat: Audio, desc: " |- Vinyl-Rip и Hand-Made"}
- {id: 330, cat: Audio, desc: "Классика"}
- {id: 1256, cat: Audio, desc: " |- Классика (HD Audio)"}
- - {id: 1285, cat: Audio, desc: " |- Полные собрания сочинений (Lossless)"}
+ - {id: 1285, cat: Audio/Lossless, desc: " |- Полные собрания сочинений (Lossless)"}
- {id: 370, cat: Audio, desc: " |- Полные собрания сочинений"}
- - {id: 1260, cat: Audio, desc: " |- Вокал (Lossless)"}
+ - {id: 1260, cat: Audio/Lossless, desc: " |- Вокал (Lossless)"}
- {id: 371, cat: Audio, desc: " |- Вокал"}
- - {id: 1261, cat: Audio, desc: " |- Концерты (Lossless)"}
+ - {id: 1261, cat: Audio/Lossless, desc: " |- Концерты (Lossless)"}
- {id: 375, cat: Audio, desc: " |- Концерты"}
- - {id: 1259, cat: Audio, desc: " |- Оркестровая (Lossless)"}
+ - {id: 1259, cat: Audio/Lossless, desc: " |- Оркестровая (Lossless)"}
- {id: 374, cat: Audio, desc: " |- Оркестровая"}
- - {id: 1257, cat: Audio, desc: " |- Камерная (Lossless)"}
+ - {id: 1257, cat: Audio/Lossless, desc: " |- Камерная (Lossless)"}
- {id: 373, cat: Audio, desc: " |- Камерная"}
- - {id: 1258, cat: Audio, desc: " |- Фортепиано (Lossless)"}
+ - {id: 1258, cat: Audio/Lossless, desc: " |- Фортепиано (Lossless)"}
- {id: 372, cat: Audio, desc: " |- Фортепиано"}
- - {id: 1160, cat: Audio, desc: " |- В обработке/Classical Crossover/Neoclassical (Lossless)"}
+ - {id: 1160, cat: Audio/Lossless, desc: " |- В обработке/Classical Crossover/Neoclassical (Lossless)"}
- {id: 876, cat: Audio, desc: " |- В обработке/Classical Crossover/Neoclassical"}
- - {id: 1255, cat: Audio, desc: " |- Классика (сборники) (Lossless)"}
+ - {id: 1255, cat: Audio/Lossless, desc: " |- Классика (сборники) (Lossless)"}
- {id: 376, cat: Audio, desc: " |- Классика (сборники)"}
- {id: 326, cat: Audio, desc: "Jazz, Blues, Soul"}
- - {id: 359, cat: Audio, desc: " |- Jazz (Lossless)"}
+ - {id: 359, cat: Audio/Lossless, desc: " |- Jazz (Lossless)"}
- {id: 358, cat: Audio, desc: " |- Jazz"}
- - {id: 1188, cat: Audio, desc: " |- Blues, Soul (Lossless)"}
+ - {id: 1188, cat: Audio/Lossless, desc: " |- Blues, Soul (Lossless)"}
- {id: 1189, cat: Audio, desc: " |- Blues, Soul"}
- {id: 328, cat: Audio, desc: "Шансон, Авторская и Военная песня"}
- - {id: 1180, cat: Audio, desc: " |- Зарубежный Шансон (Lossless)"}
+ - {id: 1180, cat: Audio/Lossless, desc: " |- Зарубежный Шансон (Lossless)"}
- {id: 1181, cat: Audio, desc: " |- Зарубежный Шансон"}
- - {id: 364, cat: Audio, desc: " |- Русский Шансон (Lossless)"}
+ - {id: 364, cat: Audio/Lossless, desc: " |- Русский Шансон (Lossless)"}
- {id: 363, cat: Audio, desc: " |- Русский Шансон"}
- - {id: 1179, cat: Audio, desc: " |- Авторская и Военная песня (Lossless)"}
+ - {id: 1179, cat: Audio/Lossless, desc: " |- Авторская и Военная песня (Lossless)"}
- {id: 879, cat: Audio, desc: " |- Авторская и Военная песня"}
- {id: 322, cat: Audio, desc: "Rock, Alternative, Punk, Metal"}
- - {id: 962, cat: Audio, desc: " |- Rock (Lossless)"}
+ - {id: 962, cat: Audio/Lossless, desc: " |- Rock (Lossless)"}
- {id: 333, cat: Audio, desc: " |- Rock"}
- - {id: 965, cat: Audio, desc: " |- Alternative, Punk (Lossless)"}
+ - {id: 965, cat: Audio/Lossless, desc: " |- Alternative, Punk (Lossless)"}
- {id: 336, cat: Audio, desc: " |- Alternative, Punk"}
- - {id: 337, cat: Audio, desc: " |- Hard Rock (Lossless)"}
+ - {id: 337, cat: Audio/Lossless, desc: " |- Hard Rock (Lossless)"}
- {id: 338, cat: Audio, desc: " |- Hard Rock"}
- - {id: 963, cat: Audio, desc: " |- Metal (Lossless)"}
+ - {id: 963, cat: Audio/Lossless, desc: " |- Metal (Lossless)"}
- {id: 334, cat: Audio, desc: " |- Metal"}
- - {id: 961, cat: Audio, desc: " |- Русский Рок (Lossless)"}
+ - {id: 961, cat: Audio/Lossless, desc: " |- Русский Рок (Lossless)"}
- {id: 332, cat: Audio, desc: " |- Русский рок"}
- {id: 325, cat: Audio, desc: "Pop"}
- - {id: 1165, cat: Audio, desc: " |- Eurodance, Euro-House, Technopop (Lossless)"}
+ - {id: 1165, cat: Audio/Lossless, desc: " |- Eurodance, Euro-House, Technopop (Lossless)"}
- {id: 1166, cat: Audio, desc: " |- Eurodance, Euro-House, Technopop"}
- {id: 1168, cat: Audio, desc: " |- Disco, Italo-Disco, Euro-Disco, Hi-NRG"}
- - {id: 1167, cat: Audio, desc: " |- Disco, Italo-Disco, Euro-Disco, Hi-NRG (Lossless)"}
- - {id: 1162, cat: Audio, desc: " |- Отечественная поп-музыка (Lossless)"}
+ - {id: 1167, cat: Audio/Lossless, desc: " |- Disco, Italo-Disco, Euro-Disco, Hi-NRG (Lossless)"}
+ - {id: 1162, cat: Audio/Lossless, desc: " |- Отечественная поп-музыка (Lossless)"}
- {id: 352, cat: Audio, desc: " |- Отечественная поп-музыка"}
- - {id: 1164, cat: Audio, desc: " |- Советская эстрада, Ретро (Lossless)"}
+ - {id: 1164, cat: Audio/Lossless, desc: " |- Советская эстрада, Ретро (Lossless)"}
- {id: 1163, cat: Audio, desc: " |- Советская эстрада, Ретро"}
- - {id: 1161, cat: Audio, desc: " |- Зарубежная поп-музыка (Lossless)"}
+ - {id: 1161, cat: Audio/Lossless, desc: " |- Зарубежная поп-музыка (Lossless)"}
- {id: 353, cat: Audio, desc: " |- Зарубежная поп-музыка"}
- {id: 324, cat: Audio, desc: "Electronic"}
- - {id: 1327, cat: Audio, desc: " |- Psybient, Psychill, Psydub (Lossless)"}
+ - {id: 1327, cat: Audio/Lossless, desc: " |- Psybient, Psychill, Psydub (Lossless)"}
- {id: 1328, cat: Audio, desc: " |- Psybient, Psychill, Psydub"}
- - {id: 1325, cat: Audio, desc: " |- Downtempo, Trip-Hop, Lounge (Lossless)"}
+ - {id: 1325, cat: Audio/Lossless, desc: " |- Downtempo, Trip-Hop, Lounge (Lossless)"}
- {id: 1326, cat: Audio, desc: " |- Downtempo, Trip-Hop, Lounge"}
- - {id: 1323, cat: Audio, desc: " |- Ambient, Experimental, Modern Classical (Lossless)"}
+ - {id: 1323, cat: Audio/Lossless, desc: " |- Ambient, Experimental, Modern Classical (Lossless)"}
- {id: 1324, cat: Audio, desc: " |- Ambient, Experimental, Modern Classical"}
- - {id: 976, cat: Audio, desc: " |- Trance (Lossless)"}
+ - {id: 976, cat: Audio/Lossless, desc: " |- Trance (Lossless)"}
- {id: 346, cat: Audio, desc: " |- Trance"}
- {id: 1243, cat: Audio, desc: " |- Label-Packs"}
- - {id: 977, cat: Audio, desc: " |- House, Techno, Electro, Minimal (Lossless)"}
+ - {id: 977, cat: Audio/Lossless, desc: " |- House, Techno, Electro, Minimal (Lossless)"}
- {id: 345, cat: Audio, desc: " |- House"}
- {id: 349, cat: Audio, desc: " |- Techno, Electro, Minimal"}
- {id: 347, cat: Audio, desc: " |- Easy listening"}
- - {id: 979, cat: Audio, desc: " |- Industrial, EBM, Dark Electro (Lossless)"}
+ - {id: 979, cat: Audio/Lossless, desc: " |- Industrial, EBM, Dark Electro (Lossless)"}
- {id: 673, cat: Audio, desc: " |- Experimental Electronic"}
- {id: 671, cat: Audio, desc: " |- Industrial, EBM, Dark Electro"}
- - {id: 1224, cat: Audio, desc: " |- IDM (Lossless)"}
+ - {id: 1224, cat: Audio/Lossless, desc: " |- IDM (Lossless)"}
- {id: 1225, cat: Audio, desc: " |- IDM"}
- - {id: 980, cat: Audio, desc: " |- Synthpop, New Wave (Lossless)"}
+ - {id: 980, cat: Audio/Lossless, desc: " |- Synthpop, New Wave (Lossless)"}
- {id: 672, cat: Audio, desc: " |- Synthpop, New Wave"}
- - {id: 1316, cat: Audio, desc: " |- Dubstep, Future Garage, Bass Music, UK Garage (Lossless)"}
+ - {id: 1316, cat: Audio/Lossless, desc: " |- Dubstep, Future Garage, Bass Music, UK Garage (Lossless)"}
- {id: 1317, cat: Audio, desc: " |- Dubstep, Future Garage, Bass Music, UK Garage"}
- - {id: 981, cat: Audio, desc: " |- Drum'n'Bass, Jungle, Breaks, Breakbeat (Lossless)"}
+ - {id: 981, cat: Audio/Lossless, desc: " |- Drum'n'Bass, Jungle, Breaks, Breakbeat (Lossless)"}
- {id: 344, cat: Audio, desc: " |- Drum'n'Bass, Jungle, Breaks, Breakbeat"}
- - {id: 983, cat: Audio, desc: " |- Hardstyle, Jumpstyle, Hardcore (Lossless)"}
+ - {id: 983, cat: Audio/Lossless, desc: " |- Hardstyle, Jumpstyle, Hardcore (Lossless)"}
- {id: 984, cat: Audio, desc: " |- Hardstyle, Jumpstyle, Hardcore"}
- - {id: 982, cat: Audio, desc: " |- Psychedelic, psytrance, fullon (Lossless)"}
+ - {id: 982, cat: Audio/Lossless, desc: " |- Psychedelic, psytrance, fullon (Lossless)"}
- {id: 348, cat: Audio, desc: " |- Psychedelic, psytrance, fullon"}
- {id: 674, cat: Audio, desc: " |- Radioshow, Live Mixes"}
- {id: 323, cat: Audio, desc: "Rap, Hip-hop, RnB, Reggae"}
- - {id: 1187, cat: Audio, desc: " |- Rap, Hip-hop зарубежный (Lossless)"}
+ - {id: 1187, cat: Audio/Lossless, desc: " |- Rap, Hip-hop зарубежный (Lossless)"}
- {id: 339, cat: Audio, desc: " |- Rap, Hip-hop зарубежный"}
- - {id: 1186, cat: Audio, desc: " |- Rap, Hip-hop отечественный (Lossless)"}
+ - {id: 1186, cat: Audio/Lossless, desc: " |- Rap, Hip-hop отечественный (Lossless)"}
- {id: 340, cat: Audio, desc: " |- Rap, Hip-hop отечественный"}
- - {id: 1185, cat: Audio, desc: " |- RnB, Reggae (Lossless)"}
+ - {id: 1185, cat: Audio/Lossless, desc: " |- RnB, Reggae (Lossless)"}
- {id: 341, cat: Audio, desc: " |- RnB, Reggae"}
- {id: 329, cat: Audio, desc: "East Asian Music"}
- - {id: 369, cat: Audio, desc: " |- Asian Traditional, Ethnic (Lossless)"}
+ - {id: 369, cat: Audio/Lossless, desc: " |- Asian Traditional, Ethnic (Lossless)"}
- {id: 368, cat: Audio, desc: " |- Asian Traditional, Ethnic"}
- - {id: 1218, cat: Audio, desc: " |- Asian Pop (Lossless)"}
+ - {id: 1218, cat: Audio/Lossless, desc: " |- Asian Pop (Lossless)"}
- {id: 365, cat: Audio, desc: " |- Asian Pop"}
- - {id: 1217, cat: Audio, desc: " |- Asian Rock, Metal (Lossless)"}
+ - {id: 1217, cat: Audio/Lossless, desc: " |- Asian Rock, Metal (Lossless)"}
- {id: 366, cat: Audio, desc: " |- Asian Rock, Metal"}
- - {id: 1215, cat: Audio, desc: " |- Doujin Music (Lossless)"}
+ - {id: 1215, cat: Audio/Lossless, desc: " |- Doujin Music (Lossless)"}
- {id: 1216, cat: Audio, desc: " |- Doujin Music"}
- - {id: 1213, cat: Audio, desc: " |- Other Asian (Lossless)"}
+ - {id: 1213, cat: Audio/Lossless, desc: " |- Other Asian (Lossless)"}
- {id: 367, cat: Audio, desc: " |- Other Asian"}
- {id: 331, cat: Audio, desc: "Other Styles"}
- - {id: 1157, cat: Audio, desc: " |- Instrumental (Lossless)"}
+ - {id: 1157, cat: Audio/Lossless, desc: " |- Instrumental (Lossless)"}
- {id: 711, cat: Audio, desc: " |- Instrumental"}
- - {id: 1159, cat: Audio, desc: " |- New Age/Meditative/Relax (Lossless)"}
+ - {id: 1159, cat: Audio/Lossless, desc: " |- New Age/Meditative/Relax (Lossless)"}
- {id: 378, cat: Audio, desc: " |- New Age/Meditative/Relax"}
- - {id: 1158, cat: Audio, desc: " |- Folk (Lossless)"}
+ - {id: 1158, cat: Audio/Lossless, desc: " |- Folk (Lossless)"}
- {id: 379, cat: Audio, desc: " |- Folk"}
- - {id: 380, cat: Audio, desc: " |- Other (Lossless)"}
+ - {id: 380, cat: Audio/Lossless, desc: " |- Other (Lossless)"}
- {id: 1178, cat: Audio, desc: " |- Other"}
- - {id: 361, cat: Audio, desc: " |- OST (Lossless)"}
+ - {id: 361, cat: Audio/Lossless, desc: " |- OST (Lossless)"}
- {id: 360, cat: Audio, desc: " |- OST"}
- {id: 327, cat: Audio, desc: "Неофициальные сборники"}
- {id: 1184, cat: Audio, desc: " |- Jazz, Blues, Soul (сборники)"}
@@ -631,9 +634,9 @@ caps:
- {id: 1156, cat: Other, desc: " |- Отечественное видео HD для устройств Apple"}
- {id: 1099, cat: Other, desc: " |- Зарубежное видео для устройств Apple"}
- {id: 1098, cat: Other, desc: " |- Зарубежное видео HD для устройств Apple"}
- - {id: 1096, cat: Other, desc: " |- Музыка (AAC)"}
- - {id: 1097, cat: Other, desc: " |- Музыка Lossless (ALAC)"}
- - {id: 1095, cat: Other, desc: " |- Аудиокниги (AAC)"}
+ - {id: 1096, cat: Audio, desc: " |- Музыка (AAC)"}
+ - {id: 1097, cat: Audio/Lossless, desc: " |- Музыка Lossless (ALAC)"}
+ - {id: 1095, cat: Audio/Audiobook, desc: " |- Аудиокниги (AAC)"}
# linux
- {id: 536, cat: Other, desc: "Linux, Unix и другие ОС"}
- {id: 563, cat: Other, desc: " |- ОС Linux"}
@@ -724,12 +727,11 @@ caps:
allowrawsearch: true
settings:
- - name: username
+ - name: cookie
type: text
- label: Username
- - name: password
- type: password
- label: Password
+ label: Cookie
+ - name: info_cookie
+ type: info_cookie
- name: stripcyrillic
type: checkbox
label: Strip Cyrillic Letters
@@ -764,16 +766,7 @@ settings:
default: This Indexer requires specific columns to be active on your account search settings.
Login to the web site and ensure that only the Автор (Author) and Форум (Forum) checkboxes are ticked in the Показывать колонку (Show Columns) section of the Настройки поиска Torrent (Torrent Search Settings) page.
Having other columns active may prevent the Indexer processing/displaying results correctly.
login:
- path: forum/login.php
- method: form
- form: form#loginFrm
- inputs:
- username: "{{ .Config.username }}"
- password: "{{ .Config.password }}"
- autologin: 1
- redirect: index.php
- error:
- - selector: span.gen:contains("Вы ввели")
+ method: cookie
test:
path: forum/index.php
selector: table.menutable a.mainmenu:contains("Выход")
diff --git a/mock-htpc/prowlarr/Definitions/ntelogo.yml b/mock-htpc/prowlarr/Definitions/ntelogo.yml
index 81862fc..0088e68 100644
--- a/mock-htpc/prowlarr/Definitions/ntelogo.yml
+++ b/mock-htpc/prowlarr/Definitions/ntelogo.yml
@@ -40,6 +40,10 @@ settings:
type: checkbox
label: Search freeleech only
default: false
+ - name: single_file_release_use_filename
+ type: checkbox
+ label: Use filename as title for single file releases
+ default: true
- name: sort
type: select
label: Sort requested from site
@@ -65,11 +69,12 @@ login:
- selector: a[href*="/login"]
message:
text: "The API key was not accepted by {{ .Config.sitelink }}."
+ - selector: :root:contains("Account is Banned")
search:
paths:
- # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v7.0.0)
- # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L349
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
- path: "/api/torrents/filter"
response:
type: json
@@ -102,11 +107,15 @@ search:
fields:
category:
selector: category_id
- title:
+ title_optional:
selector: name
- filters:
- - name: re_replace
- args: ["\\.", " "]
+ title_filename:
+ selector: "files[0].name"
+ optional: true
+ files:
+ selector: num_file
+ title:
+ text: "{{ if and (.Config.single_file_release_use_filename) (eq .Result.files \"1\") (.Result.title_filename) }}{{ .Result.title_filename }}{{ else }}{{ .Result.title_optional }}{{ end }}"
details:
selector: details_link
download:
@@ -127,8 +136,6 @@ search:
genre:
selector: meta.genres
filters:
- - name: re_replace
- args: ["(?i)^None$", ""]
- name: re_replace
args: ["(?i)(Science Fiction)", "Science_Fiction"]
- name: re_replace
@@ -137,8 +144,6 @@ search:
args: [" & ", "_&_"]
description:
text: "{{ .Result.genre }}"
- files:
- selector: num_file
seeders:
selector: seeders
leechers:
@@ -155,7 +160,12 @@ search:
args: "MM/dd/yyyy HH:mm:ss zzz"
size:
selector: size
- downloadvolumefactor:
+ _featured:
+ selector: featured
+ case:
+ False: "{{ .False }}"
+ True: "{{ .True }}"
+ downloadvolumefactor_freeleech:
# api returns 0%, 25%, 50%, 75%, 100%
selector: freeleech
case:
@@ -165,13 +175,17 @@ search:
75%: 0.25
100%: 0 # freeleech
"*": 0 # catch errors
- uploadvolumefactor:
+ downloadvolumefactor:
+ text: "{{ if .Result._featured }}0{{ else }}{{ .Result.downloadvolumefactor_freeleech }}{{ end }}"
+ uploadvolumefactor_double_upload:
# api returns False, True
selector: double_upload
case:
False: 1 # normal
True: 2 # double
+ uploadvolumefactor:
+ text: "{{ if .Result._featured }}2{{ else }}{{ .Result.uploadvolumefactor_double_upload }}{{ end }}"
minimumseedtime:
- # 7 day (as seconds = 7 x 24 x 60 x 60)
+ # 7 days (as seconds = 7 x 24 x 60 x 60)
text: 604800
-# json UNIT3D 7.2.3
+# json UNIT3D 8.3.3
diff --git a/mock-htpc/prowlarr/Definitions/nusantarare.yml b/mock-htpc/prowlarr/Definitions/nusantarare.yml
new file mode 100644
index 0000000..11df358
--- /dev/null
+++ b/mock-htpc/prowlarr/Definitions/nusantarare.yml
@@ -0,0 +1,183 @@
+---
+id: nusantarare
+name: Nusanta(RA.RE)
+description: "Nusanta(RA.RE) is a MALAYSIAN Private Torrent Tracker for MOVIES / TV"
+language: en-US
+type: private
+encoding: UTF-8
+links:
+ - https://nusantara.re/
+
+caps:
+ categorymappings:
+ - {id: 401, cat: Movies, desc: "Movies"}
+ - {id: 413, cat: Movies, desc: "Malay Movie"}
+ - {id: 412, cat: Movies, desc: "Asia Movie"}
+ - {id: 420, cat: Movies, desc: "Movies Packs"}
+ - {id: 402, cat: TV, desc: "TV Series"}
+ - {id: 419, cat: TV, desc: "TV Drama"}
+ - {id: 403, cat: TV, desc: "TV Shows"}
+ - {id: 411, cat: TV, desc: "TV Packs"}
+ - {id: 410, cat: TV, desc: "Islamic"}
+ - {id: 406, cat: Audio/Video, desc: "Music Videos"}
+ - {id: 405, cat: TV/Anime, desc: "Animations"}
+ - {id: 404, cat: TV/Documentary, desc: "Documentaries"}
+ - {id: 409, cat: Books/EBook, desc: "E-Books"}
+ - {id: 407, cat: TV/Sport, desc: "Sports"}
+ - {id: 417, cat: PC/Games, desc: "Games"}
+ - {id: 418, cat: PC/0day, desc: "Apps & Software"}
+ - {id: 421, cat: PC/Mobile-iOS, desc: "Apple Apps"}
+ - {id: 423, cat: Audio, desc: "Audio"}
+
+ modes:
+ search: [q]
+ tv-search: [q, season, ep, imdbid, doubanid]
+ movie-search: [q, imdbid, doubanid]
+ music-search: [q]
+ book-search: [q]
+
+settings:
+ - name: username
+ type: text
+ label: Username
+ - name: password
+ type: password
+ label: Password
+ - name: freeleech
+ type: checkbox
+ label: Search freeleech only
+ default: false
+ - name: novip
+ type: checkbox
+ label: Hide VIP releases
+ default: true
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: 4
+ options:
+ 4: created
+ 7: seeders
+ 5: size
+ 1: title
+ - name: type
+ type: select
+ label: Order requested from site
+ default: desc
+ options:
+ desc: desc
+ asc: asc
+ - name: info_tpp
+ type: info
+ label: Results Per Page
+ default: For best results, change the Torrents per page: setting to 100 on your account profile.
+ - name: info_activity
+ type: info
+ label: Account Inactivity
+ default: "Note your account will be DISABLED for the reason below:- NOT log in your account in 365 days in a row. Except! VIP and VVIP users.
- Park account or NO new download or other activity on the site in 365 days. Except! VIP and VVIP users.
"
+
+login:
+ path: takelogin.php
+ method: post
+ form: form[action="takelogin.php"]
+ inputs:
+ username: "{{ .Config.username }}"
+ password: "{{ .Config.password }}"
+ error:
+ - selector: td.embedded:has(h2:contains("Login failed"))
+ test:
+ path: index.php
+ selector: a[href="logout.php"]
+
+search:
+ paths:
+ # https://nusantara.re/torrents.php?incldead=0&inclbookmarked=0&search=&search_area=0&search_mode=0
+ - path: torrents.php
+ inputs:
+ $raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
+ search: "{{ .Keywords }}"
+ # 0 incldead, 1 active, 2 dead
+ incldead: 0
+ # 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x50%, 7 30%
+ spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
+ # 0 title, 1 descr, 3 uploader, 4 imdburl (not working)
+ search_area: "{{ if .Query.IMDBID }}1{{ else }}0{{ end }}"
+ # 0 AND, 1 OR, 2 exact
+ search_mode: 0
+ sort: "{{ .Config.sort }}"
+ type: "{{ .Config.type }}"
+ notnewword: 1
+
+ rows:
+ selector: "table.torrents > tbody > tr:has(table.torrentname){{ if .Config.novip }}:not(:has(img[src=\"pic/ico_exclu.gif\"])){{ else }}{{ end }}"
+
+ fields:
+ category:
+ selector: a[href^="?cat="]
+ attribute: href
+ filters:
+ - name: querystring
+ args: cat
+ title_default:
+ selector: a[href^="details.php?id="]
+ title_title:
+ selector: a[title][href^="details.php?id="]
+ attribute: title
+ optional: true
+ default: "{{ .Result.title_default }}"
+ _isvip:
+ selector: table.torrentname:has(img[src="pic/ico_exclu.gif"])
+ optional: true
+ title:
+ text: "{{ .Result.title_title }}{{ if .Result._isvip }} [VIP]{{ else }}{{ end }}"
+ details:
+ selector: a[href^="details.php?id="]
+ attribute: href
+ download:
+ selector: a[href^="download.php?id="]
+ attribute: href
+ date_elapsed:
+ # time type: time elapsed (default)
+ selector: td.rowfollow:nth-last-of-type(6) > span[title]
+ attribute: title
+ optional: true
+ filters:
+ - name: append
+ args: " +08:00" # CST
+ - name: dateparse
+ args: "yyyy-MM-dd HH:mm:ss zzz"
+ date_added:
+ # time added
+ selector: td.rowfollow:nth-last-of-type(6):not(:has(span))
+ optional: true
+ filters:
+ - name: append
+ args: " +08:00" # CST
+ - name: dateparse
+ args: "yyyy-MM-ddHH:mm:ss zzz"
+ date:
+ text: "{{ if or .Result.date_elapsed .Result.date_added }}{{ or .Result.date_elapsed .Result.date_added }}{{ else }}now{{ end }}"
+ size:
+ selector: td.rowfollow:nth-last-of-type(5)
+ seeders:
+ selector: td.rowfollow:nth-last-of-type(4)
+ leechers:
+ selector: td.rowfollow:nth-last-of-type(3)
+ grabs:
+ selector: td.rowfollow:nth-last-of-type(2)
+ downloadvolumefactor:
+ case:
+ img[src="pic/ico_free.gif"]: 0
+ img[src="pic/ico_half.gif"]: 0.5
+ img[src="pic/ico_third.gif"]: 0.3
+ "*": 1
+ uploadvolumefactor:
+ case:
+ img[src="pic/2x.gif"]: 2
+ "*": 1
+ minimumratio:
+ text: 1.0
+ description:
+ selector: td:nth-child(2)
+ remove: a, b, font, img, span
+# Nexus (custom)
diff --git a/mock-htpc/prowlarr/Definitions/nyaapantsu.yml b/mock-htpc/prowlarr/Definitions/nyaapantsu.yml
new file mode 100644
index 0000000..a8e713b
--- /dev/null
+++ b/mock-htpc/prowlarr/Definitions/nyaapantsu.yml
@@ -0,0 +1,158 @@
+---
+id: nyaapantsu
+name: NyaaPantsu
+description: "NyaaPantsu is a Public site for dedicated to Asian ANIME"
+language: en-US
+type: public
+encoding: UTF-8
+links:
+ - https://ouo.si/
+
+caps:
+ categorymappings:
+ - {id: 3_, cat: TV/Anime, desc: "Anime"}
+ - {id: 3_12, cat: TV/Anime, desc: "Anime - Anime Music Video"}
+ - {id: 3_5, cat: TV/Anime, desc: "Anime - English-translated"}
+ - {id: 3_13, cat: TV/Anime, desc: "Anime - Non-English-translated"}
+ - {id: 3_6, cat: TV/Anime, desc: "Anime - Raw"}
+ # Anime as Movies (Radarr uses t=movie):
+ - {id: 3_, cat: Movies/Other, desc: "Anime"}
+ - {id: 3_12, cat: Movies/Other, desc: "Anime - Anime Music Video"}
+ - {id: 3_5, cat: Movies/Other, desc: "Anime - English-translated"}
+ - {id: 3_13, cat: Movies/Other, desc: "Anime - Non-English-translated"}
+ - {id: 3_6, cat: Movies/Other, desc: "Anime - Raw"}
+ - {id: 2_, cat: Audio, desc: "Audio"}
+ - {id: 2_3, cat: Audio, desc: "Audio - Lossless"}
+ - {id: 2_4, cat: Audio, desc: "Audio - Lossy"}
+ - {id: 4_, cat: Books, desc: "Literature"}
+ - {id: 4_7, cat: Books, desc: "Literature - English-translated"}
+ - {id: 4_14, cat: Books, desc: "Literature - Non-English-translated"}
+ - {id: 4_8, cat: Books, desc: "Literature - Raw"}
+ - {id: 5_, cat: TV, desc: "Live Action"}
+ - {id: 5_9, cat: TV, desc: "Live Action - English-translated"}
+ - {id: 5_10, cat: TV, desc: "Live Action - Idol/Promotional Video"}
+ - {id: 5_18, cat: TV, desc: "Live Action - Non-English-translated"}
+ - {id: 5_11, cat: TV, desc: "Live Action - Raw"}
+ - {id: 6_, cat: Other, desc: "Pictures"}
+ - {id: 6_15, cat: Other, desc: "Pictures - Graphics"}
+ - {id: 6_16, cat: Other, desc: "Pictures - Photos"}
+ - {id: 1_, cat: PC, desc: "Software"}
+ - {id: 1_1, cat: PC/ISO, desc: "Software - Applications"}
+ - {id: 1_2, cat: PC/Games, desc: "Software - Games"}
+
+ modes:
+ search: [q]
+ tv-search: [q, season, ep]
+ movie-search: [q]
+ music-search: [q]
+ book-search: [q]
+
+settings:
+ - name: prefer_magnet_links
+ type: checkbox
+ label: Prefer Magnet Links
+ default: true
+ - name: cat-id
+ type: select
+ label: Category
+ default: _
+ options:
+ _: "All categories"
+ 3_: "Anime"
+ 3_12: "Anime - Anime Music Video"
+ 3_5: "Anime - English-translated"
+ 3_13: "Anime - Non-English-translated"
+ 3_6: "Anime - Raw"
+ 2_: "Audio"
+ 2_3: "Audio - Lossless"
+ 2_4: "Audio - Lossy"
+ 4_: "Literature"
+ 4_7: "Literature - English-translated"
+ 4_14: "Literature - Non-English-translated"
+ 4_8: "Literature - Raw"
+ 1_: "Software"
+ 1_1: "Software - Applications"
+ 1_2: "Software - Games"
+ 5_: "Live Action"
+ 5_10: "Live Action - Trailers"
+ 5_9: "Live Action - English subtitled"
+ 5_18: "Live Action - Non-English subtitled"
+ 5_11: "Live Action - Raw"
+ 6_: "Pictures"
+ 6_15: "Pictures - Graphics"
+ 6_16: "Pictures - Photos"
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: 2
+ options:
+ 2: created
+ 5: seeders
+ 4: size
+ 1: title
+ - name: type
+ type: select
+ label: Order requested from site
+ default: false
+ options:
+ false: desc
+ true: asc
+
+search:
+ paths:
+ - path: search
+ inputs:
+ q: "{{ .Keywords }}"
+ c: "{{ .Config.cat-id }}"
+ # 0 All, 2 Remakes, 3 uploaded by trusted users, 4 A+
+ s: 0
+ sort: "{{ .Config.sort }}"
+ order: "{{ .Config.type }}"
+ limit: 100
+
+ rows:
+ selector: tr.torrent-info
+
+ fields:
+ category:
+ selector: a[href^="/search?c="]
+ attribute: href
+ filters:
+ - name: querystring
+ args: c
+ title:
+ selector: a[href^="/view/"]
+ details:
+ selector: a[href^="/view/"]
+ attribute: href
+ download_optional:
+ selector: a[href^="/download/"]
+ attribute: href
+ optional: true
+ download:
+ text: "{{ if .Config.prefer_magnet_links }}{{ else }}{{ .Result.download_optional }}{{ end }}"
+ optional: true
+ magnet:
+ selector: a[href^="magnet:?xt="]
+ attribute: href
+ size:
+ selector: td.tr-size
+ date:
+ # Nov 15, 2020
+ selector: td.date-full
+ filters:
+ - name: replace
+ args: ["UTC+0", "+00:00"]
+ - name: dateparse
+ args: "MM/d/yyyy, h:mm:ss tt zzz"
+ seeders:
+ selector: td.tr-se
+ leechers:
+ selector: td.tr-le
+ grabs:
+ selector: td.tr-dl
+ downloadvolumefactor:
+ text: 0
+ uploadvolumefactor:
+ text: 1
+# engine n/a
diff --git a/mock-htpc/prowlarr/Definitions/nyaasi.yml b/mock-htpc/prowlarr/Definitions/nyaasi.yml
index 7cead34..6aed71a 100644
--- a/mock-htpc/prowlarr/Definitions/nyaasi.yml
+++ b/mock-htpc/prowlarr/Definitions/nyaasi.yml
@@ -22,57 +22,46 @@ legacylinks:
- https://nyaa.uk-unblock.pro/
- https://nyaa.root.yt/
- https://nyaa.lol/ # dropped at request of owner
- - https://nyaa.nocensor.world/
- - https://nyaa.nocensor.lol/
- - https://nyaa.nocensor.art/
- - https://nyaa.mrunblock.guru/
- - https://nyaa.mrunblock.life/
- - https://nyaa.nocensor.click/
- https://nyaa.mrunblock.bond/ # for magnets only
- https://nyaa.nocensor.cloud/
caps:
categorymappings:
- # Anime
- {id: 1_0, cat: TV/Anime, desc: "Anime"}
- - {id: 1_1, cat: TV/Anime, desc: "Anime music videos"}
- - {id: 1_2, cat: TV/Anime, desc: "English subtitled animes"}
- - {id: 1_3, cat: TV/Anime, desc: "Non-english subtitled animes"}
- - {id: 1_4, cat: TV/Anime, desc: "Raw animes"}
+ - {id: 1_1, cat: TV/Anime, desc: "Anime - Anime Music Video"}
+ - {id: 1_2, cat: TV/Anime, desc: "Anime - English-translated"}
+ - {id: 1_3, cat: TV/Anime, desc: "Anime - Non-English-translated"}
+ - {id: 1_4, cat: TV/Anime, desc: "Anime - Raw"}
# Anime as Movies (Radarr uses t=movie):
- {id: 1_0, cat: Movies/Other, desc: "Anime"}
- - {id: 1_1, cat: Movies/Other, desc: "Anime music videos"}
- - {id: 1_2, cat: Movies/Other, desc: "English subtitled animes"}
- - {id: 1_3, cat: Movies/Other, desc: "Non-english subtitled animes"}
- - {id: 1_4, cat: Movies/Other, desc: "Raw animes"}
- # Audio
+ - {id: 1_1, cat: Movies/Other, desc: "Anime - Anime Music Video"}
+ - {id: 1_2, cat: Movies/Other, desc: "Anime - English-translated"}
+ - {id: 1_3, cat: Movies/Other, desc: "Anime - Non-English-translated"}
+ - {id: 1_4, cat: Movies/Other, desc: "Anime - Raw"}
- {id: 2_0, cat: Audio, desc: "Audio"}
- - {id: 2_1, cat: Audio, desc: "Lossless audio"}
- - {id: 2_2, cat: Audio, desc: "Lossy audio"}
- # Literature
+ - {id: 2_1, cat: Audio, desc: "Audio - Lossless"}
+ - {id: 2_2, cat: Audio, desc: "Audio - Lossy"}
- {id: 3_0, cat: Books, desc: "Literature"}
- - {id: 3_1, cat: Books, desc: "Literature english translated"}
- - {id: 3_2, cat: Books, desc: "Literature non-english translated"}
- - {id: 3_3, cat: Books, desc: "Raw literature"}
- # Live
+ - {id: 3_1, cat: Books, desc: "Literature English-translated"}
+ - {id: 3_2, cat: Books, desc: "Literature - Non-English-translated"}
+ - {id: 3_3, cat: Books, desc: "Literature - Raw"}
- {id: 4_0, cat: TV, desc: "Live Action"}
- - {id: 4_1, cat: TV, desc: "Live Action - English"}
- - {id: 4_2, cat: TV, desc: "Live Action - Idol/PV"}
- - {id: 4_3, cat: TV, desc: "Live Action - Non-English"}
+ - {id: 4_1, cat: TV, desc: "Live Action - English-translated"}
+ - {id: 4_2, cat: TV, desc: "Live Action - Idol/Promotional Video"}
+ - {id: 4_3, cat: TV, desc: "Live Action - Non-English-translated"}
- {id: 4_4, cat: TV, desc: "Live Action - Raw"}
- # Pics
- {id: 5_0, cat: Other, desc: "Pictures"}
- - {id: 5_1, cat: Other, desc: "Pictures - Graphics"}
- - {id: 5_2, cat: Other, desc: "Pictures - Photos"}
- # Software
+ - {id: 5_1, cat: Other, desc: "Pictures - Graphics"}
+ - {id: 5_2, cat: Other, desc: "Pictures - Photos"}
- {id: 6_0, cat: PC, desc: "Software"}
- - {id: 6_1, cat: PC/ISO, desc: "Applications"}
- - {id: 6_2, cat: PC/Games, desc: "Games"}
+ - {id: 6_1, cat: PC/ISO, desc: "Software - Applications"}
+ - {id: 6_2, cat: PC/Games, desc: "Software - Games"}
modes:
search: [q]
tv-search: [q, season, ep]
movie-search: [q]
+ music-search: [q]
book-search: [q]
allowrawsearch: true
@@ -85,6 +74,10 @@ settings:
type: checkbox
label: Improve Sonarr compatibility by trying to add Season information into Release Titles
default: false
+ - name: strip_s01
+ type: checkbox
+ label: Remove first season keywords (S1/S01/Season 1), as some results do not include this for first/single season releases
+ default: false
- name: radarr_compatibility
type: checkbox
label: Improve Radarr compatibility by removing year information from keywords and adding it to Release Titles
@@ -153,6 +146,7 @@ search:
q: "{{ if .Keywords }}{{ re_replace .Keywords \"\\b0(\\d{1})\\b\" \"$1\" }}{{ else }}{{ end }}"
p: "{{ if .Keywords }}{{ else }}2{{ end }}"
inputs:
+ # 0 all, 1 no remakes, 2 trusted only
f: "{{ .Config.filter-id }}"
c: "{{ .Config.cat-id }}"
s: "{{ .Config.sort }}"
@@ -161,6 +155,8 @@ search:
keywordsfilters:
- name: re_replace
args: [" *\\b((?:19|20)\\d{2})\\b", "{{ if .Config.radarr_compatibility }}{{ else }} $1{{ end }}"]
+ - name: re_replace
+ args: ["(?i) *\\b(S(?:0|eason *)?1)\\b", "{{ if .Config.strip_s01 }}{{ else }} $1{{ end }}"]
rows:
selector: tr.default,tr.danger,tr.success
@@ -197,7 +193,7 @@ search:
text: "{{ or (.Result.title_phase1) (.Result.title_default) }}"
filters:
- name: re_replace
- args: ["^(\\[.+?\\] ?)?(\\[.+?\\] ?)?(.+?)(\\[)", "$1$2$3{{ if .Config.radarr_compatibility }} {{ .Result.title_keyword_year }} $4{{ else }}$4{{ end }}"]
+ args: ["^(\\[.+?\\] ?)?(\\[.+?\\] ?)?(.+?)(\\[)", "$1$2$3{{ if and (.Config.radarr_compatibility) (.Result.title_keyword_year) }} {{ .Result.title_keyword_year }} $4{{ else }}$4{{ end }}"]
title_phase3:
text: "{{ .Result.title_phase2 }}"
filters:
@@ -229,6 +225,9 @@ search:
args: ["(?i)\\b(?:S\\s|Seasons?\\s?)(\\d+(?:-\\d+)?)\\b(?!(?:-\\d+)?\\s(?:EP|Episodes?)?\\s?(?:\\d+(?:-\\d+)?)?\\s?S\\d+(?:E\\d+(?:-\\d+)?)?)", "$0 S$1"]
- name: re_replace
args: ["(?i)\\b(?:EP|Episodes?)\\s?(\\d+(?:-\\d+)?)\\b(?!(?:-\\d+)?\\sS\\d+(?:-\\d+)?(?:E\\d+(?:-\\d+)?)?)", "$0 S01E$1"]
+ - name: re_replace
+ args: ["\\s+", " "]
+ - name: trim
title_has_season:
text: "{{ .Result.title_phase3 }}"
filters:
@@ -240,14 +239,21 @@ search:
text: "{{ .Result.title_phase3 }}"
filters:
- name: regexp
- args: "\\b(.+? - ?)(\\d+) ([\\[\\(])\\b"
+ args: "\\b(.+? - ?)(\\d+(-\\d+)?) ([\\[\\(])\\b"
- name: append
args: "NULL"
+ title_has_movie_ova:
+ text: "{{ .Result.title_phase3 }}"
+ filters:
+ - name: regexp
+ args: "(?i)(?Login to this tracker with your browserOpen the DevTools panel by pressing F12Select the Network tabClick on the Doc button (Chrome Browser) or HTML button (FireFox)Refresh the page by pressing F5Click on the first row entrySelect the Headers tab on the Right panelFind 'cookie:' in the Request Headers sectionSelect and Copy the whole cookie string (everything after 'cookie: ') and Paste here."
+ - name: info_cookie
+ type: info_cookie
- name: freeleech
type: checkbox
label: Search freeleech only
@@ -74,9 +72,10 @@ settings:
- name: info_activity
type: info
label: Account Inactivity
- default: "Account retention rules:- Sixth degree burn (Extreme User) and above will be retained forever
- Second degree burn (Elite User) and above have their accounts parked (in the control panel) for 60 consecutive days If you do not log in for 60 days, your account will be deleted
- Users who have parked their accounts and do not log in for 60 consecutive days will have their accounts deleted
- Users who have not parked their accounts will have their accounts deleted if they do not log in for 60 consecutive days
- Users without traffic (i.e. upload / download data are all 0) If you do not log in for 14 consecutive days, your account will be deleted.
"
+ default: "Account retention rules:- Sixth degree burn (Extreme User) and above will be retained forever
- Second degree burn (Elite User) and above that have their accounts parked (in the control panel) for 60 consecutive days will be deleted
- Users who have parked their accounts and do not log in for 60 consecutive days will have their accounts deleted
- Users who have not parked their accounts will have their accounts deleted if they do not log in for 60 consecutive days
- Users without traffic (i.e. upload / download data are all 0) will have their accounts deleted if they do not log in for 14 consecutive days.
"
login:
+ # using cookie method because site regularly disables login page for certain events during the year
method: cookie
inputs:
cookie: "{{ .Config.cookie }}"
@@ -106,7 +105,7 @@ search:
notnewword: 1
rows:
- selector: table.torrents > tbody > tr:has(table.torrentname)
+ selector: table.torrents > tbody > tr:has(a[href^="download.php?id="])
fields:
category:
@@ -190,4 +189,4 @@ search:
filters:
- name: prepend
args: "{{ .Result.description_verified }} "
-# NexusPHP v1.8.8 2023-09-25
+# NexusPHP v1.8.13 2024-09-21
diff --git a/mock-htpc/prowlarr/Definitions/oldgreektracker.yml b/mock-htpc/prowlarr/Definitions/oldgreektracker.yml
index f7de5ab..d72d2af 100644
--- a/mock-htpc/prowlarr/Definitions/oldgreektracker.yml
+++ b/mock-htpc/prowlarr/Definitions/oldgreektracker.yml
@@ -12,68 +12,65 @@ legacylinks:
caps:
categorymappings:
- - {id: 3, cat: PC, desc: "Applications"}
- - {id: 7, cat: PC/Mobile-Android, desc: " |-- Android Applications"}
- - {id: 5, cat: PC/0day, desc: " |-- Linux Applications"}
- - {id: 6, cat: PC/Mac, desc: " |-- Macintosh Applications"}
- - {id: 4, cat: PC/0day, desc: " |-- Windows Applications"}
- - {id: 22, cat: Books, desc: "Documents"}
- - {id: 69, cat: Audio/Audiobook, desc: " |-- Audio Books"}
- - {id: 23, cat: Books/EBook, desc: " |-- Books"}
- - {id: 27, cat: Books/Comics, desc: " |-- Comics"}
- - {id: 24, cat: Books/EBook, desc: " |-- Greek Books"}
- - {id: 38, cat: Books/EBook, desc: " |-- Greek Documentaries"}
- - {id: 26, cat: Other, desc: " |-- Greek Pictures"}
- - {id: 25, cat: Other, desc: " |-- Pictures"}
+ - {id: 3, cat: PC, desc: "Apps"}
+ - {id: 7, cat: PC/Mobile-Android, desc: "Apps: Android"}
+ - {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: 16, cat: Movies/SD, desc: " |-- DVDRip-WEBRip-BRRip"}
- - {id: 20, cat: Movies/SD, desc: " |-- Filmographies"}
- - {id: 21, cat: Movies/SD, desc: " |-- Greek Filmographies"}
- - {id: 17, cat: Movies/SD, desc: " |-- Greek Movies"}
- - {id: 19, cat: Audio/Video, desc: " |-- Greek Music Videos"}
- - {id: 18, cat: Audio/Video, desc: " |-- Music Videos"}
+ - {id: 105, cat: Movies, desc: "Movies: Animation"}
+ - {id: 106, cat: Movies, desc: "Movies: Cartoons"}
+ - {id: 20, cat: Movies/SD, desc: "Movies: Filmographies"}
+ - {id: 16, cat: Movies/SD, desc: "Movies: Foreign Movies Non HD"}
+ - {id: 119, cat: Movies/SD, desc: "Movies: Greek Movies Non HD"}
+ - {id: 122, cat: Movies/HD, desc: "Movies: MicroHD"}
+ - {id: 112, cat: Movies/HD, desc: "Movies: Movie Packs"}
+ - {id: 130, cat: Movies/WEB-DL, desc: "Movies: WEBRip / 1080p"}
+ - {id: 129, cat: Movies/WEB-DL, desc: "Movies: WEBRip / 720p"}
- {id: 41, cat: Movies/HD, desc: "Movies HD"}
- - {id: 50, cat: Movies/HD, desc: " |-- BluRay / 1080p"}
- - {id: 51, cat: Movies/UHD, desc: " |-- BluRay / 4K (UHD)"}
- - {id: 49, cat: Movies/HD, desc: " |-- BluRay / 720p"}
- - {id: 45, cat: Movies/BluRay, desc: " |-- BluRay Disk / 1080p"}
- - {id: 66, cat: Movies/BluRay, desc: " |-- BluRay Disk / 4K (UHD)"}
- - {id: 42, cat: Movies/HD, desc: " |-- Remux / 1080p"}
- - {id: 46, cat: Movies/UHD, desc: " |-- Remux / 4K (UHD)"}
- - {id: 47, cat: Movies/WEB-DL, desc: " |-- WEB-DL / 1080p"}
- - {id: 48, cat: Movies/UHD, desc: " |-- WEB-DL / 4K (UHD)"}
- - {id: 43, cat: Movies/WEB-DL, desc: " |-- WEB-DL / 720p"}
+ - {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)"}
+ - {id: 42, cat: Movies/HD, desc: "Movies HD: Remux / 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: " |-- Collections"}
- - {id: 68, cat: Audio, desc: " |-- Discographies"}
- - {id: 10, cat: Audio/Lossless, desc: " |-- Greek Music FLAC"}
- - {id: 9, cat: Audio/MP3, desc: " |-- Greek Music MP3"}
- - {id: 12, cat: Audio/Lossless, desc: " |-- Music FLAC"}
- - {id: 11, cat: Audio/MP3, desc: " |-- Music MP3"}
- - {id: 72, cat: Audio/Other, desc: " |-- Soundtracks"}
- - {id: 28, cat: TV/SD, desc: "TV"}
- - {id: 29, cat: TV/Anime, desc: " |-- Anime"}
- - {id: 31, cat: TV/Other, desc: " |-- Cartoons"}
- - {id: 37, cat: TV/Documentary, desc: " |-- Documentaries"}
- - {id: 70, cat: TV/SD, desc: " |-- DVDRip-WEBRip-BRRip"}
- - {id: 30, cat: TV/Anime, desc: " |-- Greek Anime"}
- - {id: 32, cat: TV/Other, desc: " |-- Greek Cartoon"}
- - {id: 36, cat: TV/SD, desc: " |-- Greek TV Packs"}
- - {id: 35, cat: TV/SD, desc: " |-- Greek TV Series"}
- - {id: 40, cat: TV/SD, desc: " |-- Greek TV Shows"}
- - {id: 39, cat: TV/SD, desc: " |-- Shows"}
- - {id: 67, cat: TV/Sport, desc: " |-- Sports"}
- - {id: 54, cat: TV/HD, desc: "TV HD"}
- - {id: 56, cat: TV/HD, desc: " |-- BluRay / 1080p"}
- - {id: 57, cat: TV/UHD, desc: " |-- BluRay / 4K (UHD)"}
- - {id: 55, cat: TV/HD, desc: " |-- BluRay / 720p"}
- - {id: 63, cat: TV/HD, desc: " |-- BluRay Disk / 1080p"}
- - {id: 65, cat: TV/UHD, desc: " |-- BluRay Disk / 4K (UHD)"}
- - {id: 61, cat: TV/HD, desc: " |-- Remux / 1080p"}
- - {id: 62, cat: TV/UHD, desc: " |-- Remux / 4K (UHD)"}
- - {id: 59, cat: TV/WEB-DL, desc: " |-- WEB-DL / 1080p"}
- - {id: 60, cat: TV/UHD, desc: " |-- WEB-DL / 4K (UHD)"}
- - {id: 58, cat: TV/WEB-DL, desc: " |-- WEB-DL / 720p"}
+ - {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: Animation"}
+ - {id: 31, cat: TV/Other, desc: "TV: Cartoons"}
+ - {id: 79, cat: TV/Documentary, desc: "TV: Documentaries"}
+ - {id: 77, cat: TV, desc: "TV: Foreign TV Packs"}
+ - {id: 75, cat: TV, desc: "TV: Foreign TV Series"}
+ - {id: 76, cat: TV, desc: "TV: Foreign TV Shows"}
+ - {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"}
modes:
search: [q]
@@ -166,28 +163,28 @@ search:
order: "{{ if .Config.freeleech }}asc{{ else }}{{ .Config.type }}{{ end }}"
rows:
- selector: "table.sortable tr:has(a[href*=\"/download.php?id=\"]){{ if .Config.freeleech }}:has(img[src$=\"/freedownload.gif\"]){{ else }}{{ end }}"
+ selector: "table.sortable tr:has(a[href*=\"download.php?id=\"]){{ if .Config.freeleech }}:has(img[src$=\"/freedownload.gif\"]){{ else }}{{ end }}"
fields:
category:
- selector: a[href*="/browse.php?category="]
+ selector: a[href*="?category="]
attribute: href
filters:
- name: querystring
args: category
title_default:
# is usually abbreaviated
- selector: a[href*="/details.php?id="]
+ selector: a[href*="details.php?id="]
title:
# while still abbreviated, is usually longer than the default
selector: div.tooltip-content div
optional: true
default: "{{ .Result.title_default }}"
details:
- selector: a[href*="/details.php?id="]
+ selector: a[href*="details.php?id="]
attribute: href
download:
- selector: a[href*="/details.php?id="]
+ selector: a[href*="details.php?id="]
attribute: href
magnet:
selector: a[href^="magnet:?xt="]
@@ -200,11 +197,9 @@ search:
# auto adjusted by site account profile
filters:
- name: regexp
- args: "(\\d{1,2}(?:st|nd|rd|th):\\w{3,9}:\\d{4} \\d{2}:\\d{2})"
- - name: re_replace
- args: ["^(\\d{1,2})(?:st|nd|rd|th):", "$1:"]
+ args: "(\\d{2}-\\d{2}-\\d{2} \\d{2}:\\d{2})"
- name: dateparse
- args: "d:MMMM:yyyy HH:mm"
+ args: "dd-MM-yy HH:mm"
size:
selector: td:nth-last-child(5)
grabs:
@@ -222,4 +217,9 @@ search:
case:
img[src$="/x2.gif"]: 2
"*": 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
diff --git a/mock-htpc/prowlarr/Definitions/oldtoonsworld.yml b/mock-htpc/prowlarr/Definitions/oldtoonsworld.yml
index 46510ef..b697892 100644
--- a/mock-htpc/prowlarr/Definitions/oldtoonsworld.yml
+++ b/mock-htpc/prowlarr/Definitions/oldtoonsworld.yml
@@ -15,6 +15,7 @@ caps:
- {id: 3, cat: Books, desc: "Books"}
- {id: 4, cat: Audio, desc: "Audio"}
- {id: 5, cat: PC/Games, desc: "Games"}
+ - {id: 6, cat: TV, desc: "WOC"}
modes:
search: [q]
@@ -35,6 +36,10 @@ settings:
type: checkbox
label: Search freeleech only
default: false
+ - name: single_file_release_use_filename
+ type: checkbox
+ label: Use filename as title for single file releases
+ default: true
- name: sort
type: select
label: Sort requested from site
@@ -64,11 +69,12 @@ login:
- selector: a[href*="/login"]
message:
text: "The API key was not accepted by {{ .Config.sitelink }}."
+ - selector: :root:contains("Account is Banned")
search:
paths:
- # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v7.0.0)
- # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L349
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
- path: "/api/torrents/filter"
response:
type: json
@@ -101,8 +107,15 @@ search:
fields:
category:
selector: category_id
- title:
+ title_optional:
selector: name
+ title_filename:
+ selector: "files[0].name"
+ optional: true
+ files:
+ selector: num_file
+ title:
+ text: "{{ if and (.Config.single_file_release_use_filename) (eq .Result.files \"1\") (.Result.title_filename) }}{{ .Result.title_filename }}{{ else }}{{ .Result.title_optional }}{{ end }}"
details:
selector: details_link
download:
@@ -123,8 +136,6 @@ search:
genre:
selector: meta.genres
filters:
- - name: re_replace
- args: ["(?i)^None$", ""]
- name: re_replace
args: ["(?i)(Science Fiction)", "Science_Fiction"]
- name: re_replace
@@ -133,8 +144,6 @@ search:
args: [" & ", "_&_"]
description:
text: "{{ .Result.genre }}"
- files:
- selector: num_file
seeders:
selector: seeders
leechers:
@@ -151,7 +160,12 @@ search:
args: "MM/dd/yyyy HH:mm:ss zzz"
size:
selector: size
- downloadvolumefactor:
+ _featured:
+ selector: featured
+ case:
+ False: "{{ .False }}"
+ True: "{{ .True }}"
+ downloadvolumefactor_freeleech:
# api returns 0%, 25%, 50%, 75%, 100%
selector: freeleech
case:
@@ -161,16 +175,20 @@ search:
75%: 0.25
100%: 0 # freeleech
"*": 0 # catch errors
- uploadvolumefactor:
+ downloadvolumefactor:
+ text: "{{ if .Result._featured }}0{{ else }}{{ .Result.downloadvolumefactor_freeleech }}{{ end }}"
+ uploadvolumefactor_double_upload:
# api returns False, True
selector: double_upload
case:
False: 1 # normal
True: 2 # double
-# global MR is 0.4 but torrents must be seeded for 7 days regardless of ratio
+ uploadvolumefactor:
+ text: "{{ if .Result._featured }}2{{ else }}{{ .Result.uploadvolumefactor_double_upload }}{{ end }}"
+# global MR is 0.4 but torrents must be seeded for 2 days regardless of ratio
# minimumratio:
# text: 0.4
minimumseedtime:
- # 7 day (as seconds = 7 x 24 x 60 x 60)
- text: 604800
-# json UNIT3D 7.2.5
+ # 2 days (as seconds = 2 x 24 x 60 x 60)
+ text: 172800
+# json UNIT3D 8.3.3
diff --git a/mock-htpc/prowlarr/Definitions/onejav.yml b/mock-htpc/prowlarr/Definitions/onejav.yml
index ecbe435..94234ff 100644
--- a/mock-htpc/prowlarr/Definitions/onejav.yml
+++ b/mock-htpc/prowlarr/Definitions/onejav.yml
@@ -17,10 +17,8 @@ caps:
search: [q]
settings:
- - name: flaresolverr-onejav
- type: info
- label: FlareSolverr
- default: This site may use Cloudflare DDoS Protection, therefore Prowlarr requires FlareSolverr to access it.
If you have issues downloading, perform a keyword search (e.g. video) so FlareSolverr can grab new cookies.
+ - name: info_flaresolverr
+ type: info_flaresolverr
search:
paths:
diff --git a/mock-htpc/prowlarr/Definitions/onlyencodes-api.yml b/mock-htpc/prowlarr/Definitions/onlyencodes-api.yml
index fa3929c..5940a96 100644
--- a/mock-htpc/prowlarr/Definitions/onlyencodes-api.yml
+++ b/mock-htpc/prowlarr/Definitions/onlyencodes-api.yml
@@ -1,7 +1,7 @@
---
id: onlyencodes-api
-name: OnlyEncodes (API)
-description: "OnlyEncodes is a Private Tracker for MOVIES / TV"
+name: OnlyEncodes+ (API)
+description: "OnlyEncodes+ is a Private Tracker for MOVIES / TV"
language: en-US
type: private
encoding: UTF-8
@@ -25,11 +25,15 @@ settings:
- name: info_key
type: info
label: About your API key
- default: "Find or Generate a new API Token by accessing your OnlyEncodes account My Settings page and clicking on the API Key tab."
+ default: "Find or Generate a new API Token by accessing your OnlyEncodes+ account My Settings page and clicking on the API Key tab."
- name: freeleech
type: checkbox
label: Search freeleech only
default: false
+ - name: single_file_release_use_filename
+ type: checkbox
+ label: Use filename as title for single file releases
+ default: true
- name: sort
type: select
label: Sort requested from site
@@ -59,11 +63,12 @@ login:
- selector: a[href*="/login"]
message:
text: "The API key was not accepted by {{ .Config.sitelink }}."
+ - selector: :root:contains("Account is Banned")
search:
paths:
- # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v7.0.0)
- # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L349
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
- path: "/api/torrents/filter"
response:
type: json
@@ -96,8 +101,15 @@ search:
fields:
category:
selector: category_id
- title:
+ title_optional:
selector: name
+ title_filename:
+ selector: "files[0].name"
+ optional: true
+ files:
+ selector: num_file
+ title:
+ text: "{{ if and (.Config.single_file_release_use_filename) (eq .Result.files \"1\") (.Result.title_filename) }}{{ .Result.title_filename }}{{ else }}{{ .Result.title_optional }}{{ end }}"
details:
selector: details_link
download:
@@ -118,8 +130,6 @@ search:
genre:
selector: meta.genres
filters:
- - name: re_replace
- args: ["(?i)^None$", ""]
- name: re_replace
args: ["(?i)(Science Fiction)", "Science_Fiction"]
- name: re_replace
@@ -128,8 +138,6 @@ search:
args: [" & ", "_&_"]
description:
text: "{{ .Result.genre }}"
- files:
- selector: num_file
seeders:
selector: seeders
leechers:
@@ -146,7 +154,12 @@ search:
args: "MM/dd/yyyy HH:mm:ss zzz"
size:
selector: size
- downloadvolumefactor:
+ _featured:
+ selector: featured
+ case:
+ False: "{{ .False }}"
+ True: "{{ .True }}"
+ downloadvolumefactor_freeleech:
# api returns 0%, 25%, 50%, 75%, 100%
selector: freeleech
case:
@@ -156,16 +169,20 @@ search:
75%: 0.25
100%: 0 # freeleech
"*": 0 # catch errors
- uploadvolumefactor:
+ downloadvolumefactor:
+ text: "{{ if .Result._featured }}0{{ else }}{{ .Result.downloadvolumefactor_freeleech }}{{ end }}"
+ uploadvolumefactor_double_upload:
# api returns False, True
selector: double_upload
case:
False: 1 # normal
True: 2 # double
+ uploadvolumefactor:
+ text: "{{ if .Result._featured }}2{{ else }}{{ .Result.uploadvolumefactor_double_upload }}{{ end }}"
# global MR is 0.4 but torrents must be seeded for 2 days regardless of ratio
# minimumratio:
# text: 0.4
minimumseedtime:
# 2 days (as seconds = 2 x 24 x 60 x 60)
text: 172800
-# json UNIT3D 7.2.5
+# json UNIT3D 8.3.3
diff --git a/mock-htpc/prowlarr/Definitions/opencd.yml b/mock-htpc/prowlarr/Definitions/opencd.yml
index 8f88b35..5930367 100644
--- a/mock-htpc/prowlarr/Definitions/opencd.yml
+++ b/mock-htpc/prowlarr/Definitions/opencd.yml
@@ -36,10 +36,8 @@ settings:
- name: cookie
type: text
label: Cookie
- - name: info
- type: info
- label: How to get the Cookie
- default: "- Login to this tracker with your browser
- Open the DevTools panel by pressing F12
- Select the Network tab
- Click on the Doc button (Chrome Browser) or HTML button (FireFox)
- Refresh the page by pressing F5
- Click on the first row entry
- Select the Headers tab on the Right panel
- Find 'cookie:' in the Request Headers section
- Select and Copy the whole cookie string (everything after 'cookie: ') and Paste here.
"
+ - name: info_cookie
+ type: info_cookie
- name: freeleech
type: checkbox
label: Search freeleech only
@@ -66,6 +64,7 @@ settings:
default: For best results, change the Torrents per page: setting to 100 on your account profile. Default is 50.
login:
+ # switched from the form method to the cookie method due to https://github.com/Prowlarr/Prowlarr/issues/792
method: cookie
inputs:
cookie: "{{ .Config.cookie }}"
diff --git a/mock-htpc/prowlarr/Definitions/opensharing.yml b/mock-htpc/prowlarr/Definitions/opensharing.yml
new file mode 100644
index 0000000..ca8e62e
--- /dev/null
+++ b/mock-htpc/prowlarr/Definitions/opensharing.yml
@@ -0,0 +1,217 @@
+---
+id: opensharing
+name: OpenSharing
+description: "OpenSharing is a RUSSIAN Public Torrent Tracker for 3X"
+language: ru-RU
+type: public
+encoding: UTF-8
+links:
+ - https://opensharing.org/
+
+caps:
+ categorymappings:
+ - {id: 6, cat: XXX, desc: "Полнометражные XXX фильмы / Full Length Movies"}
+ - {id: 7, cat: XXX, desc: " Классика / Classic (Полнометражные фильмы снятые до 2000 года)"}
+ - {id: 8, cat: XXX, desc: " Фильмы с сюжетом / Feature Vignettes"}
+ - {id: 9, cat: XXX, desc: " Порно-пародия / Parody"}
+ - {id: 11, cat: XXX, desc: " Компиляции и фильмы без сюжета / Movies without a story"}
+ - {id: 36, cat: XXX, desc: " Фильмы с Русским переводом"}
+ - {id: 37, cat: XXX, desc: " Эротические фильмы / Erotic Movies"}
+ - {id: 38, cat: XXX, desc: " Документальные фильмы 18+ / Documentary 18+"}
+ - {id: 39, cat: XXX, desc: " Паки полнометражных фильмов / Full Length Movies Packs"}
+ - {id: 12, cat: XXX, desc: "Русское порно / Russian - Фильмы и ролики"}
+ - {id: 13, cat: XXX, desc: " Порнофильмы с Русскими актрисами / Movies with Russian actresses"}
+ - {id: 14, cat: XXX, desc: " Сцены и ролики с Русскими актрисами / Russian Movie Scenes & SiteRip's"}
+ - {id: 15, cat: XXX, desc: " Паки видео с Русскими актрисами / Russian Video Packs"}
+ - {id: 28, cat: XXX, desc: "Зарубежные ролики по жанрам / Foreign videos by genre"}
+ - {id: 27, cat: XXX, desc: " Сцены из фильмов / Movie Scenes"}
+ - {id: 26, cat: XXX, desc: " Порно-кастинги / Casting"}
+ - {id: 19, cat: XXX, desc: " Family Roleplay, Incest & Taboo"}
+ - {id: 21, cat: XXX, desc: " Public & Reality, Sex In Car, Outdoors"}
+ - {id: 20, cat: XXX, desc: " Анал и ДП / Anal & DP"}
+ - {id: 29, cat: XXX, desc: " Секс втроём / Threesomes"}
+ - {id: 30, cat: XXX, desc: " Группавуха / Group & Gangbang"}
+ - {id: 35, cat: XXX, desc: " Молоденькие / Legal Teens"}
+ - {id: 32, cat: XXX, desc: " Мамочки / MILF & Mature"}
+ - {id: 33, cat: XXX, desc: " Бабушки / Grannies"}
+ - {id: 40, cat: XXX, desc: " Pornstars & Other"}
+ - {id: 34, cat: XXX, desc: " Паки порнороликов / Video Packs"}
+ - {id: 64, cat: XXX, desc: "Этническое порно / Ethnic Porn - Фильмы и ролики"}
+ - {id: 65, cat: XXX, desc: " Межрасовый секс / Interracial - Сцены и ролики"}
+ - {id: 68, cat: XXX, desc: " Негритянки и Темнокожие / Ebony & Arab - Сцены и ролики"}
+ - {id: 66, cat: XXX, desc: " Азиатки / Asian - Сцены и ролики"}
+ - {id: 67, cat: XXX, desc: " Латинки / Latin - Сцены и ролики"}
+ - {id: 83, cat: XXX, desc: " Полнометражные азиатские и этнические фильмы / Full-length ethnic films"}
+ - {id: 105, cat: XXX, desc: " Этническое порно / Ethnic Porn - Паки роликов и фильмов"}
+ - {id: 84, cat: XXX, desc: "Оральный секс / Blowjob & Deep Throat, Licking - Фильмы и ролики"}
+ - {id: 86, cat: XXX, desc: " Оральный секс / Blowjob & Deep Throat, Licking - Сцены и ролики"}
+ - {id: 87, cat: XXX, desc: " Групповой оральный секс / Blowbang & Bukkake - Сцены и ролики"}
+ - {id: 85, cat: XXX, desc: " Оральный секс / Blowjob & Deep Throat, Licking - Полнометражные фильмы"}
+ - {id: 61, cat: XXX, desc: "Masturbation, Solo & Posing - Фильмы и ролики"}
+ - {id: 62, cat: XXX, desc: " Мастурбация / Masturbation"}
+ - {id: 63, cat: XXX, desc: " Posing & Striptease"}
+ - {id: 2, cat: XXX, desc: "Любительское порно / Amateur & Homemade"}
+ - {id: 3, cat: XXX, desc: " Русское любительское XXX видео / Russian Amateur"}
+ - {id: 18, cat: XXX, desc: " Зарубежное любительское порно / Foreign amateur"}
+ - {id: 4, cat: XXX, desc: " Порно чаты / WEBCam"}
+ - {id: 10, cat: XXX, desc: " Скрытые камеры / Spycam"}
+ - {id: 5, cat: XXX, desc: " Паки любительского порно / Amateur porn packs"}
+ - {id: 110, cat: XXX, desc: "Только для зарегистрированных / For Registered Members Only"}
+ - {id: 112, cat: XXX, desc: " Полнометражные фильмы / Full-length Movies"}
+ - {id: 113, cat: XXX, desc: " Сцены и ролики / Scenes & Videos"}
+ - {id: 114, cat: XXX, desc: " Анимация 18+ / Animation 18+"}
+ - {id: 116, cat: XXX, desc: " Игры для взрослых / Porn games"}
+ - {id: 115, cat: XXX, desc: " Фото, Обои, Картинки / Photos, Wallpapers & Pictures"}
+ - {id: 117, cat: XXX, desc: " Видео паки / Video Packs"}
+ - {id: 16, cat: XXX, desc: "Фетиш и Нетрадиционное порно / Special Interest Movies & Clips"}
+ - {id: 43, cat: XXX, desc: "Rough Sex & BDSM - Фильмы и ролики"}
+ - {id: 17, cat: XXX, desc: " Rough Sex, BDSM & Bondage - Полнометражные фильмы"}
+ - {id: 46, cat: XXX, desc: " Постановочные изнасилования / Pseudo-Rape - Сцены и ролики"}
+ - {id: 41, cat: XXX, desc: " Rough Sex, BDSM & Bondage - Сцены и ролики"}
+ - {id: 45, cat: XXX, desc: " Ролики и фильмы от "LegalPorno ""}
+ - {id: 44, cat: XXX, desc: " Fisting & Dildo - Сцены и ролики"}
+ - {id: 47, cat: XXX, desc: "Фетиш / Fetish - Фильмы и ролики"}
+ - {id: 49, cat: XXX, desc: " Фетиш / Fetish - Полнометражные фильмы"}
+ - {id: 109, cat: XXX, desc: " Cuckold / Cheating - Сцены и ролики"}
+ - {id: 99, cat: XXX, desc: " Alt-Porn / Alt Girls - Сцены и ролики"}
+ - {id: 106, cat: XXX, desc: " Cosplay - Сцены и ролики"}
+ - {id: 53, cat: XXX, desc: " Fetish Wear / Latex, Uniform, Panties, Lingerie, Stockings - Сцены и ролики"}
+ - {id: 54, cat: XXX, desc: " Большие сиськи и жопы / Big Boobs & Big Ass - Сцены и ролики"}
+ - {id: 48, cat: XXX, desc: " Foot Fetish, Footjob & Feet - Сцены и ролики"}
+ - {id: 55, cat: XXX, desc: " Толстушки / BBW & Plump Woman - Сцены и ролики"}
+ - {id: 56, cat: XXX, desc: " Худенькие и Миниатюрные / Skinny & Petite - Сцены и ролики"}
+ - {id: 60, cat: XXX, desc: " Массаж / Massage - Сцены и ролики"}
+ - {id: 98, cat: XXX, desc: " Wet & Oiled - Сцены и ролики"}
+ - {id: 51, cat: XXX, desc: " Femdom & Domination - Сцены и ролики"}
+ - {id: 50, cat: XXX, desc: " Мохнатки / Hairy Pussy & Bush - Сцены и ролики"}
+ - {id: 57, cat: XXX, desc: " Squirting / Pissing & Pee - Сцены и ролики"}
+ - {id: 52, cat: XXX, desc: " Glory Hole - Сцены и ролики"}
+ - {id: 107, cat: XXX, desc: " Medical Fetish - Сцены и ролики"}
+ - {id: 58, cat: XXX, desc: " Беременные / Pregnant - Сцены и ролики"}
+ - {id: 104, cat: XXX, desc: " Пьяные и Спящие / Drunk & Sleeping - Сцены и ролики"}
+ - {id: 59, cat: XXX, desc: " Карлики / Midgets - Сцены и ролики"}
+ - {id: 108, cat: XXX, desc: " Разное / Various Fetishes - Сцены и ролики"}
+ - {id: 69, cat: XXX, desc: "Лесбиянки / Lesbians - Фильмы и ролики"}
+ - {id: 70, cat: XXX, desc: " Полнометражные лесби-фильмы / Full length lesbian movies"}
+ - {id: 71, cat: XXX, desc: " Лесбиянки / Lesbians - Сцены и ролики"}
+ - {id: 72, cat: XXX, desc: " Лесбийский страпон / Lesbian Strap-on - Сцены и ролики"}
+ - {id: 73, cat: XXX, desc: " All Girl / Lesbians - Video Pack"}
+ - {id: 42, cat: XXX, desc: "Fetish, Rough Sex & BDSM - Video Pack"}
+ - {id: 24, cat: XXX, desc: "Анимация, игры, фото и картинки"}
+ - {id: 23, cat: XXX, desc: "Анимация 18+ / Animation 18+"}
+ - {id: 74, cat: XXX, desc: " Мультфильмы18+ / Cartoons 18+"}
+ - {id: 75, cat: XXX, desc: " Хентай 18+ / Hentai 18+"}
+ - {id: 76, cat: XXX, desc: " Паки мультфильмов 18+ / Animation packs 18+"}
+ - {id: 77, cat: XXX, desc: "Фото, Обои и Картинки / Photos, Wallpapers & Pictures"}
+ - {id: 79, cat: XXX, desc: " Любительское фото / Amateur photo"}
+ - {id: 80, cat: XXX, desc: " Подборки сетов / Picture Sets Packs"}
+ - {id: 81, cat: XXX, desc: " Подборки по актрисам / Actresses Picture Packs"}
+ - {id: 82, cat: XXX, desc: " Сборники фото и обоев, разное / Collections of Photos & Wallpapers"}
+ - {id: 78, cat: XXX, desc: "Игры 18+ / Porn games"}
+ - {id: 102, cat: XXX, desc: " Визуальные новеллы / Visual Novels"}
+ - {id: 103, cat: XXX, desc: " Ролевые / Role-Playing"}
+ - {id: 88, cat: XXX, desc: "Общий форум"}
+ - {id: 100, cat: XXX, desc: "Правила & FAQ"}
+ - {id: 89, cat: XXX, desc: "Новости и объявления"}
+ - {id: 90, cat: XXX, desc: "Тех. раздел"}
+ - {id: 91, cat: XXX, desc: "Стол заказов"}
+ - {id: 92, cat: XXX, desc: "Помогите опознать!"}
+ - {id: 93, cat: XXX, desc: "Свободное общение"}
+ - {id: 94, cat: XXX, desc: "Форум релизёров"}
+ - {id: 95, cat: XXX, desc: " Скриншоты"}
+ - {id: 96, cat: XXX, desc: " MediaInfo"}
+ - {id: 97, cat: XXX, desc: " Разное"}
+ - {id: 101, cat: XXX, desc: "Архив"}
+
+ modes:
+ search: [q]
+
+settings:
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: t
+ options:
+ t: created
+ ts: seeders
+ sz: size
+ i: title
+ - name: type
+ type: select
+ label: Order requested from site
+ default: d
+ options:
+ d: desc
+ a: asc
+
+search:
+ paths:
+ # https://opensharing.org/search.php?tracker_search=torrent&keywords=2024&terms=all&author=&fid[]=3&fid[]=18&sc=1&sf=titleonly&sk=t&sd=d&sr=topics&st=0&ch=300&t=0&submit=Поиск
+ - path: search.php
+ inputs:
+ tracker_search: torrent
+ keywords: "{{ if .Keywords }}{{ .Keywords }}{{ else }}{{ .Today.Year }}{{ end }}"
+ terms: all
+ author: ""
+ sc: 1
+ sf: titleonly
+ sr: topics
+ sk: "{{ .Config.sort }}"
+ sd: "{{ .Config.type }}"
+ st: 0
+ ch: 300
+ t: 0
+ submit: Поиск
+ $raw: "{{ range .Categories }}&fid[]={{.}}{{end}}"
+
+ rows:
+ selector: table.tablebg > tbody > tr:has(a[href^="./download/file.php?id="])
+
+ fields:
+ category:
+ selector: a[href^="./viewtopic.php?f="]
+ attribute: href
+ filters:
+ - name: querystring
+ args: f
+ title:
+ selector: a.topictitle
+ details:
+ selector: a.topictitle
+ attribute: href
+ download:
+ selector: a[href^="./download/file.php?id="]
+ attribute: href
+ size:
+ selector: p.gensmall > b
+ filters:
+ - name: replace
+ args: ["ТБ", "TB"]
+ - name: replace
+ args: ["ГБ", "GB"]
+ - name: replace
+ args: ["МБ", "MB"]
+ - name: replace
+ args: ["КБ", "KB"]
+ seeders:
+ selector: span.seed
+ leechers:
+ selector: span.leech
+ grabs:
+ selector: span.complet
+ date:
+ # (09.03.2020)
+ selector: a.topictitle
+ optional: true
+ default: now
+ # do not append TZ else text {{if}} will not work if date not found
+ filters:
+ - name: regexp
+ args: (\d{2}\.\d{2}\.\d{4})
+ - name: dateparse
+ args: "dd.MM.yyyy"
+ downloadvolumefactor:
+ text: 0
+ uploadvolumefactor:
+ text: 1
+# phpBB
diff --git a/mock-htpc/prowlarr/Definitions/oshenpt.yml b/mock-htpc/prowlarr/Definitions/oshenpt.yml
index dd7f155..995921e 100644
--- a/mock-htpc/prowlarr/Definitions/oshenpt.yml
+++ b/mock-htpc/prowlarr/Definitions/oshenpt.yml
@@ -1,14 +1,14 @@
---
id: oshenpt
name: OshenPT
-description: "OshenPT is a CHINESE Private Torrent Tracker for HD Movies, TV, Music"
+description: "OshenPT is a CHINESE Private Torrent Tracker for HD MOVIES / TV / GENERAL"
language: zh-CN
type: private
encoding: UTF-8
links:
- - http://www.oshen.win/
+ - https://www.oshen.win/
legacylinks:
- - https://www.oshen.win/ # forces http
+ - http://www.oshen.win/
caps:
categorymappings:
@@ -192,4 +192,4 @@ search:
description:
selector: td:nth-child(2)
remove: a, b, font, img, span
-# NexusPHP v1.8.9 2023-11-15
+# NexusPHP v1.8.14 2024-10-04
diff --git a/mock-htpc/prowlarr/Definitions/ourbits.yml b/mock-htpc/prowlarr/Definitions/ourbits.yml
index 63073e4..1b49489 100644
--- a/mock-htpc/prowlarr/Definitions/ourbits.yml
+++ b/mock-htpc/prowlarr/Definitions/ourbits.yml
@@ -32,10 +32,8 @@ settings:
- name: cookie
type: text
label: Cookie
- - name: info
- type: info
- label: How to get the Cookie
- default: "- Login to this tracker with your browser
- Open the DevTools panel by pressing F12
- Select the Network tab
- Click on the Doc button (Chrome Browser) or HTML button (FireFox)
- Refresh the page by pressing F5
- Click on the first row entry
- Select the Headers tab on the Right panel
- Find 'cookie:' in the Request Headers section
- Select and Copy the whole cookie string (everything after 'cookie: ') and Paste here.
"
+ - name: info_cookie
+ type: info_cookie
- name: freeleech
type: checkbox
label: Search freeleech only
@@ -66,12 +64,13 @@ settings:
default: "Cherish your user account. Inactive accounts would be deleted based on the following rules:- Veteran User or above would never be deleted
- Elite User or above would never be deleted if parked (at User CP)
- Parked accounts would be deleted if users have not logged in for more than 400 days in a row
- Un-parked accounts would be deleted if users have not logged in for more than 150 days in a row
- Accounts with both uploaded and downloaded amount being 0 would be deleted if users have not logged in for more than 7 days in a row.
"
login:
+ # switched from the form method to the cookie method due to #8881
method: cookie
inputs:
cookie: "{{ .Config.cookie }}"
test:
path: index.php
- selector: a[href="logout.php"]
+ selector: a[href*="logout.php?token="]
search:
paths:
diff --git a/mock-htpc/prowlarr/Definitions/oxtorrent-co.yml b/mock-htpc/prowlarr/Definitions/oxtorrent-co.yml
new file mode 100644
index 0000000..18806f0
--- /dev/null
+++ b/mock-htpc/prowlarr/Definitions/oxtorrent-co.yml
@@ -0,0 +1,116 @@
+---
+id: oxtorrent-co
+name: OxTorrent
+description: "OxTorrent is a FRENCH Public Torrent Tracker for TV / MOVIES / GENERAL"
+language: fr-FR
+type: public
+encoding: UTF-8
+links:
+ - https://www.oxtorrent.co/
+legacylinks:
+ - https://oxtorrent.unblockit.download/
+
+caps:
+ categorymappings:
+ - {id: Films, cat: Movies, desc: "Movies"}
+ - {id: Séries, cat: TV, desc: "TV"}
+ - {id: Musique, cat: Audio, desc: "Music"}
+ - {id: Ebook, cat: Books, desc: "EBooks"}
+ - {id: Logiciels, cat: PC, desc: "Software"}
+ - {id: Jeux-PC, cat: PC/Games, desc: "PC Games"}
+ - {id: Jeux-Consoles, cat: Console, desc: "Console Games"}
+
+ modes:
+ search: [q]
+ tv-search: [q, season, ep]
+ movie-search: [q]
+ music-search: [q]
+ book-search: [q]
+ allowrawsearch: true
+
+settings:
+ - name: multilang
+ type: checkbox
+ label: Replace MULTi by another language in release name
+ default: false
+ - name: multilanguage
+ type: select
+ label: Replace MULTi by this language
+ default: FRENCH
+ options:
+ FRENCH: FRENCH
+ MULTi FRENCH: MULTi FRENCH
+ ENGLISH: ENGLISH
+ MULTi ENGLISH: MULTi ENGLISH
+ VOSTFR: VOSTFR
+ MULTi VOSTFR: MULTi VOSTFR
+ - name: vostfr
+ type: checkbox
+ label: Replace VOSTFR and SUBFRENCH with ENGLISH
+ default: false
+
+download:
+ selectors:
+ - selector: a[href^="magnet:?"]
+ attribute: href
+ - selector: script:contains("magnet:?")
+ filters:
+ - name: regexp
+ args: "\\s'(magnet:\\?.+?)';"
+
+search:
+ paths:
+ - path: "{{ if .Keywords }}recherche/{{ .Keywords }}{{ else }}{{ end }}"
+ keywordsfilters:
+ # if searching for season packs switch S01 to saison 1 #9712
+ - name: re_replace
+ args: ["(?i)(S0)(\\d{1,2})$", "saison $2"]
+ - name: re_replace
+ args: ["(?i)(S)(\\d{1,3})$", "saison $2"]
+
+ rows:
+ selector: table.table-hover > tbody > tr
+ filters:
+ - name: andmatch
+
+ fields:
+ category:
+ selector: td:nth-child(1) i
+ attribute: class
+ title_phase1:
+ selector: td:nth-child(1) a
+ filters:
+ - name: re_replace
+ args: ["(?i)\\b(FRENCH|MULTI|TRUEFRENCH|VOSTFR|SUBFRENCH)\\b(.+?)(\\b(19|20\\d{2})\\b)$", "$3 $1$2"]
+ title_vostfr:
+ text: "{{ .Result.title_phase1 }}"
+ filters:
+ - name: re_replace
+ args: ["(?i)\\b(vostfr|subfrench)\\b", "ENGLISH"]
+ title_phase2:
+ text: "{{ if .Config.vostfr }}{{ .Result.title_vostfr }}{{ else }}{{ .Result.title_phase1 }}{{ end }}"
+ title_multilang:
+ text: "{{ .Result.title_phase2 }}"
+ filters:
+ - name: re_replace
+ args: ["(?i)\\b(MULTI(?!.*(?:FRENCH|ENGLISH|VOSTFR)))\\b", "{{ .Config.multilanguage }}"]
+ title:
+ text: "{{ if .Config.multilang }}{{ .Result.title_multilang }}{{ else }}{{ .Result.title_phase2 }}{{ end }}"
+ details:
+ selector: td:nth-child(1) a
+ attribute: href
+ download:
+ text: "{{ .Result.details }}"
+ size:
+ selector: td:nth-child(2)
+ date:
+ text: now
+ seeders:
+ selector: td:nth-child(3)
+ leechers:
+ selector: td:nth-child(4)
+ downloadvolumefactor:
+ text: 0
+ uploadvolumefactor:
+ text: 1
+# engine n/a
diff --git a/mock-htpc/prowlarr/Definitions/oxtorrent-vip.yml b/mock-htpc/prowlarr/Definitions/oxtorrent-vip.yml
new file mode 100644
index 0000000..df4b689
--- /dev/null
+++ b/mock-htpc/prowlarr/Definitions/oxtorrent-vip.yml
@@ -0,0 +1,164 @@
+---
+id: oxtorrent-vip
+replaces:
+ - oxtorrent
+ - torrent911
+name: OxTorrent-vip
+description: "OxTorrent-vip is a French Public site for TV / MOVIES / GENERAL"
+language: fr-FR
+type: public
+encoding: UTF-8
+# to fetch current domain use https://www.protege-torrent.com/Oxtorrent
+links:
+ - https://www.oxtorrent.gy/
+legacylinks:
+ - https://www.protege-liens.com/
+ - https://www.protege-liens.net/
+ # latest domains list
+ - https://www.protege-torrent.com/
+ - https://www.site-torrent.com/
+ - https://www.rantop.org/
+ - https://www.torrent.ws/
+ - https://www.torrent.onl/
+ - https://oxtorrent.blog/
+ # actual legacylinks
+ - https://www.oxtorrent.nl/
+ - https://www.oxtorrent.sbs/
+ - https://www.oxtorrent.wtf/
+ - https://www.oxtorrent.tf/
+ - https://www.oxtorrent.day/
+ - https://oxtorrent.proxyninja.org/ # currently proxies protege-torrent page
+ - https://www.oxtorrent.zip/
+ - https://www.oxtorrent.vip/
+ - https://www.oxtorrent.lol/
+ - https://www.oxtorrent.la/
+ - https://www.oxtorrent.uno/
+ - https://www.oxtorrent.st/
+ - https://www.oxtorrent.gl/
+
+caps:
+ categorymappings:
+ - {id: Films, cat: Movies, desc: "Movies"}
+ - {id: Animes, cat: TV/Anime, desc: "Anime"}
+ - {id: Documentaires, cat: TV/Documentary, desc: "Documentaires"}
+ - {id: Séries, cat: TV, desc: "TV"}
+ - {id: Musiques, cat: Audio, desc: "Music"}
+ - {id: Ebooks, cat: Books, desc: "Books"}
+ - {id: Livres, cat: Books, desc: "Livres"}
+ - {id: Logiciels, cat: PC, desc: "Software"}
+ - {id: Applications, cat: PC, desc: "Applications"}
+ - {id: Jeux-PC, cat: PC/Games, desc: "PC Games"}
+ - {id: Jeux-Consoles, cat: Console/XBox 360, desc: "Console Games"}
+ - {id: Porno, cat: XXX, desc: "Porno"}
+ - {id: Spectacles, cat: TV/Other, desc: "Spectacles"}
+ - {id: Sports, cat: TV/Sport, desc: "Sports"}
+ - {id: Formations, cat: Other, desc: "Formations"}
+ - {id: Vidéos, cat: TV, desc: "Vidéos"}
+
+ modes:
+ search: [q]
+ tv-search: [q, season, ep]
+ movie-search: [q]
+ music-search: [q]
+ book-search: [q]
+ allowrawsearch: true
+
+settings:
+ - name: multilang
+ type: checkbox
+ label: Replace MULTi by another language in release name
+ default: false
+ - name: multilanguage
+ type: select
+ label: Replace MULTi by this language
+ default: FRENCH
+ options:
+ FRENCH: FRENCH
+ MULTi FRENCH: MULTi FRENCH
+ ENGLISH: ENGLISH
+ MULTi ENGLISH: MULTi ENGLISH
+ VOSTFR: VOSTFR
+ MULTi VOSTFR: MULTi VOSTFR
+ - name: vostfr
+ type: checkbox
+ label: Replace VOSTFR and SUBFRENCH with ENGLISH
+ default: false
+
+download:
+ selectors:
+ - selector: a[href^="magnet:?"]
+ attribute: href
+ - selector: script:contains("magnet:?")
+ filters:
+ - name: regexp
+ args: "\\s'(magnet:\\?.+?)';"
+
+search:
+ paths:
+ - path: "{{ if .Keywords }}recherche/{{ .Keywords }}{{ else }}derniers{{ end }}"
+ keywordsfilters:
+ # if searching for season packs swith S01 to saison 1 #9712
+ - name: re_replace
+ args: ["(?i)(S0)(\\d{1,2})$", "saison $2"]
+ - name: re_replace
+ args: ["(?i)(S)(\\d{1,3})$", "saison $2"]
+
+ rows:
+ selector: table.table-hover > tbody > tr:has(td a[href])
+ filters:
+ - name: andmatch
+
+ fields:
+ category:
+ selector: td:nth-child(1) i
+ attribute: class
+ title_phase1:
+ selector: td:nth-child(1) a
+ filters:
+ - name: re_replace
+ args: ["(?i)\\b(FRENCH|MULTI|TRUEFRENCH|VOSTFR|SUBFRENCH)\\b(.+?)(\\b(19|20\\d{2})\\b)$", "$3 $1$2"]
+ title_vostfr:
+ text: "{{ .Result.title_phase1 }}"
+ filters:
+ - name: re_replace
+ args: ["(?i)\\b(vostfr|subfrench)\\b", "ENGLISH"]
+ title_phase2:
+ text: "{{ if .Config.vostfr }}{{ .Result.title_vostfr }}{{ else }}{{ .Result.title_phase1 }}{{ end }}"
+ title_multilang:
+ text: "{{ .Result.title_phase2 }}"
+ filters:
+ - name: re_replace
+ args: ["(?i)\\b(MULTI(?!.*(?:FRENCH|ENGLISH|VOSTFR)))\\b", "{{ .Config.multilanguage }}"]
+ title:
+ text: "{{ if .Config.multilang }}{{ .Result.title_multilang }}{{ else }}{{ .Result.title_phase2 }}{{ end }}"
+ details_href:
+ selector: td:nth-child(1) a[href]
+ attribute: href
+ optional: true
+ filters:
+ - name: regexp
+ args: (/?detail/\d+)
+ details_onclick:
+ selector: td:nth-child(1) a[onclick]
+ attribute: onclick
+ optional: true
+ filters:
+ - name: regexp
+ args: (/?detail/\d+)
+ details:
+ text: "{{ or .Result.details_href .Result.details_onclick }}"
+ download:
+ text: "{{ .Result.details }}"
+ size:
+ selector: td:nth-child(2)
+ date:
+ text: now
+ seeders:
+ selector: td:nth-child(3)
+ leechers:
+ selector: td:nth-child(4)
+ downloadvolumefactor:
+ text: 0
+ uploadvolumefactor:
+ text: 1
+# engine n/a
diff --git a/mock-htpc/prowlarr/Definitions/pier720.yml b/mock-htpc/prowlarr/Definitions/pier720.yml
index 06de932..6a6d4e3 100644
--- a/mock-htpc/prowlarr/Definitions/pier720.yml
+++ b/mock-htpc/prowlarr/Definitions/pier720.yml
@@ -16,6 +16,7 @@ caps:
- {id: 32, cat: TV/Sport, desc: "Basketball"}
- {id: 34, cat: TV/Sport, desc: "Basketball - NBA"}
- {id: 87, cat: TV/Sport, desc: "Basketball - NBA Playoffs"}
+ - {id: 119, cat: TV/Sport, desc: "Basketball - NBA Playoffs - 2024"}
- {id: 117, cat: TV/Sport, desc: "Basketball - NBA Playoffs - 2023"}
- {id: 113, cat: TV/Sport, desc: "Basketball - NBA Playoffs - 2022"}
- {id: 111, cat: TV/Sport, desc: "Basketball - NBA Playoffs - 2021"}
@@ -37,16 +38,16 @@ caps:
- {id: 43, cat: TV/Sport, desc: "Football - NFL"}
- {id: 66, cat: TV/Sport, desc: "Football - Super Bowls"}
- {id: 53, cat: TV/Sport, desc: "Football - NCAA"}
- - {id: 110, cat: TV/Sport, desc: "Football - USFL"}
- {id: 99, cat: TV/Sport, desc: "Football - CFL"}
+ - {id: 110, cat: TV/Sport, desc: "Football - USFL"}
- {id: 54, cat: TV/Sport, desc: "Football - Reviews and highlights"}
- {id: 97, cat: TV/Sport, desc: "Football - Documentaries"}
- {id: 44, cat: TV/Sport, desc: "Football - Other"}
- - {id: 104, cat: TV/Sport, desc: "Football - XFL"}
- {id: 101, cat: TV/Sport, desc: "Football - AAF"}
- {id: 46, cat: TV/Sport, desc: "Hockey"}
- {id: 48, cat: TV/Sport, desc: "Hockey - NHL"}
- {id: 88, cat: TV/Sport, desc: "Hockey - NHL Playoffs"}
+ - {id: 120, cat: TV/Sport, desc: "Hockey - NHL Playoffs - 2024"}
- {id: 118, cat: TV/Sport, desc: "Hockey - NHL Playoffs - 2023"}
- {id: 114, cat: TV/Sport, desc: "Hockey - NHL Playoffs - 2022"}
- {id: 112, cat: TV/Sport, desc: "Hockey - NHL Playoffs - 2021"}
@@ -89,16 +90,12 @@ settings:
type: text
label: Cookie
- name: info_cookie
- type: info
- label: How to get the Cookie
- default: "- Login to this tracker with your browser
- Open the DevTools panel by pressing F12
- Select the Network tab
- Click on the Doc button (Chrome Browser) or HTML button (FireFox)
- Refresh the page by pressing F5
- Click on the first row entry
- Select the Headers tab on the Right panel
- Find 'cookie:' in the Request Headers section
- Select and Copy the whole cookie string (everything after 'cookie: ') and Paste here.
"
+ type: info_cookie
- name: useragent
type: text
label: User-Agent
- name: info_useragent
- type: info
- label: How to get the User-Agent
- default: "- From the same place you fetched the cookie,
- Find 'user-agent:' in the Request Headers section
- Select and Copy the whole user-agent string (everything after 'user-agent: ') and Paste here.
"
+ type: info_useragent
- name: sort
type: select
label: Sort requested from site
@@ -117,6 +114,7 @@ settings:
a: asc
login:
+ # switched from the form method to the cookie method in Nov 2020, reason not provided
method: cookie
inputs:
cookie: "{{ .Config.cookie }}"
diff --git a/mock-htpc/prowlarr/Definitions/pignetwork.yml b/mock-htpc/prowlarr/Definitions/pignetwork.yml
index f57a600..b20b6e4 100644
--- a/mock-htpc/prowlarr/Definitions/pignetwork.yml
+++ b/mock-htpc/prowlarr/Definitions/pignetwork.yml
@@ -36,17 +36,13 @@ settings:
- name: cookie
type: text
label: Cookie
- - name: info
- type: info
- label: How to get the Cookie
- default: "- Login to this tracker with your browser
- Open the DevTools panel by pressing F12
- Select the Network tab
- Click on the Doc button (Chrome Browser) or HTML button (FireFox)
- Refresh the page by pressing F5
- Click on the first row entry
- Select the Headers tab on the Right panel
- Find 'cookie:' in the Request Headers section
- Select and Copy the whole cookie string (everything after 'cookie: ') and Paste here.
"
+ - name: info_cookie
+ type: info_cookie
- name: useragent
type: text
label: User-Agent
- name: info_useragent
- type: info
- label: How to get the User-Agent
- default: "- From the same place you fetched the cookie,
- Find 'user-agent:' in the Request Headers section
- Select and Copy the whole user-agent string (everything after 'user-agent: ') and Paste here.
"
+ type: info_useragent
- name: freeleech
type: checkbox
label: Search freeleech only
@@ -81,6 +77,7 @@ settings:
default: "Account retention rules:- Nexus Master users and above will be retained forever
- Elite User users and above will not have their accounts deleted after parking their accounts (in the control panel)
- Users who have parked their accounts will be deleted if they do not log in for 180 consecutive days
- Users whose accounts have not been parked will have their accounts deleted if they do not log in for 90 consecutive days
- Users who have no traffic for 7 consecutive days or who have not logged in for 30 consecutive days (that is, the upload/download data are both 0) will be automatically banned by the system.
"
login:
+ # using cookie method because site regularly disables login page for certain events during the year #14310
method: cookie
inputs:
cookie: "{{ .Config.cookie }}"
diff --git a/mock-htpc/prowlarr/Definitions/pixelcove2fa.yml b/mock-htpc/prowlarr/Definitions/pixelcove2fa.yml
index 0754b05..12a7729 100644
--- a/mock-htpc/prowlarr/Definitions/pixelcove2fa.yml
+++ b/mock-htpc/prowlarr/Definitions/pixelcove2fa.yml
@@ -64,13 +64,12 @@ caps:
book-search: [q]
settings:
+ # using cookie method because login page can present second page for 2FA when enabled
- name: cookie
type: text
label: Cookie
- name: info_cookie
- type: info
- label: How to get the Cookie
- default: "- Login to this tracker with your browser
- Open the DevTools panel by pressing F12
- Select the Network tab
- Click on the Doc button (Chrome Browser) or HTML button (FireFox)
- Refresh the page by pressing F5
- Click on the first row entry
- Select the Headers tab on the Right panel
- Find 'cookie:' in the Request Headers section
- Select and Copy the whole cookie string (everything after 'cookie: ') and Paste here.
"
+ type: info_cookie
- name: freeleech
type: checkbox
label: Search freeleech only
diff --git a/mock-htpc/prowlarr/Definitions/polishtorrent.yml b/mock-htpc/prowlarr/Definitions/polishtorrent.yml
index de79d9f..d992a57 100644
--- a/mock-htpc/prowlarr/Definitions/polishtorrent.yml
+++ b/mock-htpc/prowlarr/Definitions/polishtorrent.yml
@@ -11,28 +11,33 @@ links:
caps:
categorymappings:
- {id: 6, cat: PC/0day, desc: "Aplikacje/Programy"}
- - {id: 4, cat: TV/Anime, desc: "Bajki/Anime"}
+ - {id: 31, cat: TV/Anime, desc: "Anime"}
+ - {id: 4, cat: Movies, desc: "Bajki"}
+ - {id: 30, cat: TV, desc: "TV Seriale Bajki"}
- {id: 1, cat: Movies/HD, desc: "Filmy HD"}
- {id: 13, cat: Movies/DVD, desc: "DVD5/9"}
- {id: 12, cat: Movies/BluRay, desc: "BD25/50_5/9"}
- {id: 14, cat: Movies/3D, desc: "Filmy 3D"}
- {id: 16, cat: Movies/SD, desc: "Filmy SD"}
- {id: 17, cat: Movies/Other, desc: "Filmy inne"}
- - {id: 15, cat: TV/Documentary, desc: "Dokumentalne"}
- {id: 5, cat: PC/Games, desc: "Gry pc"}
- {id: 24, cat: PC/Games, desc: "Gry dodatki"}
- - {id: 18, cat: PC/Mobile-Android, desc: "Mobile"}
- {id: 10, cat: Console, desc: "Gry Konsole"}
+ - {id: 18, cat: PC/Mobile-Android, desc: "Mobile"}
- {id: 19, cat: Other, desc: "Inne"}
- {id: 8, cat: Audio, desc: "Muzyka"}
- {id: 11, cat: Movies, desc: "Paczki"}
- - {id: 20, cat: Books, desc: "Book"}
+ - {id: 27, cat: TV/Other, desc: "Teatr Telewizyjny"}
- {id: 25, cat: Audio/Audiobook, desc: "Audiobook"}
+ - {id: 20, cat: Books, desc: "Book"}
- {id: 21, cat: TV/Sport, desc: "Sport"}
- - {id: 9, cat: TV/HD, desc: "Seriale HD"}
- - {id: 22, cat: TV/SD, desc: "Seriale SD"}
+ - {id: 29, cat: Movies, desc: "Stare Filmy"}
+ - {id: 22, cat: TV/SD, desc: "TV Seriale SD"}
- {id: 23, cat: Movies/UHD, desc: "Filmy 4K"}
+ - {id: 9, cat: TV/HD, desc: "TV Seriale HD"}
+ - {id: 28, cat: TV/Documentary, desc: "TV Dokument"}
- {id: 2, cat: TV/UHD, desc: "TV 4K"}
+ - {id: 15, cat: Movies, desc: "Filmy bez lektora"}
- {id: 7, cat: XXX, desc: "XXX 18+"}
modes:
@@ -54,6 +59,10 @@ settings:
type: checkbox
label: Search freeleech only
default: false
+ - name: single_file_release_use_filename
+ type: checkbox
+ label: Use filename as title for single file releases
+ default: true
- name: multilang
type: checkbox
label: Replace MULTI by another language in release name
@@ -81,6 +90,10 @@ settings:
options:
desc: desc
asc: asc
+ - name: info_activity
+ type: info
+ label: Account Inactivity
+ default: "- Your account must be at least 90 days old to be subject to deactivation.
- Last Login: You must be inactive for at least 90 days for your account to be deactivated.
- Soft deletion of accounts: Deactivated user accounts will be soft deleted 120 days after deactivation.
- User Groups: Accounts belonging to the following user groups may be automatically deactivated: Leech, User, PowerUser and SuperUser.
- Please do not disregard the above information and log in to your account regularly to avoid deactivation.
"
login:
path: /api/torrents
@@ -90,14 +103,16 @@ login:
- selector: a[href*="/login"]
message:
text: "The API key was not accepted by {{ .Config.sitelink }}."
+ - selector: :root:contains("Account is Banned")
search:
paths:
- # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v7.0.0)
- # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L349
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
- path: "/api/torrents/filter"
response:
type: json
+ noResultsMessage: "No Torrents Found"
headers:
Authorization: ["Bearer {{ .Config.apikey }}"]
@@ -114,7 +129,7 @@ search:
"free[]": "{{ if .Config.freeleech }}100{{ else }}{{ end }}"
sortField: "{{ .Config.sort }}"
sortDirection: "{{ .Config.type }}"
- perPage: 100
+ perPage: 50
keywordsfilters:
- name: re_replace
@@ -127,10 +142,17 @@ search:
fields:
category:
selector: category_id
+ title_optional:
+ selector: name
+ title_filename:
+ selector: "files[0].name"
+ optional: true
+ files:
+ selector: num_file
title_phase1:
- selector: name
+ text: "{{ if and (.Config.single_file_release_use_filename) (eq .Result.files \"1\") (.Result.title_filename) }}{{ .Result.title_filename }}{{ else }}{{ .Result.title_optional }}{{ end }}"
title_multilang:
- selector: name
+ text: "{{ .Result.title_phase1 }}"
filters:
- name: re_replace
args: ["(?i)\\b(MULTI(?!.*(?:POLISH|ENGLISH|\\bPL\\b)))\\b", "{{ .Config.multilanguage }}"]
@@ -158,8 +180,6 @@ search:
genre:
selector: meta.genres
filters:
- - name: re_replace
- args: ["(?i)^None$", ""]
- name: re_replace
args: ["(?i)(Akcja i Przygoda)", "Akcja_i_Przygoda"]
- name: re_replace
@@ -168,8 +188,6 @@ search:
args: [" & ", "_&_"]
description:
text: "{{ .Result.genre }}"
- files:
- selector: num_file
seeders:
selector: seeders
leechers:
@@ -186,7 +204,12 @@ search:
args: "MM/dd/yyyy HH:mm:ss zzz"
size:
selector: size
- downloadvolumefactor:
+ _featured:
+ selector: featured
+ case:
+ False: "{{ .False }}"
+ True: "{{ .True }}"
+ downloadvolumefactor_freeleech:
# api returns 0%, 25%, 50%, 75%, 100%
selector: freeleech
case:
@@ -196,13 +219,17 @@ search:
75%: 0.25
100%: 0 # freeleech
"*": 0 # catch errors
- uploadvolumefactor:
+ downloadvolumefactor:
+ text: "{{ if .Result._featured }}0{{ else }}{{ .Result.downloadvolumefactor_freeleech }}{{ end }}"
+ uploadvolumefactor_double_upload:
# api returns False, True
selector: double_upload
case:
False: 1 # normal
True: 2 # double
+ uploadvolumefactor:
+ text: "{{ if .Result._featured }}2{{ else }}{{ .Result.uploadvolumefactor_double_upload }}{{ end }}"
minimumseedtime:
# 7 day (as seconds = 7 x 24 x 60 x 60)
text: 604800
-# json UNIT3D 7.2.5
+# json UNIT3D 8.3.0 (custom)
diff --git a/mock-htpc/prowlarr/Definitions/polskie-torrenty.yml b/mock-htpc/prowlarr/Definitions/polskie-torrenty.yml
new file mode 100644
index 0000000..d55183e
--- /dev/null
+++ b/mock-htpc/prowlarr/Definitions/polskie-torrenty.yml
@@ -0,0 +1,213 @@
+---
+id: polskie-torrenty
+name: Polskie-Torrenty
+description: "Polskie-Torrenty is a POLISH Semi-Private Torrent Tracker for MOVIES / TV / GENERAL"
+language: pl-PL
+type: semi-private
+encoding: UTF-8
+links:
+ - https://polskie-torrenty.eu/
+
+caps:
+ categorymappings:
+ # Filmy
+ - {id: 27, cat: Movies/DVD, desc: "Filmy DVD"}
+ - {id: 30, cat: Movies/SD, desc: "Filmy DivX/XviD"}
+ - {id: 71, cat: Movies/3D, desc: "Filmy 3D"}
+ - {id: 72, cat: Movies/HD, desc: "Filmy x264/1080p"}
+ - {id: 73, cat: Movies/HD, desc: "Filmy x264/720p"}
+ - {id: 74, cat: Movies/HD, desc: "Filmy x265/h265"}
+ - {id: 75, cat: Movies/HD, desc: "Filmy x264/h264"}
+ - {id: 76, cat: Movies/HD, desc: "Filmy HD 1080p AVC"}
+ - {id: 77, cat: Movies/UHD, desc: "Filmy 4K UHD"}
+ - {id: 78, cat: Movies/SD, desc: "Filmy IVO"}
+ - {id: 79, cat: Movies/SD, desc: "Filmy TS/CAM"}
+ - {id: 88, cat: Movies/HD, desc: "Filmy x265/1080p"}
+ - {id: 89, cat: Movies/HD, desc: "Filmy x265/720p"}
+ # Seriale
+ - {id: 25, cat: TV, desc: "Seriale Polskie"}
+ - {id: 26, cat: TV/Foreign, desc: "Seriale Zagraniczne"}
+ # Dla Dzieci
+ - {id: 32, cat: Movies, desc: "Filmy/Bajki"}
+ - {id: 111, cat: Audio/Audiobook, desc: "Audiobook"}
+ - {id: 112, cat: Console, desc: "Gry"}
+ - {id: 113, cat: Other, desc: "Inne"}
+ - {id: 114, cat: Books, desc: "Kolorowanki"}
+ - {id: 115, cat: Books, desc: "Książki"}
+ - {id: 116, cat: Audio, desc: "Muzyka"}
+ - {id: 117, cat: PC, desc: "Programy"}
+ - {id: 118, cat: Audio/Video, desc: "Teledyski"}
+ # Gry
+ - {id: 34, cat: PC/Games, desc: "Gry PC"}
+ - {id: 35, cat: Console/PSP, desc: "PS2/PS3/PS4/PSP/PS VITA"}
+ - {id: 36, cat: Console/XBox, desc: "Xbox One/XBOX 360/Xbox"}
+ - {id: 37, cat: Console/NDS, desc: "NINTENDO / WII / DS"}
+ # Muzyka
+ - {id: 38, cat: Audio/Foreign, desc: "Muzyka Zagraniczna"}
+ - {id: 39, cat: Audio, desc: "Soundtracki"}
+ - {id: 40, cat: Audio/Video, desc: "Teledyski"}
+ - {id: 80, cat: Audio, desc: "Muzyka Polska"}
+ - {id: 81, cat: Audio/Video, desc: "Koncerty"}
+ # GSM/PDA
+ - {id: 42, cat: PC/Mobile-Other, desc: "Tapety GSM/PDA"}
+ - {id: 43, cat: PC/Mobile-Other, desc: "Programy GSM/PDA"}
+ - {id: 44, cat: PC/Mobile-Other, desc: "Filmy GSM/PDA"}
+ - {id: 45, cat: PC/Mobile-Other, desc: "Dzwonki GSM/PDA"}
+ - {id: 46, cat: PC/Mobile-Other, desc: "Gry GSM/PDA"}
+ # Ksiazki
+ - {id: 47, cat: Books/EBook, desc: "E-Booki"}
+ - {id: 48, cat: Audio/Audiobook, desc: "Audio-Booki"}
+ - {id: 49, cat: Books/Mags, desc: "Czasopisma"}
+ - {id: 50, cat: Books/Comics, desc: "Komiksy"}
+ # Programy
+ - {id: 51, cat: PC/0day, desc: "Windows"}
+ - {id: 52, cat: PC, desc: "Linux"}
+ - {id: 53, cat: PC/Mac, desc: "Macintosh"}
+ # Erotyka
+ - {id: 58, cat: XXX/Other, desc: "Czasopisma"}
+ - {id: 59, cat: XXX/ImageSet, desc: "Zdjęcia"}
+ - {id: 60, cat: XXX/x264, desc: "Filmy"}
+ - {id: 61, cat: XXX/Other, desc: "Gry"}
+ - {id: 63, cat: XXX/Other, desc: "Hentai+18"}
+ # Anime
+ - {id: 69, cat: TV/Anime, desc: "Anime"}
+ - {id: 70, cat: XXX/Other, desc: "Hentai"}
+ - {id: 121, cat: Books/Comics, desc: "Manga"}
+ # Inne
+ - {id: 55, cat: Other, desc: "Tapety"}
+ - {id: 57, cat: Other, desc: "Pozostale"}
+ - {id: 86, cat: Other, desc: "Śmieszne"}
+ - {id: 105, cat: Other, desc: "Design www"}
+ - {id: 106, cat: Other, desc: "Filmy (S)VCD"}
+ - {id: 107, cat: Other, desc: "Flash/Shockwave"}
+ - {id: 108, cat: Other, desc: "Fotografia"}
+ - {id: 109, cat: Other, desc: "Kursy"}
+ - {id: 110, cat: Other, desc: "Modelarstwo"}
+ # Sport
+ - {id: 92, cat: TV/Sport, desc: "Boks"}
+ - {id: 93, cat: TV/Sport, desc: "Hokej"}
+ - {id: 94, cat: TV/Sport, desc: "Koszykówka"}
+ - {id: 95, cat: TV/Sport, desc: "Kulturystyka i fitness"}
+ - {id: 96, cat: TV/Sport, desc: "MMA"}
+ - {id: 97, cat: TV/Sport, desc: "Motorowe"}
+ - {id: 98, cat: TV/Sport, desc: "Piłka nożna"}
+ - {id: 99, cat: TV/Sport, desc: "Rowerowe"}
+ - {id: 100, cat: TV/Sport, desc: "Siatkówka"}
+ - {id: 101, cat: TV/Sport, desc: "Wodne"}
+ - {id: 102, cat: TV/Sport, desc: "Wrestling"}
+ - {id: 103, cat: TV/Sport, desc: "Zapasy"}
+ - {id: 104, cat: TV/Sport, desc: "Zimowe"}
+
+ modes:
+ search: [q]
+ tv-search: [q, season, ep]
+ movie-search: [q]
+ music-search: [q]
+ book-search: [q]
+
+settings:
+ - name: username
+ type: text
+ label: Username
+ - name: password
+ type: password
+ label: Password
+ - name: multilang
+ type: checkbox
+ label: Replace MULTi by another language in release name
+ default: false
+ - name: multilanguage
+ type: select
+ label: Replace MULTi by this language
+ default: POLISH
+ options:
+ POLISH: POLISH
+ MULTi POLISH: MULTi POLISH
+
+login:
+ path: login.php
+ method: form
+ form: form[name="login"]
+ inputs:
+ uid: "{{ .Config.username }}"
+ pwd: "{{ .Config.password }}"
+ keeplogged: 1
+ error:
+ - selector: font[color="#FF0000"]
+ test:
+ path: index.php
+ selector: a[href="logout.php"]
+
+search:
+ paths:
+ # https://polskie-torrenty.eu/torrents.php?c115=1&c116=1&c117=1&c118=1&search=
+ - path: torrents.php
+ inputs:
+ $raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
+ search: "{{ .Keywords }}"
+ # does not support sorting results, or imdbid searching, or have imdb in results
+
+ rows:
+ selector: div.boxcontent > table > tbody > tr:has(a.link1)
+
+ fields:
+ categorydesc:
+ selector: div.link1 > font
+ title_phase1:
+ selector: a.link1
+ attribute: href
+ filters:
+ - name: regexp
+ args: f=(.+?)\.torrent
+ - name: urldecode
+ - name: htmldecode
+ title_multilang:
+ text: "{{ .Result.title_phase1 }}"
+ filters:
+ - name: re_replace
+ args: ["(?i)\\b(MULTI(?!.*(?:POLISH|ENGLISH|\\bPL\\b)))\\b", "{{ .Config.multilanguage }}"]
+ - name: re_replace
+ args: ["(?i)\\b(pl)\\b", "POLISH"]
+ title:
+ text: "{{ if .Config.multilang }}{{ .Result.title_multilang }}{{ else }}{{ .Result.title_phase1 }}{{ end }}"
+ details:
+ selector: a[href^="details.php?id="]
+ attribute: href
+ download:
+ selector: a.link1
+ attribute: href
+ poster:
+ selector: img
+ attribute: src
+ date:
+ selector: td.pole
+ filters:
+ - name: regexp
+ args: "(\\d{2}-\\d{2}-\\d{4})"
+ - name: dateparse
+ args: "dd-MM-yyyy"
+ size:
+ selector: td.pole
+ filters:
+ - name: regexp
+ args: "Rozmiar: (\\d+\\.\\d+ [T|G|M|K|k]B)"
+ seeders:
+ selector: td.pole
+ filters:
+ - name: regexp
+ args: "Seedów: (\\d+)"
+ leechers:
+ selector: td.pole
+ filters:
+ - name: regexp
+ args: "Peerów: (\\d+)"
+ grabs:
+ selector: td.pole
+ filters:
+ - name: regexp
+ args: "Pobrano: (\\d+)"
+ downloadvolumefactor:
+ text: 0
+ uploadvolumefactor:
+ text: 1
+# engine n/a
diff --git a/mock-htpc/prowlarr/Definitions/pornolab.yml b/mock-htpc/prowlarr/Definitions/pornolab.yml
index 77b4f33..58c1b27 100644
--- a/mock-htpc/prowlarr/Definitions/pornolab.yml
+++ b/mock-htpc/prowlarr/Definitions/pornolab.yml
@@ -21,9 +21,9 @@ caps:
- {id: 508, cat: XXX, desc: "Классические фильмы / Classic"}
- {id: 555, cat: XXX, desc: "Фильмы с сюжетом / Feature & Vignettes"}
- {id: 1845, cat: XXX, desc: "Гонзо-фильмы 1991-2010 / Gonzo 1991-2010"}
- - {id: 1673, cat: XXX, desc: "Гонзо-фильмы 2011-2024 / Gonzo 2011-2024"}
+ - {id: 1673, cat: XXX, desc: "Гонзо-фильмы 2011-2025 / Gonzo 2011-2025"}
- {id: 1112, cat: XXX, desc: "Фильмы без сюжета 1991-2010 / All Sex & Amateur 1991-2010"}
- - {id: 1718, cat: XXX, desc: "Фильмы без сюжета 2011-2024 / All Sex & Amateur 2011-2024"}
+ - {id: 1718, cat: XXX, desc: "Фильмы без сюжета 2011-2025 / All Sex & Amateur 2011-2025"}
- {id: 553, cat: XXX, desc: "Лесбо-фильмы / All Girl & Solo"}
- {id: 1143, cat: XXX, desc: "Этнические фильмы / Ethnic-Themed"}
- {id: 1646, cat: XXX, desc: "Видео для телефонов и КПК / Pocket РС & Phone Video"}
@@ -41,8 +41,8 @@ caps:
- {id: 1675, cat: XXX/Pack, desc: "Паки русских порнороликов / Russian Clips Packs"}
- {id: 36, cat: XXX, desc: "Сайтрипы с русскими актрисами 1991-2015 / Russian SiteRip's 1991-2015"}
- {id: 1830, cat: XXX, desc: "Сайтрипы с русскими актрисами 1991-2015 (HD Video) / Russian SiteRip's 1991-2015 (HD Video)"}
- - {id: 1803, cat: XXX, desc: "Сайтрипы с русскими актрисами 2016-2024 / Russian SiteRip's 2016-2024"}
- - {id: 1831, cat: XXX, desc: "Сайтрипы с русскими актрисами 2016-2024 (HD Video) / Russian SiteRip's 2016-2024 (HD Video)"}
+ - {id: 1803, cat: XXX, desc: "Сайтрипы с русскими актрисами 2016-2025 / Russian SiteRip's 2016-2025"}
+ - {id: 1831, cat: XXX, desc: "Сайтрипы с русскими актрисами 2016-2025 (HD Video) / Russian SiteRip's 2016-2025 (HD Video)"}
- {id: 1741, cat: XXX, desc: "Русские Порноролики Разное / Russian Clips (various)"}
- {id: 1676, cat: XXX, desc: "Русское любительское видео / Russian Amateur Video"}
@@ -64,6 +64,7 @@ caps:
- {id: 1857, cat: XXX, desc: "Сайтрипы 2022 (HD Video) / SiteRip's 2022 (HD Video)"}
- {id: 1861, cat: XXX, desc: "Сайтрипы 2023 (HD Video) / SiteRip's 2023 (HD Video)"}
- {id: 1867, cat: XXX, desc: "Сайтрипы 2024 (HD Video) / SiteRip's 2024 (HD Video)"}
+ - {id: 1872, cat: XXX, desc: "Сайтрипы 2025 (HD Video) / SiteRip's 2025 (HD Video)"}
- {id: 1451, cat: XXX, desc: "Сайтрипы 1991-2010 / SiteRip's 1991-2010"}
- {id: 1788, cat: XXX, desc: "Сайтрипы 2011-2012 / SiteRip's 2011-2012"}
- {id: 1789, cat: XXX, desc: "Сайтрипы 2013 / SiteRip's 2013"}
@@ -78,6 +79,7 @@ caps:
- {id: 1856, cat: XXX, desc: "Сайтрипы 2022 / SiteRip's 2022"}
- {id: 1862, cat: XXX, desc: "Сайтрипы 2023 / SiteRip's 2023"}
- {id: 1868, cat: XXX, desc: "Сайтрипы 2024 / SiteRip's 2024"}
+ - {id: 1873, cat: XXX, desc: "Сайтрипы 2025 / SiteRip's 2025"}
- {id: 1707, cat: XXX, desc: "Сцены из фильмов / Movie Scenes (кроме SiteRip)"}
- {id: 284, cat: XXX, desc: "Порноролики Разное / Clips (various)"}
- {id: 1853, cat: XXX, desc: "Компиляции и Музыкальные порно клипы / Compilations & Porn Music Video (PMV)"}
@@ -87,7 +89,7 @@ caps:
- {id: 1801, cat: XXX/Pack, desc: "Паки японских фильмов и сайтрипов / Full Length Japanese Movies Packs & SiteRip's Packs"}
- {id: 1719, cat: XXX, desc: "Японские фильмы и сайтрипы (DVD и HD Video) / Japanese Movies & SiteRip's (DVD & HD Video)"}
- {id: 997, cat: XXX, desc: "Японские фильмы и сайтрипы 1991-2014 / Japanese Movies & SiteRip's 1991-2014"}
- - {id: 1818, cat: XXX, desc: "Японские фильмы и сайтрипы 2015-2024 / Japanese Movies & SiteRip's 2015-2024"}
+ - {id: 1818, cat: XXX, desc: "Японские фильмы и сайтрипы 2015-2025 / Japanese Movies & SiteRip's 2015-2025"}
- {id: 1849, cat: XXX, desc: "Китайские фильмы и сайтрипы (DVD и HD Video) / Chinese Movies & SiteRip's (DVD & HD Video)"}
- {id: 1815, cat: XXX, desc: "Архив (Японское и китайское порно)"}
@@ -247,6 +249,8 @@ search:
selector: td:nth-child(11) u
seeders:
selector: td.seedmed > b
+ optional: true
+ default: 0
leechers:
selector: td.leechmed > b
grabs:
diff --git a/mock-htpc/prowlarr/Definitions/pornrips.yml b/mock-htpc/prowlarr/Definitions/pornrips.yml
new file mode 100644
index 0000000..4e7aceb
--- /dev/null
+++ b/mock-htpc/prowlarr/Definitions/pornrips.yml
@@ -0,0 +1,66 @@
+---
+id: pornrips
+name: PornRips
+description: "PornRips is a Public site for 3X"
+language: en-US
+type: public
+encoding: UTF-8
+links:
+ - https://pornrips.to/
+
+caps:
+ categories:
+ XXX: XXX
+
+ modes:
+ search: [q]
+
+settings: []
+
+download:
+ selectors:
+ - selector: a[href*="/torrents/"]
+ attribute: href
+
+search:
+ paths:
+ - path: /
+ inputs:
+ s: "{{ .Keywords }}"
+
+ rows:
+ selector: article:has(a)
+ filters:
+ - name: andmatch
+
+ fields:
+ category:
+ text: XXX
+ title:
+ selector: .entry-title
+ details:
+ selector: .entry-title > a
+ attribute: href
+ download:
+ selector: .entry-title > a
+ attribute: href
+ poster:
+ selector: img
+ attribute: data-src
+ date:
+ selector: time
+ attribute: datetime
+ size:
+ selector: p
+ filters:
+ - name: regexp
+ args: (\d+ [M|G]i?B)
+ seeders:
+ text: 1
+ leechers:
+ text: 1
+ downloadvolumefactor:
+ text: 0
+ uploadvolumefactor:
+ text: 1
+# wordpress 6.6
diff --git a/mock-htpc/prowlarr/Definitions/portugas-api.yml b/mock-htpc/prowlarr/Definitions/portugas-api.yml
index 64d49db..1450fdd 100644
--- a/mock-htpc/prowlarr/Definitions/portugas-api.yml
+++ b/mock-htpc/prowlarr/Definitions/portugas-api.yml
@@ -1,7 +1,7 @@
---
id: portugas-api
name: Portugas (API)
-description: "Portugas is a Private Portoguese Tracker"
+description: "Portugas is a Private PORTUGUESE Tracker"
language: pt-PT
type: private
encoding: UTF-8
@@ -68,11 +68,12 @@ login:
- selector: a[href*="/login"]
message:
text: "The API key was not accepted by {{ .Config.sitelink }}."
+ - selector: :root:contains("Account is Banned")
search:
paths:
- # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v7.0.0)
- # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L349
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
- path: "/api/torrents/filter"
response:
type: json
@@ -177,7 +178,7 @@ search:
0: 1 # normal
1: 2 # double
minimumratio:
- text: 1.1
+ text: 1.0
minimumseedtime:
# 3 days (as seconds = 3 x 24 x 60 x 60)
text: 259200
diff --git a/mock-htpc/prowlarr/Definitions/postman.yml b/mock-htpc/prowlarr/Definitions/postman.yml
index c484574..ede8e5f 100644
--- a/mock-htpc/prowlarr/Definitions/postman.yml
+++ b/mock-htpc/prowlarr/Definitions/postman.yml
@@ -52,7 +52,8 @@ settings:
search:
paths:
- - path: /
+ - path: index.php
+ allowEmptyInputs: true
inputs:
view: Main
search: "{{ .Keywords }}"
diff --git a/mock-htpc/prowlarr/Definitions/privatesilverscreen-api.yml b/mock-htpc/prowlarr/Definitions/privatesilverscreen-api.yml
new file mode 100644
index 0000000..f5f403d
--- /dev/null
+++ b/mock-htpc/prowlarr/Definitions/privatesilverscreen-api.yml
@@ -0,0 +1,186 @@
+---
+id: privatesilverscreen-api
+name: PrivateSilverScreen (API)
+description: "PrivateSilverScreen (PSS) is a Private tracker for MOVIES / TV / MUSIC"
+language: en-US
+type: private
+encoding: UTF-8
+links:
+ - https://privatesilverscreen.cc/
+
+caps:
+ categorymappings:
+ - {id: 1, cat: Movies, desc: "Movies"}
+ - {id: 2, cat: TV, desc: "TV"}
+ - {id: 3, cat: Audio, desc: "Music"}
+
+ modes:
+ search: [q]
+ tv-search: [q, season, ep, imdbid, tvdbid, tmdbid]
+ movie-search: [q, imdbid, tmdbid]
+ music-search: [q]
+
+settings:
+ - name: apikey
+ type: text
+ label: APIKey
+ - name: info_key
+ type: info
+ label: About your API key
+ default: "Find or Generate a new API Token by accessing your PrivateSilverScreen account My Settings page and clicking on the API Key tab."
+ - name: freeleech
+ type: checkbox
+ label: Search freeleech only
+ default: false
+ - name: single_file_release_use_filename
+ type: checkbox
+ label: Use filename as title for single file releases
+ default: true
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: created_at
+ options:
+ created_at: created
+ seeders: seeders
+ size: size
+ name: title
+ - name: type
+ type: select
+ label: Order requested from site
+ default: desc
+ options:
+ desc: desc
+ asc: asc
+ - name: info_activity
+ type: info
+ label: Account Inactivity
+ default: "All members must be active within the community. Members must log into the site at minimum every 90 days or their account will be disabled for inactivity. (The only exceptions are if you're an active donor or if you are actively seeding)."
+
+login:
+ path: /api/torrents
+ method: get
+ error:
+ - selector: a[href*="/login"]
+ message:
+ text: "The API key was not accepted by {{ .Config.sitelink }}."
+ - selector: :root:contains("Account is Banned")
+
+search:
+ paths:
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
+ - path: "/api/torrents/filter"
+ response:
+ type: json
+
+ headers:
+ Authorization: ["Bearer {{ .Config.apikey }}"]
+
+ inputs:
+ # if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
+ $raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
+ name: "{{ .Keywords }}"
+ seasonNumber: "{{ .Query.Season }}"
+ episodeNumber: "{{ .Query.Ep }}"
+ imdbId: "{{ .Query.IMDBIDShort }}"
+ tmdbId: "{{ .Query.TMDBID }}"
+ tvdbId: "{{ .Query.TVDBID }}"
+ "free[]": "{{ if .Config.freeleech }}100{{ else }}{{ end }}"
+ sortField: "{{ .Config.sort }}"
+ sortDirection: "{{ .Config.type }}"
+ perPage: 100
+
+ keywordsfilters:
+ - name: re_replace
+ args: ["\\.", " "]
+
+ rows:
+ selector: data
+ attribute: attributes
+
+ fields:
+ category:
+ selector: category_id
+ title_optional:
+ selector: name
+ title_filename:
+ selector: "files[0].name"
+ optional: true
+ files:
+ selector: num_file
+ title:
+ text: "{{ if and (.Config.single_file_release_use_filename) (eq .Result.files \"1\") (.Result.title_filename) }}{{ .Result.title_filename }}{{ else }}{{ .Result.title_optional }}{{ end }}"
+ details:
+ selector: details_link
+ download:
+ selector: download_link
+ infohash:
+ selector: info_hash
+ poster:
+ selector: meta.poster
+ filters:
+ - name: replace
+ args: ["https://via.placeholder.com/90x135", ""]
+ imdbid:
+ selector: imdb_id
+ tmdbid:
+ selector: tmdb_id
+ tvdbid:
+ selector: tvdb_id
+ genre:
+ selector: meta.genres
+ filters:
+ - name: re_replace
+ args: ["(?i)(Science Fiction)", "Science_Fiction"]
+ - name: re_replace
+ args: ["(?i)(TV Movie)", "TV_Movie"]
+ - name: replace
+ args: [" & ", "_&_"]
+ description:
+ text: "{{ .Result.genre }}"
+ seeders:
+ selector: seeders
+ leechers:
+ selector: leechers
+ grabs:
+ selector: times_completed
+ date:
+ # "created_at": "2021-10-18T00:34:50.000000Z" is returned by Newtonsoft.Json.Linq as 18/10/2021 00:34:50
+ selector: created_at
+ filters:
+ - name: append
+ args: " +00:00" # GMT
+ - name: dateparse
+ args: "MM/dd/yyyy HH:mm:ss zzz"
+ size:
+ selector: size
+ _featured:
+ selector: featured
+ case:
+ False: "{{ .False }}"
+ True: "{{ .True }}"
+ downloadvolumefactor_freeleech:
+ # api returns 0%, 25%, 50%, 75%, 100%
+ selector: freeleech
+ case:
+ 0%: 1 # not free
+ 25%: 0.75
+ 50%: 0.5
+ 75%: 0.25
+ 100%: 0 # freeleech
+ "*": 0 # catch errors
+ downloadvolumefactor:
+ text: "{{ if .Result._featured }}0{{ else }}{{ .Result.downloadvolumefactor_freeleech }}{{ end }}"
+ uploadvolumefactor_double_upload:
+ # api returns False, True
+ selector: double_upload
+ case:
+ False: 1 # normal
+ True: 2 # double
+ uploadvolumefactor:
+ text: "{{ if .Result._featured }}2{{ else }}{{ .Result.uploadvolumefactor_double_upload }}{{ end }}"
+ minimumseedtime:
+ # 7 days (as seconds = 7 x 24 x 60 x 60)
+ text: 604800
+# json UNIT3D 8.2.0
diff --git a/mock-htpc/prowlarr/Definitions/proaudiotorrents.yml b/mock-htpc/prowlarr/Definitions/proaudiotorrents.yml
index 966c3c6..7cabb67 100644
--- a/mock-htpc/prowlarr/Definitions/proaudiotorrents.yml
+++ b/mock-htpc/prowlarr/Definitions/proaudiotorrents.yml
@@ -43,10 +43,8 @@ settings:
- name: cookie
type: text
label: Cookie
- - name: info
- type: info
- label: How to get the Cookie
- default: "- Login to this tracker with your browser
- Open the DevTools panel by pressing F12
- Select the Network tab
- Click on the Doc button (Chrome Browser) or HTML button (FireFox)
- Refresh the page by pressing F5
- Click on the first row entry
- Select the Headers tab on the Right panel
- Find 'cookie:' in the Request Headers section
- Select and Copy the whole cookie string (everything after 'cookie: ') and Paste here.
"
+ - name: info_cookie
+ type: info_cookie
- name: sort
type: select
label: Sort requested from site
@@ -69,6 +67,7 @@ settings:
default: "12 weeks exactly. You will need to log in before that amount of time has elapsed to keep your account active."
login:
+ # using cookie method because login page has embedded Google reCAPTCHA
method: cookie
inputs:
cookie: "{{ .Config.cookie }}"
diff --git a/mock-htpc/prowlarr/Definitions/proporno.yml b/mock-htpc/prowlarr/Definitions/proporno.yml
index 33169ff..72c46e9 100644
--- a/mock-htpc/prowlarr/Definitions/proporno.yml
+++ b/mock-htpc/prowlarr/Definitions/proporno.yml
@@ -11,7 +11,7 @@ links:
caps:
categorymappings:
- {id: 2, cat: XXX, desc: "порно видео"}
- - {id: 4, cat: XXX, desc: "блондинки"}
+ - {id: 4, cat: XXX, desc: "Порно с блондинками"}
- {id: 5, cat: XXX, desc: "лесбиянки"}
- {id: 19, cat: XXX, desc: "эротика"}
- {id: 20, cat: XXX, desc: "груповушка"}
@@ -19,9 +19,15 @@ caps:
- {id: 22, cat: XXX, desc: "молодые"}
- {id: 24, cat: XXX, desc: "минет / куннилингус / орал"}
- {id: 25, cat: XXX, desc: "большая грудь"}
+ - {id: 28, cat: XXX, desc: "порно видео зрелых"}
+ - {id: 29, cat: XXX, desc: "видео кастинг"}
+ - {id: 32, cat: XXX, desc: "девушки с красивыми попами"}
+ - {id: 33, cat: XXX, desc: "порно с мулатками"}
- {id: 21, cat: XXX, desc: "любительское видео"}
- {id: 3, cat: XXX, desc: "порно фильмы"}
- - {id: 7, cat: XXX, desc: "русское порно"}
+ - {id: 30, cat: XXX, desc: "зарубежные порно фильмы"}
+ - {id: 31, cat: XXX, desc: "фильмы с русским переводом"}
+ - {id: 7, cat: XXX, desc: "русское порно видео"}
- {id: 27, cat: XXX, desc: "убойная эротика"}
- {id: 26, cat: XXX, desc: "онлайн порно"}
@@ -71,25 +77,18 @@ search:
poster:
selector: img[src*="/uploads/posts/"]
attribute: src
- date_today:
+ date_day:
# Сегодня, 19:56
- selector: div.mini:contains("Сегодня")
- optional: true
- filters:
- - name: regexp
- args: "(Сегодня, \\d{2}:\\d{2})"
- - name: replace
- args: ["Сегодня", "Today"]
- - name: fuzzytime
- date_yday:
# Вчера, 20:01
- selector: div.mini:contains("Вчера")
+ selector: div.mini:contains("Сегодня"), div.mini:contains("Вчера")
optional: true
filters:
- name: regexp
- args: "(Вчера, \\d{2}:\\d{2})"
+ args: "((Вчера|Сегодня)(, \\d{2}:\\d{2}))"
- name: replace
args: ["Вчера", "Yesterday"]
+ - name: replace
+ args: ["Сегодня", "Today"]
- name: fuzzytime
date_year:
# 20-09-2020, 19:41
@@ -103,7 +102,7 @@ search:
- name: dateparse
args: "d-MM-yyyy, HH:mm zzz"
date:
- text: "{{ if or .Result.date_year .Result.date_today .Result.date_yday }}{{ or .Result.date_year .Result.date_today .Result.date_yday }}{{ else }}now{{ end }}"
+ text: "{{ if or .Result.date_year .Result.date_day }}{{ or .Result.date_year .Result.date_day }}{{ else }}now{{ end }}"
size:
text: "1 GB"
seeders:
diff --git a/mock-htpc/prowlarr/Definitions/ptcafe.yml b/mock-htpc/prowlarr/Definitions/ptcafe.yml
index fa82189..bc8e608 100644
--- a/mock-htpc/prowlarr/Definitions/ptcafe.yml
+++ b/mock-htpc/prowlarr/Definitions/ptcafe.yml
@@ -183,4 +183,4 @@ search:
description:
selector: td:nth-child(2)
remove: a, b, font, img, span
-# NexusPHP v1.8.8 2023-09-25
+# NexusPHP v1.8.13 2024-09-21
diff --git a/mock-htpc/prowlarr/Definitions/ptchina.yml b/mock-htpc/prowlarr/Definitions/ptchina.yml
index 8661a6c..6ee5681 100644
--- a/mock-htpc/prowlarr/Definitions/ptchina.yml
+++ b/mock-htpc/prowlarr/Definitions/ptchina.yml
@@ -197,4 +197,4 @@ search:
filters:
- name: prepend
args: "{{ .Result.description_verified }} "
-# NexusPHP v1.8.9 2023-11-15
+# NexusPHP v1.8.12 2024-04-13
diff --git a/mock-htpc/prowlarr/Definitions/pterclub.yml b/mock-htpc/prowlarr/Definitions/pterclub.yml
index 0abbb8f..637c66e 100644
--- a/mock-htpc/prowlarr/Definitions/pterclub.yml
+++ b/mock-htpc/prowlarr/Definitions/pterclub.yml
@@ -36,17 +36,13 @@ settings:
- name: cookie
type: text
label: Cookie
- - name: info
- type: info
- label: How to get the Cookie
- default: "- Login to this tracker with your browser
- Open the DevTools panel by pressing F12
- Select the Network tab
- Click on the Doc button (Chrome Browser) or HTML button (FireFox)
- Refresh the page by pressing F5
- Click on the first row entry
- Select the Headers tab on the Right panel
- Find 'cookie:' in the Request Headers section
- Select and Copy the whole cookie string (everything after 'cookie: ') and Paste here.
"
+ - name: info_cookie
+ type: info_cookie
- name: useragent
type: text
label: User-Agent
- name: info_useragent
- type: info
- label: How to get the User-Agent
- default: "- From the same place you fetched the cookie,
- Find 'user-agent:' in the Request Headers section
- Select and Copy the whole user-agent string (everything after 'user-agent: ') and Paste here.
"
+ type: info_useragent
- name: freeleech
type: checkbox
label: Search freeleech only
@@ -77,6 +73,7 @@ settings:
default: "Account retention rules:- All accounts will be permanently protected and will not be deleted; however, due to site security, some users will be temporarily banned due to activity rules
- New users with no traffic changes will be disabled after 7 days of registration (not the actual download volume)
- Those who download free torrents without generating any upload volume, or simply auxiliary torrents that generate magic power without any uploads will still be banned
- Users with a non-parked account will be disabled if they do not log in for 60 consecutive days
- Users with a parked account will be disabled if they do not log in for 180 consecutive days
- Angora/Veteran User and above will not be disabled after parking
- Sichuan Jianzhou Cat/Nexus Master users and above will be retained forever.
"
login:
+ # using cookie method because login page has embedded Clouflare turnstile
method: cookie
inputs:
cookie: "{{ .Config.cookie }}"
diff --git a/mock-htpc/prowlarr/Definitions/ptfans.yml b/mock-htpc/prowlarr/Definitions/ptfans.yml
new file mode 100644
index 0000000..ce22a02
--- /dev/null
+++ b/mock-htpc/prowlarr/Definitions/ptfans.yml
@@ -0,0 +1,222 @@
+---
+id: ptfans
+name: PTFans
+description: "PTFans is a CHINESE Private Torrent Tracker for MOVIES / TV / GENERAL"
+language: zh-CN
+type: private
+encoding: UTF-8
+requestDelay: 2
+certificates:
+ - 6282eb7a515ac89fa22826aca7ace8b150ada2e9 # CN=ptfans.cc (for cusat.win)
+ - e347d5573f7fec43e0aa89d92811b28f9c0410a8 # CN=www.ptfans.cc (for cusat.win)
+links:
+ - https://ptfans.cc/
+ - https://cusat.win/
+
+caps:
+ categorymappings:
+ - {id: 401, cat: Movies, desc: "Movies/电影", default: true}
+ - {id: 404, cat: TV, desc: "TV Series/电视剧", default: true}
+ - {id: 405, cat: TV, desc: "TV Shows/综艺", default: true}
+ - {id: 406, cat: TV/Documentary, desc: "Documentaries/纪录片", default: true}
+ - {id: 403, cat: TV/Sport, desc: "Sport/体育、竞技、武术及相关", default: true}
+ - {id: 409, cat: PC/Games, desc: "Games/游戏及相关", default: true}
+ - {id: 407, cat: Audio, desc: "Music/音乐、专辑、MV、演唱会", default: true}
+ - {id: 408, cat: Other, desc: "Art/曲艺、相声、小品、戏曲、舞蹈、歌剧、评书等", default: true}
+ - {id: 410, cat: Other, desc: "Science/科学、知识、技能", default: true}
+ - {id: 411, cat: Other, desc: "School/应试、考级、职称、初中以上教育", default: true}
+ - {id: 412, cat: Books/EBook, desc: "Book/书籍、杂志、报刊、有声书", default: true}
+ - {id: 413, cat: Other, desc: "Code/IT技术、建模、编程、信息技术、大数据、人工智能", default: true}
+ - {id: 414, cat: TV/Anime, desc: "Animate/3D动画、2.5次元", default: true}
+ - {id: 415, cat: Other, desc: "ACGN/二次元、漫画", default: true}
+ - {id: 416, cat: Other, desc: "Baby/婴幼、儿童、早教、小学及相关", default: true}
+ - {id: 417, cat: Other, desc: "Resource/素材、数据、图片、文档、模板", default: true}
+ - {id: 418, cat: PC/0day, desc: "Software/软件、系统、 程序、APP等", default: true}
+ - {id: 419, cat: Other, desc: "Other/其它,确认上边分类无", default: true}
+ - {id: 420, cat: XXX, desc: "步兵/步兵/无码", default: false}
+ - {id: 421, cat: XXX, desc: "骑兵/骑兵/有码", default: false}
+ - {id: 422, cat: XXX, desc: "三级/三级片、限制级电影", default: false}
+ - {id: 423, cat: XXX, desc: "H漫/动漫、漫画", default: false}
+ - {id: 424, cat: XXX, desc: "H游/游戏及相关", default: false}
+ - {id: 425, cat: XXX, desc: "H书/书籍、有声书", default: false}
+ - {id: 426, cat: XXX, desc: "H图/写真、图片、私拍、短视频", default: false}
+ - {id: 427, cat: XXX, desc: "H音/ASMR、音频、音乐", default: false}
+ - {id: 428, cat: XXX, desc: "H综/综艺、综合、剪辑、其他等", default: false}
+ - {id: 429, cat: XXX, desc: "H同/男同、女同、人妖", default: false}
+
+ modes:
+ search: [q]
+ tv-search: [q, season, ep, imdbid]
+ movie-search: [q, imdbid]
+ music-search: [q]
+ book-search: [q]
+
+settings:
+ - name: username
+ type: text
+ label: Username
+ - name: password
+ type: password
+ label: Password
+ - name: 2facode
+ type: text
+ label: 2FA code
+ - name: info_2fa
+ type: info
+ label: "About 2FA code"
+ default: "Only fill in the 2FA code box if you have enabled 2FA on the HDFans Web Site. Otherwise just leave it empty."
+ - name: freeleech
+ type: checkbox
+ label: Search freeleech only
+ default: false
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: 4
+ options:
+ 4: created
+ 7: seeders
+ 5: size
+ 1: title
+ - name: type
+ type: select
+ label: Order requested from site
+ default: desc
+ options:
+ desc: desc
+ asc: asc
+ - name: info_tpp
+ type: info
+ label: Results Per Page
+ default: For best results, change the Torrents per page: setting to 100 on your account profile.
+ - name: info_activity
+ type: info
+ label: Account Inactivity
+ default: "Account retention rules:- Veteran User and above will be retained forever
- Elite User and above will not have their account deleted after parking (in the control panel)
- Users with a parked account will be deleted if they do not log in for 400 consecutive days
- Users with a non-parked account will be deleted if they do not log in for 150 consecutive days
- Users who have no traffic (i.e. upload/download data are both 0) will be deleted if they do not log in for 100 consecutive days.
"
+
+login:
+ path: login.php
+ method: form
+ form: form[action="takelogin.php"]
+ captcha:
+ type: image
+ selector: img[alt="CAPTCHA"]
+ input: imagestring
+ inputs:
+ secret: ""
+ username: "{{ .Config.username }}"
+ password: "{{ .Config.password }}"
+ two_step_code: "{{ .Config.2facode }}"
+ logout: ""
+ securelogin: ""
+ ssl: yes
+ trackerssl: yes
+ error:
+ - selector: td.embedded:has(h2:contains("失败"))
+ message:
+ selector: td.text
+ test:
+ path: index.php
+ selector: a[href="logout.php"]
+
+search:
+ paths:
+ - path: torrents.php
+ categories: [401, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419]
+ - path: special.php
+ categories: [420, 421, 422, 423, 424, 425, 426, 427, 428, 429]
+ inputs:
+ $raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
+ search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }} {{ else }}{{ .Keywords }}{{ end }}{{ if .Query.DoubanID }}{{ .Query.DoubanID }}{{ else }}{{ end }}"
+ # 0 incldead, 1 active, 2 dead
+ incldead: 0
+ # 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x50%, 7 30%
+ spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
+ # 0 title, 1 descr, 3 uploader, 4 imdburl
+ search_area: "{{ if .Query.IMDBID }}4{{ else }}{{ end }}{{ if .Query.DoubanID }}1{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }}{{ else }}0{{ end }}"
+ # 0 AND, 2 exact
+ search_mode: 0
+ sort: "{{ .Config.sort }}"
+ type: "{{ .Config.type }}"
+ notnewword: 1
+
+ rows:
+ selector: table.torrents > tbody > tr:has(table.torrentname)
+
+ fields:
+ category:
+ selector: a[href^="?cat="]
+ attribute: href
+ filters:
+ - name: querystring
+ args: cat
+ title_default:
+ selector: a[href^="details.php?id="]
+ title:
+ selector: a[title][href^="details.php?id="]
+ attribute: title
+ optional: true
+ default: "{{ .Result.title_default }}"
+ details:
+ selector: a[href^="details.php?id="]
+ attribute: href
+ download:
+ selector: a[href^="download.php?id="]
+ attribute: href
+ imdbid:
+ # site currently only has a badge and rating, the id is not present. just in case a future update.
+ selector: a[href*="imdb.com/title/tt"]
+ attribute: href
+ doubanid:
+ # site currently only has a badge and rating, the id is not present. just in case a future update.
+ selector: a[href*="movie.douban.com/subject/"]
+ attribute: href
+ date_elapsed:
+ # time type: time elapsed (default)
+ selector: td.rowfollow:nth-child(4) > span[title]
+ attribute: title
+ optional: true
+ filters:
+ - name: append
+ args: " +00:00" # GMT
+ - name: dateparse
+ args: "yyyy-MM-dd HH:mm:ss zzz"
+ date_added:
+ # time added
+ selector: td.rowfollow:nth-child(4):not(:has(span))
+ optional: true
+ filters:
+ - name: append
+ args: " +00:00" # GMT
+ - name: dateparse
+ args: "yyyy-MM-ddHH:mm:ss zzz"
+ date:
+ text: "{{ if or .Result.date_elapsed .Result.date_added }}{{ or .Result.date_elapsed .Result.date_added }}{{ else }}now{{ end }}"
+ size:
+ selector: td.rowfollow:nth-child(5)
+ seeders:
+ selector: td.rowfollow:nth-child(6)
+ leechers:
+ selector: td.rowfollow:nth-child(7)
+ grabs:
+ selector: td.rowfollow:nth-child(8)
+ downloadvolumefactor:
+ case:
+ img.pro_free: 0
+ img.pro_free2up: 0
+ img.pro_50pctdown: 0.5
+ img.pro_50pctdown2up: 0.5
+ img.pro_30pctdown: 0.3
+ "*": 1
+ uploadvolumefactor:
+ case:
+ img.pro_50pctdown2up: 2
+ img.pro_free2up: 2
+ img.pro_2up: 2
+ "*": 1
+ minimumratio:
+ text: 1
+ description:
+ selector: td.rowfollow:nth-child(2)
+ remove: a, b, font, img, span
+# NexusPHP v1.8.12 2024-05-20
diff --git a/mock-htpc/prowlarr/Definitions/ptfiles.yml b/mock-htpc/prowlarr/Definitions/ptfiles.yml
index ea47c78..89b4872 100644
--- a/mock-htpc/prowlarr/Definitions/ptfiles.yml
+++ b/mock-htpc/prowlarr/Definitions/ptfiles.yml
@@ -156,10 +156,13 @@ search:
args: ["Uploaded: ", ""]
downloadvolumefactor:
case:
+ ":root:has(div.rounded_colhead2:contains(\"w00t It's Crazyhour!\"))": 0 # Freeleech hour
"span.tool:contains(\"[FREE]\")": 0
"*": 1
uploadvolumefactor:
- text: 1
+ case:
+ ":root:has(div.rounded_colhead2:contains(\"w00t It's Crazyhour!\"))": 3 # Freeleech hour
+ "*": 1
genre:
selector: td:nth-child(2) > span:has(span > small)
remove: span:nth-child(1), span.tool, a[title^="Search all"], br ~ b > small
diff --git a/mock-htpc/prowlarr/Definitions/pthome.yml b/mock-htpc/prowlarr/Definitions/pthome.yml
index 1e79364..e306612 100644
--- a/mock-htpc/prowlarr/Definitions/pthome.yml
+++ b/mock-htpc/prowlarr/Definitions/pthome.yml
@@ -35,10 +35,8 @@ settings:
- name: cookie
type: text
label: Cookie
- - name: info
- type: info
- label: How to get the Cookie
- default: "- Login to this tracker with your browser
- Open the DevTools panel by pressing F12
- Select the Network tab
- Click on the Doc button (Chrome Browser) or HTML button (FireFox)
- Refresh the page by pressing F5
- Click on the first row entry
- Select the Headers tab on the Right panel
- Find 'cookie:' in the Request Headers section
- Select and Copy the whole cookie string (everything after 'cookie: ') and Paste here.
"
+ - name: info_cookie
+ type: info_cookie
- name: freeleech
type: checkbox
label: Search freeleech only
@@ -49,6 +47,7 @@ settings:
default: For best results, change the Torrents per page: setting to 100 on your account profile.
login:
+ # using cookie method because I could not get the form method to work when I first created the indexer, some hidden security check
method: cookie
inputs:
cookie: "{{ .Config.cookie }}"
diff --git a/mock-htpc/prowlarr/Definitions/ptitzmx.yml b/mock-htpc/prowlarr/Definitions/ptitzmx.yml
index 7020afd..b591589 100644
--- a/mock-htpc/prowlarr/Definitions/ptitzmx.yml
+++ b/mock-htpc/prowlarr/Definitions/ptitzmx.yml
@@ -60,7 +60,7 @@ settings:
- name: info_activity
type: info
label: Account Inactivity
- default: "Cherish your user account. Inactive accounts would be deleted based on the following rules:- Veteran User or above would never be deleted
- Elite User or above would never be deleted if parked (at User CP)
- Parked accounts would be deleted if users have not logged in for more than 400 days in a row
- Un-parked accounts would be deleted if users have not logged in for more than 150 days in a row
- Accounts with both uploaded and downloaded amount being 0 would be deleted if users have not logged in for more than 100 days in a row.
"
+ default: "Cherish your user account. Inactive accounts would be deleted based on the following rules:- Veteran User and above users will be retained forever
- Elite User and above users will not be deleted after parking their accounts (in the control panel)
- Users with parked accounts will have their accounts deleted if they do not log in for 300 consecutive days
- Users with un-parked accounts will have their accounts deleted if they do not log in for 90 consecutive days
- Accounts with both uploaded and downloaded amount being 0 would be deleted if users have not logged in for more than 7 days in a row.
"
login:
path: login.php
diff --git a/mock-htpc/prowlarr/Definitions/ptsbao.yml b/mock-htpc/prowlarr/Definitions/ptsbao.yml
index 846abe7..c2a541f 100644
--- a/mock-htpc/prowlarr/Definitions/ptsbao.yml
+++ b/mock-htpc/prowlarr/Definitions/ptsbao.yml
@@ -31,10 +31,8 @@ settings:
- name: cookie
type: text
label: Cookie
- - name: info
- type: info
- label: How to get the Cookie
- default: "- Login to this tracker with your browser
- Open the DevTools panel by pressing F12
- Select the Network tab
- Click on the Doc button (Chrome Browser) or HTML button (FireFox)
- Refresh the page by pressing F5
- Click on the first row entry
- Select the Headers tab on the Right panel
- Find 'cookie:' in the Request Headers section
- Select and Copy the whole cookie string (everything after 'cookie: ') and Paste here.
"
+ - name: info_cookie
+ type: info_cookie
- name: freeleech
type: checkbox
label: Search freeleech only
@@ -61,6 +59,7 @@ settings:
default: For best results, change the Torrents per page: setting to 100 on your account profile.
login:
+ # switched from the form method to the cookie method due to #9554
method: cookie
inputs:
cookie: "{{ .Config.cookie }}"
diff --git a/mock-htpc/prowlarr/Definitions/pttime.yml b/mock-htpc/prowlarr/Definitions/pttime.yml
index 7b078a4..6038039 100644
--- a/mock-htpc/prowlarr/Definitions/pttime.yml
+++ b/mock-htpc/prowlarr/Definitions/pttime.yml
@@ -5,7 +5,7 @@ description: "PTTime is a ratioless CHINESE Private Torrent Tracker for HD MOVIE
language: zh-CN
type: private
encoding: UTF-8
-requestDelay: 2
+requestDelay: 5
links:
- https://www.pttime.org/
diff --git a/mock-htpc/prowlarr/Definitions/ptvicomo.yml b/mock-htpc/prowlarr/Definitions/ptvicomo.yml
new file mode 100644
index 0000000..d683730
--- /dev/null
+++ b/mock-htpc/prowlarr/Definitions/ptvicomo.yml
@@ -0,0 +1,207 @@
+---
+id: ptvicomo
+name: PTVicomo
+description: "PTVicomo is a CHINESE Private torrent tracker for MOVIES / TV / GENERAL"
+language: zh-CN
+type: private
+encoding: UTF-8
+links:
+ - https://ptvicomo.net/
+
+caps:
+ categorymappings:
+ - {id: 401, cat: Movies, desc: "电影"}
+ - {id: 402, cat: TV, desc: "剧集"}
+ - {id: 405, cat: TV/Anime, desc: "动漫"}
+ - {id: 415, cat: TV, desc: "短剧"}
+ - {id: 404, cat: TV/Documentary, desc: "纪录片"}
+ - {id: 403, cat: TV, desc: "综艺"}
+ - {id: 409, cat: Audio, desc: "音乐"}
+ - {id: 406, cat: Audio/Video, desc: "MV"}
+
+ modes:
+ search: [q]
+ tv-search: [q, season, ep, imdbid, doubanid]
+ movie-search: [q, imdbid, doubanid]
+ music-search: [q]
+
+settings:
+ - name: username
+ type: text
+ label: Username
+ - name: password
+ type: password
+ label: Password
+ - name: 2facode
+ type: text
+ label: 2FA code
+ - name: info_2fa
+ type: info
+ label: "About 2FA code"
+ default: "Only fill in the 2FA code box if you have enabled 2FA on the PTVicomo Web Site. Otherwise just leave it empty."
+ - name: freeleech
+ type: checkbox
+ label: Search freeleech only
+ default: false
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: 4
+ options:
+ 4: created
+ 7: seeders
+ 5: size
+ 1: title
+ - name: type
+ type: select
+ label: Order requested from site
+ default: desc
+ options:
+ desc: desc
+ asc: asc
+ - name: info_tpp
+ type: info
+ label: Results Per Page
+ default: For best results, change the Torrents per page: setting to 100 on your account profile.
+ - name: info_activity
+ type: info
+ label: Account Inactivity
+ default: "Account retention rules:- Extreme User (county road) and above will be retained forever
- Veteran User (rural rank) and above will be retained forever if parked
- Users with a parked account will be banned if they do not log in for 0 consecutive days
- Users with no traffic (ie, upload/download data are both 0) will be banned if they do not log in for 90 consecutive days.
"
+
+login:
+ path: login.php
+ method: form
+ form: form[action="takelogin.php"]
+ captcha:
+ type: image
+ selector: img[alt="CAPTCHA"]
+ input: imagestring
+ inputs:
+ secret: ""
+ username: "{{ .Config.username }}"
+ password: "{{ .Config.password }}"
+ two_step_code: "{{ .Config.2facode }}"
+ logout: ""
+ securelogin: ""
+ ssl: yes
+ trackerssl: yes
+ error:
+ - selector: td.embedded:has(h2:contains("失败"))
+ test:
+ path: index.php
+ selector: a[href="logout.php"]
+
+search:
+ paths:
+ - path: torrents.php
+ inputs:
+ $raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
+ search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }} {{ else }}{{ .Keywords }}{{ end }}{{ if .Query.DoubanID }}{{ .Query.DoubanID }}{{ else }}{{ end }}"
+ # 0 incldead, 1 active, 2 dead
+ incldead: 0
+ # 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x50%, 7 30%
+ spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
+ # 0 title, 1 descr, 3 uploader, 4 imdburl (working but not for douban)
+ search_area: "{{ if or .Query.IMDBID .Query.DoubanID }}1{{ else }}0{{ end }}"
+ # 0 AND, 2 exact
+ search_mode: 0
+ sort: "{{ .Config.sort }}"
+ type: "{{ .Config.type }}"
+ notnewword: 1
+
+ rows:
+ selector: table.torrents > tbody > tr:has(a[href^="details.php?id="])
+
+ fields:
+ category:
+ selector: a[href^="?cat="]
+ attribute: href
+ filters:
+ - name: querystring
+ args: cat
+ title_default:
+ selector: a[href^="details.php?id="]
+ title:
+ selector: a[title][href^="details.php?id="]
+ attribute: title
+ optional: true
+ default: "{{ .Result.title_default }}"
+ details:
+ selector: a[href^="details.php?id="]
+ attribute: href
+ download:
+ selector: a[href^="download.php?id="]
+ attribute: href
+ # site does not have posters enabled. just in case a future update.
+ poster:
+ selector: img[data-src]
+ attribute: data-src
+ imdbid:
+ # site currently only has a badge and rating, the id is not present. just in case a future update.
+ selector: a[href*="imdb.com/title/tt"]
+ attribute: href
+ doubanid:
+ # site currently only has a badge and rating, the id is not present. just in case a future update.
+ selector: a[href*="movie.douban.com/subject/"]
+ attribute: href
+ # the number of comments do not show up despite user web settings option to enable, throws child count off by 1
+ date_elapsed:
+ # time type: time elapsed (default)
+ selector: td.rowfollow:nth-child(3) span[title]
+ attribute: title
+ optional: true
+ filters:
+ - name: append
+ args: " +08:00" # CST
+ - name: dateparse
+ args: "yyyy-MM-dd HH:mm:ss zzz"
+ date_added:
+ # time added
+ selector: td.rowfollow:nth-child(3):not(:has(span))
+ optional: true
+ filters:
+ - name: append
+ args: " +08:00" # CST
+ - name: dateparse
+ args: "yyyy-MM-ddHH:mm:ss zzz"
+ date:
+ text: "{{ if or .Result.date_elapsed .Result.date_added }}{{ or .Result.date_elapsed .Result.date_added }}{{ else }}now{{ end }}"
+ size:
+ selector: td.rowfollow:nth-child(4)
+ seeders:
+ selector: td.rowfollow:nth-child(5)
+ leechers:
+ selector: td.rowfollow:nth-child(6)
+ grabs:
+ selector: td.rowfollow:nth-child(7)
+ downloadvolumefactor:
+ case:
+ img.pro_free: 0
+ img.pro_free2up: 0
+ img.pro_50pctdown: 0.5
+ img.pro_50pctdown2up: 0.5
+ img.pro_30pctdown: 0.3
+ "*": 1
+ uploadvolumefactor:
+ case:
+ img.pro_50pctdown2up: 2
+ img.pro_free2up: 2
+ img.pro_2up: 2
+ "*": 1
+ minimumratio:
+ text: 1.0
+ minimumseedtime:
+ # 1 day (as seconds = 24 x 60 x 60)
+ text: 86400
+ description_verified:
+ case:
+ span[title="通过"], span[title="Allowed"]: "Verified:"
+ span[title="未审"], span[title="Not reviewed"]: "Unverified:"
+ span[title="拒绝"], span[title="Denied"]: "Banned:"
+ description:
+ selector: td.rowfollow:nth-child(2)
+ remove: a, b, font, img, span
+ filters:
+ - name: prepend
+ args: "{{ .Result.description_verified }} "
+# NexusPHP v1.8.13 2024-09-13 (custom)
diff --git a/mock-htpc/prowlarr/Definitions/puntotorrent.yml b/mock-htpc/prowlarr/Definitions/puntotorrent.yml
index 2cbbb22..f72f0af 100644
--- a/mock-htpc/prowlarr/Definitions/puntotorrent.yml
+++ b/mock-htpc/prowlarr/Definitions/puntotorrent.yml
@@ -1,5 +1,7 @@
---
id: puntotorrent
+replaces:
+ - puntorrent
name: PuntoTorrent
description: "PuntoTorrent is a SPANISH site for General content"
language: es-ES
diff --git a/mock-htpc/prowlarr/Definitions/pwtorrents.yml b/mock-htpc/prowlarr/Definitions/pwtorrents.yml
index da7b66b..a75a01b 100644
--- a/mock-htpc/prowlarr/Definitions/pwtorrents.yml
+++ b/mock-htpc/prowlarr/Definitions/pwtorrents.yml
@@ -110,6 +110,8 @@ search:
args: cat
title:
selector: a[href^="details.php?id="]
+ optional: true
+ default: No Title
details:
selector: a[href^="details.php?id="]
attribute: href
diff --git a/mock-htpc/prowlarr/Definitions/qingwa.yml b/mock-htpc/prowlarr/Definitions/qingwa.yml
new file mode 100644
index 0000000..c3279e8
--- /dev/null
+++ b/mock-htpc/prowlarr/Definitions/qingwa.yml
@@ -0,0 +1,176 @@
+---
+id: qingwa
+name: Qingwa (青蛙)
+description: "Qingwa (青蛙) is a CHINESE Private torrent tracker for MOVIES / TV / GENERAL"
+language: zh-CN
+type: private
+encoding: UTF-8
+links:
+ - https://www.qingwapt.com/
+legacylinks:
+ - https://qingwapt.com/
+ - https://new.qingwa.pro/
+
+caps:
+ categorymappings:
+ - {id: 401, cat: Movies, desc: "电影"}
+ - {id: 402, cat: TV, desc: "剧集"}
+ - {id: 403, cat: TV, desc: "综艺"}
+ - {id: 405, cat: TV/Anime, desc: "动漫"}
+ - {id: 404, cat: TV/Documentary, desc: "纪录片"}
+ - {id: 406, cat: Audio/Video, desc: "MV"}
+ - {id: 407, cat: TV/Sport, desc: "体育"}
+ - {id: 408, cat: Audio, desc: "音乐"}
+ - {id: 412, cat: TV, desc: "短剧"} # trailers
+ - {id: 412, cat: Movies, desc: "短剧"} # trailers
+ - {id: 409, cat: Other, desc: "其他"}
+
+ modes:
+ search: [q]
+ tv-search: [q, season, ep, imdbid, doubanid]
+ movie-search: [q, imdbid, doubanid]
+ music-search: [q]
+
+settings:
+ - name: cookie
+ type: text
+ label: Cookie
+ - name: info_cookie
+ type: info_cookie
+ - name: freeleech
+ type: checkbox
+ label: Search freeleech only
+ default: false
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: 4
+ options:
+ 4: created
+ 7: seeders
+ 5: size
+ 1: title
+ - name: type
+ type: select
+ label: Order requested from site
+ default: desc
+ options:
+ desc: desc
+ asc: asc
+ - name: info_tpp
+ type: info
+ label: Results Per Page
+ default: For best results, change the Torrents per page: setting to 60 on your account profile.Choosing more may cause the web site to fail to deliver complete results.
+ - name: info_activity
+ type: info
+ label: Account Inactivity
+ default: "Cherish your user account. Inactive accounts would be deleted based on the following rules:- Veteran User or above would never be deleted.
- Elite User or above would never be deleted if parked (at User CP).
- Parked accounts would be deleted if users have not logged in for more than 400 days in a row.
- Unparked accounts would be deleted if users have not logged in for more than 150 days in a row.
- Accounts with both uploaded and downloaded amount being 0 would be deleted if users have not logged in for more than 100 days in a row.
"
+
+login:
+ # switched from the form method to the cookie method due to #15226
+ method: cookie
+ inputs:
+ cookie: "{{ .Config.cookie }}"
+ test:
+ path: index.php
+ selector: a[href="logout.php"]
+
+search:
+ paths:
+ - path: torrents.php
+ inputs:
+ $raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
+ search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }} {{ else }}{{ .Keywords }}{{ end }}{{ if .Query.DoubanID }}{{ .Query.DoubanID }}{{ else }}{{ end }}"
+ # 0 incldead, 1 active, 2 dead
+ incldead: 0
+ # 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x50%, 7 30%
+ spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
+ # 0 title, 1 descr, 3 uploader, 4 imdburl
+ search_area: "{{ if .Query.IMDBID }}4{{ else }}{{ end }}{{ if .Query.DoubanID }}1{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }}{{ else }}0{{ end }}"
+ # 0 AND, 2 exact
+ search_mode: 0
+ sort: "{{ .Config.sort }}"
+ type: "{{ .Config.type }}"
+ notnewword: 1
+
+ rows:
+ selector: table.torrents > tbody > tr:has(a[href^="details.php?id="])
+
+ fields:
+ category:
+ selector: a[href^="?cat="]
+ attribute: href
+ filters:
+ - name: querystring
+ args: cat
+ title_default:
+ selector: a[href^="details.php?id="]
+ title:
+ selector: a[title][href^="details.php?id="]
+ attribute: title
+ optional: true
+ default: "{{ .Result.title_default }}"
+ details:
+ selector: a[href^="details.php?id="]
+ attribute: href
+ download:
+ selector: a[href^="download.php?id="]
+ attribute: href
+ poster:
+ selector: img[data-src]
+ attribute: data-src
+ imdbid:
+ # site currently only has a badge and rating, the id is not present. just in case a future update.
+ selector: a[href*="imdb.com/title/tt"]
+ attribute: href
+ doubanid:
+ # site currently only has a badge and rating, the id is not present. just in case a future update.
+ selector: a[href*="movie.douban.com/subject/"]
+ attribute: href
+ date_elapsed:
+ # time type: time elapsed (default)
+ selector: td.rowfollow:nth-child(4) > span[title]
+ attribute: title
+ optional: true
+ filters:
+ - name: append
+ args: " +08:00" # CST
+ - name: dateparse
+ args: "yyyy-MM-dd HH:mm:ss zzz"
+ date_added:
+ # time added
+ selector: td.rowfollow:nth-child(4):not(:has(span))
+ optional: true
+ filters:
+ - name: append
+ args: " +08:00" # CST
+ - name: dateparse
+ args: "yyyy-MM-ddHH:mm:ss zzz"
+ date:
+ text: "{{ if or .Result.date_elapsed .Result.date_added }}{{ or .Result.date_elapsed .Result.date_added }}{{ else }}now{{ end }}"
+ size:
+ selector: td.rowfollow:nth-child(5)
+ seeders:
+ selector: td.rowfollow:nth-child(6)
+ leechers:
+ selector: td.rowfollow:nth-child(7)
+ grabs:
+ selector: td.rowfollow:nth-child(8)
+ downloadvolumefactor:
+ case:
+ img.pro_free: 0
+ img.pro_free2up: 0
+ img.pro_50pctdown: 0.5
+ img.pro_50pctdown2up: 0.5
+ img.pro_30pctdown: 0.3
+ "*": 1
+ uploadvolumefactor:
+ case:
+ img.pro_50pctdown2up: 2
+ img.pro_free2up: 2
+ img.pro_2up: 2
+ "*": 1
+ description:
+ selector: td.rowfollow:nth-child(2)
+ remove: a, b, font, img, span
+# NexusPHP v1.8.13 2024-08-09
diff --git a/mock-htpc/prowlarr/Definitions/racing4everyone-api.yml b/mock-htpc/prowlarr/Definitions/racing4everyone-api.yml
index 3431027..7f2ca88 100644
--- a/mock-htpc/prowlarr/Definitions/racing4everyone-api.yml
+++ b/mock-htpc/prowlarr/Definitions/racing4everyone-api.yml
@@ -92,11 +92,12 @@ login:
- selector: a[href*="/login"]
message:
text: "The API key was not accepted by {{ .Config.sitelink }}."
+ - selector: :root:contains("Account is Banned")
search:
paths:
- # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v7.0.0)
- # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L349
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
- path: "/api/torrents/filter"
response:
type: json
diff --git a/mock-htpc/prowlarr/Definitions/rapidzona.yml b/mock-htpc/prowlarr/Definitions/rapidzona.yml
index 9a0826d..1028185 100644
--- a/mock-htpc/prowlarr/Definitions/rapidzona.yml
+++ b/mock-htpc/prowlarr/Definitions/rapidzona.yml
@@ -93,6 +93,8 @@ search:
story: "{{ if .Keywords }}{{ .Keywords }}{{ else }}{{ .Today.Year }}{{ end }}"
sortby: "{{ .Config.sort }}"
resorder: "{{ .Config.type }}"
+ error:
+ - selector: div:contains("MySQL Error!")
rows:
selector: div.post
@@ -100,6 +102,8 @@ search:
fields:
category:
selector: p a:nth-child(3), p:has(a:nth-child(3):empty) a:nth-child(2)
+ optional: true
+ default: 71
case:
a[href$="/porno-xxx-adult-torrent/"]: 71
a[href$="/porno-video-movies-torrent/"]: 73
@@ -164,6 +168,9 @@ search:
text: 1
description:
selector: div.news
+ filters:
+ - name: re_replace
+ args: ["^...$", ""]
date:
selector: p.title-footer
filters:
diff --git a/mock-htpc/prowlarr/Definitions/rareshare2.yml b/mock-htpc/prowlarr/Definitions/rareshare2.yml
index 854fa70..bf06831 100644
--- a/mock-htpc/prowlarr/Definitions/rareshare2.yml
+++ b/mock-htpc/prowlarr/Definitions/rareshare2.yml
@@ -74,11 +74,12 @@ login:
- selector: a[href*="/login"]
message:
text: "The API key was not accepted by {{ .Config.sitelink }}."
+ - selector: :root:contains("Account is Banned")
search:
paths:
- # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v7.0.0)
- # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L349
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
- path: "/api/torrents/filter"
response:
type: json
diff --git a/mock-htpc/prowlarr/Definitions/redstartorrent.yml b/mock-htpc/prowlarr/Definitions/redstartorrent.yml
index 1733282..f17ec65 100644
--- a/mock-htpc/prowlarr/Definitions/redstartorrent.yml
+++ b/mock-htpc/prowlarr/Definitions/redstartorrent.yml
@@ -1,5 +1,7 @@
---
id: redstartorrent
+replaces:
+ - rstorrent
name: Red Star Torrent
description: "Red Star Torrent (RST) is a POLISH Private Torrent Tracker for TV"
language: pl-PL
diff --git a/mock-htpc/prowlarr/Definitions/reelflix-api.yml b/mock-htpc/prowlarr/Definitions/reelflix-api.yml
index 1246138..c4bdb18 100644
--- a/mock-htpc/prowlarr/Definitions/reelflix-api.yml
+++ b/mock-htpc/prowlarr/Definitions/reelflix-api.yml
@@ -1,5 +1,8 @@
---
id: reelflix-api
+replaces:
+ - legacyhd
+ - reelflix
name: ReelFLiX (API)
description: "ReelFLiX (HD4Free,LegacyHD) is a Private Torrent Tracker for HD MOVIES"
language: en-US
@@ -33,6 +36,10 @@ settings:
type: checkbox
label: Search freeleech only
default: false
+ - name: single_file_release_use_filename
+ type: checkbox
+ label: Use filename as title for single file releases
+ default: true
- name: sort
type: select
label: Sort requested from site
@@ -62,14 +69,16 @@ login:
- selector: a[href*="/login"]
message:
text: "The API key was not accepted by {{ .Config.sitelink }}."
+ - selector: :root:contains("Account is Banned")
search:
paths:
- # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v7.0.0)
- # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L349
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
- path: "/api/torrents/filter"
response:
type: json
+ noResultsMessage: "No Torrents Found"
headers:
Authorization: ["Bearer {{ .Config.apikey }}"]
@@ -99,8 +108,15 @@ search:
fields:
category:
selector: category_id
- title:
+ title_optional:
selector: name
+ title_filename:
+ selector: "files[0].name"
+ optional: true
+ files:
+ selector: num_file
+ title:
+ text: "{{ if and (.Config.single_file_release_use_filename) (eq .Result.files \"1\") (.Result.title_filename) }}{{ .Result.title_filename }}{{ else }}{{ .Result.title_optional }}{{ end }}"
details:
selector: details_link
download:
@@ -121,8 +137,6 @@ search:
genre:
selector: meta.genres
filters:
- - name: re_replace
- args: ["(?i)^None$", ""]
- name: re_replace
args: ["(?i)(Science Fiction)", "Science_Fiction"]
- name: re_replace
@@ -131,8 +145,6 @@ search:
args: [" & ", "_&_"]
description:
text: "{{ .Result.genre }}"
- files:
- selector: num_file
seeders:
selector: seeders
leechers:
@@ -167,4 +179,4 @@ search:
True: 2 # double
minimumratio:
text: 1.0
-# json UNIT3D 7.2.5
+# json UNIT3D 8.3.4
diff --git a/mock-htpc/prowlarr/Definitions/resurrectthenet.yml b/mock-htpc/prowlarr/Definitions/resurrectthenet.yml
index 1df4967..f37e044 100644
--- a/mock-htpc/prowlarr/Definitions/resurrectthenet.yml
+++ b/mock-htpc/prowlarr/Definitions/resurrectthenet.yml
@@ -49,7 +49,7 @@ settings:
label: Password
- name: freeleech
type: checkbox
- label: Search freeleech only
+ label: Filter freeleech only
default: false
- name: sort
type: select
@@ -100,7 +100,8 @@ search:
page: torrents
category: "{{ range .Categories }}{{.}};{{end}}"
# 0 filename, 1 file & descr, 2 descr, 3 uploaders, 5 gold, 6 silver, 7 bronze
- options: "{{ if .Config.freeleech }}5{{ else }}0{{ end }}"
+ # note the options are exclusive, so searching for gold means the search keywords are ignored
+ options: 0
# 0 all, 1 active, 2 dead
active: 0
order: "{{ .Config.sort }}"
@@ -108,7 +109,7 @@ search:
# while the site does have imdbid in some descriptions, we cannot support both searching with imdbid and freeleech at the same time.
rows:
- selector: table > tbody > tr > td > table.lista > tbody > tr:has(a[href^="index.php?page=torrent-details&id="])
+ selector: "table > tbody > tr > td > table.lista > tbody > tr:has(a[href^=\"index.php?page=torrent-details&id=\"]){{ if .Config.freeleech }}:has(img[src$=\"gold.gif\"]){{ else }}{{ end }}"
filters:
# searching freeleech and keywords returns unrelated hits
- name: andmatch
diff --git a/mock-htpc/prowlarr/Definitions/rgfootball.yml b/mock-htpc/prowlarr/Definitions/rgfootball.yml
index 36f9b59..ac4502c 100644
--- a/mock-htpc/prowlarr/Definitions/rgfootball.yml
+++ b/mock-htpc/prowlarr/Definitions/rgfootball.yml
@@ -11,6 +11,18 @@ links:
caps:
categorymappings:
# VIP-Архив / VIP-Archive
+ - {id: 235, cat: TV/Sport, desc: " |- VIP January 2024"}
+ - {id: 247, cat: TV/Sport, desc: " |- VIP February 2024"}
+ - {id: 250, cat: TV/Sport, desc: " |- VIP March 2024"}
+ - {id: 252, cat: TV/Sport, desc: " |- VIP April 2024"}
+ - {id: 273, cat: TV/Sport, desc: " |- VIP May 2022"}
+ - {id: 275, cat: TV/Sport, desc: " |- VIP June 2022"}
+ - {id: 375, cat: TV/Sport, desc: " |- VIP July 2022"}
+ - {id: 378, cat: TV/Sport, desc: " |- VIP August 2022"}
+ - {id: 382, cat: TV/Sport, desc: " |- VIP September 2022"}
+ - {id: 384, cat: TV/Sport, desc: " |- VIP October 2022"}
+ - {id: 385, cat: TV/Sport, desc: " |- VIP November 2022"}
+ - {id: 386, cat: TV/Sport, desc: " |- VIP December 2022"}
- {id: 224, cat: TV/Sport, desc: " |- VIP January 2023"}
- {id: 225, cat: TV/Sport, desc: " |- VIP February 2023"}
- {id: 402, cat: TV/Sport, desc: " |- VIP March 2023"}
@@ -23,18 +35,6 @@ caps:
- {id: 449, cat: TV/Sport, desc: " |- VIP October 2023"}
- {id: 450, cat: TV/Sport, desc: " |- VIP November 2023"}
- {id: 451, cat: TV/Sport, desc: " |- VIP December 2023"}
- - {id: 235, cat: TV/Sport, desc: " |- VIP January 2022"}
- - {id: 247, cat: TV/Sport, desc: " |- VIP February 2022"}
- - {id: 250, cat: TV/Sport, desc: " |- VIP March 2022"}
- - {id: 252, cat: TV/Sport, desc: " |- VIP April 2022"}
- - {id: 273, cat: TV/Sport, desc: " |- VIP May 2022"}
- - {id: 275, cat: TV/Sport, desc: " |- VIP June 2022"}
- - {id: 375, cat: TV/Sport, desc: " |- VIP July 2022"}
- - {id: 378, cat: TV/Sport, desc: " |- VIP August 2022"}
- - {id: 382, cat: TV/Sport, desc: " |- VIP September 2022"}
- - {id: 384, cat: TV/Sport, desc: " |- VIP October 2022"}
- - {id: 385, cat: TV/Sport, desc: " |- VIP November 2022"}
- - {id: 386, cat: TV/Sport, desc: " |- VIP December 2022"}
# Олимпийские игры / Olympic Games
- {id: 465, cat: TV/Sport, desc: "Зимние Олимпийские игры 2022 /..."}
- {id: 473, cat: TV/Sport, desc: " |- Церемонии"}
@@ -64,6 +64,14 @@ caps:
- {id: 292, cat: TV/Sport, desc: " |- Другие виды спорта"}
- {id: 304, cat: TV/Sport, desc: " |- Обзорные и тематические..."}
# Футбол / Football
+ - {id: 163, cat: TV/Sport, desc: "EURO 2024 / Чемпионат Европы 2024"}
+ - {id: 132, cat: TV/Sport, desc: " |- ⚽️VIP-Extra 4K EURO 2024"}
+ - {id: 521, cat: TV/Sport, desc: " |- ⚽️VIP-Extra SAT FEED EURO 2024"}
+ - {id: 508, cat: TV/Sport, desc: " |- ⚽️VIP EURO 2024"}
+ - {id: 497, cat: TV/Sport, desc: " |- VIP-Light UEFA EURO 2024"}
+ - {id: 513, cat: TV/Sport, desc: " |- UEFA EURO 2024"}
+ - {id: 198, cat: TV/Sport, desc: " |- VIP UEFA Euro 2024 qualifying"}
+ - {id: 195, cat: TV/Sport, desc: " |- UEFA Euro 2024 qualifying"}
- {id: 580, cat: TV/Sport, desc: "FIFA WC 2022 / Чемпионат мира 2022"}
- {id: 515, cat: TV/Sport, desc: " |- ⚽️VIP-Extra FIFA SATFEEDS WC 2022"}
- {id: 234, cat: TV/Sport, desc: " |- ⚽️VIP-Extra FIFA 4K WC 2022"}
@@ -71,14 +79,6 @@ caps:
- {id: 525, cat: TV/Sport, desc: " |- VIP-Light FIFA WC 2022"}
- {id: 581, cat: TV/Sport, desc: " |- FIFA WC 2022"}
- {id: 582, cat: TV/Sport, desc: " |- FIFA WC 2022. Qualifiers"}
- - {id: 163, cat: TV/Sport, desc: "EURO 2020 / Чемпионат Европы 2020"}
- - {id: 528, cat: TV/Sport, desc: " |- ⚽️VIP-Extra 4K EURO 2020"}
- - {id: 521, cat: TV/Sport, desc: " |- ⚽️VIP-Extra SAT FEED EURO 2020"}
- - {id: 216, cat: TV/Sport, desc: " |- ⚽️VIP-Archive UEFA EURO 2020"}
- - {id: 497, cat: TV/Sport, desc: " |- VIP-Light UEFA EURO 2020"}
- - {id: 395, cat: TV/Sport, desc: " |- UEFA EURO 2020"}
- - {id: 447, cat: TV/Sport, desc: " |- UEFA EURO 2020 qualifying"}
- - {id: 426, cat: TV/Sport, desc: " |- VIP-Extra UEFA EURO 2020 qualifying"}
- {id: 432, cat: TV/Sport, desc: "FIFA WC 2018 / Чемпионат мира 2018"}
- {id: 535, cat: TV/Sport, desc: " |- ⚽️VIP-Extra FIFA WC 2018 4K"}
- {id: 559, cat: TV/Sport, desc: " |- ⚽️VIP-Extra FIFA WC 2018 Sat Feed"}
@@ -258,10 +258,12 @@ caps:
- {id: 218, cat: TV/Sport, desc: " |- VIP-Extra FIFA WC Old"}
- {id: 14, cat: TV/Sport, desc: "Чемпионаты Европы/UEFA European..."}
- {id: 242, cat: TV/Sport, desc: " |- ⚽️VIP-Extra EURO Classic"}
+ - {id: 528, cat: TV/Sport, desc: " |- ⚽️VIP-Extra 4K EURO 2020"}
+ - {id: 216, cat: TV/Sport, desc: " |- ⚽️VIP-Archive UEFA EURO 2020"}
- {id: 380, cat: TV/Sport, desc: " |- ⚽️VIP-Extra EURO 2016"}
- {id: 546, cat: TV/Sport, desc: " |- VIP-Extra EURO 2023 U17 + U19 + U21"}
- - {id: 198, cat: TV/Sport, desc: " |- VIP UEFA Euro 2024 qualifying"}
- - {id: 195, cat: TV/Sport, desc: " |- UEFA Euro 2024 qualifying"}
+ - {id: 395, cat: TV/Sport, desc: " |- UEFA EURO 2020"}
+ - {id: 447, cat: TV/Sport, desc: " |- UEFA EURO 2020 qualifying"}
- {id: 552, cat: TV/Sport, desc: " |- EURO 2016. Финальный турнир"}
- {id: 494, cat: TV/Sport, desc: " |- EURO 2016. Отборочный турнир"}
- {id: 350, cat: TV/Sport, desc: " |- EURO 2012. Финальный турнир"}
@@ -269,31 +271,32 @@ caps:
- {id: 200, cat: TV/Sport, desc: " |- EURO U21"}
- {id: 337, cat: TV/Sport, desc: " |- EURO U19"}
- {id: 255, cat: TV/Sport, desc: " |- EURO U17"}
+ - {id: 426, cat: TV/Sport, desc: " |- VIP-Extra UEFA EURO 2020 qualifying"}
- {id: 414, cat: TV/Sport, desc: "Международные клубные турниры/I..."}
- {id: 533, cat: TV/Sport, desc: " |- VIP-Extra Clubs International"}
- {id: 243, cat: TV/Sport, desc: " |- VIP Clubs International"}
- {id: 539, cat: TV/Sport, desc: " |- VIP-Light Clubs International"}
- - {id: 401, cat: TV/Sport, desc: " |- ⚽️VIP-Extra Copa Libertadores 2023"}
- - {id: 526, cat: TV/Sport, desc: " |- ⚽️VIP-Extra Copa Sudamericana 2023"}
+ - {id: 534, cat: TV/Sport, desc: " |- VIP-Extra 2023 CONCACAF Gold Cup"}
+ - {id: 401, cat: TV/Sport, desc: " |- ⚽️VIP-Extra Copa Libertadores 2024"}
+ - {id: 526, cat: TV/Sport, desc: " |- ⚽️VIP-Extra Copa Sudamericana 2024"}
- {id: 399, cat: TV/Sport, desc: " |- ⚽️VIP-Extra CAF Competitions"}
- {id: 550, cat: TV/Sport, desc: " |- ⚽️VIP-Extra AFC Competitions"}
- {id: 524, cat: TV/Sport, desc: " |- VIP-Extra CONCACAF Competitions"}
- - {id: 463, cat: TV/Sport, desc: " |- 2023 Copa Libertadores"}
- - {id: 433, cat: TV/Sport, desc: " |- 2023 Copa Sudamericana"}
+ - {id: 463, cat: TV/Sport, desc: " |- 2024 Copa Libertadores"}
+ - {id: 433, cat: TV/Sport, desc: " |- 2024 Copa Sudamericana"}
- {id: 457, cat: TV/Sport, desc: " |- FIFA Club World Cups"}
- {id: 472, cat: TV/Sport, desc: " |- CONCACAF Competitions"}
- {id: 241, cat: TV/Sport, desc: " |- Copa Libertadores"}
- {id: 367, cat: TV/Sport, desc: " |- Copa Sudamericana"}
- {id: 390, cat: TV/Sport, desc: " |- AFC Club Competitions"}
- {id: 10, cat: TV/Sport, desc: "Международные турниры/National Team..."}
- - {id: 534, cat: TV/Sport, desc: " |- VIP-Extra 2023 CONCACAF Gold Cup"}
- {id: 466, cat: TV/Sport, desc: " |- VIP-Extra International"}
- - {id: 560, cat: TV/Sport, desc: " |- VIP-Extra 2023 Sudamericano U20 + U17"}
- - {id: 462, cat: TV/Sport, desc: " |- VIP-Extra CHAN 2023"}
- - {id: 575, cat: TV/Sport, desc: " |- VIP CHAN 2023"}
- {id: 213, cat: TV/Sport, desc: " |- VIP International"}
- - {id: 532, cat: TV/Sport, desc: " |- 2022 Africa Cup of Nations"}
- - {id: 230, cat: TV/Sport, desc: " |- VIP-Extra Copa America 2021"}
+ - {id: 527, cat: TV/Sport, desc: " |- VIP-Extra 2024 Copa America"}
+ - {id: 560, cat: TV/Sport, desc: " |- VIP-Extra 2023 Sudamericano U20 + U17"}
+ - {id: 202, cat: TV/Sport, desc: " |- VIP-Light 2024 Copa America"}
+ - {id: 575, cat: TV/Sport, desc: " |- VIP CHAN 2023"}
+ - {id: 532, cat: TV/Sport, desc: " |- 2023 Africa Cup of Nations"}
- {id: 422, cat: TV/Sport, desc: " |- 2021 Copa America"}
- {id: 155, cat: TV/Sport, desc: " |- Copa America"}
- {id: 435, cat: TV/Sport, desc: " |- CONCACAF Competitions"}
@@ -301,6 +304,7 @@ caps:
- {id: 239, cat: TV/Sport, desc: " |- Africa Cup of Nations"}
- {id: 507, cat: TV/Sport, desc: " |- AFC Asian Cups"}
- {id: 393, cat: TV/Sport, desc: " |- Sudamericano U-20"}
+ - {id: 462, cat: TV/Sport, desc: " |- VIP-Extra 2023 Africa Cup of Nations"}
- {id: 16, cat: TV/Sport, desc: "Товарищеские турниры и матчи/Frie..."}
- {id: 387, cat: TV/Sport, desc: " |- ⚽️VIP-Extra Friendlies"}
- {id: 219, cat: TV/Sport, desc: " |- VIP Friendlies"}
@@ -321,15 +325,15 @@ caps:
- {id: 492, cat: TV/Sport, desc: " |- Formula 1. Season 2023"}
- {id: 400, cat: TV/Sport, desc: " |- Formula 1. Seasons until 2022"}
- {id: 21, cat: TV/Sport, desc: "Хоккей"}
- - {id: 420, cat: TV/Sport, desc: " |- ЧМ 2023 / IIHF WС 2023"}
- - {id: 501, cat: TV/Sport, desc: " |- ЧМ 2022 U-20 / IIHF WС 2022 U-20"}
+ - {id: 501, cat: TV/Sport, desc: " |- VIP-Extra ЧМ 2024 U-18 / IIHF WС 2024 U-18"}
+ - {id: 420, cat: TV/Sport, desc: " |- ЧМ 2024 / IIHF WС 2024"}
- {id: 445, cat: TV/Sport, desc: " |- NHL 2023/24"}
- {id: 444, cat: TV/Sport, desc: " |- КХЛ 2023/24"}
- {id: 207, cat: TV/Sport, desc: " |- КХЛ 2022/23"}
- {id: 391, cat: TV/Sport, desc: " |- NHL 2022/23"}
- {id: 151, cat: TV/Sport, desc: " |- NHL до 2023"}
- {id: 47, cat: TV/Sport, desc: " |- КХЛ до 2023"}
- - {id: 460, cat: TV/Sport, desc: " |- World Championships until 2022"}
+ - {id: 460, cat: TV/Sport, desc: " |- World Championships until 2024"}
- {id: 206, cat: TV/Sport, desc: " |- European club championships"}
- {id: 222, cat: TV/Sport, desc: " |- Euro Hockey Tour"}
- {id: 49, cat: TV/Sport, desc: " |- International tournaments"}
@@ -355,7 +359,7 @@ caps:
- {id: 502, cat: TV/Sport, desc: " |- ATP 250/500 World Tour 2023"}
- {id: 504, cat: TV/Sport, desc: " |- WTA Tour 2023"}
- {id: 503, cat: TV/Sport, desc: " |- Team Season 2023"}
- - {id: 128, cat: TV/Sport, desc: " |- Grand Slam Tournaments up to 2022"}
+ - {id: 128, cat: TV/Sport, desc: " |- Grand Slam Tournaments up to 2023"}
- {id: 127, cat: TV/Sport, desc: " |- ATP WT Masters 1000 up to 2022"}
- {id: 125, cat: TV/Sport, desc: " |- ATP World Tour up to 2022"}
- {id: 126, cat: TV/Sport, desc: " |- WTA Tour up to 2022"}
@@ -472,24 +476,24 @@ caps:
- {id: 319, cat: TV/Sport, desc: " |- Modern pentathlon - Triathlon"}
- {id: 336, cat: TV/Sport, desc: " |- Golf - Skateboarding - Sport climbing"}
- {id: 349, cat: TV/Sport, desc: "Обзорные передачи / Reviews"}
+ # Игры / Games
+ - {id: 166, cat: TV/Sport, desc: "Игры для PC (раздачи)"}
# Разное / Other
- {id: 229, cat: TV/Sport, desc: "Тестовый форум"}
# Администраторский
- {id: 417, cat: TV/Sport, desc: "2021-22 UEFA Europa League"}
- - {id: 132, cat: TV/Sport, desc: " |- ⚽️VIP-Extra 2023-24 UEFA Europa Conference League"}
- - {id: 202, cat: TV/Sport, desc: " |- VIP-Extra UCL 2016-17"}
- {id: 431, cat: TV/Sport, desc: " |- VIP-Extra UEL 2016-17"}
- {id: 440, cat: TV/Sport, desc: " |- VIP-Extra UСL 2015-16"}
- {id: 381, cat: TV/Sport, desc: " |- VIP-Extra UEL 2015-16"}
- {id: 557, cat: TV/Sport, desc: " |- VIP-Extra UCL 2014-15"}
- {id: 556, cat: TV/Sport, desc: " |- VIP-Extra UEL 2014-15"}
- {id: 514, cat: TV/Sport, desc: " |- VIP-Extra UСL 2013-14"}
- - {id: 513, cat: TV/Sport, desc: " |- VIP-Extra UEL 2013-14"}
- - {id: 508, cat: TV/Sport, desc: " |- VIP 2021 Copa America"}
# Приватные разделы
- {id: 509, cat: TV/Sport, desc: " |- VIP-Extra 2019 FIFA U-17 World Cup"}
+ - {id: 230, cat: TV/Sport, desc: " |- VIP-Extra Copa America 2021"}
- {id: 510, cat: TV/Sport, desc: " |- VIP 2019 FIFA U-17 World Cup"}
- {id: 429, cat: TV/Sport, desc: " |- VIP-Extra Real Madrid 2020-21"}
+ - {id: 369, cat: TV/Sport, desc: " |- VIP-Extra Sat Feed France"}
modes:
search: [q]
diff --git a/mock-htpc/prowlarr/Definitions/riperam.yml b/mock-htpc/prowlarr/Definitions/riperam.yml
index 9933077..e9ec676 100644
--- a/mock-htpc/prowlarr/Definitions/riperam.yml
+++ b/mock-htpc/prowlarr/Definitions/riperam.yml
@@ -182,8 +182,8 @@ caps:
- {id: 972, cat: TV, desc: "Сватьи"}
- {id: 1073, cat: TV, desc: "Чужое гнездо"}
- {id: 1078, cat: TV, desc: "Чтец"}
- - {id: 691, cat: TV, desc: "Черные кошки"}
- {id: 628, cat: TV, desc: "Карпов"}
+ - {id: 691, cat: TV, desc: "Черные кошки"}
- {id: 1101, cat: TV, desc: "Квест"}
- {id: 1088, cat: TV, desc: "Лондонград"}
- {id: 1072, cat: TV, desc: "Меч"}
@@ -475,6 +475,7 @@ caps:
- {id: 1477, cat: TV/Documentary, desc: "Последний герой"}
- {id: 1478, cat: TV/Documentary, desc: "Бородина против Бузовой"}
- {id: 1488, cat: TV/Documentary, desc: "Док-ток"}
+ - {id: 1493, cat: TV/Documentary, desc: "'Рожденные в СССР' Ностальгия"}
- {id: 24, cat: TV/Documentary, desc: "Документальные передачи"}
- {id: 1460, cat: TV/Documentary, desc: "Специальный репортаж (ТК Звезда)"}
- {id: 728, cat: TV/Documentary, desc: "Чудо техники с Сергеем Малозёмовым"}
@@ -757,6 +758,7 @@ caps:
- {id: 1471, cat: Books, desc: "Кулинария"}
- {id: 1333, cat: Books, desc: "Разное"}
- {id: 1485, cat: Books, desc: "Медицина"}
+ - {id: 1494, cat: Books, desc: "Манга / Комиксы"}
- {id: 1312, cat: Books, desc: "Аудиокниги"}
- {id: 1398, cat: Books, desc: "Приключения"}
- {id: 1396, cat: Books, desc: "Детектив"}
@@ -791,6 +793,13 @@ caps:
- {id: 1349, cat: Books, desc: "Детские журналы"}
- {id: 1351, cat: Books, desc: "Военные журналы"}
- {id: 1350, cat: Books, desc: "Хобби (Разное)"}
+ - {id: 1292, cat: Other, desc: "Шаблоны оформления раздач"}
+ - {id: 1310, cat: Other, desc: "Шаблон RePack от xatab"}
+ - {id: 1298, cat: Other, desc: "Шаблон оформления VickNet"}
+ - {id: 1300, cat: Other, desc: "Шаблон стандартного оформления"}
+ - {id: 1353, cat: Other, desc: "Стандартное оформление"}
+ - {id: 1406, cat: Other, desc: "Шаблон RG Games"}
+ - {id: 1707, cat: Other, desc: "Шаблоны BBCode таблиц"}
modes:
search: [q]
@@ -830,10 +839,8 @@ settings:
options:
d: desc
a: asc
- - name: flaresolverr
- type: info
- label: FlareSolverr
- default: This site may use Cloudflare DDoS Protection, therefore Prowlarr requires FlareSolverr to access it.
+ - name: info_flaresolverr
+ type: info_flaresolverr
login:
path: ucp.php?mode=login
@@ -877,11 +884,14 @@ search:
selector: li.row:has(a[href^="./download/file.php?id="])
fields:
- categorydesc_optional:
- selector: dt a:last-of-type
+ category_optional:
+ selector: a[href*="/viewtopic.php?f="]
optional: true
- categorydesc:
- text: "{{ if .Result.categorydesc_optional }}{{ .Result.categorydesc_optional }}{{ else }}Разное{{ end }}"
+ filters:
+ - name: querystring
+ args: f
+ category:
+ text: "{{ if .Result.category_optional }}{{ .Result.category_optional }}{{ else }}726{{ end }}"
title:
selector: a.topictitle
filters:
diff --git a/mock-htpc/prowlarr/Definitions/rockethd.yml b/mock-htpc/prowlarr/Definitions/rockethd.yml
new file mode 100644
index 0000000..ecd33e2
--- /dev/null
+++ b/mock-htpc/prowlarr/Definitions/rockethd.yml
@@ -0,0 +1,178 @@
+---
+id: rockethd
+name: RocketHD (API)
+description: "RocketHD is a GERMAN Private Torrent Tracker for MOVIES / TV"
+language: de-DE
+type: private
+encoding: UTF-8
+links:
+ - https://r0k3t.li/
+
+caps:
+ categorymappings:
+ - {id: 1, cat: Movies, desc: "Movies"}
+ - {id: 2, cat: TV, desc: "TV"}
+
+ modes:
+ search: [q]
+ tv-search: [q, season, ep, imdbid, tvdbid, tmdbid]
+ movie-search: [q, imdbid, tmdbid]
+
+settings:
+ - name: apikey
+ type: text
+ label: APIKey
+ - name: info_key
+ type: info
+ label: About your API key
+ default: "Find or Generate a new API Token by accessing your RocketHD account My Settings page and clicking on the API Key tab."
+ - name: freeleech
+ type: checkbox
+ label: Search freeleech only
+ default: false
+ - name: single_file_release_use_filename
+ type: checkbox
+ label: Use filename as title for single file releases
+ default: true
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: created_at
+ options:
+ created_at: created
+ seeders: seeders
+ size: size
+ name: title
+ - name: type
+ type: select
+ label: Order requested from site
+ default: desc
+ options:
+ desc: desc
+ asc: asc
+
+login:
+ path: /api/torrents
+ method: get
+ error:
+ - selector: a[href*="/login"]
+ message:
+ text: "The API key was not accepted by {{ .Config.sitelink }}."
+ - selector: :root:contains("Account is Banned")
+
+search:
+ paths:
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
+ - path: "/api/torrents/filter"
+ response:
+ type: json
+
+ headers:
+ Authorization: ["Bearer {{ .Config.apikey }}"]
+
+ inputs:
+ # if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
+ $raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
+ name: "{{ .Keywords }}"
+ seasonNumber: "{{ .Query.Season }}"
+ episodeNumber: "{{ .Query.Ep }}"
+ imdbId: "{{ .Query.IMDBIDShort }}"
+ tmdbId: "{{ .Query.TMDBID }}"
+ tvdbId: "{{ .Query.TVDBID }}"
+ "free[]": "{{ if .Config.freeleech }}100{{ else }}{{ end }}"
+ sortField: "{{ .Config.sort }}"
+ sortDirection: "{{ .Config.type }}"
+ perPage: 100
+
+ keywordsfilters:
+ - name: re_replace
+ args: ["\\.", " "]
+
+ rows:
+ selector: data
+ attribute: attributes
+
+ fields:
+ category:
+ selector: category_id
+ title_optional:
+ selector: name
+ title_filename:
+ selector: "files[0].name"
+ optional: true
+ files:
+ selector: num_file
+ title:
+ text: "{{ if and (.Config.single_file_release_use_filename) (eq .Result.files \"1\") (.Result.title_filename) }}{{ .Result.title_filename }}{{ else }}{{ .Result.title_optional }}{{ end }}"
+ details:
+ selector: details_link
+ download:
+ selector: download_link
+ infohash:
+ selector: info_hash
+ poster:
+ selector: meta.poster
+ filters:
+ - name: replace
+ args: ["https://via.placeholder.com/90x135", ""]
+ imdbid:
+ selector: imdb_id
+ tmdbid:
+ selector: tmdb_id
+ tvdbid:
+ selector: tvdb_id
+ genre:
+ selector: meta.genres
+ filters:
+ - name: re_replace
+ args: ["(?i)(Science Fiction)", "Science_Fiction"]
+ - name: replace
+ args: [" & ", "_&_"]
+ description:
+ text: "{{ .Result.genre }}"
+ seeders:
+ selector: seeders
+ leechers:
+ selector: leechers
+ grabs:
+ selector: times_completed
+ date:
+ # "created_at": "2021-10-18T00:34:50.000000Z" is returned by Newtonsoft.Json.Linq as 18/10/2021 00:34:50
+ selector: created_at
+ filters:
+ - name: append
+ args: " +00:00" # GMT
+ - name: dateparse
+ args: "MM/dd/yyyy HH:mm:ss zzz"
+ size:
+ selector: size
+ _featured:
+ selector: featured
+ case:
+ False: "{{ .False }}"
+ True: "{{ .True }}"
+ downloadvolumefactor_freeleech:
+ # api returns 0%, 25%, 50%, 75%, 100%
+ selector: freeleech
+ case:
+ 0%: 1 # not free
+ 25%: 0.75
+ 50%: 0.5
+ 75%: 0.25
+ 100%: 0 # freeleech
+ "*": 0 # catch errors
+ downloadvolumefactor:
+ text: "{{ if .Result._featured }}0{{ else }}{{ .Result.downloadvolumefactor_freeleech }}{{ end }}"
+ uploadvolumefactor_double_upload:
+ # api returns False, True
+ selector: double_upload
+ case:
+ False: 1 # normal
+ True: 2 # double
+ uploadvolumefactor:
+ text: "{{ if .Result._featured }}2{{ else }}{{ .Result.uploadvolumefactor_double_upload }}{{ end }}"
+ minimumseedtime:
+ # 2 days (as seconds = 2 x 24 x 60 x 60)
+ text: 172800
+# json UNIT3D 8.3.3
diff --git a/mock-htpc/prowlarr/Definitions/romanianmetaltorrents.yml b/mock-htpc/prowlarr/Definitions/romanianmetaltorrents.yml
index 2fc98dd..66cee1a 100644
--- a/mock-htpc/prowlarr/Definitions/romanianmetaltorrents.yml
+++ b/mock-htpc/prowlarr/Definitions/romanianmetaltorrents.yml
@@ -1,5 +1,7 @@
---
id: romanianmetaltorrents
+replaces:
+ - metaliplayro
name: Romanian Metal Torrents
description: "Romanian Metal Torrents (RMT) is a Private site dedicated to METAL MUSIC. This definition is for the English site."
language: en-US
diff --git a/mock-htpc/prowlarr/Definitions/rotorrent.yml b/mock-htpc/prowlarr/Definitions/rotorrent.yml
new file mode 100644
index 0000000..7347ce6
--- /dev/null
+++ b/mock-htpc/prowlarr/Definitions/rotorrent.yml
@@ -0,0 +1,170 @@
+---
+id: rotorrent
+name: RoTorrent
+description: "RoTorrent is a ROMANIAN Private Torrent Tracker for MOVIES / TV / GENERAL"
+language: ro-RO
+type: private
+encoding: UTF-8
+requestDelay: 2
+links:
+ - https://rotorrent.ro/
+
+caps:
+ categorymappings:
+ - {id: 18, cat: PC/0day, desc: "Apps: PC", default: true}
+ - {id: 55, cat: TV/Documentary, desc: "Docs: Docs", default: true}
+ - {id: 10, cat: PC/Games, desc: "Games: PC", default: true}
+ - {id: 53, cat: Other, desc: "Miscellaneous: Miscellaneous", default: true}
+ - {id: 58, cat: Movies/BluRay, desc: "Movies: 4K Blu-Ray", default: true}
+ - {id: 2, cat: Movies/SD, desc: "Movies: Divx/Xvid", default: true}
+ - {id: 52, cat: Movies/SD, desc: "Movies: Cam/TS/TC", default: true}
+ - {id: 54, cat: Movies/UHD, desc: "Movies: 4K", default: true}
+ - {id: 59, cat: Movies/BluRay, desc: "Movies: Blu-Ray", default: true}
+ - {id: 60, cat: Movies/HD, desc: "Movies: HD", default: true}
+ - {id: 62, cat: Movies/WEB-DL, desc: "Movies: WebDL/RIP", default: true}
+ - {id: 64, cat: Movies/DVD, desc: "Movies: DVD", default: true}
+ - {id: 65, cat: XXX, desc: "Movies: XXX", default: false}
+ - {id: 66, cat: TV/Anime, desc: "Movies: Anime", default: true}
+ - {id: 22, cat: Audio/MP3, desc: "Music: MP3", default: true}
+ - {id: 63, cat: Audio/Lossless, desc: "Music: FLAC", default: true}
+ - {id: 6, cat: TV, desc: "TV: TV Shows", default: true}
+
+ modes:
+ search: [q]
+ tv-search: [q, season, ep, imdbid, tmdbid, genre]
+ movie-search: [q, imdbid, tmdbid, genre]
+ music-search: [q, genre]
+
+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: id
+ options:
+ id: created
+ seeders: seeders
+ size: size
+ name: title
+ - name: type
+ type: select
+ label: Order requested from site
+ default: desc
+ options:
+ desc: desc
+ asc: asc
+
+login:
+ path: account-login.php
+ method: post
+ inputs:
+ username: "{{ .Config.username }}"
+ password: "{{ .Config.password }}"
+ error:
+ - selector: "div[style^=\"color: red;\"]"
+ test:
+ path: index.php
+ selector: a[href="account-logout.php"]
+
+search:
+ paths:
+ - path: torrents-search.php
+ categories: [18, 55, 10, 53, 58, 2, 52, 54, 59, 60, 62, 64, 66, 22, 63, 6]
+ inputs:
+ $raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
+ # 0 active, 1 incldead, 2 onlydead
+ incldead: 1
+ # 0 all, 1 nofree, 2 onlyfree
+ freeleech: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
+ # 0 both, 1 local, 2 external
+ inclexternal: 0
+ # 0 all, 1 romanian, 2 english, 3 english and romanian
+ inclrosub: 0
+ - path: torrents-search1.php
+ categories: [65]
+ inputs:
+ search: "{{ if or .Query.IMDBID .Query.TMDBID }}{{ or .Query.IMDBID .Query.TMDBID }} {{ else }}{{ end }}{{ if .Query.Genre }}{{ .Query.Genre }} {{ else }}{{ end }}{{ .Keywords }}"
+ sort: "{{ .Config.sort }}"
+ order: "{{ .Config.type }}"
+
+ rows:
+ selector: table.ttable_headinner > tbody > tr
+
+ fields:
+ category:
+ selector: a[href*="cat="]
+ attribute: href
+ filters:
+ - name: querystring
+ args: cat
+ title:
+ selector: a[href^="torrents-details.php?id="] b
+ details:
+ selector: a[href^="torrents-details.php?id="]
+ attribute: href
+ filters:
+ - name: replace
+ args: ["&hit=1", ""] # avoid redirect
+ download:
+ text: "{{ .Result.details }}"
+ filters:
+ - name: replace
+ args: ["torrents-details", "download"]
+ poster:
+ selector: a[href^="torrents-details.php?id="]
+ attribute: onmouseover
+ filters:
+ - name: regexp
+ args: src=(.+?)>
+ date:
+ selector: td:nth-child(8)
+ filters:
+ - name: timeago
+ size:
+ selector: td:nth-child(3)
+ grabs:
+ selector: td:nth-child(7)
+ seeders:
+ selector: td:nth-child(5)
+ leechers:
+ selector: td:nth-child(6)
+ genre:
+ selector: a[href^="torrents-details.php?id="] font div.newt
+ filters:
+ - name: re_replace
+ args: ["(?i)(Cult Classic)", "Cult_Classic"]
+ - name: re_replace
+ args: ["(?i)(Science Fiction)", "Science_Fiction"]
+ - name: re_replace
+ args: ["(?i)(TV Movie)", "TV_Movie"]
+ description_subs:
+ optional: true
+ case:
+ img[src$="languages/unitestates.gif"]: Eng
+ img[src$="languages/romania.gif"]: Ro
+ img[src$="languages/roeng.gif"]: "Ro & Eng"
+ description:
+ text: "{{ if .Result.description_subs }}Subtitles: {{ .Result.description_subs }}{{ else }}{{ end }}Genres: {{ .Result.genre }}"
+ downloadvolumefactor:
+ case:
+ img[src="images/free.png"]: 0
+ "*": 1
+ uploadvolumefactor:
+ case:
+ img[src="images/doubleupload.gif"]: 2
+ "*": 1
+ minimumratio:
+ text: 1.0
+ minimumseedtime:
+ # 4 days (as seconds = 4 x 24 x 60 x 60)
+ text: 345600
+# TorrentTrader 3.0 Micro Edition
diff --git a/mock-htpc/prowlarr/Definitions/rousi.yml b/mock-htpc/prowlarr/Definitions/rousi.yml
index 96284ba..7e28445 100644
--- a/mock-htpc/prowlarr/Definitions/rousi.yml
+++ b/mock-htpc/prowlarr/Definitions/rousi.yml
@@ -227,4 +227,4 @@ search:
filters:
- name: prepend
args: "{{ .Result.description_verified }} "
-# NexusPHP v1.8.8 2023-09-25
+# NexusPHP v1.8.12 2024-07-13
diff --git a/mock-htpc/prowlarr/Definitions/rudub.yml b/mock-htpc/prowlarr/Definitions/rudub.yml
index 85e5730..5204e5e 100644
--- a/mock-htpc/prowlarr/Definitions/rudub.yml
+++ b/mock-htpc/prowlarr/Definitions/rudub.yml
@@ -1,20 +1,46 @@
---
id: rudub
+replaces:
+ - baibako
name: RUDUB
description: "RUDUB (ex-BaibaKoTV) is a RUSSIAN Semi-Private Torrent Tracker for TV"
language: ru-RU
type: semi-private
encoding: windows-1251
+followredirect: true
links:
- - https://rudub.xyz/
+ - https://14december.rudub.online/
legacylinks:
- - http://baibako.tv/
- - https://baibako.tv/
- - http://bko.baibako.tv/
- - http://rudub.tv/ # redirects to *.net
- - http://rudub.co/
- - https://rudub.net/
- - https://rudub.pw/
+ - https://14november.rudub.online/
+ - https://15november.rudub.online/
+ - https://16november.rudub.online/
+ - https://17november.rudub.online/
+ - https://18november.rudub.online/
+ - https://19november.rudub.online/
+ - https://20november.rudub.online/
+ - https://21november.rudub.online/
+ - https://22november.rudub.online/
+ - https://23november.rudub.online/
+ - https://24november.rudub.online/
+ - https://25november.rudub.online/
+ - https://26november.rudub.online/
+ - https://27november.rudub.online/
+ - https://28november.rudub.online/
+ - https://29november.rudub.online/
+ - https://30november.rudub.online/
+ - https://01december.rudub.online/
+ - https://02december.rudub.online/
+ - https://03december.rudub.online/
+ - https://04december.rudub.online/
+ - https://05december.rudub.online/
+ - https://06december.rudub.online/
+ - https://07december.rudub.online/
+ - https://08december.rudub.online/
+ - https://09december.rudub.online/
+ - https://10december.rudub.online/
+ - https://11december.rudub.online/
+ - https://12december.rudub.online/
+ - https://13december.rudub.online/
caps:
categorymappings:
@@ -70,7 +96,7 @@ login:
error:
- selector: div.login2
test:
- path: /
+ path: browse.php
selector: a[href="logout.php"]
search:
diff --git a/mock-htpc/prowlarr/Definitions/rustorka.yml b/mock-htpc/prowlarr/Definitions/rustorka.yml
index 93c2f31..c7e3c23 100644
--- a/mock-htpc/prowlarr/Definitions/rustorka.yml
+++ b/mock-htpc/prowlarr/Definitions/rustorka.yml
@@ -4,9 +4,11 @@ name: Rustorka
description: "Rustorka is a RUSSIAN Semi-Private Torrent Tracker for TV / MOVIES / GENERAL"
language: ru-RU
type: semi-private
-encoding: windows-1251
+encoding: UTF-8
links:
- - http://rustorka.com/ # site forces http, does not support https
+ - https://rustorka.com/
+legacylinks:
+ - http://rustorka.com/
caps:
categorymappings:
@@ -777,12 +779,11 @@ caps:
book-search: [q]
settings:
- - name: username
+ - name: cookie
type: text
- label: Username
- - name: password
- type: password
- label: Password
+ label: Cookie
+ - name: info_cookie
+ type: info_cookie
- name: stripcyrillic
type: checkbox
label: Strip Cyrillic Letters
@@ -813,15 +814,9 @@ settings:
1: asc
login:
- path: forum/login.php
- method: post
+ method: cookie
inputs:
- login_username: "{{ .Config.username }}"
- login_password: "{{ .Config.password }}"
- autologin: 1
- login: Вход
- error:
- - selector: h4.warnColor1.mrg_16
+ cookie: "{{ .Config.cookie }}"
test:
path: forum/index.php
selector: a[href="./login.php?logout=1"]
diff --git a/mock-htpc/prowlarr/Definitions/rutor.yml b/mock-htpc/prowlarr/Definitions/rutor.yml
index 7bc92ab..42b653f 100644
--- a/mock-htpc/prowlarr/Definitions/rutor.yml
+++ b/mock-htpc/prowlarr/Definitions/rutor.yml
@@ -8,6 +8,7 @@ encoding: UTF-8
links:
- https://rutor.info/
- https://rutor.is/
+ - http://6tor.org/ # IPv6-only
legacylinks:
- https://rutor.uk-unblock.xyz/
- https://rutor.ind-unblock.xyz/
@@ -17,15 +18,6 @@ legacylinks:
- https://rutor.root.yt/
- https://rutor.unblocked.rest/
- https://rutor.unblocked.monster/
- - https://rutor.nocensor.space/
- - https://rutor.nocensor.work/
- - http://6tor.org/
- - https://rutor.nocensor.world/
- - https://rutor.nocensor.lol/
- - https://rutor.nocensor.art/
- - https://rutor.mrunblock.guru/
- - https://rutor.mrunblock.life/
- - https://rutor.nocensor.click/
- https://rutor.mrunblock.bond/ # for magnet only
- https://rutor.nocensor.cloud/
- http://new-rutor.org/ # Oops. Something went wrong, try reloading the page
@@ -196,7 +188,7 @@ search:
# some results don't have comments which throws off td count. So we go fishing for the following fields
size:
optional: true
- selector: td:contains(\00a0GB), td:contains(\00a0MB), td:contains(\00a0kB), td:contains(\00a0B)
+ selector: td:contains(\00a0TB), td:contains(\00a0GB), td:contains(\00a0MB), td:contains(\00a0kB), td:contains(\00a0B)
seeders:
selector: td span.green
leechers:
diff --git a/mock-htpc/prowlarr/Definitions/rutracker-ru.yml b/mock-htpc/prowlarr/Definitions/rutracker-ru.yml
index 40b2603..5afacec 100644
--- a/mock-htpc/prowlarr/Definitions/rutracker-ru.yml
+++ b/mock-htpc/prowlarr/Definitions/rutracker-ru.yml
@@ -212,6 +212,7 @@ caps:
- {id: 1667, cat: Audio/Lossless, desc: " |- Джаз и блюз"}
- {id: 1668, cat: Audio/Lossless, desc: " |- Электронная музыка"}
- {id: 1670, cat: Audio/Lossless, desc: " |- Отечественная поп-музыка"}
+ - {id: 1746, cat: Audio/Lossless, desc: " |- Русский рок, метал"}
- {id: 1669, cat: Audio/Lossless, desc: " |- Шансон, авторские, военные песни"}
- {id: 1740, cat: Audio/Lossless, desc: " |- Музыка в формате (Hi-Res stereo)"}
- {id: 1679, cat: Audio/Lossless, desc: " |- Зарубежная поп музыка (Lossless)"}
diff --git a/mock-htpc/prowlarr/Definitions/scenerush.yml b/mock-htpc/prowlarr/Definitions/scenerush.yml
index 587015d..c92e2a1 100644
--- a/mock-htpc/prowlarr/Definitions/scenerush.yml
+++ b/mock-htpc/prowlarr/Definitions/scenerush.yml
@@ -13,44 +13,42 @@ legacylinks:
caps:
categorymappings:
- - {id: 1, cat: PC, desc: "Apps"}
- - {id: 2, cat: Movies, desc: "XVID"}
- - {id: 3, cat: Movies/DVD, desc: "DVD"}
- - {id: 4, cat: TV, desc: "TV XVID"}
- - {id: 5, cat: PC/Games, desc: "PC Games"}
- - {id: 6, cat: Movies/HD, desc: "HD"}
- - {id: 7, cat: XXX, desc: "XXX"}
- - {id: 8, cat: TV/Anime, desc: "Anime"}
- - {id: 9, cat: Audio, desc: "Audio"}
- - {id: 10, cat: Other, desc: "Other"}
- - {id: 11, cat: Console/XBox 360, desc: "XBOX 360"}
- - {id: 12, cat: Console/PSP, desc: "PSP"}
- - {id: 13, cat: TV/Documentary, desc: "Doc"}
- - {id: 14, cat: Movies/DVD, desc: "Movies DVD"}
- - {id: 15, cat: Console, desc: "PS2"}
- - {id: 16, cat: TV/Sport, desc: "TV WWE"}
- - {id: 17, cat: TV/HD, desc: "TV X264"}
- - {id: 18, cat: TV, desc: "TV DVD"}
- - {id: 19, cat: XXX/DVD, desc: "XXX DVD"}
- - {id: 20, cat: TV/Anime, desc: "Anime DVD"}
- - {id: 21, cat: PC/Mac, desc: "Mac"}
- - {id: 23, cat: Movies, desc: "Boxset"}
- - {id: 31, cat: Other, desc: "OFF"}
- - {id: 32, cat: Movies/BluRay, desc: "BluRay"}
- - {id: 33, cat: Console/Wii, desc: "WII"}
- - {id: 34, cat: Console/PS3, desc: "PS3"}
- - {id: 35, cat: TV/Anime, desc: "Anime HD"}
- - {id: 36, cat: PC/Mobile-Android, desc: "Android"}
- - {id: 37, cat: Movies/DVD, desc: "Custom DVDR"}
+ - {id: 15, cat: Console/PS3, desc: "JOGO-PS"}
+ - {id: 11, cat: Console/XBox, desc: "JOGO-XBOX"}
+ - {id: 5, cat: PC/Games, desc: "JOGO-PC"}
+ - {id: 33, cat: Console/NDS, desc: "JOGO-ND"}
- {id: 38, cat: Movies/Other, desc: "CAM TS"}
+ - {id: 23, cat: Movies, desc: "FILME-PACK"}
+ - {id: 53, cat: Movies/SD, desc: "FILME-SD"}
+ - {id: 6, cat: Movies/HD, desc: "FILME-HD"}
+ - {id: 46, cat: Movies/UHD, desc: "FILME-4K"}
+ - {id: 32, cat: Movies/BluRay, desc: "FILME-BRAY"}
+ - {id: 3, cat: Movies/DVD, desc: "FILME-DVD"}
+ - {id: 42, cat: Movies/WEB-DL, desc: "FILME-WEB"}
+ - {id: 9, cat: Audio, desc: "ALBUNS"}
+ - {id: 14, cat: Audio/Video, desc: "MUSIC-VID"}
+ - {id: 1, cat: PC, desc: "APPS"}
+ - {id: 21, cat: PC/Mac, desc: "MAC"}
+ - {id: 36, cat: PC/Mobile-Android, desc: "ANDROID"}
+ - {id: 4, cat: TV/SD, desc: "TV-SD"}
+ - {id: 17, cat: TV/HD, desc: "TV-HD"}
+ - {id: 48, cat: TV/UHD, desc: "TV-4K"}
+ - {id: 47, cat: TV/Other, desc: "TV-PACK"}
+ - {id: 16, cat: TV/Sport, desc: "WWE"}
+ - {id: 44, cat: TV/Sport, desc: "SPORTS"}
+ - {id: 13, cat: TV/Documentary, desc: "DOC"}
+ - {id: 49, cat: TV/Anime, desc: "ANIME-4K"}
+ - {id: 20, cat: TV/Anime, desc: "ANIME-DVD"}
+ - {id: 35, cat: TV/Anime, desc: "ANIME-HD"}
+ - {id: 50, cat: TV/Anime, desc: "ANIME-PACK"}
+ - {id: 8, cat: TV/Anime, desc: "ANIME-SD"}
+ - {id: 51, cat: TV/Anime, desc: "ANIME-WEB"}
+ - {id: 7, cat: XXX, desc: "XXX"}
+ - {id: 43, cat: Books/EBook, desc: "EBOOK"}
+ - {id: 52, cat: Books/Other, desc: "CURSOS"}
+ - {id: 31, cat: Other, desc: "OFF"}
+ - {id: 10, cat: Other, desc: "OUTROS"}
- {id: 39, cat: Other, desc: "GPS"}
- - {id: 40, cat: Console/PS4, desc: "PS4"}
- - {id: 41, cat: Movies/BluRay, desc: "BDRIP"}
- - {id: 42, cat: Movies/WEB-DL, desc: "WEB DL"}
- - {id: 43, cat: Books, desc: "Ebook"}
- - {id: 44, cat: TV/Sport, desc: "Sports"}
- - {id: 46, cat: Movies/UHD, desc: "4K"}
- - {id: 47, cat: TV/HD, desc: "TV X265"}
modes:
search: [q]
@@ -125,44 +123,42 @@ search:
category:
selector: td:first-of-type
case:
- div.cat-4k: 46
+ div.cat-filme-4k: 46
div.cat-albuns: 9
div.cat-android: 36
div.cat-anime: 8
- div.cat-anime-dvdr: 20
+ div.cat-anime-dvd: 20
div.cat-anime-hd: 35
+ div.cat-anime-pack: 50
+ div.cat-anime-web: 51
+ div.cat-anime-4k: 49
div.cat-apps: 1
- div.cat-brip: 41
- div.cat-blu-ray: 32
- div.cat-boxset: 23
div.cat-cam-ts: 38
- div.cat-dvd-custom: 37
- div.cat-sports: 44
+ div.cat-cursos: 52
div.cat-doc: 13
- div.cat-dvdr: 3
- div.cat-e-book: 43
+ div.cat-ebook: 43
+ div.cat-filme-bray: 32
+ div.cat-filme-dvd: 3
+ div.cat-filme-hd: 6
+ div.cat-filme-pack: 23
+ div.cat-filme-sd: 53
+ div.cat-filme-web: 42
div.cat-gps: 39
- div.cat-hd: 6
- div.cat-games: 5
- div.cat-ps2: 15
- div.cat-ps3: 34
- div.cat-ps4: 40
- div.cat-psp: 12
- div.cat-wii: 33
- div.cat-mdvdr: 14
+ div.cat-jogo-nd: 33
+ div.cat-jogo-pc: 5
+ div.cat-jogo-ps: 15
+ div.cat-jogo-xbox: 11
div.cat-mac: 21
+ div.cat-music-vid: 14
div.cat-off: 31
- div.cat-other: 10
- div.cat-series: 4
- div.cat-series-dvdr: 18
- div.cat-series-x264: 17
- div.cat-series-x265: 47
- div.cat-web-dl: 42
+ div.cat-outros: 10
+ div.cat-sports: 44
+ div.cat-tv-4k: 48
+ div.cat-tv-hd: 17
+ div.cat-tv-pack: 47
+ div.cat-tv-sd: 4
div.cat-wwe: 16
- div.cat-xbox360: 11
- div.cat-xvid: 2
div.cat-xxx: 7
- div.cat-xxx-dvdr: 19
_audiopt:
selector: i.fg-audiopt
attribute: title
diff --git a/mock-htpc/prowlarr/Definitions/seedfile.yml b/mock-htpc/prowlarr/Definitions/seedfile.yml
index 4ce299b..156817c 100644
--- a/mock-htpc/prowlarr/Definitions/seedfile.yml
+++ b/mock-htpc/prowlarr/Definitions/seedfile.yml
@@ -6,9 +6,10 @@ language: ro-RO
type: private
encoding: UTF-8
links:
- - https://www.seedfile.ro/
+ - https://seedfile.io/
legacylinks:
- https://www.seedfile.io/
+ - https://www.seedfile.ro/
caps:
categorymappings:
@@ -16,7 +17,6 @@ caps:
- {id: 2, cat: Other, desc: "Desene SD"}
- {id: 3, cat: Other, desc: "Diverse n/a"}
- {id: 5, cat: Movies/BluRay, desc: "Filme Blu-Ray"}
- - {id: 40, cat: Movies/BluRay, desc: "Filme Blu-Ray RO"}
- {id: 6, cat: Movies/DVD, desc: "Filme DVD"}
- {id: 7, cat: Movies/DVD, desc: "Filme DVD-RO"}
- {id: 8, cat: Movies/HD, desc: "Filme HD"}
@@ -39,6 +39,8 @@ caps:
- {id: 36, cat: Movies/3D, desc: "Video 3D"}
- {id: 37, cat: Movies/UHD, desc: "Filme 4K"}
- {id: 38, cat: Movies/UHD, desc: "Filme 4K RO"}
+ - {id: 40, cat: Movies/BluRay, desc: "Filme Blu-Ray RO"}
+ - {id: 41, cat: TV/UHD, desc: "Seriale 4K"}
modes:
search: [q]
@@ -73,7 +75,7 @@ login:
- selector: div.recover-error2
test:
path: home
- selector: a[href^="logout.php"]
+ selector: a[href^="/logout.php?id="]
download:
selectors:
diff --git a/mock-htpc/prowlarr/Definitions/seedoff.yml b/mock-htpc/prowlarr/Definitions/seedoff.yml
index 77f0401..76f2621 100644
--- a/mock-htpc/prowlarr/Definitions/seedoff.yml
+++ b/mock-htpc/prowlarr/Definitions/seedoff.yml
@@ -7,6 +7,7 @@ type: public
encoding: UTF-8
links:
- https://seedoff.zannn.top/
+legacylinks:
- https://forum.zannn.top/
caps:
@@ -189,24 +190,24 @@ download:
- name: validfilename
search:
+ headers:
+ cookie: ["gophp=gop; trololofm=test; bookcontent=0"]
paths:
- # https://seedoff.zannn.top/search?page=ajax&search=&active=0&category=0&options=0&recommend=0&have_quality=0&types_search=0&period=0&genres=&order=3&by=2
- - path: search
+ # https://seedoff.zannn.top/index.php?page=ajax&active=0&options=0&recommend=0&sticky=0&period=0&options=0&order=3&by=2&pages=1
+ - path: index.php
inputs:
page: ajax
search: "{{ .Keywords }}"
# 0 all, 1 active, 2 dead
active: 0
- category: 0
# 0 name, 1 name & desc
options: 0
recommend: 0
- have_quality: 0
- # 0 whole word, 1 partial word
- types_search: 0
+ sticky: 0
period: 0
order: "{{ .Config.sort }}"
by: "{{ .Config.type }}"
+ pages: 1
keywordsfilters:
- name: re_replace # S01 to сезон 1
@@ -216,6 +217,9 @@ search:
- name: re_replace # S01E02 to сезон 1 сери 2
args: ["(?i)\\bS0*(\\d+)E0*(\\d+)\\b", "сезон $1 сери $2"]
+ error:
+ - selector: td.lista:contains("Поиск временно не работает")
+
rows:
selector: table.lista tbody tr:has(a[href^="/torrent/"])
diff --git a/mock-htpc/prowlarr/Definitions/seedpool-api.yml b/mock-htpc/prowlarr/Definitions/seedpool-api.yml
new file mode 100644
index 0000000..4a8fbac
--- /dev/null
+++ b/mock-htpc/prowlarr/Definitions/seedpool-api.yml
@@ -0,0 +1,196 @@
+---
+id: seedpool-api
+name: seedpool (API)
+description: "seedpool is a Private Torrent Tracker for 0-day MOVIES / TV / GENERAL"
+language: en-US
+type: private
+encoding: UTF-8
+links:
+ - https://seedpool.org/
+
+caps:
+ categorymappings:
+ - {id: 2, cat: TV, desc: "TV Show"}
+ - {id: 1, cat: Movies, desc: "Movie"}
+ - {id: 10, cat: Movies/UHD, desc: "4K Movie"}
+ - {id: 13, cat: TV, desc: "TV Boxsets"}
+ - {id: 12, cat: PC/Games, desc: "Linux Game"}
+ - {id: 3, cat: PC/Games, desc: "PC Game"}
+ - {id: 5, cat: Audio/Lossless, desc: "Music"}
+ - {id: 6, cat: TV/Anime, desc: "Anime"}
+ - {id: 4, cat: Console/Other, desc: "NSW Game"}
+ - {id: 8, cat: TV/Sport, desc: "Sports"}
+ - {id: 7, cat: Books/EBook, desc: "E-Books"}
+ - {id: 9, cat: Audio/Audiobook, desc: "Audiobook"}
+ - {id: 15, cat: Other, desc: "Education"}
+ - {id: 16, cat: PC/0day, desc: "Windows"}
+ - {id: 17, cat: PC, desc: "Linux"}
+ - {id: 18, cat: PC/Mac, desc: "macOS"}
+ - {id: 14, cat: Console/PS4, desc: "PS4"}
+ - {id: 19, cat: Console/XBox, desc: "Xbox"}
+ - {id: 11, cat: Other, desc: "Other"}
+
+ modes:
+ search: [q]
+ tv-search: [q, season, ep, tmdbid]
+ movie-search: [q, tmdbid]
+ music-search: [q]
+ book-search: [q]
+
+settings:
+ - name: apikey
+ type: text
+ label: APIKey
+ - name: info_key
+ type: info
+ label: About your API key
+ default: "Find or Generate a new API Token by accessing your seedpool account My Settings page and clicking on the API Key tab."
+ - name: freeleech
+ type: checkbox
+ label: Search freeleech only
+ default: false
+ - name: single_file_release_use_filename
+ type: checkbox
+ label: Use filename as title for single file releases
+ default: true
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: created_at
+ options:
+ created_at: created
+ seeders: seeders
+ size: size
+ name: title
+ - name: type
+ type: select
+ label: Order requested from site
+ default: desc
+ options:
+ desc: desc
+ asc: asc
+
+login:
+ path: /api/torrents
+ method: get
+ error:
+ - selector: a[href*="/login"]
+ message:
+ text: "The API key was not accepted by {{ .Config.sitelink }}."
+ - selector: :root:contains("Account is Banned")
+
+search:
+ paths:
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
+ - path: "/api/torrents/filter"
+ response:
+ type: json
+
+ headers:
+ Authorization: ["Bearer {{ .Config.apikey }}"]
+
+ inputs:
+ # if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
+ $raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
+ name: "{{ .Keywords }}"
+ seasonNumber: "{{ .Query.Season }}"
+ episodeNumber: "{{ .Query.Ep }}"
+ tmdbId: "{{ .Query.TMDBID }}"
+ "free[]": "{{ if .Config.freeleech }}100{{ else }}{{ end }}"
+ sortField: "{{ .Config.sort }}"
+ sortDirection: "{{ .Config.type }}"
+ perPage: 100
+
+ keywordsfilters:
+ - name: re_replace
+ args: ["\\.", " "]
+
+ rows:
+ selector: data
+ attribute: attributes
+
+ fields:
+ category:
+ selector: category_id
+ title_optional:
+ selector: name
+ title_filename:
+ selector: "files[0].name"
+ optional: true
+ files:
+ selector: num_file
+ title:
+ text: "{{ if and (.Config.single_file_release_use_filename) (eq .Result.files \"1\") (.Result.title_filename) }}{{ .Result.title_filename }}{{ else }}{{ .Result.title_optional }}{{ end }}"
+ details:
+ selector: details_link
+ download:
+ selector: download_link
+ infohash:
+ selector: info_hash
+ poster:
+ selector: meta.poster
+ filters:
+ - name: replace
+ args: ["https://via.placeholder.com/90x135", ""]
+ tmdbid:
+ selector: tmdb_id
+ genre:
+ selector: meta.genres
+ filters:
+ - name: re_replace
+ args: ["(?i)(Science Fiction)", "Science_Fiction"]
+ - name: re_replace
+ args: ["(?i)(TV Movie)", "TV_Movie"]
+ - name: replace
+ args: [" & ", "_&_"]
+ description:
+ text: "{{ .Result.genre }}"
+ seeders:
+ selector: seeders
+ leechers:
+ selector: leechers
+ grabs:
+ selector: times_completed
+ date:
+ # "created_at": "2021-10-18T00:34:50.000000Z" is returned by Newtonsoft.Json.Linq as 18/10/2021 00:34:50
+ selector: created_at
+ filters:
+ - name: append
+ args: " +00:00" # GMT
+ - name: dateparse
+ args: "MM/dd/yyyy HH:mm:ss zzz"
+ size:
+ selector: size
+ _featured:
+ selector: featured
+ case:
+ False: "{{ .False }}"
+ True: "{{ .True }}"
+ downloadvolumefactor_freeleech:
+ # api returns 0%, 25%, 50%, 75%, 100%
+ selector: freeleech
+ case:
+ 0%: 1 # not free
+ 25%: 0.75
+ 50%: 0.5
+ 75%: 0.25
+ 100%: 0 # freeleech
+ "*": 0 # catch errors
+ downloadvolumefactor:
+ text: "{{ if .Result._featured }}0{{ else }}{{ .Result.downloadvolumefactor_freeleech }}{{ end }}"
+ uploadvolumefactor_double_upload:
+ # api returns False, True
+ selector: double_upload
+ case:
+ False: 1 # normal
+ True: 2 # double
+ uploadvolumefactor:
+ text: "{{ if .Result._featured }}2{{ else }}{{ .Result.uploadvolumefactor_double_upload }}{{ end }}"
+# global MR is 1.0 but torrents must be seeded for 10 days regardless of ratio
+# minimumratio:
+# text: 1.0
+ minimumseedtime:
+ # 10 days (as seconds = 10 x 24 x 60 x 60)
+ text: 864000
+# json UNIT3D 8.2.0 (custom)
diff --git a/mock-htpc/prowlarr/Definitions/selezen.yml b/mock-htpc/prowlarr/Definitions/selezen.yml
index 2e1fc40..6efa257 100644
--- a/mock-htpc/prowlarr/Definitions/selezen.yml
+++ b/mock-htpc/prowlarr/Definitions/selezen.yml
@@ -8,12 +8,15 @@ encoding: UTF-8
links:
- https://use.selezen.club/
- https://www.selezen.club/
- - https://selezen.org/
+ - https://open.selezen.org/
+ - https://www.selezen.top/
+ - https://open.selezen.top/
legacylinks:
- https://www.selezen.site/
- https://mel.selezen.net/
- https://s1.selezen.site/
- https://www.selezen.net/
+ - https://selezen.org/
caps:
categorymappings:
diff --git a/mock-htpc/prowlarr/Definitions/sexypics.yml b/mock-htpc/prowlarr/Definitions/sexypics.yml
index 3b51e02..4beaa00 100644
--- a/mock-htpc/prowlarr/Definitions/sexypics.yml
+++ b/mock-htpc/prowlarr/Definitions/sexypics.yml
@@ -33,6 +33,8 @@ settings:
options:
desc: desc
asc: asc
+ - name: info_flaresolverr
+ type: info_flaresolverr
search:
headers:
diff --git a/mock-htpc/prowlarr/Definitions/sfp.yml b/mock-htpc/prowlarr/Definitions/sfp.yml
new file mode 100644
index 0000000..b421336
--- /dev/null
+++ b/mock-htpc/prowlarr/Definitions/sfp.yml
@@ -0,0 +1,186 @@
+---
+id: sfp
+name: SFP
+description: "SFP (Share Friends Projekt) is a GERMAN Private Torrent Tracker for MOVIES / TV / GENERAL"
+language: de-DE
+type: private
+encoding: UTF-8
+links:
+ - https://s-f-p.dyndns.dk/
+
+caps:
+ categorymappings:
+ - {id: 111, cat: TV/Anime, desc: "Anime"}
+ - {id: 113, cat: TV/Anime, desc: "Anime - Filme"}
+ - {id: 137, cat: TV/Anime, desc: "Anime - Serien"}
+ - {id: 170, cat: TV/Anime, desc: "Anime - Serienpacks"}
+ - {id: 92, cat: PC, desc: "Apps"}
+ - {id: 136, cat: PC/Mobile-Android, desc: "Apps- Android"}
+ - {id: 122, cat: PC/Mobile-iOS, desc: "Apps- iOS"}
+ - {id: 100, cat: PC, desc: "Apps- Linux"}
+ - {id: 99, cat: PC/0day, desc: "Apps - Windows"}
+ - {id: 164, cat: TV/Documentary, desc: "Doku"}
+ - {id: 171, cat: TV/Documentary, desc: "Doku - HD"}
+ - {id: 173, cat: TV/Documentary, desc: "Doku - Packs"}
+ - {id: 172, cat: TV/Documentary, desc: "Doku - SD"}
+ - {id: 165, cat: XXX, desc: "Erotik Filme"}
+ - {id: 166, cat: XXX, desc: "Erotik Filme - XXX"}
+ - {id: 74, cat: Movies, desc: "Filme"}
+ - {id: 77, cat: Movies/DVD, desc: "Filme - DVD"}
+ - {id: 82, cat: Movies/HD, desc: "Filme - HD 1080"}
+ - {id: 79, cat: Movies/HD, desc: "Filme - HD 720"}
+ - {id: 76, cat: Movies/SD, desc: "Filme - SD"}
+ - {id: 160, cat: Movies/UHD, desc: "Filme - UHD"}
+ - {id: 124, cat: Movies, desc: "Kid's Only"}
+ - {id: 125, cat: Movies, desc: "Kids - Filme"}
+ - {id: 127, cat: Audio/Audiobook, desc: "Kids - Hörbücher"}
+ - {id: 129, cat: Audio, desc: "Kids - Musik"}
+ - {id: 139, cat: TV, desc: "Kids - Serien"}
+ - {id: 75, cat: Audio, desc: "Musik"}
+ - {id: 146, cat: Audio, desc: "Musik - Flac"}
+ - {id: 88, cat: Audio/MP3, desc: "Musik - MP3"}
+ - {id: 161, cat: Audio, desc: "Musik - Packs"}
+ - {id: 90, cat: Audio/Video, desc: "Musik - Videos"}
+ - {id: 106, cat: TV, desc: "Serien"}
+ - {id: 130, cat: TV/HD, desc: "Serien - HD"}
+ - {id: 133, cat: TV/HD, desc: "Serien - Packs HD"}
+ - {id: 134, cat: TV/SD, desc: "Serien - Packs SD"}
+ - {id: 163, cat: TV/UHD, desc: "Serien - Packs UHD<"}
+ - {id: 131, cat: TV/SD, desc: "Serien - SD"}
+ - {id: 162, cat: TV/UHD, desc: "Serien - UHD"}
+ - {id: 109, cat: Other, desc: "Sonstiges"}
+ - {id: 123, cat: Audio/Audiobook, desc: "Sonstiges - A-Books"}
+ - {id: 110, cat: Books/EBook, desc: "Sonstiges - E-Books"}
+ - {id: 178, cat: Movies/Foreign, desc: "Sonstiges - Filme - Englisch"}
+ - {id: 158, cat: Movies, desc: "Sonstiges - Klassiker"}
+ - {id: 159, cat: Movies/HD, desc: "Sonstiges - SFP - Highlights"}
+ - {id: 176, cat: TV/Sport, desc: "Sonstiges - Sport"}
+ - {id: 91, cat: Console, desc: "Spiele"}
+ - {id: 94, cat: Console/NDS, desc: "Spiele - Nintendo"}
+ - {id: 93, cat: PC/Games, desc: "Spiele - PC Games"}
+ - {id: 45, cat: Console/PS3, desc: "Spiele - Playstation"}
+ - {id: 119, cat: Console/XBox, desc: "Spiele - Xbox"}
+
+ modes:
+ search: [q]
+ tv-search: [q, season, ep]
+ movie-search: [q, imdbid]
+ music-search: [q]
+ book-search: [q]
+
+settings:
+ - name: cookie
+ type: text
+ label: Cookie
+ - name: info_cookie
+ type: info_cookie
+ - name: freeleech
+ type: checkbox
+ label: Filter freeleech only
+ default: false
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: added
+ options:
+ added: created
+ seeders: seeders
+ size: size
+ name: title
+ - name: type
+ type: select
+ label: Order requested from site
+ default: desc
+ options:
+ desc: desc
+ asc: asc
+ - name: info_tpp
+ type: info
+ label: Results Per Page
+ default: For best results, leave the Anzahl der Torrents pro Seite: setting to Nutze die voreingestellten Werte on your account profile. This returns 50 per page.
+ - name: info_activity
+ type: info
+ label: Account Inactivity
+ default: "Inactive users are not welcome on the tracker. Anyone who does not delete (or seed) a file at least once a month risks having their account deactivated."
+
+login:
+ method: cookie
+ test:
+ path: index.php
+ selector: a[href*="/logout.php?logouthash="]
+
+search:
+ paths:
+ - path: browse.php
+ 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 }}"
+ # does not return imdb link in results
+
+ rows:
+ selector: "table.sortable tr:has(a[href*=\"/download.php?id=\"]){{ if .Config.freeleech }}:has(img[src$=\"/freedownload.gif\"]){{ else }}{{ end }}"
+
+ fields:
+ category:
+ selector: a[href*="/browse.php?category="]
+ attribute: href
+ filters:
+ - name: querystring
+ args: category
+ title:
+ selector: a[href*="/details.php?id="]
+ details:
+ selector: a[href*="/details.php?id="]
+ attribute: href
+ download:
+ 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
+ filters:
+ - name: regexp
+ args: "(\\d{2}-\\d{2}-\\d{2} \\d{2}:\\d{2})"
+ - name: dateparse
+ args: "dd-MM-yy HH:mm"
+ size:
+ selector: td:nth-last-child(5)
+ grabs:
+ selector: td:nth-last-child(4)
+ seeders:
+ selector: td:nth-last-child(3)
+ leechers:
+ selector: td:nth-last-child(2)
+ description:
+ # Wait: 4 h
+ # Cekanje: 4 h
+ selector: div.tooltip-content > div:last-child
+ downloadvolumefactor:
+ case:
+ img[src$="/freedownload.gif"]: 0
+ img[src$="/silverdownload.gif"]: 0.5
+ "*": 1
+ uploadvolumefactor:
+ case:
+ img[src$="/x2.gif"]: 2
+ "*": 1
+ minimumratio:
+ text: 0.7
+ minimumseedtime:
+ # 3 days (as seconds = 3 x 24 x 60 x 60)
+ text: 259200
+# TS Special Edition v.8.0
diff --git a/mock-htpc/prowlarr/Definitions/shareisland-api.yml b/mock-htpc/prowlarr/Definitions/shareisland-api.yml
index a85e997..4f79b87 100644
--- a/mock-htpc/prowlarr/Definitions/shareisland-api.yml
+++ b/mock-htpc/prowlarr/Definitions/shareisland-api.yml
@@ -43,6 +43,10 @@ settings:
type: checkbox
label: Search freeleech only
default: false
+ - name: single_file_release_use_filename
+ type: checkbox
+ label: Use filename as title for single file releases
+ default: true
- name: sort
type: select
label: Sort requested from site
@@ -72,11 +76,12 @@ login:
- selector: a[href*="/login"]
message:
text: "The API key was not accepted by {{ .Config.sitelink }}."
+ - selector: :root:contains("Account is Banned")
search:
paths:
- # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v7.0.0)
- # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L349
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
- path: "/api/torrents/filter"
response:
type: json
@@ -114,8 +119,15 @@ search:
fields:
category:
selector: category_id
- title:
+ title_optional:
selector: name
+ title_filename:
+ selector: "files[0].name"
+ optional: true
+ files:
+ selector: num_file
+ title:
+ text: "{{ if and (.Config.single_file_release_use_filename) (eq .Result.files \"1\") (.Result.title_filename) }}{{ .Result.title_filename }}{{ else }}{{ .Result.title_optional }}{{ end }}"
filters:
- name: re_replace # replace special characters with " " (space)
args: ["[\\[!\"#$%&'()*+,\\-.\\/:;<=>?@[\\]^_`{|}~]", " "]
@@ -160,16 +172,12 @@ search:
genre:
selector: meta.genres
filters:
- - name: re_replace
- args: ["(?i)^None$", ""]
- name: re_replace
args: ["(?i)(televisione film)", "televisione_film"]
- name: replace
args: [" & ", "_&_"]
description:
text: "{{ .Result.genre }}"
- files:
- selector: num_file
seeders:
selector: seeders
leechers:
@@ -181,12 +189,17 @@ search:
selector: created_at
filters:
- name: append
- args: " +00:00" # GMT
+ args: " +01:00" # CET
- name: dateparse
args: "MM/dd/yyyy HH:mm:ss zzz"
size:
selector: size
- downloadvolumefactor:
+ _featured:
+ selector: featured
+ case:
+ False: "{{ .False }}"
+ True: "{{ .True }}"
+ downloadvolumefactor_freeleech:
# api returns 0%, 25%, 50%, 75%, 100%
selector: freeleech
case:
@@ -196,16 +209,20 @@ search:
75%: 0.25
100%: 0 # freeleech
"*": 0 # catch errors
- uploadvolumefactor:
+ downloadvolumefactor:
+ text: "{{ if .Result._featured }}0{{ else }}{{ .Result.downloadvolumefactor_freeleech }}{{ end }}"
+ uploadvolumefactor_double_upload:
# api returns False, True
selector: double_upload
case:
False: 1 # normal
True: 2 # double
-# global MR is 0.4 but torrents must be seeded for 7 days regardless of ratio
+ uploadvolumefactor:
+ text: "{{ if .Result._featured }}2{{ else }}{{ .Result.uploadvolumefactor_double_upload }}{{ end }}"
+# global MR is 0.4 but torrents must be seeded for 6 days regardless of ratio
# minimumratio:
# text: 0.4
minimumseedtime:
- # 6 day (as seconds = 6 x 24 x 60 x 60)
+ # 6 days (as seconds = 6 x 24 x 60 x 60)
text: 518400
-# json UNIT3D 7.2.5 (custom)
+# json UNIT3D 8.3.3 (custom)
diff --git a/mock-htpc/prowlarr/Definitions/sharewood-api.yml b/mock-htpc/prowlarr/Definitions/sharewood-api.yml
new file mode 100644
index 0000000..bcdc1bd
--- /dev/null
+++ b/mock-htpc/prowlarr/Definitions/sharewood-api.yml
@@ -0,0 +1,203 @@
+---
+id: sharewood-api
+replaces:
+ - sharewoodapi
+name: Sharewood (API)
+description: "sharewood is a Semi-Private FRENCH Torrent Tracker for GENERAL"
+language: fr-FR
+type: semi-private
+encoding: UTF-8
+requestDelay: 2.1
+certificates:
+ - 023A091295E81813D040DFA0FA842DF9892BF0F5 # expired 10-March-2024 note: despite a new CA issued this one still pops up occasionally
+links:
+ - https://www.sharewood.tv/
+
+caps:
+ categorymappings:
+ # categories
+# - {id: 1, cat: Movies, desc: "Vidéo"}
+# - {id: 1, cat: TV, desc: "Vidéo"}
+# - {id: 2, cat: Audio, desc: "Audio"}
+# - {id: 3, cat: PC, desc: "Application"}
+# - {id: 4, cat: Books/EBook, desc: "Ebooks"}
+# - {id: 5, cat: PC/Games, desc: "Jeu-Vidéo"}
+# - {id: 6, cat: Other, desc: "Formation"}
+# - {id: 7, cat: XXX, desc: "XXX"}
+
+ # subcategories
+ - {id: 9, cat: Movies, desc: "Films"}
+ - {id: 10, cat: TV, desc: "Séries"}
+ - {id: 11, cat: Movies/Other, desc: "Films Animations"}
+ - {id: 12, cat: TV/Anime, desc: "Séries Animations"}
+ - {id: 13, cat: TV/Documentary, desc: "Documentaires"}
+ - {id: 14, cat: TV/Other, desc: "Emissions TV"}
+ - {id: 15, cat: TV/Other, desc: "Spectacles/Concerts"}
+ - {id: 16, cat: TV/Sport, desc: "Sports"}
+ - {id: 17, cat: Audio/Video, desc: "Karaoké Vidéo"}
+ - {id: 18, cat: Audio/Other, desc: "Karaoké"}
+ - {id: 20, cat: Audio, desc: "Musiques"}
+ - {id: 21, cat: Audio/Other, desc: "Podcasts"}
+ - {id: 22, cat: Audio/Other, desc: "Samples"}
+ - {id: 23, cat: Audio/Audiobook, desc: "Ebooks Audio"}
+ - {id: 24, cat: Books/EBook, desc: "BDs"}
+ - {id: 25, cat: Books/Comics, desc: "Comics"}
+ - {id: 26, cat: Books/Other, desc: "Mangas"}
+ - {id: 27, cat: Books, desc: "Livres"}
+ - {id: 28, cat: Books/Mags, desc: "Presse"}
+ - {id: 29, cat: PC, desc: "Applications Linux"}
+ - {id: 30, cat: PC/0day, desc: "Applications Windows"}
+ - {id: 31, cat: PC/Mac, desc: "Applications Mac"}
+ - {id: 34, cat: PC/Mobile-iOS, desc: "Applications Smartphone/Tablette"}
+ - {id: 34, cat: PC/Mobile-Android, desc: "Applications Smartphone/Tablette"}
+ - {id: 35, cat: PC/Mobile-Other, desc: "GPS"}
+ - {id: 36, cat: PC/Games, desc: "Jeux Linux"}
+ - {id: 37, cat: PC/Games, desc: "Jeux Windows"}
+ - {id: 38, cat: PC/Mac, desc: "Jeux Mac"}
+ - {id: 39, cat: Console/NDS, desc: "Jeux Nintendo"}
+ - {id: 39, cat: Console/Wii, desc: "Jeux Nintendo"}
+ - {id: 39, cat: Console/Wiiware, desc: "Jeux Nintendo"}
+ - {id: 39, cat: Console/3DS, desc: "Jeux Nintendo"}
+ - {id: 39, cat: Console/WiiU, desc: "Jeux Nintendo"}
+ - {id: 40, cat: Console/PS4, desc: "Jeux Sony"}
+ - {id: 41, cat: PC/Mobile-Android, desc: "Jeux Smartphone/Tablette"}
+ - {id: 42, cat: PC/Games, desc: "Jeux Microsoft"}
+ - {id: 43, cat: Other, desc: "Rétrogaming & Emulation"}
+ - {id: 44, cat: XXX, desc: "Films XXX"}
+ - {id: 45, cat: XXX/Other, desc: "XXX Hentai"}
+ - {id: 47, cat: XXX/ImageSet, desc: "XXX Images"}
+ - {id: 48, cat: XXX/Other, desc: "XXX Jeux-Vidéo"}
+ - {id: 49, cat: Other/Misc, desc: "Formations Vidéos"}
+ - {id: 50, cat: Other/Misc, desc: "Formations Logiciels"}
+ - {id: 51, cat: XXX/Other, desc: "XXX Ebooks"}
+ - {id: 52, cat: Audio/Video, desc: "Vidéos-Clips"}
+
+ modes:
+ search: [q]
+ tv-search: [q, season, ep]
+ movie-search: [q]
+ music-search: [q]
+ book-search: [q]
+ allowrawsearch: true
+
+settings:
+ - name: passkey
+ type: text
+ label: Passkey
+ - name: info_passkey
+ type: info
+ label: About your Passkey
+ default: "Find your Passkey by accessing your Sharewood profile on the My Profile page and scrolling down to the Passkey field."
+ - name: freeleech
+ type: checkbox
+ label: Search freeleech only
+ default: false
+ - name: multilang
+ type: checkbox
+ label: Replace MULTi by another language in release name
+ default: false
+ - name: multilanguage
+ type: select
+ label: Replace MULTi by this language
+ default: FRENCH
+ options:
+ FRENCH: FRENCH
+ MULTi FRENCH: MULTi FRENCH
+ ENGLISH: ENGLISH
+ MULTi ENGLISH: MULTi ENGLISH
+ VOSTFR: VOSTFR
+ MULTi VOSTFR: MULTi VOSTFR
+ - name: vostfr
+ type: checkbox
+ label: Replace VOSTFR and SUBFRENCH with ENGLISH
+ default: false
+
+login:
+ path: "api/{{ .Config.passkey }}/last-torrents"
+ method: get
+ error:
+ - selector: ":root:contains(\"Passkey invalide\")"
+ - selector: ":root:contains(\"503 Service Temporarily Unavailable\")"
+
+search:
+ paths:
+ - path: "api/{{ .Config.passkey }}/{{ if .Keywords }}search{{ else }}last-torrents{{ end }}"
+ response:
+ type: json
+
+ inputs:
+ subcategory: "{{ join .Categories \",\" }}"
+ name: "{{ .Keywords }}"
+ limit: 50
+ free: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
+
+ keywordsfilters:
+ - name: re_replace
+ args: ["[^\\w]+", " "]
+
+ rows:
+ selector: $
+
+ fields:
+ _id:
+ selector: id
+ category:
+ selector: subcategory_id
+ title_phase1:
+ selector: name
+ title_vostfr:
+ text: "{{ .Result.title_phase1 }}"
+ filters:
+ - name: re_replace
+ args: ["(?i)\\b(vostfr|subfrench)\\b", "ENGLISH"]
+ title_phase2:
+ text: "{{ if .Config.vostfr }}{{ .Result.title_vostfr }}{{ else }}{{ .Result.title_phase1 }}{{ end }}"
+ title_multilang:
+ text: "{{ .Result.title_phase2 }}"
+ filters:
+ - name: re_replace
+ args: ["(?i)\\b(MULTI(?!.*(?:FRENCH|ENGLISH|VOSTFR)))\\b", "{{ .Config.multilanguage }}"]
+ title:
+ text: "{{ if .Config.multilang }}{{ .Result.title_multilang }}{{ else }}{{ .Result.title_phase2 }}{{ end }}"
+ details:
+ selector: slug
+ filters:
+ - name: prepend
+ args: "/torrents/"
+ - name: append
+ args: ".{{ .Result._id }}"
+ download:
+ selector: download_url
+ size:
+ selector: size
+ seeders:
+ selector: seeders
+ leechers:
+ selector: leechers
+ grabs:
+ selector: times_completed
+ date:
+ selector: created_at
+ filters:
+ - name: append
+ args: " +00:00" # GMT
+ - name: dateparse
+ args: "yyyy-MM-dd HH:mm:ss zzz"
+ downloadvolumefactor:
+ # api returns 0=false, 1=true
+ selector: free
+ case:
+ 0: 1 # not free
+ 1: 0 # freeleech
+ uploadvolumefactor:
+ # api returns 0=false, 1=true
+ selector: doubleup
+ case:
+ 0: 1 # normal
+ 1: 2 # double
+ minimumratio:
+ text: 0.75
+ minimumseedtime:
+ # 3 days (as seconds = 3 x 24 x 60 x 60)
+ text: 259200
+# UNIT3D
diff --git a/mock-htpc/prowlarr/Definitions/siambit.yml b/mock-htpc/prowlarr/Definitions/siambit.yml
index 70bf5d0..62499b2 100644
--- a/mock-htpc/prowlarr/Definitions/siambit.yml
+++ b/mock-htpc/prowlarr/Definitions/siambit.yml
@@ -127,7 +127,7 @@ download:
search:
paths:
- - path: viewno18sb.php
+ - path: viewno18sbx.php
categories: [1, 75, 10, 9, 110, 7, 40, 16, 3, 70, 100, 85, 105, 8, 56, 19, 20, 55, 21, 2, 130, 60, 90, 91, 92, 89, 93, 4, 50, 18, 17, 11, 5, 54, 51, 52, 57, 53]
- path: viewbrsb.php
categories: [901, 902, 903, 904, 905, 906, 907, 908, 910, 911, 912]
@@ -143,7 +143,8 @@ search:
fields:
category:
- selector: a[href^="viewno18sb.php?cat="], a[href^="viewbrsb.php?cat="]
+ # the last selector is temporary as the site has apparently not yet updated their html for the cat links ;-)
+ selector: a[href^="viewno18sbx.php?cat="], a[href^="viewbrsb.php?cat="], a[href^="viewno18sb.php?cat="]
attribute: href
filters:
- name: querystring
diff --git a/mock-htpc/prowlarr/Definitions/simpleanime.yml b/mock-htpc/prowlarr/Definitions/simpleanime.yml
index 4d34f99..3058654 100644
--- a/mock-htpc/prowlarr/Definitions/simpleanime.yml
+++ b/mock-htpc/prowlarr/Definitions/simpleanime.yml
@@ -58,8 +58,9 @@ search:
download:
selector: a[href^="thread-"]
attribute: href
- date:
- selector: span.date
+ date_elapsed:
+ selector: span.date:contains("前")
+ optional: true
filters:
- name: replace
args: ["秒前", " seconds ago"]
@@ -74,6 +75,16 @@ search:
- name: replace
args: ["年前", " years ago"]
- name: timeago
+ date_added:
+ selector: span.date:not(:contains("前"))
+ optional: true
+ filters:
+ - name: append
+ args: " +08:00" # CST
+ - name: dateparse
+ args: "yyyy-M-d zzz"
+ date:
+ text: "{{ if or .Result.date_elapsed .Result.date_added }}{{ or .Result.date_elapsed .Result.date_added }}{{ else }}now{{ end }}"
size:
text: 512MB
seeders:
diff --git a/mock-htpc/prowlarr/Definitions/solidtorrents.yml b/mock-htpc/prowlarr/Definitions/solidtorrents.yml
index 06968fa..4ec2303 100644
--- a/mock-htpc/prowlarr/Definitions/solidtorrents.yml
+++ b/mock-htpc/prowlarr/Definitions/solidtorrents.yml
@@ -7,12 +7,11 @@ type: public
encoding: UTF-8
requestDelay: 2
links:
- - https://solidtorrents.to/
+ - https://solidtorrents.eu/
legacylinks:
- https://solidtorrents.net/
- - https://solidtorrents.nocensor.click/
- - https://solidtorrents.eu/
- https://solidtorrents.nocensor.cloud/
+ - https://solidtorrents.to/
caps:
categories:
@@ -40,6 +39,7 @@ caps:
"Other/Source Code": PC
"Other/Video": TV
Softwares: PC/0day
+ "Softwares/Mac": PC/Mac
"Softwares/Windows": PC/0day
TV: TV
Unknown: Other
diff --git a/mock-htpc/prowlarr/Definitions/speedmasterhd.yml b/mock-htpc/prowlarr/Definitions/speedmasterhd.yml
index d604069..3367f14 100644
--- a/mock-htpc/prowlarr/Definitions/speedmasterhd.yml
+++ b/mock-htpc/prowlarr/Definitions/speedmasterhd.yml
@@ -183,9 +183,9 @@ search:
grabs:
selector: div.selection_unter_ae
seeders:
- selector: div.selection_unter_aa > b
+ selector: div.selection_unter_aa
leechers:
- selector: div.selection_unter_aaa > b
+ selector: div.selection_unter_aaa
date_day:
# Heute 03:27:27
# Gestern 21:00:59
@@ -196,7 +196,8 @@ search:
args: ["Heute ", "Today"]
- name: replace
args: ["Gestern ", "Yesterday"]
- - name: fuzzytime
+ - name: append
+ args: " +01:00" # CET
date_year:
# 03.03.2020 um 23:31:52
selector: div.selection_unter_ab:not(:contains("Heute")):not(:contains("Gestern"))
diff --git a/mock-htpc/prowlarr/Definitions/spiritofrevolution.yml b/mock-htpc/prowlarr/Definitions/spiritofrevolution.yml
index 3fe4be9..2c8c0bf 100644
--- a/mock-htpc/prowlarr/Definitions/spiritofrevolution.yml
+++ b/mock-htpc/prowlarr/Definitions/spiritofrevolution.yml
@@ -149,13 +149,10 @@ search:
selector: div.selection_unter_ad
grabs:
selector: div.selection_unter_ae
- filters:
- - name: replace
- args: [" x", ""]
seeders:
- selector: div.selection_unter_aa > b
+ selector: div.selection_unter_aa
leechers:
- selector: div.selection_unter_aaa > b
+ selector: div.selection_unter_aaa
date_day:
# Heute 03:27:27
# Gestern 21:00:59
@@ -166,7 +163,8 @@ search:
args: ["Heute ", "Today"]
- name: replace
args: ["Gestern ", "Yesterday"]
- - name: fuzzytime
+ - name: append
+ args: " +01:00" # CET
date_year:
# 03.03.2020 um 23:31:52
selector: div.selection_unter_ab:not(:contains("Heute")):not(:contains("Gestern"))
diff --git a/mock-htpc/prowlarr/Definitions/sportscult.yml b/mock-htpc/prowlarr/Definitions/sportscult.yml
index 04cfc1c..9e89e18 100644
--- a/mock-htpc/prowlarr/Definitions/sportscult.yml
+++ b/mock-htpc/prowlarr/Definitions/sportscult.yml
@@ -20,22 +20,21 @@ caps:
- {id: 29, cat: TV/Sport, desc: "Boxing"}
- {id: 19, cat: TV/Sport, desc: "BrainGames"}
- {id: 36, cat: TV/Sport, desc: "BreakDance"}
- - {id: 40, cat: TV/Sport, desc: "Golf"}
- {id: 23, cat: TV/Sport, desc: "Cycling"}
- {id: 31, cat: TV/Sport, desc: "Documentary"}
- {id: 1, cat: TV/Sport, desc: "European Basketball"}
- - {id: 6, cat: TV/Sport, desc: "European Soccer"}
- {id: 37, cat: TV/Sport, desc: "Extreme Sports"}
- {id: 9, cat: TV/Sport, desc: "Fight Sports"}
- {id: 32, cat: TV/Sport, desc: "Formula1"}
- {id: 45, cat: TV/Sport, desc: "GAA (Gaelic)"}
- - {id: 8, cat: TV/Sport, desc: "Golf"}
- {id: 22, cat: TV/Sport, desc: "Gymnastics"}
+ - {id: 59, cat: TV/Sport, desc: "UFL"}
- {id: 39, cat: TV/Sport, desc: "Handball"}
- {id: 2, cat: TV/Sport, desc: "International Basket"}
- {id: 25, cat: TV/Sport, desc: "IceHockey"}
- {id: 4, cat: TV/Sport, desc: "International Soccer"}
- {id: 42, cat: TV/Sport, desc: "KHL"}
+ - {id: 55, cat: TV/Sport, desc: "MotoGP"}
- {id: 35, cat: TV/Sport, desc: "KickBoxing/Muay Thai"}
- {id: 43, cat: TV/Sport, desc: "La Liga"}
- {id: 15, cat: TV/Sport, desc: "MotorSport"}
@@ -51,14 +50,56 @@ caps:
- {id: 38, cat: TV/Sport, desc: "Snooker/Pool"}
- {id: 30, cat: TV/Sport, desc: "Streetball"}
- {id: 18, cat: TV/Sport, desc: "Swimming/Aquatics"}
+ - {id: 56, cat: TV/Sport, desc: "Ligue1"}
- {id: 46, cat: TV/Sport, desc: "AFL(AustralianFB)"}
- {id: 12, cat: TV/Sport, desc: "Tennis"}
- - {id: 20, cat: TV/Sport, desc: "Volleyball/Beach"}
+ - {id: 20, cat: TV/Sport, desc: "Volleyball"}
- {id: 21, cat: TV/Sport, desc: "Weightlifting"}
- {id: 16, cat: TV/Sport, desc: "WinterSport"}
- {id: 33, cat: TV/Sport, desc: "Wrestling/Grapling"}
- {id: 48, cat: TV/Sport, desc: "Uncategorised"}
+ - {id: 60, cat: TV/Sport, desc: "Champions League"}
+ - {id: 61, cat: TV/Sport, desc: "Europa League"}
+ - {id: 63, cat: TV/Sport, desc: "WNBA"}
+ - {id: 64, cat: TV/Sport, desc: "NASCAR"}
+ - {id: 65, cat: TV/Sport, desc: "FIBA 3x3 Basketball"}
+ - {id: 67, cat: TV/Sport, desc: "Bundesliga"}
+ - {id: 68, cat: TV/Sport, desc: "MLS"}
+ - {id: 69, cat: TV/Sport, desc: "EuroLeague Basketbal"}
+ - {id: 70, cat: TV/Sport, desc: "ELC"}
+ - {id: 71, cat: TV/Sport, desc: "RhythmicGymnastics"}
+ - {id: 72, cat: TV/Sport, desc: "BeachVolleyball"}
+ - {id: 73, cat: TV/Sport, desc: "BeachSoccer"}
+ - {id: 74, cat: TV/Sport, desc: "Chess"}
+ - {id: 75, cat: TV/Sport, desc: "Bowling"}
+ - {id: 76, cat: TV/Sport, desc: "BelgianProLeague"}
+ - {id: 77, cat: TV/Sport, desc: "Bellator"}
+ - {id: 78, cat: TV/Sport, desc: "Billard"}
+ - {id: 79, cat: TV/Sport, desc: "Climbing"}
+ - {id: 80, cat: TV/Sport, desc: "CrossFit"}
+ - {id: 81, cat: TV/Sport, desc: "DutchEredivisie"}
+ - {id: 82, cat: TV/Sport, desc: "IndyCar"}
+ - {id: 83, cat: TV/Sport, desc: "NbaGLeague"}
+ - {id: 84, cat: TV/Sport, desc: "NCAABasketball"}
+ - {id: 85, cat: TV/Sport, desc: "NCAAFootball"}
+ - {id: 86, cat: TV/Sport, desc: "Sailing"}
+ - {id: 87, cat: TV/Sport, desc: "Surfing"}
+ - {id: 88, cat: TV/Sport, desc: "TableTennis"}
+ - {id: 89, cat: TV/Sport, desc: "TourDeFrance"}
+ - {id: 90, cat: TV/Sport, desc: "LaVuelta"}
+ - {id: 91, cat: TV/Sport, desc: "Girod'Italia"}
+ - {id: 92, cat: TV/Sport, desc: "UefaConferenceLeague"}
+ - {id: 93, cat: TV/Sport, desc: "UEFAEuro"}
+ - {id: 94, cat: TV/Sport, desc: "OlympicGamesParis24"}
+ - {id: 95, cat: TV/Sport, desc: "WRCRally"}
+ - {id: 96, cat: TV/Sport, desc: "CPL"}
+ - {id: 97, cat: TV/Sport, desc: "CFL"}
+ - {id: 98, cat: TV/Sport, desc: "PrimeiraPortugal"}
- {id: 53, cat: TV/Sport, desc: "Cricket"}
+ - {id: 6, cat: TV/Sport, desc: "European Soccer"}
+ - {id: 52, cat: TV/Sport, desc: "Field Hockey"}
+ - {id: 58, cat: TV/Sport, desc: "UFC"}
+ - {id: 57, cat: TV/Sport, desc: "NRL"}
modes:
search: [q]
@@ -96,10 +137,8 @@ settings:
type: info
label: Results Per Page
default: For best results, change the Torrents per page: setting to 100 on your account profile.
- - name: flaresolverr
- type: info
- label: FlareSolverr
- default: This site may use Cloudflare DDoS Protection, therefore Prowlarr requires FlareSolverr to access it.
+ - name: info_flaresolverr
+ type: info_flaresolverr
login:
path: index.php?page=login
diff --git a/mock-htpc/prowlarr/Definitions/springsunday.yml b/mock-htpc/prowlarr/Definitions/springsunday.yml
index 33ac353..62ab853 100644
--- a/mock-htpc/prowlarr/Definitions/springsunday.yml
+++ b/mock-htpc/prowlarr/Definitions/springsunday.yml
@@ -30,10 +30,8 @@ settings:
- name: cookie
type: text
label: Cookie
- - name: info
- type: info
- label: How to get the Cookie
- default: "- Login to this tracker with your browser
- Open the DevTools panel by pressing F12
- Select the Network tab
- Click on the Doc button (Chrome Browser) or HTML button (FireFox)
- Refresh the page by pressing F5
- Click on the first row entry
- Select the Headers tab on the Right panel
- Find 'cookie:' in the Request Headers section
- Select and Copy the whole cookie string (everything after 'cookie: ') and Paste here.
"
+ - name: info_cookie
+ type: info_cookie
- name: freeleech
type: checkbox
label: Search freeleech only
@@ -60,6 +58,7 @@ settings:
default: For best results, change the Torrents per page: setting to 100 on your account profile.
login:
+ # switched from the form method to the cookie method due to #8911
method: cookie
inputs:
cookie: "{{ .Config.cookie }}"
@@ -165,4 +164,4 @@ search:
description:
selector: td:nth-child(2)
remove: a, b, font, img, span
-# NexusPHP Standard v1.5 Beta 4 2010-09-19 (customised)
+# NexusPHP Standard v1.5 Beta 4 (customised)
diff --git a/mock-htpc/prowlarr/Definitions/superbits.yml b/mock-htpc/prowlarr/Definitions/superbits.yml
index caea82c..df1c3f0 100644
--- a/mock-htpc/prowlarr/Definitions/superbits.yml
+++ b/mock-htpc/prowlarr/Definitions/superbits.yml
@@ -7,6 +7,7 @@ type: private
encoding: UTF-8
links:
- https://superbits.org/
+ - https://superbits.cc/
caps:
categorymappings:
@@ -50,10 +51,8 @@ settings:
- name: cookie
type: text
label: Cookie
- - name: info
- type: info
- label: How to get the Cookie
- default: "- Login to this tracker with your browser
- Open the DevTools panel by pressing F12
- Select the Network tab
- Click on the Doc button (Chrome Browser) or HTML button (FireFox)
- Refresh the page by pressing F5
- Click on the first row entry
- Select the Headers tab on the Right panel
- Find 'cookie:' in the Request Headers section
- Select and Copy the whole cookie string (everything after 'cookie: ') and Paste here.
"
+ - name: info_cookie
+ type: info_cookie
- name: freeleech
type: checkbox
label: Search freeleech only
@@ -84,6 +83,7 @@ settings:
default: "If you have not logged in, via web browser, for 3 months, the account will be suspended. You can park your account in Settings which means that it will not be deleted for inactivity for at least 1 year."
login:
+ # switched from the form method to the cookie method due to #12468
method: cookie
inputs:
cookie: "{{ .Config.cookie }}"
diff --git a/mock-htpc/prowlarr/Definitions/tapochek.yml b/mock-htpc/prowlarr/Definitions/tapochek.yml
index 8e5ab35..588d136 100644
--- a/mock-htpc/prowlarr/Definitions/tapochek.yml
+++ b/mock-htpc/prowlarr/Definitions/tapochek.yml
@@ -15,13 +15,9 @@ caps:
# PC Games # Игры для PC
- {id: 2, cat: PC/Games, desc: "Игры для PC (общее)"}
- {id: 14, cat: PC/Games, desc: "Альфа-, Бета- и Демо-версии"}
- - {id: 314, cat: PC/Games, desc: "NoCD/ NoDVD"}
- {id: 13, cat: PC/Games, desc: "Русификаторы"}
- - {id: 12, cat: PC/Games, desc: "Патчи"}
- - {id: 11, cat: PC/Games, desc: "Чит-программы и трейнеры"}
- {id: 10, cat: PC/Games, desc: "Дополнения для игр"}
- {id: 9, cat: PC/Games, desc: "Игровые журналы и приложенные материалы"}
- - {id: 712, cat: PC/Games, desc: "Гайды, бонусные диски и другие дополнительные материалы"}
- {id: 18, cat: PC/Games, desc: "Горячие новинки"}
- {id: 808, cat: PC/Games, desc: "Репаки от R.G. Механики"}
- {id: 809, cat: PC/Games, desc: "Горячие новинки от R.G. Механики"}
@@ -32,14 +28,6 @@ caps:
- {id: 814, cat: PC/Games, desc: "Action от R.G. Механики"}
- {id: 815, cat: PC/Games, desc: "RPG от R.G. Механики"}
- {id: 903, cat: PC/Games, desc: "jRPG от R.G. Механики"}
- - {id: 942, cat: PC/Games, desc: "Репаки от R.G. Catalyst"}
- - {id: 943, cat: PC/Games, desc: "Горячие новинки от R.G. Catalyst"}
- - {id: 949, cat: PC/Games, desc: "RPG от R.G. Catalyst"}
- - {id: 948, cat: PC/Games, desc: "Action от R.G. Catalyst"}
- - {id: 947, cat: PC/Games, desc: "Симуляторы от R.G. Catalyst"}
- - {id: 946, cat: PC/Games, desc: "Стратегии от R.G. Catalyst"}
- - {id: 945, cat: PC/Games, desc: "Приключения и квесты от R.G. Catalyst"}
- - {id: 944, cat: PC/Games, desc: "Аркады от R.G. Catalyst"}
- {id: 887, cat: PC/Games, desc: "Раздачи от R.G. Игроманы"}
- {id: 888, cat: PC/Games, desc: "Аркады от R.G. Игроманы"}
- {id: 889, cat: PC/Games, desc: "Приключения и квесты от R.G. Игроманы"}
@@ -55,13 +43,6 @@ caps:
- {id: 930, cat: PC/Games, desc: "Симуляторы от R.G. GOGFAN"}
- {id: 929, cat: PC/Games, desc: "Action от R.G. GOGFAN"}
- {id: 928, cat: PC/Games, desc: "RPG от R.G. GOGFAN"}
- - {id: 953, cat: PC/Games, desc: "Раздачи от R.G. Origins"}
- - {id: 959, cat: PC/Games, desc: "RPG от R.G. Origins"}
- - {id: 958, cat: PC/Games, desc: "Симуляторы от R.G. Origins"}
- - {id: 957, cat: PC/Games, desc: "Стратегии от R.G. Origins"}
- - {id: 956, cat: PC/Games, desc: "Приключения и квесты от R.G. Origins"}
- - {id: 955, cat: PC/Games, desc: "Action от R.G. Origins"}
- - {id: 954, cat: PC/Games, desc: "Аркады от R.G. Origins"}
- {id: 24, cat: PC/Games, desc: "Приключения и квесты"}
- {id: 25, cat: PC/Games, desc: "Стратегии"}
- {id: 28, cat: PC/Games, desc: "RTS (стратегии в реальном времени)"}
@@ -90,7 +71,6 @@ caps:
- {id: 42, cat: PC/Games, desc: "Хентайные"}
- {id: 968, cat: PC/Games, desc: "Игры для VR"}
- {id: 44, cat: PC/Games, desc: "Многопользовательские игры"}
- - {id: 45, cat: PC/Games, desc: "MMORPG"}
- {id: 46, cat: PC/Games, desc: "Для самых маленьких"}
# Games for Consoles # Игры для Консолей
- {id: 69, cat: Console/XBox, desc: "Xbox"}
@@ -236,6 +216,7 @@ caps:
- {id: 479, cat: Audio/MP3, desc: "Rосk, Punk, Alternative (mр3)"}
- {id: 480, cat: Audio/MP3, desc: "Mеtаl (mр3)"}
- {id: 481, cat: Audio/Video, desc: "Отечественный Rock (video)"}
+ - {id: 482, cat: Audio/MP3, desc: "Поп-музыка, Eurodance, Disco"}
- {id: 483, cat: Audio/Lossless, desc: "Зарубежная Поп-музыка (lossless)"}
- {id: 484, cat: Audio/Lossless, desc: "Отечественная Поп-музыка (lossless)"}
- {id: 485, cat: Audio/Lossless, desc: "Eurodance, Technopop, Disco (lossless)"}
@@ -313,18 +294,18 @@ caps:
- {id: 215, cat: PC, desc: "Операционные системы (Unix и Unix-подобные)"}
- {id: 216, cat: PC, desc: "Программное обеспечение для Unix и Unix-подобных OS"}
- {id: 217, cat: PC, desc: "Другие OS и программное обеспечение под них"}
- - {id: 227, cat: PC, desc: "Настольные OS, выпущенные до 2001 года (Microsoft Windows OS.."}
- - {id: 228, cat: PC, desc: "Windows XP"}
- - {id: 229, cat: PC, desc: "Windows Vista"}
+ - {id: 969, cat: PC, desc: "Windows 11"}
+ - {id: 905, cat: PC, desc: "Windows 10"}
- {id: 230, cat: PC, desc: "Windows 7"}
- {id: 879, cat: PC, desc: "Windows 8"}
- - {id: 905, cat: PC, desc: "Windows 10"}
- - {id: 969, cat: PC, desc: "Windows 11"}
- - {id: 698, cat: PC, desc: "Сборки (Microsoft Windows XP)"}
+ - {id: 229, cat: PC, desc: "Windows Vista"}
+ - {id: 228, cat: PC, desc: "Windows XP"}
+ - {id: 227, cat: PC, desc: "Настольные OS, выпущенные до 2001 года (Microsoft Windows OS.."}
+ - {id: 970, cat: PC, desc: "Сборки (Microsoft Windows 11)"}
+ - {id: 906, cat: PC, desc: "Сборки (Microsoft Windows 10)"}
- {id: 701, cat: PC, desc: "Сборки (Microsoft Windows 7)"}
- {id: 880, cat: PC, desc: "Сборки (Microsoft Windows 8)"}
- - {id: 906, cat: PC, desc: "Сборки (Microsoft Windows 10)"}
- - {id: 970, cat: PC, desc: "Сборки (Microsoft Windows 11)"}
+ - {id: 698, cat: PC, desc: "Сборки (Microsoft Windows XP)"}
- {id: 231, cat: PC, desc: "Серверные (Microsoft Windows OS)"}
- {id: 232, cat: PC, desc: "Разное (Microsoft Windows OS)"}
- {id: 236, cat: PC, desc: "Работа с жёстким диском"}
@@ -436,8 +417,6 @@ caps:
- {id: 714, cat: Books, desc: "Книги для малышей и их родителей"}
- {id: 845, cat: Books, desc: "Комиксы"}
- {id: 741, cat: Books, desc: "Разное"}
- # Technical assistance # Техническая помощь
- - {id: 578, cat: Other, desc: "µTorrent и BitTorrent 4.x, 5.x, 6.x"}
# Release - groups # Релиз - группы
- {id: 378, cat: Other, desc: "Анонсы"}
# Miscellanea # Разное
@@ -489,20 +468,35 @@ settings:
options:
2: desc
1: asc
- - name: flaresolverr
- type: info
- label: FlareSolverr
- default: This site may use Cloudflare DDoS Protection, therefore Prowlarr requires FlareSolverr to access it.
+ - name: info_flaresolverr
+ type: info_flaresolverr
login:
path: login.php
method: form
form: form[action$="/login.php"]
+ captcha:
+ type: image
+ selector: img[src^="profile.php?mode=confirm&id="]
+ input: cfmcd
inputs:
login_username: "{{ .Config.username }}"
login_password: "{{ .Config.password }}"
autologin: 1
redirect: index.php
+ selectorinputs:
+ cookie_test:
+ selector: input[name="cookie_test"]
+ attribute: value
+ optional: true
+ confirm_id:
+ selector: input[name="confirm_id"]
+ attribute: value
+ optional: true
+ sid:
+ selector: input[name="sid"]:not(input[id="dl-sid"])
+ attribute: value
+ optional: true
error:
- selector: h4:contains("Вы ввели")
test:
diff --git a/mock-htpc/prowlarr/Definitions/teamctgame.yml b/mock-htpc/prowlarr/Definitions/teamctgame.yml
index 3438cbe..abd6b8b 100644
--- a/mock-htpc/prowlarr/Definitions/teamctgame.yml
+++ b/mock-htpc/prowlarr/Definitions/teamctgame.yml
@@ -1,5 +1,7 @@
---
id: teamctgame
+replaces:
+ - casatorrent
name: Team CT Game
description: "Team CT Game (TCTG) is a FRENCH Private Torrent Tracker for MOVIES / TV / GENERAL"
language: fr-FR
@@ -158,7 +160,6 @@ search:
incldead: 0
# 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x50%, 7 30%
spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
- inclbookmarked: 0
# 0 title, 1 descr, 3 uploader, 4 imdburl
search_area: "{{ if .Query.IMDBID }}4{{ else }}0{{ end }}"
# 0 AND, 1 OR, 2 exact
@@ -204,7 +205,7 @@ search:
attribute: data-src
date_elapsed:
# time type: time elapsed (default)
- selector: td:nth-child(4) > span[title]
+ selector: td.rowfollow:nth-child(4) > span[title]
attribute: title
optional: true
filters:
@@ -214,7 +215,7 @@ search:
args: "yyyy-MM-dd HH:mm:ss zzz"
date_added:
# time added
- selector: td:nth-child(4):not(:has(span))
+ selector: td.rowfollow:nth-child(4):not(:has(span))
optional: true
filters:
- name: append
@@ -224,13 +225,13 @@ search:
date:
text: "{{ if or .Result.date_elapsed .Result.date_added }}{{ or .Result.date_elapsed .Result.date_added }}{{ else }}now{{ end }}"
size:
- selector: td:nth-child(5)
+ selector: td.rowfollow:nth-child(5)
seeders:
- selector: td:nth-child(6)
+ selector: td.rowfollow:nth-child(6)
leechers:
- selector: td:nth-child(7)
+ selector: td.rowfollow:nth-child(7)
grabs:
- selector: td:nth-child(8)
+ selector: td.rowfollow:nth-child(8)
description:
case:
span[title="Autorisé"]: "Verified"
diff --git a/mock-htpc/prowlarr/Definitions/teamhd.yml b/mock-htpc/prowlarr/Definitions/teamhd.yml
index 7564533..134c474 100644
--- a/mock-htpc/prowlarr/Definitions/teamhd.yml
+++ b/mock-htpc/prowlarr/Definitions/teamhd.yml
@@ -32,17 +32,13 @@ settings:
- name: cookie
type: text
label: Cookie
- - name: info
- type: info
- label: How to get the Cookie
- default: "- Login to this tracker with your browser
- Open the DevTools panel by pressing F12
- Select the Network tab
- Click on the Doc button (Chrome Browser) or HTML button (FireFox)
- Refresh the page by pressing F5
- Click on the first row entry
- Select the Headers tab on the Right panel
- Find 'cookie:' in the Request Headers section
- Select and Copy the whole cookie string (everything after 'cookie: ') and Paste here.
"
+ - name: info_cookie
+ type: info_cookie
- name: useragent
type: text
label: User-Agent
- name: info_useragent
- type: info
- label: How to get the User-Agent
- default: "- From the same place you fetched the cookie,
- Find 'user-agent:' in the Request Headers section
- Select and Copy the whole user-agent string (everything after 'user-agent: ') and Paste here.
"
+ type: info_useragent
- name: stripcyrillic
type: checkbox
label: Strip Cyrillic Letters
@@ -57,6 +53,7 @@ settings:
default: "Inactive users are regularly deleted. If you haven’t downloaded or distributed anything, or haven’t visited the site for 90 days, then you are a random guest on our resource. The tracker needs active users who know exactly why they came here. That’s why we regularly conduct automatic inactivity sweeps. If you need to be away from the tracker for a long time (business trip, personal circumstances, etc.), use 'parking' your account."
login:
+ # using cookie method because login page has embedded Google reCAPTCHA
method: cookie
inputs:
cookie: "{{ .Config.cookie }}"
@@ -143,6 +140,7 @@ search:
remove: strong
downloadvolumefactor:
case:
+ ":root:has(div.justify-content-center:contains(\"Включен фрилич до\"))": 0 # Global Freeleech event
a[href^="/details/id"][style="color:#f2b101"]: 0
a[href^="/details/id"][style="color:#828b8b"]: 0.5
"*": 1
diff --git a/mock-htpc/prowlarr/Definitions/teamos.yml b/mock-htpc/prowlarr/Definitions/teamos.yml
index e07cb44..f27683a 100644
--- a/mock-htpc/prowlarr/Definitions/teamos.yml
+++ b/mock-htpc/prowlarr/Definitions/teamos.yml
@@ -16,7 +16,6 @@ legacylinks:
caps:
categorymappings:
- {id: 18, cat: PC, desc: "Team-OS VIP Releases"}
- - {id: 23, cat: PC, desc: "Team OS Program"}
- {id: 19, cat: PC, desc: "Windows 7 Releases"}
- {id: 20, cat: PC, desc: "Windows 7 Releases 32 Bit"}
- {id: 21, cat: PC, desc: "Windows 7 Releases 64 Bit"}
@@ -29,6 +28,7 @@ caps:
- {id: 109, cat: PC, desc: "Windows 10 Releases 64 Bit"}
- {id: 110, cat: PC, desc: "Windows 10 Releases x86-x64 AIO"}
- {id: 28, cat: PC, desc: "Operating Systems"}
+ - {id: 175, cat: PC, desc: "Windows AIO Operating Systems"}
- {id: 29, cat: PC, desc: "Windows XP"}
- {id: 30, cat: PC, desc: "Windows XP 32 Bit"}
- {id: 31, cat: PC, desc: "Windows XP 64 Bit"}
@@ -46,14 +46,9 @@ caps:
- {id: 44, cat: PC, desc: "Windows 10 (x64)"}
- {id: 45, cat: PC, desc: "Windows 10 (x86 & x64)"}
- {id: 157, cat: PC, desc: "Windows 11"}
- - {id: 158, cat: PC, desc: "Windows 11 (x86)"}
- {id: 159, cat: PC, desc: "Windows 11 (x64)"}
- - {id: 160, cat: PC, desc: "Windows 11 (x86 & x64)"}
- {id: 140, cat: PC/Mac, desc: "MacOS"}
- {id: 41, cat: PC, desc: "Windows Servers/Old Windows OS/Others"}
- - {id: 112, cat: PC, desc: "Windows Servers Ghost Images"}
- - {id: 113, cat: PC, desc: "Windows Servers 32 Bit Ghost Images"}
- - {id: 114, cat: PC, desc: "Windows Servers 64 Bit Ghost Images"}
- {id: 46, cat: PC/ISO, desc: "Windows Untouched ISO(MSDN)"}
- {id: 47, cat: PC, desc: "Windows 7 Untouched (MSDN)"}
- {id: 48, cat: PC, desc: "Windows 7 32 Bit Untouched (MSDN)"}
@@ -92,7 +87,6 @@ caps:
- {id: 78, cat: PC/0day, desc: "Security Tools"}
- {id: 70, cat: PC/0day, desc: "Utility Tools"}
- {id: 74, cat: PC/0day, desc: "Web Tools"}
- - {id: 80, cat: PC/0day, desc: "Windows Phone Apps"}
- {id: 81, cat: PC/0day, desc: "Developers"}
- {id: 82, cat: PC/0day, desc: "Designers"}
- {id: 84, cat: PC, desc: "TEAM OS Other Stuff Releases"}
@@ -103,30 +97,32 @@ caps:
- {id: 87, cat: Other, desc: "Wallpapers, Themes & Screensavers"}
- {id: 89, cat: PC, desc: "Other Releases"}
- {id: 100, cat: Other, desc: "Tutorials"} # undocumented
+ - {id: 103, cat: Other, desc: "Other Topic"} # undocumented
modes:
search: [q]
book-search: [q]
settings:
+ # using cookie method because login page is dynamically generated using JS #5572
- name: cookie
type: text
label: Cookie
- - name: info
- type: info
- label: How to get the Cookie
- default: "- Login to this tracker with your browser
- Open the DevTools panel by pressing F12
- Select the Network tab
- Click on the Doc button (Chrome Browser) or HTML button (FireFox)
- Refresh the page by pressing F5
- Click on the first row entry
- Select the Headers tab on the Right panel
- Find 'cookie:' in the Request Headers section
- Select and Copy the whole cookie string (everything after 'cookie: ') and Paste here.
"
+ - name: info_cookie
+ type: info_cookie
- name: useragent
type: text
label: User-Agent
- name: info_useragent
- type: info
- label: How to get the User-Agent
- default: "- From the same place you fetched the cookie,
- Find 'user-agent:' in the Request Headers section
- Select and Copy the whole user-agent string (everything after 'user-agent: ') and Paste here.
"
+ type: info_useragent
- name: freeleech
type: checkbox
label: Search freeleech only
default: false
+ - name: info_results
+ type: info
+ label: Search results
+ default: "If you are getting the error Found no results while trying to browse this tracker then first access the site with your browser and read any mandatory notices that the site presents. You cannot browse torrents with unread notices outstanding."
login:
method: cookie
diff --git a/mock-htpc/prowlarr/Definitions/thecrazyones.yml b/mock-htpc/prowlarr/Definitions/thecrazyones.yml
index e4dd14c..3cd9527 100644
--- a/mock-htpc/prowlarr/Definitions/thecrazyones.yml
+++ b/mock-htpc/prowlarr/Definitions/thecrazyones.yml
@@ -90,10 +90,6 @@ settings:
- name: pin
type: text
label: Pin
- - name: freeleech
- type: checkbox
- label: Filter freeleech only
- default: false
- name: sort
type: select
label: Sort requested from site
@@ -130,6 +126,11 @@ login:
path: index.php
selector: a[href="logout.php"]
+download:
+ selectors:
+ - selector: a[href^="download_ssl.php?torrent="]
+ attribute: href
+
search:
paths:
- path: selection.php
@@ -142,8 +143,7 @@ search:
sort: "{{ .Config.type }}"
rows:
- selector: "div.selection_wrap{{ if .Config.freeleech }}:has(:root:has(div.onlyup)){{ else }}{{ end }}"
-
+ selector: div.selection_wrap
fields:
category_p1:
selector: div.kat_cat_pic_name
@@ -160,7 +160,7 @@ search:
selector: a.selection_a
attribute: href
download:
- selector: a[href^="download_ssl.php?torrent="]
+ selector: a.selection_a
attribute: href
poster:
selector: div[id^="details"] img
@@ -200,7 +200,7 @@ search:
selector: div.selection_unter_aaa
downloadvolumefactor:
case:
- ":root:has(div.onlyup)": 0
+ ":root:has(div.onlyup)": 0 # GLobal Freeleech event
"*": 1
uploadvolumefactor:
text: 1
diff --git a/mock-htpc/prowlarr/Definitions/theempire.yml b/mock-htpc/prowlarr/Definitions/theempire.yml
index a5f277e..fb83b3a 100644
--- a/mock-htpc/prowlarr/Definitions/theempire.yml
+++ b/mock-htpc/prowlarr/Definitions/theempire.yml
@@ -55,10 +55,8 @@ settings:
- name: cookie
type: text
label: Cookie
- - name: info
- type: info
- label: How to get the Cookie
- default: "- Login to this tracker with your browser
- Open the DevTools panel by pressing F12
- Select the Network tab
- Click on the Doc button (Chrome Browser) or HTML button (FireFox)
- Refresh the page by pressing F5
- Click on the first row entry
- Select the Headers tab on the Right panel
- Find 'cookie:' in the Request Headers section
- Select and Copy the whole cookie string (everything after 'cookie: ') and Paste here.
"
+ - name: info_cookie
+ type: info_cookie
- name: sort
type: select
label: Sort requested from site
@@ -89,6 +87,7 @@ settings:
default: "Unparked accounts that haven't visited (read: browsed) the site for 38 days (and are over 28 days old) are pruned. Parked accounts are pruned when 112 days have elapsed since the last recorded activity (read: browsed). Seeding activity does NOT count, you must BROWSE the site. Donators with a star (and ONLY donators with a star) are immune to auto-pruning. Power Users and above are also immune. We regularly clean out accounts with very low share ratios that are subject to the Ratio Watch system."
login:
+ # using cookie method because login page has embedded hCaptcha
method: cookie
inputs:
cookie: "{{ .Config.cookie }}"
diff --git a/mock-htpc/prowlarr/Definitions/thefallingangels.yml b/mock-htpc/prowlarr/Definitions/thefallingangels.yml
index 3735871..12dbdfd 100644
--- a/mock-htpc/prowlarr/Definitions/thefallingangels.yml
+++ b/mock-htpc/prowlarr/Definitions/thefallingangels.yml
@@ -186,6 +186,8 @@ search:
args: ["Heute", "Today"]
- name: replace
args: ["Gestern", "Yesterday"]
+ - name: append
+ args: " +01:00" # CET
date_year:
# 30.02.2018 um 23:12:50
selector: div.selection_unter_ab:contains(".")
diff --git a/mock-htpc/prowlarr/Definitions/thegeeks.yml b/mock-htpc/prowlarr/Definitions/thegeeks.yml
index a40e159..c695027 100644
--- a/mock-htpc/prowlarr/Definitions/thegeeks.yml
+++ b/mock-htpc/prowlarr/Definitions/thegeeks.yml
@@ -11,87 +11,87 @@ links:
caps:
categorymappings:
- {id: 212, cat: Other, desc: "AudioBook : Fiction"}
- - {id: 56, cat: Other, desc: "Docu : History - War/Politics"}
- - {id: 28, cat: Other, desc: "Business :Misc"}
- - {id: 37, cat: Other, desc: "Game Shows / Quiz Shows"}
- - {id: 10, cat: Other, desc: "Science: Medicine/Health "}
- {id: 213, cat: Other, desc: "AudioBook : Non-Fiction"}
- - {id: 35, cat: Other, desc: "Docu : Home / Property"}
- - {id: 214, cat: Other, desc: "Comp: Artificial Intelligence"}
- - {id: 2, cat: Other, desc: "Games: Cards/Tabletop/etc"}
- - {id: 29, cat: Other, desc: "Science: Philosophy"}
- {id: 71, cat: Other, desc: "Docu : Antiques / Collecting"}
- - {id: 78, cat: Other, desc: "Docu : Horizon"}
- - {id: 40, cat: Other, desc: "Comp: Certification Courses"}
- - {id: 23, cat: Other, desc: "Hobbies: Misc"}
- - {id: 76, cat: Other, desc: "Science: Physics"}
- {id: 82, cat: Other, desc: "Docu : Architecture/Building"}
- - {id: 69, cat: Other, desc: "Docu : Misc"}
- - {id: 44, cat: Other, desc: "Comp: Digital Audio/Video"}
- - {id: 1, cat: Other, desc: "Languages / Linguistics"}
- - {id: 14, cat: Other, desc: "Science: Psych/Sociolgy"}
- {id: 72, cat: Other, desc: "Docu : Astronomy / Space"}
- - {id: 75, cat: Other, desc: "Docu : Nature"}
- - {id: 48, cat: Other, desc: "Comp: Games Dev/Guides"}
- - {id: 20, cat: Other, desc: "Law & Justice"}
- - {id: 215, cat: Other, desc: "Sexuality/Seductn/Body Img"}
- {id: 85, cat: Other, desc: "Docu : Childrens Ed"}
- - {id: 54, cat: Other, desc: "Docu : News/World Reports"}
- - {id: 3, cat: Other, desc: "Comp: Graphics "}
- - {id: 30, cat: Other, desc: "Literature"}
- - {id: 22, cat: Other, desc: "Sports/Exercise/Outdoors"}
- {id: 38, cat: Other, desc: "Docu : Crime/ Investigation"}
- - {id: 83, cat: Other, desc: "Docu : Nova"}
- - {id: 42, cat: Other, desc: "Comp: Lang/DBs"}
- - {id: 16, cat: Other, desc: "Magic & Illusion"}
- - {id: 24, cat: Other, desc: "Stock Media"}
- {id: 59, cat: Other, desc: "Docu : Earth / Environment"}
- - {id: 27, cat: Other, desc: "Docu : Paleontology"}
- - {id: 49, cat: Other, desc: "Comp: Network/Hardware"}
- - {id: 206, cat: Other, desc: "Native American Studies"}
- - {id: 33, cat: Other, desc: "Style & Fashion"}
- {id: 18, cat: Other, desc: "Docu : Engineering"}
- - {id: 67, cat: Other, desc: "Docu : Pets/Animal Keeping"}
- - {id: 43, cat: Other, desc: "Comp: Operating Systems"}
- - {id: 201, cat: Other, desc: "Occultism: Academic / Referenc"}
- - {id: 73, cat: Other, desc: "Docu : Survivalism"}
- {id: 4, cat: Other, desc: "Docu : Fine/Visual Arts"}
- - {id: 53, cat: Other, desc: "Docu : Social Experiment"}
- - {id: 46, cat: Other, desc: "Comp: Security/Encryption"}
- - {id: 210, cat: Other, desc: "Tattoos/Body Art"}
- - {id: 60, cat: Other, desc: "Performing Arts"}
- - {id: 39, cat: Other, desc: "Docu : Fly on The Wall"}
- - {id: 32, cat: Other, desc: "Docu : Travel / Culture"}
- - {id: 52, cat: Other, desc: "Comp: Software Training"}
- - {id: 202, cat: Other, desc: "Occultism: Mythology Folklore"}
- - {id: 217, cat: Other, desc: "The Arts: Dance/Singing/Voice"}
+ - {id: 39, cat: Other, desc: "Docu : FlyOnWall Docus"}
- {id: 216, cat: Other, desc: "Docu : FlyOnWall Medical"}
- - {id: 80, cat: Other, desc: "Sports - Live/Highlights"}
- - {id: 41, cat: Other, desc: "Comp: Theory/Ref/Mags"}
- - {id: 203, cat: Other, desc: "Paranormal"}
- - {id: 26, cat: Other, desc: "Music: History / Theory"}
- {id: 84, cat: Other, desc: "Docu : FrontLine"}
- - {id: 34, cat: Other, desc: "Docu : Vehicles/Transport"}
- - {id: 47, cat: Other, desc: "Comp: Web Development"}
- - {id: 204, cat: Other, desc: "Parapsychology"}
- - {id: 15, cat: Other, desc: "Music: Learning / Courses"}
- {id: 36, cat: Other, desc: "Docu : Gardening/Agriculture"}
- - {id: 207, cat: Other, desc: "Business : Economics"}
- - {id: 68, cat: Other, desc: "Crafts/Jewelry"}
- - {id: 11, cat: Other, desc: "Political Studies"}
- - {id: 45, cat: Other, desc: "Photography"}
- {id: 58, cat: Other, desc: "Docu : History - Biographies"}
- - {id: 211, cat: Other, desc: "Business : Investing"}
- - {id: 21, cat: Other, desc: "DIY / Workshop"}
- - {id: 61, cat: Other, desc: "Science: Biology"}
- {id: 55, cat: Other, desc: "Docu : History - Civilization"}
- - {id: 208, cat: Other, desc: "Business : Marketing"}
- - {id: 25, cat: Other, desc: "Exam Prep / Education"}
- - {id: 77, cat: Other, desc: "Science: Chemistry"}
- {id: 31, cat: Other, desc: "Docu : History - Misc"}
+ - {id: 56, cat: Other, desc: "Docu : History - War/Politics"}
+ - {id: 35, cat: Other, desc: "Docu : Home / Property"}
+ - {id: 78, cat: Other, desc: "Docu : Horizon"}
+ - {id: 69, cat: Other, desc: "Docu : Misc"}
+ - {id: 75, cat: Other, desc: "Docu : Nature"}
+ - {id: 54, cat: Other, desc: "Docu : News/World Reports"}
+ - {id: 83, cat: Other, desc: "Docu : Nova"}
+ - {id: 27, cat: Other, desc: "Docu : Paleontology"}
+ - {id: 67, cat: Other, desc: "Docu : Pets/Animal Keeping"}
+ - {id: 53, cat: Other, desc: "Docu : Social Experiment"}
+ - {id: 32, cat: Other, desc: "Docu : Travel / Culture"}
+ - {id: 80, cat: Other, desc: "Docu : Travelogues"}
+ - {id: 34, cat: Other, desc: "Docu : Vehicles/Transport"}
+ - {id: 207, cat: Other, desc: "Business : Economics"}
+ - {id: 211, cat: Other, desc: "Business : Investing"}
+ - {id: 208, cat: Other, desc: "Business : Marketing"}
- {id: 209, cat: Other, desc: "Business : Startup/Dev"}
+ - {id: 28, cat: Other, desc: "Business :Misc"}
+ - {id: 214, cat: Other, desc: "Comp: Artificial Intelligence"}
+ - {id: 40, cat: Other, desc: "Comp: Certification Courses"}
+ - {id: 44, cat: Other, desc: "Comp: Digital Audio/Video"}
+ - {id: 48, cat: Other, desc: "Comp: Games Dev/Guides"}
+ - {id: 3, cat: Other, desc: "Comp: Graphics "}
+ - {id: 42, cat: Other, desc: "Comp: Lang/DBs"}
+ - {id: 49, cat: Other, desc: "Comp: Network/Hardware"}
+ - {id: 43, cat: Other, desc: "Comp: Operating Systems"}
+ - {id: 46, cat: Other, desc: "Comp: Security/Encryption"}
+ - {id: 52, cat: Other, desc: "Comp: Software Training"}
+ - {id: 41, cat: Other, desc: "Comp: Theory/Ref/Mags"}
+ - {id: 47, cat: Other, desc: "Comp: Web Development"}
+ - {id: 68, cat: Other, desc: "Crafts/Jewelry"}
+ - {id: 21, cat: Other, desc: "DIY / Workshop"}
+ - {id: 25, cat: Other, desc: "Exam Prep / Education"}
- {id: 9, cat: Other, desc: "Food/Cooking/Nutrition"}
+ - {id: 37, cat: Other, desc: "Game Shows / Quiz Shows"}
+ - {id: 2, cat: Other, desc: "Games: Cards/Tabletop/etc"}
+ - {id: 23, cat: Other, desc: "Hobbies: Misc"}
+ - {id: 1, cat: Other, desc: "Languages / Linguistics"}
+ - {id: 20, cat: Other, desc: "Law & Justice"}
+ - {id: 30, cat: Other, desc: "Literature"}
+ - {id: 16, cat: Other, desc: "Magic & Illusion"}
+ - {id: 206, cat: Other, desc: "Native American Studies"}
+ - {id: 201, cat: Other, desc: "Occultism: Academic / Referenc"}
+ - {id: 210, cat: Other, desc: "Occultism: Bashar"}
+ - {id: 202, cat: Other, desc: "Occultism: Mythology Folklore"}
+ - {id: 203, cat: Other, desc: "Paranormal"}
+ - {id: 204, cat: Other, desc: "Parapsychology"}
+ - {id: 11, cat: Other, desc: "Political Studies"}
+ - {id: 61, cat: Other, desc: "Science: Biology"}
+ - {id: 77, cat: Other, desc: "Science: Chemistry"}
- {id: 12, cat: Other, desc: "Science: Math/Statistics"}
+ - {id: 10, cat: Other, desc: "Science: Medicine/Health "}
+ - {id: 29, cat: Other, desc: "Science: Philosophy"}
+ - {id: 76, cat: Other, desc: "Science: Physics"}
+ - {id: 14, cat: Other, desc: "Science: Psych/Sociolgy"}
+ - {id: 215, cat: Other, desc: "Sexuality/Seductn/Body Img"}
+ - {id: 22, cat: Other, desc: "Sports/Exercise/Outdoors"}
+ - {id: 24, cat: Other, desc: "Stock Media"}
+ - {id: 33, cat: Other, desc: "Style & Fashion"}
+ - {id: 73, cat: Other, desc: "Docu : Survivalism"}
+ - {id: 60, cat: Other, desc: "Docu : The Arts: Acting/ Filmmaking"}
+ - {id: 217, cat: Other, desc: "Docu : The Arts: Dance/Singing/Voice"}
+ - {id: 26, cat: Other, desc: "Docu : The Arts: Music History/Theory"}
+ - {id: 15, cat: Other, desc: "Docu : The Arts: Music Learn/Courses"}
+ - {id: 45, cat: Other, desc: "Docu : The Arts: Photography"}
modes:
search: [q]
@@ -100,10 +100,8 @@ settings:
- name: cookie
type: text
label: Cookie
- - name: info
- type: info
- label: How to get the Cookie
- default: "- Login to this tracker with your browser
- Open the DevTools panel by pressing F12
- Select the Network tab
- Click on the Doc button (Chrome Browser) or HTML button (FireFox)
- Refresh the page by pressing F5
- Click on the first row entry
- Select the Headers tab on the Right panel
- Find 'cookie:' in the Request Headers section
- Select and Copy the whole cookie string (everything after 'cookie: ') and Paste here.
"
+ - name: info_cookie
+ type: info_cookie
- name: sort
type: select
label: Sort requested from site
@@ -134,6 +132,7 @@ settings:
default: "Unparked accounts that haven't visited (read: browsed) the site for 38 days (and are over 28 days old) are pruned. Parked accounts are pruned when 112 days have elapsed since the last recorded activity (read: browsed). Seeding activity does NOT count, you must BROWSE the site. Donators with a star (and ONLY donators with a star) are immune to auto-pruning. Power Users and above are also immune. We regularly clean out accounts with very low share ratios that are subject to the Ratio Watch system."
login:
+ # using cookie method because login page has embedded hCaptcha
method: cookie
inputs:
cookie: "{{ .Config.cookie }}"
diff --git a/mock-htpc/prowlarr/Definitions/theleachzone-api.yml b/mock-htpc/prowlarr/Definitions/theleachzone-api.yml
new file mode 100644
index 0000000..9e4c0fb
--- /dev/null
+++ b/mock-htpc/prowlarr/Definitions/theleachzone-api.yml
@@ -0,0 +1,175 @@
+---
+id: theleachzone-api
+name: TheLeachZone (API)
+description: "The Leach Zone (TLZ) is a Private Torrent Tracker for MOVIES / TV / GENERAL"
+language: en-US
+type: private
+encoding: UTF-8
+links:
+ - https://tlzdigital.com/
+legacylinks:
+ - https://tlz.digital/
+
+caps:
+ categorymappings:
+ - {id: 2, cat: TV, desc: "TV"}
+ - {id: 1, cat: Movies, desc: "Movies"}
+ - {id: 3, cat: Audio, desc: "Music"}
+ - {id: 4, cat: Books, desc: "Books"}
+ - {id: 5, cat: Console, desc: "Games"}
+ - {id: 6, cat: PC, desc: "Application"}
+ - {id: 7, cat: Other, desc: "Other"}
+
+ modes:
+ search: [q]
+ tv-search: [q, season, ep, imdbid, tvdbid, tmdbid]
+ movie-search: [q, imdbid, tmdbid]
+ music-search: [q]
+ book-search: [q]
+
+settings:
+ - name: apikey
+ type: text
+ label: APIKey
+ - name: info_key
+ type: info
+ label: About your API key
+ default: "Find or Generate a new API Token by accessing your TLZ account Settings page and clicking on the API Key tab."
+ - name: freeleech
+ type: checkbox
+ label: Search freeleech only
+ default: false
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: created_at
+ options:
+ created_at: created
+ seeders: seeders
+ size: size
+ name: title
+ - name: type
+ type: select
+ label: Order requested from site
+ default: desc
+ options:
+ desc: desc
+ asc: asc
+
+login:
+ path: /api/torrents
+ method: get
+ error:
+ - selector: a[href*="/login"]
+ message:
+ text: "The API key was not accepted by {{ .Config.sitelink }}."
+ inputs: {} # TODO: remove in v10
+
+search:
+ paths:
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
+ - path: "/api/torrents/filter"
+ response:
+ type: json
+
+ headers:
+ Authorization: ["Bearer {{ .Config.apikey }}"]
+
+ inputs:
+ # if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
+ $raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
+ name: "{{ .Keywords }}"
+ seasonNumber: "{{ .Query.Season }}"
+ episodeNumber: "{{ .Query.Ep }}"
+ imdbId: "{{ .Query.IMDBIDShort }}"
+ tmdbId: "{{ .Query.TMDBID }}"
+ tvdbId: "{{ .Query.TVDBID }}"
+ "free[]": "{{ if .Config.freeleech }}100{{ else }}{{ end }}"
+ sortField: "{{ .Config.sort }}"
+ sortDirection: "{{ .Config.type }}"
+ perPage: 100
+
+ keywordsfilters:
+ - name: re_replace
+ args: ["\\.", " "]
+
+ rows:
+ selector: data
+ attribute: attributes
+
+ fields:
+ category:
+ selector: category_id
+ title:
+ selector: name
+ details:
+ selector: details_link
+ download:
+ selector: download_link
+ infohash:
+ selector: info_hash
+ poster:
+ selector: meta.poster
+ filters:
+ - name: replace
+ args: ["https://via.placeholder.com/90x135", ""]
+ imdbid:
+ selector: imdb_id
+ tmdbid:
+ selector: tmdb_id
+ tvdbid:
+ selector: tvdb_id
+ genre:
+ selector: meta.genres
+ filters:
+ - name: re_replace
+ args: ["(?i)^None$", ""]
+ - name: re_replace
+ args: ["(?i)(Science Fiction)", "Science_Fiction"]
+ - name: re_replace
+ args: ["(?i)(TV Movie)", "TV_Movie"]
+ - name: replace
+ args: [" & ", "_&_"]
+ description:
+ text: "{{ .Result.genre }}"
+ files:
+ selector: num_file
+ seeders:
+ selector: seeders
+ leechers:
+ selector: leechers
+ grabs:
+ selector: times_completed
+ date:
+ # "created_at": "2021-10-18T00:34:50.000000Z" is returned by Newtonsoft.Json.Linq as 18/10/2021 00:34:50
+ selector: created_at
+ filters:
+ - name: append
+ args: " +00:00" # GMT
+ - name: dateparse
+ args: "MM/dd/yyyy HH:mm:ss zzz"
+ size:
+ selector: size
+ downloadvolumefactor:
+ # api returns 0%, 25%, 50%, 75%, 100%
+ selector: freeleech
+ case:
+ 0%: 1 # not free
+ 25%: 0.75
+ 50%: 0.5
+ 75%: 0.25
+ 100%: 0 # freeleech
+ "*": 0 # catch errors
+ uploadvolumefactor:
+ # api returns False, True
+ selector: double_upload
+ case:
+ False: 1 # normal
+ True: 2 # double
+ minimumratio:
+ text: 1.0
+ minimumseedtime:
+ # 4 days (as seconds = 4 x 24 x 60 x 60)
+ text: 345600
+# json UNIT3D 7.2.5
diff --git a/mock-htpc/prowlarr/Definitions/theoccult.yml b/mock-htpc/prowlarr/Definitions/theoccult.yml
index 46b31f0..58c8ad8 100644
--- a/mock-htpc/prowlarr/Definitions/theoccult.yml
+++ b/mock-htpc/prowlarr/Definitions/theoccult.yml
@@ -71,10 +71,8 @@ settings:
- name: cookie
type: text
label: Cookie
- - name: info
- type: info
- label: How to get the Cookie
- default: "- Login to this tracker with your browser
- Open the DevTools panel by pressing F12
- Select the Network tab
- Click on the Doc button (Chrome Browser) or HTML button (FireFox)
- Refresh the page by pressing F5
- Click on the first row entry
- Select the Headers tab on the Right panel
- Find 'cookie:' in the Request Headers section
- Select and Copy the whole cookie string (everything after 'cookie: ') and Paste here.
"
+ - name: info_cookie
+ type: info_cookie
- name: sort
type: select
label: Sort requested from site
@@ -105,6 +103,7 @@ settings:
default: "Unparked accounts that haven't visited (read: browsed) the site for 38 days (and are over 28 days old) are pruned. Parked accounts are pruned when 112 days have elapsed since the last recorded activity (read: browsed). Seeding activity does NOT count, you must BROWSE the site. Donators with a star (and ONLY donators with a star) are immune to auto-pruning. Power Users and above are also immune. We regularly clean out accounts with very low share ratios that are subject to the Ratio Watch system."
login:
+ # using cookie method because login page has embedded hCaptcha
method: cookie
inputs:
cookie: "{{ .Config.cookie }}"
diff --git a/mock-htpc/prowlarr/Definitions/theoldschool-api.yml b/mock-htpc/prowlarr/Definitions/theoldschool-api.yml
index 6c79543..1e1c659 100644
--- a/mock-htpc/prowlarr/Definitions/theoldschool-api.yml
+++ b/mock-htpc/prowlarr/Definitions/theoldschool-api.yml
@@ -35,7 +35,7 @@ settings:
- name: info_key
type: info
label: About your API key
- default: "Find or Generate a new API Token by accessing your The Old School account My Security page and clicking on the API Token tab."
+ default: "Find or Generate a new API Token by accessing your The Old School account My Settings page and clicking on the API Key tab."
- name: freeleech
type: checkbox
label: Search freeleech only
@@ -92,11 +92,12 @@ login:
- selector: a[href*="/login"]
message:
text: "The API key was not accepted by {{ .Config.sitelink }}."
+ - selector: :root:contains("Account is Banned")
search:
paths:
- # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v7.0.0)
- # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L349
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
- path: "/api/torrents/filter"
response:
type: json
@@ -209,15 +210,15 @@ search:
100%: 0 # freeleech
"*": 0 # catch errors
uploadvolumefactor:
- # api returns 0=false, 1=true
+ # api returns False, True
selector: double_upload
case:
- 0: 1 # normal
- 1: 2 # double
+ False: 1 # normal
+ True: 2 # double
# global MR is 0.6 but torrents must be seeded for 2 days regardless of ratio
# minimumratio:
# text: 0.6
minimumseedtime:
# 2 days (as seconds = 2 x 24 x 60 x 60)
text: 172800
-# json UNIT3D custom edition 1.0.1 (based on 6.5.0)
+# json UNIT3D custom edition 1.1.0 (based on 7.2.5)
diff --git a/mock-htpc/prowlarr/Definitions/theparadiese.yml b/mock-htpc/prowlarr/Definitions/theparadiese.yml
index 352fcf0..ef18981 100644
--- a/mock-htpc/prowlarr/Definitions/theparadiese.yml
+++ b/mock-htpc/prowlarr/Definitions/theparadiese.yml
@@ -10,45 +10,56 @@ links:
caps:
categorymappings:
- - {id: 119, cat: Other, desc: "Bilder"}
- - {id: 139, cat: TV/Documentary, desc: "Doku - HD"}
- - {id: 141, cat: TV/Documentary, desc: "Doku - Pack"}
- - {id: 140, cat: TV/Documentary, desc: "Doku - SD"}
- - {id: 142, cat: TV, desc: "Doku - Sonstige"}
- - {id: 120, cat: Books, desc: "Ebook"}
- - {id: 131, cat: TV/Anime, desc: "Filme - Anime"}
- - {id: 101, cat: Movies/BluRay, desc: "Filme - Blue Ray"}
- - {id: 102, cat: Movies/Other, desc: "Filme - Bollywood"}
- - {id: 103, cat: Movies/DVD, desc: "Filme - DVD"}
- - {id: 104, cat: Movies/DVD, desc: "Filme - DVD-R"}
- - {id: 135, cat: Movies/HD, desc: "Filme - HD"}
- - {id: 130, cat: Movies, desc: "Filme - Klassiker"}
- - {id: 134, cat: Movies/SD, desc: "Filme - SD"}
- - {id: 136, cat: Movies/UHD, desc: "Filme - UHD"}
- - {id: 105, cat: Movies, desc: "Filme - x264/x265"}
- - {id: 106, cat: Movies/SD, desc: "Filme - XviD / DivX"}
- - {id: 127, cat: Other, desc: "Für Unsere kleinsten"}
- - {id: 121, cat: Other, desc: "Handy Stuff"}
- - {id: 124, cat: Audio, desc: "Musik - Alben"}
- - {id: 123, cat: Audio, desc: "Musik - Discography"}
- - {id: 122, cat: Audio/Audiobook, desc: "Musik - Hörbuch"}
- - {id: 133, cat: Audio/MP3, desc: "Musik - MP3/Mp4"}
- - {id: 125, cat: Audio/Video, desc: "Musik - Video"}
- - {id: 113, cat: PC, desc: "Programme - Linux"}
- - {id: 114, cat: PC/Mac, desc: "Programme - Mac"}
- - {id: 115, cat: PC/0day, desc: "Programme - Windows"}
- - {id: 137, cat: TV/HD, desc: "Serien - HD"}
- - {id: 116, cat: TV, desc: "Serien - Pack"}
- - {id: 138, cat: TV/SD, desc: "Serien - SD"}
- - {id: 143, cat: TV/Other, desc: "Serien - Sonstige"}
- - {id: 144, cat: TV/UHD, desc: "Serien - UHD"}
- - {id: 129, cat: Other, desc: "Sonstiges"}
- - {id: 109, cat: PC/Mobile-Other, desc: "Spiele - Handy"}
- - {id: 112, cat: Console, desc: "Spiele - Konsolen"}
- - {id: 111, cat: PC/Games, desc: "Spiele - Mac / Linux"}
- - {id: 110, cat: PC/Games, desc: "Spiele - PC"}
- - {id: 118, cat: TV/Sport, desc: "WWE - Sport"}
- - {id: 69, cat: XXX, desc: "XXX"}
+ - {id: 125, cat: Movies, desc: "Movie Anime"}
+ - {id: 134, cat: Movies/UHD, desc: "Movie Pack/4K/UHD"}
+ - {id: 118, cat: Movies/HD, desc: "Movie Pack HD"}
+ - {id: 132, cat: Movies/SD, desc: "Movie Pack SD"}
+ - {id: 133, cat: Movies/UHD, desc: "Movie 4K/UHD"}
+ - {id: 32, cat: Movies/HD, desc: "Movie HD"}
+ - {id: 28, cat: Movies/SD, desc: "Movie SD"}
+ - {id: 26, cat: Movies/3D, desc: "Movie 3D"}
+ - {id: 136, cat: Movies/DVD, desc: "Movie DVD"}
+ - {id: 121, cat: TV/UHD, desc: "Serien Pack/4K/UHD"}
+ - {id: 119, cat: TV/HD, desc: "Serien Pack HD"}
+ - {id: 59, cat: TV/SD, desc: "Serien Pack SD"}
+ - {id: 122, cat: TV/UHD, desc: "Serien 4K/UHD"}
+ - {id: 57, cat: TV/HD, desc: "Serien HD"}
+ - {id: 60, cat: TV/SD, desc: "Serien SD"}
+ - {id: 126, cat: TV/Anime, desc: "Serien Anime"}
+ - {id: 145, cat: Audio, desc: "Music Soundtrack"}
+ - {id: 52, cat: Audio, desc: "Music Pack"}
+ - {id: 48, cat: Audio, desc: "Music Album"}
+ - {id: 49, cat: Audio, desc: "Music Charts"}
+ - {id: 54, cat: Audio, desc: "Music Single"}
+ - {id: 110, cat: Audio/MP3, desc: "Music Mp3"}
+ - {id: 120, cat: Audio/Lossless, desc: "Music Flac"}
+ - {id: 123, cat: Audio/Audiobook, desc: "Music Hörbücher"}
+ - {id: 109, cat: Audio/Video, desc: "Music Video"}
+ - {id: 140, cat: Other, desc: "Kids Anime"}
+ - {id: 143, cat: Other, desc: "Kids Pack HD"}
+ - {id: 142, cat: Other, desc: "Kids HD"}
+ - {id: 144, cat: Other, desc: "Kids Pack SD"}
+ - {id: 141, cat: Other, desc: "Kids SD"}
+ - {id: 96, cat: Books/EBook, desc: "Sonstiges E-Book"}
+ - {id: 69, cat: Other, desc: "Sonstiges Tutorial"}
+ - {id: 71, cat: Other/Misc, desc: "Sonstiges Other"}
+ - {id: 139, cat: XXX, desc: "XXX Anime"}
+ - {id: 75, cat: XXX, desc: "XXX Pack"}
+ - {id: 73, cat: XXX, desc: "XXX HD"}
+ - {id: 76, cat: XXX, desc: "XXX SD"}
+ - {id: 74, cat: XXX, desc: "XXX Other"}
+ - {id: 127, cat: TV/Documentary, desc: "Doku Pack HD"}
+ - {id: 128, cat: TV/Documentary, desc: "Doku Pack SD"}
+ - {id: 14, cat: TV/Documentary, desc: "Doku HD"}
+ - {id: 15, cat: TV/Documentary, desc: "Doku SD"}
+ - {id: 12, cat: PC/0day, desc: "App Win"}
+ - {id: 10, cat: PC/Mac, desc: "App Mac/Linux"}
+ - {id: 11, cat: PC/Mobile-Other, desc: "App Handy"}
+ - {id: 17, cat: PC/Games, desc: "Game PC"}
+ - {id: 129, cat: Console, desc: "Game Konsole"}
+ - {id: 131, cat: PC/Mobile-Other, desc: "Game Handy"}
+ - {id: 117, cat: TV/Sport, desc: "Sport SD"}
+ - {id: 137, cat: TV/Sport, desc: "Sport HD"}
modes:
search: [q]
@@ -67,10 +78,6 @@ settings:
- name: pin
type: text
label: Pin
- - name: onlyupload
- type: checkbox
- label: Filter OnlyUpload only
- default: false
- name: info_free
type: info
label: About OnlyUpload at The Paradiese
@@ -94,7 +101,7 @@ settings:
- name: info_tpp
type: info
label: Results Per Page
- default: For best results, change the Torrents pro Seite: setting to 100 on your Control Panel. The default is 15.
+ default: For best results, change the Torrents pro Seite: setting to 60 on your Control Panel. The default is 15.
- name: info_activity
type: info
label: Account Inactivity
@@ -107,78 +114,99 @@ login:
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
- secure_pin: "{{ .Config.pin }}"
- returnto: /
+ pin: "{{ .Config.pin }}"
error:
- - selector: table.tableinborder:contains("Anmeldung Gescheitert!") > tbody > tr > td.tablea
+ - selector: div#login_error
test:
path: index.php
selector: a[href="logout.php"]
search:
paths:
- - path: browse.php
+ - path: selection.php
inputs:
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
search: "{{ .Keywords }}"
- showsearch: 1
- # 0 active, 1 all, 2 dead
- incldead: 1
+ # 0 name, 1 descr, 2 both
+ blah: 0
orderby: "{{ .Config.sort }}"
sort: "{{ .Config.type }}"
# site does not support imdbid searching or display imdb links in results.
rows:
- selector: "table.tableinborder[border=\"0\"][cellspacing=\"1\"][cellpadding=\"0\"][style=\"width:100%\"] > tbody > tr:has(a[href^=\"download.php?torrent=\"]){{ if .Config.onlyupload }}:has(img[src=\"pic/oupic.gif\"]){{ else }}{{ end }}"
- filters:
- - name: andmatch
+ selector: div.selection_wrap
fields:
- category_optional:
- selector: a[href^="browse.php?cat="]
+ category_p1:
+ selector: div.kat_cat_pic_name
+ category_p2:
+ selector: div.kat_cat_pic_name_b
+ categorydesc:
+ text: "{{ .Result.category_p1 }} {{ .Result.category_p2 }}"
+ title:
+ selector: a.selection_a
+ filters:
+ - name: re_replace
+ args: ["^\\[[\\w ]*\\]\\s?", ""]
+ details:
+ selector: a.selection_a
+ attribute: href
+ _id:
+ selector: a.selection_a
attribute: href
- optional: true
filters:
- name: querystring
- args: cat
- category:
- text: "{{ if .Result.category_optional }}{{ .Result.category_optional }}{{ else }}129{{ end }}"
- title:
- selector: a[href^="details.php?id="]:has(b)
- details:
- selector: a[href^="details.php?id="]:has(b)
- attribute: href
+ args: id
download:
- selector: a[href^="download.php?torrent="]
- attribute: href
+ text: "download.php?torrent={{ .Result._id }}"
+ poster:
+ selector: div[id^="details"] img
+ attribute: src
size:
- selector: td.content_wrap > table > tbody > tr:nth-child(2) > td:nth-child(1) > b:nth-child(1)
+ selector: div.selection_unter_ad
grabs:
- selector: td.content_wrap > table > tbody > tr:nth-child(2) > td:nth-child(3) > b
- files:
- selector: td.content_wrap > table > tbody > tr:nth-child(2) > td:nth-child(1) > b:nth-child(2)
- seeders:
- selector: td.content_wrap > table > tbody > tr:nth-child(2) > td:nth-child(2) > b:nth-child(1)
- leechers:
- selector: td.content_wrap > table > tbody > tr:nth-child(2) > td:nth-child(2) > b:nth-child(3)
- date:
- selector: td.content_wrap > table > tbody > tr:nth-child(2) > td:nth-child(5)
+ selector: div.selection_unter_ae
+ date_day:
+ # Heute 13:30:04
+ # Gestern 09:10:10
+ selector: div.selection_unter_ab:not(:contains("."))
+ optional: true
filters:
- name: replace
- args: ["\u00a0", " "]
+ args: ["Heute", "Today"]
+ - name: replace
+ args: ["Gestern", "Yesterday"]
+ - name: append
+ args: " +01:00" # CET
+ date_year:
+ # 30.02.2018 um 23:12:50
+ selector: div.selection_unter_ab:contains(".")
+ optional: true
+ filters:
+ - name: replace
+ args: [" um", ""]
- name: append
args: " +01:00" # CET
- name: dateparse
args: "dd.MM.yyyy HH:mm:ss zzz"
+ date:
+ text: "{{ if or .Result.date_year .Result.date_day }}{{ or .Result.date_year .Result.date_day }}{{ else }}now{{ end }}"
+ seeders:
+ selector: div.selection_unter_aa
+ leechers:
+ selector: div.selection_unter_aaa
downloadvolumefactor:
case:
- img[src="pic/oupic.gif"]: 0 # only upload is counted
+ ":root:has(div.onlyup)": 0 # GLobal Freeleech event
"*": 1
uploadvolumefactor:
- case:
- img[src="pic/freeleech.gif"]: 0 # nothing is counted
- "*": 1
+ text: 1
minimumseedtime:
- # 2 days (as seconds = 2 x 24 x 60 x 60)
- text: 172800
-# NetVision
+ case:
+ # 2.5 days (as seconds = 2.5 x 24 x 60 x 60)
+ ":root:has(div.onlyup)": 216000 # GLobal Freeleech event
+ # 2 days (as seconds = 2 x 24 x 60 x 60)
+ "*": 172800
+ minimumratio:
+ text: 0.8
+# 3xT
diff --git a/mock-htpc/prowlarr/Definitions/thepiratebay.yml b/mock-htpc/prowlarr/Definitions/thepiratebay.yml
index bee13a3..7ecf51f 100644
--- a/mock-htpc/prowlarr/Definitions/thepiratebay.yml
+++ b/mock-htpc/prowlarr/Definitions/thepiratebay.yml
@@ -10,8 +10,9 @@ links:
- https://thepiratebay.unblockninja.com/
- https://thepiratebay.ninjaproxy1.com/
- https://tpb.proxyninja.org/
+ - https://tpb.proxyninja.net/
- https://thepiratebay.torrentbay.st/
- - https://tpb29.ukpass.co/
+ - https://tpb31.ukpass.co/
- https://tpb.skynetcloud.site/
- https://piratehaven.xyz/
- https://mirrorbay.top/
@@ -25,16 +26,15 @@ links:
- https://piratebay.live/
- https://piratebay.party/
- https://thepiratebay.party/
- - https://pirate-proxy.date/
+ - https://pirate-proxy.africa/
- https://thepiratebaye.org/
- https://5mins.eu/
- - https://piratebay.by/
- https://thepiratebay.cloud/
- - https://thepirateproxy.net/
- https://tpb-proxy.xyz/
- https://piratebay.army/
- https://tpb-visit.me/
- https://tpb.re/
+ - https://pirate-proxy.ong/
legacylinks:
- https://pirate-proxy.page/
- https://5mins.shop/
@@ -47,6 +47,7 @@ legacylinks:
- https://piratebayo3klnzokct3wt5yyxb2vpebbuyjl7m623iaxmqhsd52coid.tor2web.to/
- https://piratebayo3klnzokct3wt5yyxb2vpebbuyjl7m623iaxmqhsd52coid.tor2web.link/
- https://tpb25.ukpass.co/
+ - https://tpb29.ukpass.co/
- https://piratenow.xyz/
- https://pirate-proxy.ink/
- https://proxifiedpiratebay.org/
@@ -56,6 +57,10 @@ legacylinks:
- https://tpbproxy.click/
- https://pirateproxy.live/
- https://ukpiratebay.org/
+ - https://piratebay.by/
+ - https://pirate-proxy.date/
+ - https://thepirateproxy.net/
+ - https://thepiratebay.abcproxy.org/
caps:
categorymappings:
diff --git a/mock-htpc/prowlarr/Definitions/thepiratedship.yml b/mock-htpc/prowlarr/Definitions/thepiratedship.yml
new file mode 100644
index 0000000..30d147f
--- /dev/null
+++ b/mock-htpc/prowlarr/Definitions/thepiratedship.yml
@@ -0,0 +1,164 @@
+---
+id: thepiratedship
+name: ThePiratedShip
+description: "ThePiratedShip is a Private tracker for MOVIES / TV / GENERAL"
+language: en-US
+type: private
+encoding: UTF-8
+links:
+ - https://thepiratedship.co.uk/
+
+caps:
+ categorymappings:
+# - {id: 8, cat: Movies/Other, desc: "Torrent Releases"}
+# - {id: 32, cat: Movies, desc: "Movies"}
+ - {id: 10, cat: Movies/SD, desc: "Cams TS & TC/PPV/VOD/HDTV *Ratio Free*"}
+ - {id: 11, cat: Movies/SD, desc: "Screeners/R3/R5/R6/HDRip/Webrip/WEB-DL/Recodes"}
+ - {id: 13, cat: Movies/HD, desc: "DVDRip/BRRip/BDRip"}
+ - {id: 14, cat: Movies/DVD, desc: "DVDR"}
+ - {id: 15, cat: Movies/UHD, desc: "High Definition MKV/MP4"}
+ - {id: 16, cat: Movies/UHD, desc: "4k Ultra High Definition *Ratio Free*"}
+ - {id: 17, cat: Movies/Other, desc: "Movies Requests"}
+# - {id: 20, cat: TV, desc: "TV Shows"}
+ - {id: 21, cat: TV, desc: "Sci-Fi / Supernatural / Horror"}
+ - {id: 22, cat: TV, desc: "Comedy"}
+ - {id: 23, cat: TV, desc: "Action/Adventure"}
+ - {id: 24, cat: TV, desc: "Drama"}
+ - {id: 25, cat: TV/Documentary, desc: "Documentaries"}
+ - {id: 27, cat: TV/Sport, desc: "Sport TV"}
+ - {id: 28, cat: TV/Other, desc: "Misc TV"}
+ - {id: 29, cat: TV/Other, desc: "TV Shows Requests"}
+# - {id: 33, cat: Audio, desc: "Music"}
+ - {id: 34, cat: Audio, desc: "Rock/Heavy Metal/Alternative"}
+ - {id: 38, cat: Audio, desc: "Album & Singles Packs"}
+ - {id: 35, cat: Audio, desc: "Singles"}
+ - {id: 36, cat: Audio, desc: "Pop albums"}
+ - {id: 37, cat: Audio, desc: "Trance/Dance/House"}
+ - {id: 39, cat: Audio, desc: "Drum & Bass/Breakbeat/Garage/Hardcore"}
+ - {id: 40, cat: Audio, desc: "Golden Oldies/Easy Listening"}
+ - {id: 41, cat: Audio, desc: "Reggae/DUB/SKA/2 Tone"}
+ - {id: 42, cat: Audio, desc: "Hip-Hop/RnB/Soul"}
+ - {id: 43, cat: Audio, desc: "Country/Folk"}
+ - {id: 44, cat: Audio, desc: "Jazz 'n' Blues"}
+ - {id: 45, cat: Audio, desc: "Classical"}
+ - {id: 46, cat: Audio, desc: "Soundtracks"}
+ - {id: 47, cat: Audio, desc: "Amateur Creations/Live DJ Sets etc/Karaoke"}
+ - {id: 48, cat: Audio/Video, desc: "Music DVD & Videos"}
+ - {id: 49, cat: Audio, desc: "Misc/Compilation albums"}
+ - {id: 50, cat: Audio/Lossless, desc: "Lossless Format Albums"}
+# - {id: 54, cat: PC/Games, desc: "Games"}
+ - {id: 55, cat: PC/Games, desc: "PC Games"}
+ - {id: 56, cat: Console/XBox, desc: "X BOX"}
+ - {id: 57, cat: Console/Other, desc: "Nintendo Switch"}
+ - {id: 58, cat: Console/PS3, desc: "Playstation"}
+ - {id: 59, cat: Console/PSP, desc: "SONY PSP"}
+ - {id: 60, cat: Console/NDS, desc: "Nintendo DS"}
+ - {id: 61, cat: PC/Games, desc: "DVDR Interactive Games & Quizzes"}
+ - {id: 62, cat: PC/Mac, desc: "Mac & Other OS Games"}
+ - {id: 63, cat: Console/Other, desc: "All Other Console Roms & Emulators"}
+# - {id: 67, cat: PC, desc: "Applications"}
+ - {id: 68, cat: PC, desc: "Artistry"}
+ - {id: 69, cat: PC, desc: "Internet & Web"}
+ - {id: 70, cat: PC, desc: "Utilities"}
+ - {id: 71, cat: PC, desc: "Sound & Vision"}
+ - {id: 72, cat: PC, desc: "Misc Applications"}
+ - {id: 73, cat: PC, desc: "Windows Operating Systems & MS Apps"}
+ - {id: 74, cat: PC, desc: "Applications Requests"}
+# - {id: 78, cat: Other, desc: "Practice Area"}
+ - {id: 89, cat: Other, desc: Test"}
+ # undocumented
+ - {id: 100, cat: Books, desc: Comics/Magazines"}
+ - {id: 96, cat: Movies, desc: "Animation Releases"}
+
+ modes:
+ search: [q]
+ tv-search: [q, season, ep]
+ movie-search: [q]
+ music-search: [q]
+ book-search: [q]
+
+settings:
+ - name: username
+ type: text
+ label: Username
+ - name: password
+ type: password
+ label: Password
+ - name: freeleech
+ type: checkbox
+ label: Search freeleech only
+ default: false
+
+login:
+ path: index.php
+ method: form
+ form: form
+ inputs:
+ login: "{{ .Config.username }}"
+ password: "{{ .Config.password }}"
+ remember: 1
+ _xfRedirect: ""
+ selectorinputs:
+ _xfToken:
+ selector: input[name="_xfToken"]
+ attribute: value
+ error:
+ - selector: div.blockMessage--error:contains(" not be found")
+ - selector: div.blockMessage--error:contains("Incorrect password")
+ test:
+ path: index.php
+ selector: a[href="/index.php?account/preferences"]
+
+search:
+ paths:
+ # supports only single cat search, so defaulting to all
+ - path: "index.php?torrents/&freeleech={{ if .Config.freeleech }}1{{ else }}{{ end }}&filename={{ .Keywords }}"
+ # imdb and tmdb not supported
+
+ keywordsfilters:
+ - name: re_replace
+ args: ["\\.", " "]
+
+ rows:
+ selector: table.dataList-table > tbody.normal-torrents > tr
+
+ fields:
+ category:
+ selector: a[href^="/index.php?forums/"]
+ attribute: href
+ filters:
+ - name: regexp
+ args: (\d+)/$
+ title:
+ selector: div.structItem-title a
+ details:
+ selector: li.structItem-startDate a
+ attribute: href
+ download:
+ selector: a[href^="/index.php?attachments/"]
+ attribute: href
+ description:
+ selector: a[href^="/index.php?forums/"]
+ date:
+ selector: time
+ attribute: datetime
+ size:
+ selector: td:nth-last-child(4)
+ grabs:
+ selector: td:nth-last-child(3)
+ seeders:
+ selector: td:nth-last-child(2)
+ leechers:
+ selector: td:nth-last-child(1)
+ downloadvolumefactor:
+ case:
+ span.label--accent: 0
+ "*": 1
+ uploadvolumefactor:
+ text: 1
+ minimumratio:
+ text: 1.0
+ minimumseedtime:
+ # 1 day (as seconds = 24 x 60 x 60)
+ text: 86400
+# XenForo
diff --git a/mock-htpc/prowlarr/Definitions/theplace.yml b/mock-htpc/prowlarr/Definitions/theplace.yml
index 3927f6b..54cd7c6 100644
--- a/mock-htpc/prowlarr/Definitions/theplace.yml
+++ b/mock-htpc/prowlarr/Definitions/theplace.yml
@@ -52,10 +52,8 @@ settings:
- name: cookie
type: text
label: Cookie
- - name: info
- type: info
- label: How to get the Cookie
- default: "- Login to this tracker with your browser
- Open the DevTools panel by pressing F12
- Select the Network tab
- Click on the Doc button (Chrome Browser) or HTML button (FireFox)
- Refresh the page by pressing F5
- Click on the first row entry
- Select the Headers tab on the Right panel
- Find 'cookie:' in the Request Headers section
- Select and Copy the whole cookie string (everything after 'cookie: ') and Paste here.
"
+ - name: info_cookie
+ type: info_cookie
- name: sort
type: select
label: Sort requested from site
@@ -86,6 +84,7 @@ settings:
default: "Unparked accounts that haven't visited (read: browsed) the site for 38 days (and are over 28 days old) are pruned. Parked accounts are pruned when 112 days have elapsed since the last recorded activity (read: browsed). Seeding activity does NOT count, you must BROWSE the site. Donators with a star (and ONLY donators with a star) are immune to auto-pruning. Power Users and above are also immune. We regularly clean out accounts with very low share ratios that are subject to the Ratio Watch system."
login:
+ # using cookie method because login page has embedded hCaptcha
method: cookie
inputs:
cookie: "{{ .Config.cookie }}"
diff --git a/mock-htpc/prowlarr/Definitions/therarbg.yml b/mock-htpc/prowlarr/Definitions/therarbg.yml
index 665893b..339fe66 100644
--- a/mock-htpc/prowlarr/Definitions/therarbg.yml
+++ b/mock-htpc/prowlarr/Definitions/therarbg.yml
@@ -16,7 +16,9 @@ links:
- https://rarbg.unblockninja.com/
- https://rarbg.ninjaproxy1.com/
- https://rarbg.proxyninja.org/
+ - https://rarbg.proxyninja.net/
- https://rarbg.torrentbay.st/
+ - https://rarbg.torrentsbay.org/
legacylinks:
- https://therarbg.com/
@@ -35,7 +37,7 @@ caps:
modes:
search: [q]
- tv-search: [q, season, ep, imdbid]
+ tv-search: [q, season, ep]
movie-search: [q, imdbid]
music-search: [q]
book-search: [q]
@@ -68,7 +70,7 @@ download:
search:
paths:
- - path: "get-posts/order:{{ .Config.sort }}{{ range .Categories }}:category:{{.}}{{end}}{{ if or .Query.IMDBID .Keywords }}:keywords:{{ or .Query.IMDBID .Keywords }}{{ else }}{{ end }}:paginate_by:100:format:json/"
+ - path: "get-posts/order:{{ .Config.sort }}{{ range .Categories }}:category:{{.}}{{end}}{{ if or .Query.IMDBID .Keywords }}:keywords:{{ or .Query.IMDBID .Keywords }}{{ else }}:time:10D{{ end }}:paginate_by:100:format:json/"
response:
type: json
diff --git a/mock-htpc/prowlarr/Definitions/theshinning-api.yml b/mock-htpc/prowlarr/Definitions/theshinning-api.yml
index 193dffe..df6ad07 100644
--- a/mock-htpc/prowlarr/Definitions/theshinning-api.yml
+++ b/mock-htpc/prowlarr/Definitions/theshinning-api.yml
@@ -68,11 +68,12 @@ login:
- selector: a[href*="/login"]
message:
text: "The API key was not accepted by {{ .Config.sitelink }}."
+ - selector: :root:contains("Account is Banned")
search:
paths:
- # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v7.0.0)
- # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L349
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
- path: "/api/torrents/filter"
response:
type: json
@@ -172,6 +173,6 @@ search:
0: 1 # normal
1: 2 # double
minimumseedtime:
- # 60h (as seconds = 60 x 60 x 60)
+ # 2.5 days (as seconds = 2.5 x 24 x 60 x 60)
text: 216000
# json UNIT3D 6.5.0
diff --git a/mock-htpc/prowlarr/Definitions/theshow.yml b/mock-htpc/prowlarr/Definitions/theshow.yml
index 7a203d1..35ba9bc 100644
--- a/mock-htpc/prowlarr/Definitions/theshow.yml
+++ b/mock-htpc/prowlarr/Definitions/theshow.yml
@@ -72,10 +72,8 @@ settings:
- name: cookie
type: text
label: Cookie
- - name: info
- type: info
- label: How to get the Cookie
- default: "- Login to this tracker with your browser
- Open the DevTools panel by pressing F12
- Select the Network tab
- Click on the Doc button (Chrome Browser) or HTML button (FireFox)
- Refresh the page by pressing F5
- Click on the first row entry
- Select the Headers tab on the Right panel
- Find 'cookie:' in the Request Headers section
- Select and Copy the whole cookie string (everything after 'cookie: ') and Paste here.
"
+ - name: info_cookie
+ type: info_cookie
- name: sort
type: select
label: Sort requested from site
@@ -106,6 +104,7 @@ settings:
default: "Unparked accounts that haven't visited (read: browsed) the site for 38 days (and are over 28 days old) are pruned. Parked accounts are pruned when 112 days have elapsed since the last recorded activity (read: browsed). Seeding activity does NOT count, you must BROWSE the site. Donators with a star (and ONLY donators with a star) are immune to auto-pruning. Power Users and above are also immune. We regularly clean out accounts with very low share ratios that are subject to the Ratio Watch system."
login:
+ # using cookie method because login page has embedded hCaptcha
method: cookie
inputs:
cookie: "{{ .Config.cookie }}"
diff --git a/mock-htpc/prowlarr/Definitions/thevault.yml b/mock-htpc/prowlarr/Definitions/thevault.yml
index c0f97d3..4cd9d96 100644
--- a/mock-htpc/prowlarr/Definitions/thevault.yml
+++ b/mock-htpc/prowlarr/Definitions/thevault.yml
@@ -12,55 +12,53 @@ legacylinks:
caps:
categorymappings:
- - {id: 87, cat: Other, desc: "Author: Brian Tracy"}
- - {id: 106, cat: Other, desc: "Autobiographies / Biographies"}
- - {id: 67, cat: Other, desc: "Investing / Trading / Stocks"}
- - {id: 93, cat: Other, desc: "Negotiation / Contracts"}
- - {id: 99, cat: Other, desc: "Net: Traffic Generation"}
+ - {id: 200, cat: Other, desc: "ABCs / Basics"}
+ - {id: 202, cat: Other, desc: "Artificial Intelligence"}
- {id: 107, cat: Other, desc: "Author: Dan Kennedy"}
- - {id: 118, cat: Other, desc: "Ayn Rand / Objectivism"}
- - {id: 75, cat: Other, desc: "Magazines"}
- - {id: 97, cat: Other, desc: "Net: Affiliate Schemes"}
- - {id: 102, cat: Other, desc: "Net: Web Site/Blog Templates"}
- {id: 110, cat: Other, desc: "Author: Dan Pena"}
- - {id: 112, cat: Other, desc: "Consulting"}
- - {id: 70, cat: Other, desc: "Management / Leadership"}
- - {id: 105, cat: Other, desc: "Net: Blogging"}
- - {id: 114, cat: Other, desc: "Network Marketing (MLM)"}
- {id: 117, cat: Other, desc: "Author: Eben Pagan"}
- - {id: 94, cat: Other, desc: "Copywriting"}
- - {id: 85, cat: Other, desc: "Mindset / Achievement"}
- - {id: 76, cat: Other, desc: "Net: E-Commerce"}
- - {id: 111, cat: Other, desc: "Offshore / Tax Avoidance"}
- {id: 92, cat: Other, desc: "Author: Jay Abraham"}
- - {id: 103, cat: Other, desc: "Corporate Design / Branding"}
- - {id: 80, cat: Other, desc: "Misc: Audio"}
- - {id: 100, cat: Other, desc: "Net: eBay / Online Auctions"}
- - {id: 116, cat: Other, desc: "Private Label Rights (PLR)"}
- - {id: 89, cat: Other, desc: "Author: Jim Rohn"}
- - {id: 84, cat: Other, desc: "Customer Service"}
- - {id: 90, cat: Other, desc: "Misc: Other"}
- - {id: 115, cat: Other, desc: "Net: Email Marketing"}
- - {id: 68, cat: Other, desc: "Real Estate / Property Develop"}
- {id: 96, cat: Other, desc: "Author: John Reese"}
- - {id: 65, cat: Other, desc: "Economics / Finance"}
- - {id: 83, cat: Other, desc: "Misc: Software"}
- - {id: 95, cat: Other, desc: "Net: Marketing"}
- - {id: 104, cat: Other, desc: "Recruitment / Interviewing"}
- {id: 63, cat: Other, desc: "Author: Robert Kiyosaki"}
+ - {id: 106, cat: Other, desc: "Autobiographies / Biographies"}
+ - {id: 118, cat: Other, desc: "Ayn Rand / Objectivism"}
+ - {id: 112, cat: Other, desc: "Consulting"}
+ - {id: 94, cat: Other, desc: "Copywriting"}
+ - {id: 103, cat: Other, desc: "Corporate Design / Branding"}
+ - {id: 84, cat: Other, desc: "Customer Service"}
+ - {id: 65, cat: Other, desc: "Economics / Finance"}
- {id: 113, cat: Other, desc: "Entertainment Business"}
- - {id: 81, cat: Other, desc: "Misc: Video"}
- - {id: 101, cat: Other, desc: "Net: Misc"}
- - {id: 71, cat: Other, desc: "Sales / Marketing"}
- - {id: 86, cat: Other, desc: "Author: T Harv Eker"}
- - {id: 109, cat: Other, desc: "Gambling / Betting"}
- - {id: 82, cat: Other, desc: "Misc: Written / E-Books"}
- - {id: 98, cat: Other, desc: "Net: Pay-Per-Click Advertising"}
- - {id: 72, cat: Other, desc: "Small Business / Entrepreneurs"}
- - {id: 88, cat: Other, desc: "Author: Zig Ziglar"}
- {id: 73, cat: Other, desc: "Hypnosis / NLP"}
+ - {id: 67, cat: Other, desc: "Investing / Trading / Stocks"}
+ - {id: 75, cat: Other, desc: "Magazines"}
+ - {id: 70, cat: Other, desc: "Management / Leadership"}
+ - {id: 85, cat: Other, desc: "Mindset / Achievement"}
+ - {id: 80, cat: Other, desc: "Misc: Audio"}
+ - {id: 90, cat: Other, desc: "Misc: Other"}
+ - {id: 83, cat: Other, desc: "Misc: Software"}
+ - {id: 81, cat: Other, desc: "Misc: Video"}
+ - {id: 82, cat: Other, desc: "Misc: Written / E-Books"}
- {id: 62, cat: Other, desc: "Money Management / Taxes"}
+ - {id: 93, cat: Other, desc: "Negotiation / Contracts"}
+ - {id: 97, cat: Other, desc: "Net: Affiliate Schemes"}
+ - {id: 105, cat: Other, desc: "Net: Blogging"}
+ - {id: 76, cat: Other, desc: "Net: E-Commerce"}
+ - {id: 100, cat: Other, desc: "Net: eBay / Online Auctions"}
+ - {id: 115, cat: Other, desc: "Net: Email Marketing"}
+ - {id: 95, cat: Other, desc: "Net: Marketing"}
+ - {id: 101, cat: Other, desc: "Net: Misc"}
+ - {id: 98, cat: Other, desc: "Net: Pay-Per-Click Advertising"}
- {id: 108, cat: Other, desc: "Net: Search Engine Optimizing"}
+ - {id: 99, cat: Other, desc: "Net: Traffic Generation"}
+ - {id: 102, cat: Other, desc: "Net: Web Site/Blog Templates"}
+ - {id: 114, cat: Other, desc: "Network Marketing (MLM)"}
+ - {id: 111, cat: Other, desc: "Offshore / Tax Avoidance"}
+ - {id: 116, cat: Other, desc: "Private Label Rights (PLR)"}
+ - {id: 68, cat: Other, desc: "Real Estate / Property Develop"}
+ - {id: 104, cat: Other, desc: "Recruitment / Interviewing"}
+ - {id: 71, cat: Other, desc: "Sales / Marketing"}
+ - {id: 72, cat: Other, desc: "Small Business / Entrepreneurs"}
+ - {id: 109, cat: Other, desc: "Sports / Gambling"}
- {id: 91, cat: Other, desc: "TTC Lectures"}
modes:
@@ -70,10 +68,8 @@ settings:
- name: cookie
type: text
label: Cookie
- - name: info
- type: info
- label: How to get the Cookie
- default: "- Login to this tracker with your browser
- Open the DevTools panel by pressing F12
- Select the Network tab
- Click on the Doc button (Chrome Browser) or HTML button (FireFox)
- Refresh the page by pressing F5
- Click on the first row entry
- Select the Headers tab on the Right panel
- Find 'cookie:' in the Request Headers section
- Select and Copy the whole cookie string (everything after 'cookie: ') and Paste here.
"
+ - name: info_cookie
+ type: info_cookie
- name: sort
type: select
label: Sort requested from site
@@ -104,6 +100,7 @@ settings:
default: "Unparked accounts that haven't visited (read: browsed) the site for 38 days (and are over 28 days old) are pruned. Parked accounts are pruned when 112 days have elapsed since the last recorded activity (read: browsed). Seeding activity does NOT count, you must BROWSE the site. Donators with a star (and ONLY donators with a star) are immune to auto-pruning. Power Users and above are also immune. We regularly clean out accounts with very low share ratios that are subject to the Ratio Watch system."
login:
+ # using cookie method because login page has embedded hCaptcha
method: cookie
inputs:
cookie: "{{ .Config.cookie }}"
diff --git a/mock-htpc/prowlarr/Definitions/tjupt.yml b/mock-htpc/prowlarr/Definitions/tjupt.yml
index 250732a..065fd90 100644
--- a/mock-htpc/prowlarr/Definitions/tjupt.yml
+++ b/mock-htpc/prowlarr/Definitions/tjupt.yml
@@ -31,12 +31,11 @@ caps:
book-search: [q]
settings:
- - name: username
+ - name: cookie
type: text
- label: Username
- - name: password
- type: password
- label: Password
+ label: Cookie
+ - name: info_cookie
+ type: info_cookie
- name: freeleech
type: checkbox
label: Search freeleech only
@@ -67,14 +66,10 @@ settings:
default: "Banning rules for account inactivity:- Within 180 days, an account is considered active if it meets any of the following conditions: has checked in for at least 1 day; has published at least 1 seed, fun box or new forum topic (non-reply); actually uploaded increments > 5TiB and the seeding integral increment is > 30W
- Users of Megatron level and above ignore the inactivity rules and will keep their accounts forever
- Users with Sword Down the Mountain and above will not be disabled due to inactivity after parking their accounts in the control panel
- Un-parked accounts below the level of Megatron will be disabled if they have been 'inactive' for 180 consecutive days (Effective from 2024).
- Accounts parked below the level of Down the Mountain with a Sword will be disabled if they are 'inactive' for 300 consecutive days (Effective from 2024).
"
login:
- path: takelogin.php
- method: post
+ # switched from the form method to the cookie method due to #15184
+ method: cookie
inputs:
- username: "{{ .Config.username }}"
- password: "{{ .Config.password }}"
- logout: 90days
- error:
- - selector: td.embedded:has(h2:contains("失败"))
+ cookie: "{{ .Config.cookie }}"
test:
path: index.php
selector: a[href="logout.php"]
@@ -125,8 +120,11 @@ search:
selector: a[href^="details.php?id="]
attribute: href
download:
- selector: a[href^="download.php?id="]
+ selector: a[href^="details.php?id="]
attribute: href
+ filters:
+ - name: replace
+ args: ["details", "download"]
imdbid:
selector: a[href*="imdb.com/title/tt"]
attribute: href
diff --git a/mock-htpc/prowlarr/Definitions/tocashare.yml b/mock-htpc/prowlarr/Definitions/tocashare.yml
index dbf69eb..0919eb2 100644
--- a/mock-htpc/prowlarr/Definitions/tocashare.yml
+++ b/mock-htpc/prowlarr/Definitions/tocashare.yml
@@ -7,6 +7,7 @@ type: private
encoding: UTF-8
links:
- https://tocashare.com/
+ - https://tocashare.biz/
caps:
categorymappings:
@@ -36,7 +37,7 @@ settings:
- name: info_key
type: info
label: About your API key
- default: "Find or Generate a new API Token by accessing your Toca Share account My Settings page and clicking on the API Key tab."
+ default: "Find or Generate a new API Token by accessing your Toca Share account My Settings page and clicking on the API Key tab."
- name: freeleech
type: checkbox
label: Search freeleech only
@@ -70,11 +71,12 @@ login:
- selector: a[href*="/login"]
message:
text: "The API key was not accepted by {{ .Config.sitelink }}."
+ - selector: :root:contains("Account is Banned")
search:
paths:
- # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v7.0.0)
- # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L349
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
- path: "/api/torrents/filter"
response:
type: json
@@ -109,6 +111,8 @@ search:
selector: category_id
title:
selector: name
+ files:
+ selector: num_file
details:
selector: details_link
download:
@@ -139,8 +143,6 @@ search:
args: [" & ", "_&_"]
description:
text: "{{ .Result.genre }}"
- files:
- selector: num_file
seeders:
selector: seeders
leechers:
@@ -173,10 +175,10 @@ search:
case:
False: 1 # normal
True: 2 # double
-# global MR is 0.4 but torrents must be seeded for 7 days regardless of ratio
+# global MR is 0.4 but torrents must be seeded for 5 days regardless of ratio
# minimumratio:
# text: 0.4
minimumseedtime:
- # 7 days (as seconds = 7 x 24 x 60 x 60)
- text: 604800
+ # 5 days (as seconds = 5 x 24 x 60 x 60)
+ text: 432000
# json UNIT3D 7.2.0
diff --git a/mock-htpc/prowlarr/Definitions/tokyotosho.yml b/mock-htpc/prowlarr/Definitions/tokyotosho.yml
index 42712a2..c320cdc 100644
--- a/mock-htpc/prowlarr/Definitions/tokyotosho.yml
+++ b/mock-htpc/prowlarr/Definitions/tokyotosho.yml
@@ -16,16 +16,6 @@ legacylinks:
- https://tokyotosho.uk-unblock.pro/
- https://tokyotosho.unblocked.rest/
- https://tokyotosho.unblocked.monster/
- - https://tokyotosho.nocensor.space/
- - https://tokyotosho.nocensor.work/
- - https://tokyotosho.nocensor.biz/
- - https://tokyotosho.nocensor.sbs/
- - https://tokyotosho.nocensor.world/
- - https://tokyotosho.nocensor.lol/
- - https://tokyotosho.nocensor.art/
- - https://tokyotosho.mrunblock.guru/
- - https://tokyotosho.mrunblock.life/
- - https://tokyotosho.nocensor.click/
- https://tokyotosho.mrunblock.bond/
- https://tokyotosho.nocensor.cloud/
diff --git a/mock-htpc/prowlarr/Definitions/torlock.yml b/mock-htpc/prowlarr/Definitions/torlock.yml
index 9439506..78c80e1 100644
--- a/mock-htpc/prowlarr/Definitions/torlock.yml
+++ b/mock-htpc/prowlarr/Definitions/torlock.yml
@@ -8,31 +8,13 @@ encoding: UTF-8
requestDelay: 2
links:
- https://www.torlock.com/
- - https://www.torlock2.com/
- - https://torlock.unblockit.africa/
legacylinks:
- https://torlock.com/
- https://www.torlock.icu/
- - https://torlock.nocensor.lol/
- - https://torlock.unblockit.ink/
- - https://torlock.unblockit.bio/
- - https://torlock.unblockit.boo/
- - https://torlock.mrunblock.guru/
- - https://torlock.unblockit.click/
- - https://torlock.unblockit.asia/
- - https://torlock.mrunblock.life/
- - https://torlock.unblockit.mov/
- - https://torlock.unblockit.rsvp/
- - https://torlock.nocensor.click/
- - https://torlock.unblockit.vegas/
- - https://torlock.unblockit.esq/
- - https://torlock.unblockit.zip/
- - https://torlock.unblockit.foo/
- - https://torlock.unblockit.ing/
- https://torlock.nocensor.cloud/
- https://torlock.mrunblock.bond/
- - https://torlock.unblockit.date/
- - https://torlock.unblockit.dad/
+ - https://torlock.unblockit.download/
+ - https://www.torlock2.com/ # 400 Bad Request No required SSL certificate was sent
caps:
# dont forget to update the search fields category case block
diff --git a/mock-htpc/prowlarr/Definitions/tormac.yml b/mock-htpc/prowlarr/Definitions/tormac.yml
index bf0afd7..254f13b 100644
--- a/mock-htpc/prowlarr/Definitions/tormac.yml
+++ b/mock-htpc/prowlarr/Definitions/tormac.yml
@@ -18,6 +18,7 @@ caps:
- {id: 2, cat: PC/Mac, desc: "Программы - Audio"}
- {id: 3, cat: PC/Mac, desc: "Программы - Video"}
- {id: 4, cat: PC/Mac, desc: "Программы - Graphics"}
+ - {id: 95, cat: PC/Mac, desc: " |- Вспомогательный инструментарий - presets, effects, brush.."}
- {id: 79, cat: PC/Mac, desc: " |- Архив Программы - Graphics"}
- {id: 5, cat: PC/Mac, desc: "Программы - System Utilities"}
- {id: 23, cat: PC/Mac, desc: " |- Средства разработки приложений"}
@@ -68,9 +69,7 @@ settings:
type: text
label: Cookie
- name: info_cookie
- type: info
- label: How to get the Cookie
- default: "- Login to this tracker with your browser
- Open the DevTools panel by pressing F12
- Select the Network tab
- Click on the Doc button (Chrome Browser) or HTML button (FireFox)
- Refresh the page by pressing F5
- Click on the first row entry
- Select the Headers tab on the Right panel
- Find 'cookie:' in the Request Headers section
- Select and Copy the whole cookie string (everything after 'cookie: ') and Paste here.
"
+ type: info_cookie
- name: stripcyrillic
type: checkbox
label: Strip Cyrillic Letters
@@ -102,9 +101,10 @@ settings:
- name: info_activity
type: info
label: Account Inactivity
- default: "Inactive accounts are automatically deleted after 90 days from the moment the system first detects inactivity."
+ default: "Inactive accounts are automatically deleted after 90 days from the moment the system first detects inactivity.
A user is considered inactive if they meet one of the following conditions:- Within 30 days of registration, they have not downloaded at least 1 torrent, resulting in Total Downloaded in their profile being 0
- Their ratio is less than or equal to 0.3
- They have fewer than 10 time bonuses
Immunity from inactivity is automatically granted to users holding any title from the list or being a member of groups."
login:
+ # using cookie method because I could not get the form method to work #15131
method: cookie
inputs:
cookie: "{{ .Config.cookie }}"
@@ -141,7 +141,7 @@ search:
args: ["(?i)\\bS0*(\\d+)E0*(\\d+)\\b", "сезон $1 сери $2"]
rows:
- selector: tr.tCenter
+ selector: tr.tCenter:has(a[href^="dl.php?t="])
fields:
category:
@@ -208,21 +208,21 @@ search:
selector: a[href^="./viewtopic.php?t="]
attribute: href
download:
- selector: a[href^="./viewtopic.php?t="]
+ selector: a[href^="dl.php?t="]
attribute: href
+ size:
+ selector: td.tor-size > u
+ seeders:
+ selector: td[title="Сиды"] b
filters:
- name: replace
- args: ["viewtopic", "dl"]
- size:
- selector: td:nth-child(6) > u
- seeders:
- selector: td > b.seedmed, span[title="сида не было"] > b
+ args: ["никогда", "0"]
leechers:
selector: td.leechmed > b
grabs:
selector: td:nth-child(9)
date:
- selector: td:last-child > u
+ selector: td[title="Добавлен"] > u
downloadvolumefactor:
case:
img[src$="default/images/tor_gold.gif"]: 0
@@ -236,6 +236,7 @@ search:
case:
span.tor-approved: "Verified:"
span.tor-not-approved: "Unverified:"
+ span.tor-dup: "Temporary:"
description:
selector: a[href^="./viewtopic.php?t="]
filters:
diff --git a/mock-htpc/prowlarr/Definitions/torrent-explosiv.yml b/mock-htpc/prowlarr/Definitions/torrent-explosiv.yml
index c80b916..e6aca7b 100644
--- a/mock-htpc/prowlarr/Definitions/torrent-explosiv.yml
+++ b/mock-htpc/prowlarr/Definitions/torrent-explosiv.yml
@@ -84,16 +84,16 @@ caps:
book-search: [q]
settings:
+ - name: info_password
+ type: info
+ label: About Password Expiry
+ default: "Torrent-Explosiv has an 8 week Password Expiry regime. So if the Indexer has stopped working then the first thing you should do is check if your password has expired by login in at Torrent-Explosiv, and if necessary use the Passwort anfordern (Request password) button to renew it."
- 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
@@ -141,7 +141,7 @@ search:
sort: "{{ .Config.type }}"
rows:
- selector: "div.selection_wrap{{ if .Config.freeleech }}:has(:root:has(div.onlyup)){{ else }}{{ end }}"
+ selector: div.selection_wrap
filters:
- name: andmatch
@@ -165,7 +165,7 @@ search:
selector: a.selection_a
attribute: href
download:
- selector: a[href^="download_ssl.php?torrent="]
+ selector: a[href^="download_ssl.php?torrent="], a[href^="download.php?torrent="]
attribute: href
poster:
selector: div[id^="details"] img
@@ -205,7 +205,7 @@ search:
selector: div.selection_unter_aaa
downloadvolumefactor:
case:
- ":root:has(div.onlyup)": 0
+ ":root:has(div.onlyup)": 0 # GLobal Freeleech event
"*": 1
uploadvolumefactor:
text: 1
diff --git a/mock-htpc/prowlarr/Definitions/torrent-pirat.yml b/mock-htpc/prowlarr/Definitions/torrent-pirat.yml
index 69c4d40..57204bb 100644
--- a/mock-htpc/prowlarr/Definitions/torrent-pirat.yml
+++ b/mock-htpc/prowlarr/Definitions/torrent-pirat.yml
@@ -11,113 +11,118 @@ links:
caps:
categorymappings:
- - {id: 204, cat: XXX, desc: "Трекер"}
- - {id: 630, cat: XXX, desc: " Любительское видео 18+ / Amateur"}
- - {id: 631, cat: XXX, desc: " Русское любительское порно / Russian Amateur"}
- - {id: 632, cat: XXX, desc: " Зарубежное любительское порно / Amateur & Homemade"}
- - {id: 396, cat: XXX, desc: " Скрытые камеры и подглядывание 18+ / Spycam, Upskirts"}
- - {id: 641, cat: XXX, desc: " Любительское порно / Amateur - Паки и сборники"}
- - {id: 264, cat: XXX, desc: " Русское порно / Russian"}
- - {id: 265, cat: XXX, desc: " Отечественные порнофильмы и фильмы с Русскими актрисами / Movies with Russian actresses"}
- - {id: 268, cat: XXX, desc: " Сцены из фильмов и ролики с Русскими актрисами / Russian Movie Scenes & SiteRip's"}
- - {id: 269, cat: XXX, desc: " Паки порнороликов с Русскими актрисами / Russian Clips Packs"}
- - {id: 205, cat: XXX, desc: " Полнометражные фильмы 18+ / Full Length Movies"}
- - {id: 211, cat: XXX, desc: " Классика / Classic (Полнометражные фильмы снятые до 2000 года)"}
- - {id: 208, cat: XXX, desc: " Фильмы с сюжетом / Feature Vignettes"}
- - {id: 640, cat: XXX, desc: " Порно-пародия / Parody"}
- - {id: 209, cat: XXX, desc: " Фильмы без сюжета / Movies without a story"}
- - {id: 207, cat: XXX, desc: " Порно фильмы с Русским переводом"}
- - {id: 579, cat: XXX, desc: " Эротические фильмы / Erotic Movies"}
- - {id: 580, cat: XXX, desc: " Документальные фильмы 18+ / Documentary & Reality"}
- - {id: 206, cat: XXX, desc: " Сборники порно фильмов / Full Length Movies Packs"}
- - {id: 270, cat: XXX, desc: " Зарубежные ролики 18+"}
- - {id: 273, cat: XXX, desc: " Сцены из фильмов"}
- - {id: 638, cat: XXX, desc: " Порно-кастинг / Casting"}
- - {id: 639, cat: XXX, desc: " Public & Reality"}
- - {id: 659, cat: XXX, desc: " Incest / Taboo"}
- - {id: 685, cat: XXX, desc: " Анал и ДП / Anal&DP - Сцены и ролики"}
- - {id: 684, cat: XXX, desc: " Анал и ДП / Anal&DP - HD Сцены и ролики"}
- - {id: 687, cat: XXX, desc: " Секс втроём / Threesomes - Сцены и ролики"}
- - {id: 686, cat: XXX, desc: " Секс втроём / Threesomes - HD Сцены и ролики"}
- - {id: 689, cat: XXX, desc: " Группавуха / Group & Gangbang - Сцены и ролики"}
- - {id: 688, cat: XXX, desc: " Группавуха / Group & Gangbang - HD Сцены и ролики"}
- - {id: 679, cat: XXX, desc: " Молоденькие / Legal Teens - Сцены и ролики"}
- - {id: 680, cat: XXX, desc: " Молоденькие / Legal Teens - HD Сцены и ролики"}
- - {id: 681, cat: XXX, desc: " Мамочки / MILF & Mature - Сцены и ролики"}
- - {id: 682, cat: XXX, desc: " Мамочки / MILF & Mature - HD Сцены и ролики"}
- - {id: 683, cat: XXX, desc: " Бабушки / Grannies - Сцены и ролики"}
- - {id: 589, cat: XXX, desc: " Зарубежные ролики 18+ / SiteRip's (1991-2010 год)"}
- - {id: 272, cat: XXX, desc: " Зарубежные ролики 18+ / SiteRip's (2011-2014 год)"}
- - {id: 623, cat: XXX, desc: " Зарубежные ролики 18+ / SiteRip's (2015-2018 год)"}
- - {id: 646, cat: XXX, desc: " Зарубежные ролики 18+ / SiteRip's (2019-2020 год)"}
- - {id: 588, cat: XXX, desc: " HD Video ролики 18+ (1991-2012 год)"}
- - {id: 618, cat: XXX, desc: " HD Video ролики 18+ (2013-2016 год)"}
- - {id: 645, cat: XXX, desc: " HD Video ролики 18+ (2017-2020 год)"}
- - {id: 401, cat: XXX, desc: " Паки порнороликов / SiteRip's Packs"}
- - {id: 386, cat: XXX, desc: " Паки порнороликов HD / HD Video Packs"}
- - {id: 629, cat: XXX, desc: " Ролики и сцены от 'LegalPorno.com'"}
- - {id: 660, cat: XXX, desc: " Этническое порно / Ethnic Porn - Фильмы и ролики"}
- - {id: 662, cat: XXX, desc: " Межрасовый секс / Interracial"}
- - {id: 661, cat: XXX, desc: " Азиатки / Asian"}
- - {id: 663, cat: XXX, desc: " Латинки / Latin"}
- - {id: 664, cat: XXX, desc: " Негритянки и Темнокожие / Ebony & Arab"}
- - {id: 530, cat: XXX, desc: " Полнометражные азиатские и этнические фильмы / Full-length ethnic films"}
- - {id: 633, cat: XXX, desc: " Оральный секс / Oral Sex - Фильмы и ролики"}
- - {id: 398, cat: XXX, desc: " Bukkake & Blowbang - Сцены и ролики"}
- - {id: 634, cat: XXX, desc: " Oral & Deep Throat - Сцены и ролики"}
- - {id: 635, cat: XXX, desc: " Oral Sex / Blowbang & Bukkake - Полнометражные фильмы"}
- - {id: 667, cat: XXX, desc: " Oral Sex / Bukkake & Blowbang - Паки порнороликов"}
- - {id: 668, cat: XXX, desc: " BDSM / Bondage, Rough Sex"}
- - {id: 644, cat: XXX, desc: " BDSM / Bondage - Полнометражные фильмы"}
- - {id: 394, cat: XXX, desc: " BDSM / Bondage, Rough Sex - Ролики и сцены"}
- - {id: 669, cat: XXX, desc: " Rough Sex, BDSM / Bondage - Video Pack"}
- - {id: 691, cat: XXX, desc: " Постановочные изнасилования / Rape Roleplay - Ролики и сцены"}
- - {id: 397, cat: XXX, desc: " Fisting & Dildo - Ролики и сцены"}
- - {id: 395, cat: XXX, desc: " Femdom & Strap-On - Ролики и сцены"}
- - {id: 665, cat: XXX, desc: " Лесбиянки / Lesbians"}
- - {id: 666, cat: XXX, desc: " Полнометражные лесби-фильмы / Full length lesbian movies"}
- - {id: 212, cat: XXX, desc: " Лесбиянки / Lesbians - Сцены и ролики"}
- - {id: 658, cat: XXX, desc: " Лесбийский страпон / Lesbian Strap-on - Сцены и ролики"}
- - {id: 670, cat: XXX, desc: " All Girl / Lesbians - Video Pack"}
- - {id: 391, cat: XXX, desc: " Фетиш / Fetish"}
- - {id: 400, cat: XXX, desc: " Фетиш / Fetish - Общий раздел"}
- - {id: 671, cat: XXX, desc: " Фетиш / Fetish - Полнометражные фильмы"}
- - {id: 585, cat: XXX, desc: " Big Boobs & Big Ass - Ролики и сцены"}
- - {id: 647, cat: XXX, desc: " Толстушки / BBW & Plump Woman - Ролики и сцены"}
- - {id: 648, cat: XXX, desc: " Худенькие / Skinny & Petite - Ролики и сцены"}
- - {id: 672, cat: XXX, desc: " Foot Fetish & Footjob - Ролики и сцены"}
- - {id: 692, cat: XXX, desc: " Массаж / Massage - Сцены и ролики"}
- - {id: 693, cat: XXX, desc: " Cuckold / Cheating - Ролики и сцены"}
- - {id: 690, cat: XXX, desc: " Glory Hole - Сцены и ролики"}
- - {id: 674, cat: XXX, desc: " Fetish Wear / Uniform, Lingerie, Pantyhose & Stockings - Ролики и сцены"}
- - {id: 673, cat: XXX, desc: " Hairy Pussy - Ролики и сцены"}
- - {id: 399, cat: XXX, desc: " Сквирт & Золотой дождь - Ролики и сцены"}
- - {id: 624, cat: XXX, desc: " Беременные / Pregnant - Ролики и сцены"}
- - {id: 675, cat: XXX, desc: " Карлики / Midgets - Ролики и сцены"}
- - {id: 677, cat: XXX, desc: " Masturbation, Solo & Posing - Video clips & Movies"}
- - {id: 637, cat: XXX, desc: " Соло и мастурбация / Solo & Masturbation"}
- - {id: 678, cat: XXX, desc: " Striptease & Posing"}
- - {id: 450, cat: XXX, desc: " Анимация и игры"}
- - {id: 451, cat: XXX, desc: " Хентай / Hentai"}
- - {id: 582, cat: XXX, desc: " Мультфильмы18+ / Cartoons 18+"}
- - {id: 472, cat: XXX, desc: " Порно-игры / Games XXX"}
- - {id: 457, cat: XXX, desc: " Манга / Manga"}
- - {id: 471, cat: XXX, desc: " Арт и HCG / Artwork & HCG"}
- - {id: 403, cat: XXX, desc: " Фото, журналы, комиксы"}
- - {id: 408, cat: XXX, desc: " Любительское фото"}
- - {id: 410, cat: XXX, desc: " Подборки сетов / Picture Sets Packs"}
- - {id: 409, cat: XXX, desc: " Подборки по актрисам"}
- - {id: 413, cat: XXX, desc: " Журналы, комиксы, рисунки"}
- - {id: 454, cat: XXX, desc: " Gay, Shemale, BISex - Фильмы, ролики, фото"}
- - {id: 455, cat: XXX, desc: " Гей-фильмы и ролики / Gay"}
- - {id: 392, cat: XXX, desc: " Бисексуалы / BISex- фильмы и ролики"}
- - {id: 393, cat: XXX, desc: " Транссексуалы / Shemale - фильмы и ролики"}
- - {id: 636, cat: XXX, desc: " Другое / Other"}
- - {id: 467, cat: XXX, desc: " Gay / BISex, Shemale - Паки фильмов и роликов"}
- - {id: 598, cat: XXX, desc: " Порно онлайн"}
- - {id: 458, cat: XXX, desc: " Видео для телефонов и КПК +18 / Pocket РС & Phone Video"}
- - {id: 470, cat: XXX, desc: " Секс-меньшинства - журналы, фото, разное"}
- - {id: 247, cat: XXX, desc: " Правила и FAQ"}
+ - {id: 1, cat: XXX, desc: "Трекер"}
+ - {id: 6, cat: XXX, desc: " Полнометражные XXX фильмы / Full Length Movies"}
+ - {id: 7, cat: XXX, desc: " Классика / Classic (Полнометражные фильмы снятые до 2000 года)"}
+ - {id: 8, cat: XXX, desc: " Фильмы с сюжетом / Feature Vignettes"}
+ - {id: 9, cat: XXX, desc: " Порно-пародия / Parody"}
+ - {id: 11, cat: XXX, desc: " Компиляции и фильмы без сюжета / Movies without a story"}
+ - {id: 36, cat: XXX, desc: " Фильмы с Русским переводом"}
+ - {id: 37, cat: XXX, desc: " Эротические фильмы / Erotic Movies"}
+ - {id: 38, cat: XXX, desc: " Документальные фильмы 18+ / Documentary 18+"}
+ - {id: 39, cat: XXX, desc: " Паки полнометражных фильмов / Full Length Movies Packs"}
+ - {id: 12, cat: XXX, desc: " Русское порно / Russian - Фильмы и ролики"}
+ - {id: 13, cat: XXX, desc: " Порнофильмы с Русскими актрисами / Movies with Russian actresses"}
+ - {id: 14, cat: XXX, desc: " Сцены и ролики с Русскими актрисами / Russian Movie Scenes &SiteRip's"}
+ - {id: 15, cat: XXX, desc: " Паки видео с Русскими актрисами / Russian Video Packs"}
+ - {id: 28, cat: XXX, desc: " Зарубежные ролики по жанрам / Foreign videos by genre"}
+ - {id: 27, cat: XXX, desc: " Сцены из фильмов / Movie Scenes"}
+ - {id: 26, cat: XXX, desc: " Порно-кастинги / Casting"}
+ - {id: 19, cat: XXX, desc: " Family Roleplay, Incest &Taboo"}
+ - {id: 21, cat: XXX, desc: " Public &Reality, Sex In Car, Outdoors"}
+ - {id: 20, cat: XXX, desc: " Анал и ДП / Anal &DP"}
+ - {id: 29, cat: XXX, desc: " Секс втроём / Threesomes"}
+ - {id: 30, cat: XXX, desc: " Группавуха / Group &Gangbang"}
+ - {id: 35, cat: XXX, desc: " Молоденькие / Legal Teens"}
+ - {id: 32, cat: XXX, desc: " Мамочки / MILF &Mature"}
+ - {id: 33, cat: XXX, desc: " Бабушки / Grannies"}
+ - {id: 40, cat: XXX, desc: " Pornstars &Other"}
+ - {id: 34, cat: XXX, desc: " Паки порнороликов / Video Packs"}
+ - {id: 64, cat: XXX, desc: " Этническое порно / Ethnic Porn - Фильмы и ролики"}
+ - {id: 65, cat: XXX, desc: " Межрасовый секс / Interracial - Сцены и ролики"}
+ - {id: 68, cat: XXX, desc: " Негритянки и Темнокожие / Ebony &Arab - Сцены и ролики"}
+ - {id: 66, cat: XXX, desc: " Азиатки / Asian - Сцены и ролики"}
+ - {id: 67, cat: XXX, desc: " Латинки / Latin - Сцены и ролики"}
+ - {id: 83, cat: XXX, desc: " Полнометражные азиатские и этнические фильмы / Full-length ethnic films"}
+ - {id: 105, cat: XXX, desc: " Этническое порно / Ethnic Porn - Паки роликов и фильмов"}
+ - {id: 84, cat: XXX, desc: " Оральный секс / Blowjob &Deep Throat, Licking - Фильмы и ролики"}
+ - {id: 86, cat: XXX, desc: " Оральный секс / Blowjob &Deep Throat, Licking - Сцены и ролики"}
+ - {id: 87, cat: XXX, desc: " Групповой оральный секс / Blowbang &Bukkake - Сцены и ролики"}
+ - {id: 85, cat: XXX, desc: " Оральный секс / Blowjob &Deep Throat, Licking - Полнометражные фильмы"}
+ - {id: 61, cat: XXX, desc: " Masturbation, Solo &Posing - Фильмы и ролики"}
+ - {id: 62, cat: XXX, desc: " Мастурбация / Masturbation"}
+ - {id: 63, cat: XXX, desc: " Posing &Striptease"}
+ - {id: 2, cat: XXX, desc: " Любительское порно / Amateur &Homemade"}
+ - {id: 3, cat: XXX, desc: " Русское любительское XXX видео / Russian Amateur"}
+ - {id: 18, cat: XXX, desc: " Зарубежное любительское порно / Foreign amateur"}
+ - {id: 4, cat: XXX, desc: " Порно чаты / WEBCam"}
+ - {id: 10, cat: XXX, desc: " Скрытые камеры / Spycam"}
+ - {id: 5, cat: XXX, desc: " Паки любительского порно / Amateur porn packs"}
+ - {id: 110, cat: XXX, desc: " Только для зарегистрированных / For Registered Members Only"}
+ - {id: 112, cat: XXX, desc: " Полнометражные фильмы / Full-length Movies"}
+ - {id: 113, cat: XXX, desc: " Сцены и ролики / Scenes &Videos"}
+ - {id: 114, cat: XXX, desc: " Анимация 18+ / Animation 18+"}
+ - {id: 116, cat: XXX, desc: " Игры для взрослых / Porn games"}
+ - {id: 115, cat: XXX, desc: " Фото, Обои, Картинки / Photos, Wallpapers &Pictures"}
+ - {id: 16, cat: XXX, desc: "Фетиш и Нетрадиционное порно / Special Interest Movies &Clips"}
+ - {id: 43, cat: XXX, desc: " Rough Sex &BDSM - Фильмы и ролики"}
+ - {id: 17, cat: XXX, desc: " Rough Sex, BDSM &Bondage - Полнометражные фильмы"}
+ - {id: 46, cat: XXX, desc: " Постановочные изнасилования / Pseudo-Rape - Сцены и ролики"}
+ - {id: 41, cat: XXX, desc: " Rough Sex, BDSM &Bondage - Сцены и ролики"}
+ - {id: 45, cat: XXX, desc: " Ролики и фильмы от "LegalPorno ""}
+ - {id: 44, cat: XXX, desc: " Fisting &Dildo - Сцены и ролики"}
+ - {id: 47, cat: XXX, desc: " Фетиш / Fetish - Фильмы и ролики"}
+ - {id: 49, cat: XXX, desc: " Фетиш / Fetish - Полнометражные фильмы"}
+ - {id: 109, cat: XXX, desc: " Cuckold / Cheating - Сцены и ролики"}
+ - {id: 99, cat: XXX, desc: " Alt-Porn / Alt Girls - Сцены и ролики"}
+ - {id: 106, cat: XXX, desc: " Cosplay - Сцены и ролики"}
+ - {id: 53, cat: XXX, desc: " Fetish Wear / Latex, Uniform, Panties, Lingerie, Stockings - Сцены и ролики"}
+ - {id: 54, cat: XXX, desc: " Большие сиськи и жопы / Big Boobs &Big Ass - Сцены и ролики"}
+ - {id: 48, cat: XXX, desc: " Foot Fetish, Footjob &Feet - Сцены и ролики"}
+ - {id: 55, cat: XXX, desc: " Толстушки / BBW &Plump Woman - Сцены и ролики"}
+ - {id: 56, cat: XXX, desc: " Худенькие и Миниатюрные / Skinny &Petite - Сцены и ролики"}
+ - {id: 60, cat: XXX, desc: " Массаж / Massage - Сцены и ролики"}
+ - {id: 98, cat: XXX, desc: " Wet &Oiled - Сцены и ролики"}
+ - {id: 51, cat: XXX, desc: " Femdom &Domination - Сцены и ролики"}
+ - {id: 50, cat: XXX, desc: " Мохнатки / Hairy Pussy &Bush - Сцены и ролики"}
+ - {id: 57, cat: XXX, desc: " Squirting / Pissing &Pee - Сцены и ролики"}
+ - {id: 52, cat: XXX, desc: " Glory Hole - Сцены и ролики"}
+ - {id: 107, cat: XXX, desc: " Medical Fetish - Сцены и ролики"}
+ - {id: 58, cat: XXX, desc: " Беременные / Pregnant - Сцены и ролики"}
+ - {id: 104, cat: XXX, desc: " Пьяные и Спящие / Drunk &Sleeping - Сцены и ролики"}
+ - {id: 59, cat: XXX, desc: " Карлики / Midgets - Сцены и ролики"}
+ - {id: 108, cat: XXX, desc: " Разное / Various Fetishes - Сцены и ролики"}
+ - {id: 69, cat: XXX, desc: " Лесбиянки / Lesbians - Фильмы и ролики"}
+ - {id: 70, cat: XXX, desc: " Полнометражные лесби-фильмы / Full length lesbian movies"}
+ - {id: 71, cat: XXX, desc: " Лесбиянки / Lesbians - Сцены и ролики"}
+ - {id: 72, cat: XXX, desc: " Лесбийский страпон / Lesbian Strap-on - Сцены и ролики"}
+ - {id: 73, cat: XXX, desc: " All Girl / Lesbians - Video Pack"}
+ - {id: 42, cat: XXX, desc: " Fetish, Rough Sex &BDSM - Video Pack"}
+ - {id: 24, cat: XXX, desc: "Анимация, игры, фото и картинки"}
+ - {id: 23, cat: XXX, desc: " Анимация 18+ / Animation 18+"}
+ - {id: 74, cat: XXX, desc: " Мультфильмы18+ / Cartoons 18+"}
+ - {id: 75, cat: XXX, desc: " Хентай 18+ / Hentai 18+"}
+ - {id: 76, cat: XXX, desc: " Паки мультфильмов 18+ / Animation packs 18+"}
+ - {id: 77, cat: XXX, desc: " Фото, Обои и Картинки / Photos, Wallpapers &Pictures"}
+ - {id: 79, cat: XXX, desc: " Любительское фото / Amateur photo"}
+ - {id: 80, cat: XXX, desc: " Подборки сетов / Picture Sets Packs"}
+ - {id: 81, cat: XXX, desc: " Подборки по актрисам / Actresses Picture Packs"}
+ - {id: 82, cat: XXX, desc: " Сборники фото и обоев, разное / Collections of Photos &Wallpapers"}
+ - {id: 78, cat: XXX, desc: " Игры 18+ / Porn games"}
+ - {id: 102, cat: XXX, desc: " Визуальные новеллы / Visual Novels"}
+ - {id: 103, cat: XXX, desc: " Ролевые / Role-Playing"}
+ - {id: 88, cat: XXX, desc: "Общий форум"}
+ - {id: 100, cat: XXX, desc: " Правила &FAQ"}
+ - {id: 89, cat: XXX, desc: " Новости и объявления"}
+ - {id: 90, cat: XXX, desc: " Тех. раздел"}
+ - {id: 91, cat: XXX, desc: " Стол заказов"}
+ - {id: 92, cat: XXX, desc: " Помогите опознать!"}
+ - {id: 93, cat: XXX, desc: " Свободное общение"}
+ - {id: 94, cat: XXX, desc: " Форум релизёров"}
+ - {id: 95, cat: XXX, desc: " Скриншоты"}
+ - {id: 96, cat: XXX, desc: " MediaInfo"}
+ - {id: 97, cat: XXX, desc: " Разное"}
+ - {id: 101, cat: XXX, desc: " Архив"}
modes:
search: [q]
@@ -164,17 +169,13 @@ search:
selector: table.tablebg:nth-of-type(2) > tbody > tr:has(a[href^="./download/file.php?id="])
fields:
+ category:
+ text: 1
title:
selector: a.topictitle
details:
selector: a.topictitle
attribute: href
- category:
- selector: a[href^="./viewtopic.php?f="]
- attribute: href
- filters:
- - name: querystring
- args: f
download:
selector: a[href^="./download/file.php?id="]
attribute: href
diff --git a/mock-htpc/prowlarr/Definitions/torrent-turk.yml b/mock-htpc/prowlarr/Definitions/torrent-turk.yml
index d63b2ab..5133d42 100644
--- a/mock-htpc/prowlarr/Definitions/torrent-turk.yml
+++ b/mock-htpc/prowlarr/Definitions/torrent-turk.yml
@@ -69,10 +69,8 @@ settings:
- name: cookie
type: text
label: Cookie
- - name: info
- type: info
- label: How to get the Cookie
- default: "- Login to this tracker with your browser
- Open the DevTools panel by pressing F12
- Select the Network tab
- Click on the Doc button (Chrome Browser) or HTML button (FireFox)
- Refresh the page by pressing F5
- Click on the first row entry
- Select the Headers tab on the Right panel
- Find 'cookie:' in the Request Headers section
- Select and Copy the whole cookie string (everything after 'cookie: ') and Paste here.
"
+ - name: info_cookie
+ type: info_cookie
- name: freeleech
type: checkbox
label: Filter freeleech only
@@ -80,7 +78,7 @@ settings:
- name: info
type: info
label: Layout
- default: "- Only the English Classic profile is supported.
- Make sure to set the Torrent Listing (Listeleme Biçimi) option in your profile to Classic (Klasik)
- And set the Language (Dil) to English
- Using the Modern theme will prevent results, and using Turkish will prevent upload dates.
"
+ default: "- Only the English Classic profile is supported.
- Make sure to set the Torrent Listing (Listeleme Biçimi) option in your profile to Classic (Klasik)
- And set the Language (Dil) to English
- Using the Modern theme will prevent results, and using Turkish will prevent upload dates.
"
- name: sort
type: select
label: Sort requested from site
@@ -102,6 +100,7 @@ settings:
default: "If you are getting the error: An error has occurred!You can't view this page unless you read all your unread messages, then access the site with your browser and mark as read all PMs."
login:
+ # using cookie method because login page has embedded Google reCAPTCHA
method: cookie
inputs:
cookie: "{{ .Config.cookie }}"
diff --git a/mock-htpc/prowlarr/Definitions/torrent9-tel.yml b/mock-htpc/prowlarr/Definitions/torrent9-tel.yml
new file mode 100644
index 0000000..61a4c96
--- /dev/null
+++ b/mock-htpc/prowlarr/Definitions/torrent9-tel.yml
@@ -0,0 +1,170 @@
+---
+id: torrent9-tel
+replaces:
+ - torrent9clone
+name: Torrent9-tel
+description: "Torrent9-tel is a FRENCH Public tracker for TV / MOVIES / GENERAL"
+language: fr-FR
+type: public
+encoding: UTF-8
+# to fetch current domain use https://www.protege-torrent.com/Torrent9
+links:
+ - https://www.torrent9.cv/
+legacylinks:
+ - https://www.protege-liens.com/
+ - https://www.protege-liens.net/
+ # latest domains list
+ - https://www.protege-torrent.com/
+ - https://www.site-torrent.com/
+ - https://www.rantop.org/
+ - https://www.torrent.ws/
+ - https://www.torrent.onl/
+ - https://torrent9.news/
+ # actual legacylinks
+ - https://www.torrent9.gy/
+ - https://www.torrent9.sbs/
+ - https://www.torrent9.sb/
+ - https://www.torrent9.tf/
+ - https://www.torrent9.day/
+ - https://www.torrent9.tel/
+ - https://torrent9.unblockninja.com/
+ - https://www.torrent9.plus/
+ - https://www.torrent9.lc/
+ - https://www.torrent9-p2p.com/
+ - https://www.torrent9.pe/
+ - https://www.torrent9.gl/
+ - https://www.torrent9.cyou/
+ - https://www.torrent9.gd/
+ - https://www.torrent9.ing/
+ - https://www.torrent9.run/
+
+caps:
+ categorymappings:
+ - {id: Films, cat: Movies, desc: "Movies"}
+ - {id: Animes, cat: TV/Anime, desc: "Anime"}
+ - {id: Documentaires, cat: TV/Documentary, desc: "Documentaires"}
+ - {id: Séries, cat: TV, desc: "TV"}
+ - {id: Musiques, cat: Audio, desc: "Music"}
+ - {id: Ebooks, cat: Books, desc: "Books"}
+ - {id: Livres, cat: Books, desc: "Livres"}
+ - {id: Logiciels, cat: PC, desc: "Software"}
+ - {id: Applications, cat: PC, desc: "Applications"}
+ - {id: Jeux-PC, cat: PC/Games, desc: "PC Games"}
+ - {id: Jeux-Consoles, cat: Console/XBox 360, desc: "Console Games"}
+ - {id: Porno, cat: XXX, desc: "Porno"}
+ - {id: Spectacles, cat: TV/Other, desc: "Spectacles"}
+ - {id: Sports, cat: TV/Sport, desc: "Sports"}
+ - {id: Formations, cat: Other, desc: "Formations"}
+ - {id: Vidéos, cat: TV, desc: "Vidéos"}
+
+ modes:
+ search: [q]
+ tv-search: [q, season, ep]
+ movie-search: [q]
+ music-search: [q]
+ book-search: [q]
+ allowrawsearch: true
+
+settings:
+ - name: info_flaresolverr
+ type: info_flaresolverr
+ - name: multilang
+ type: checkbox
+ label: Replace MULTi by another language in release name
+ default: false
+ - name: multilanguage
+ type: select
+ label: Replace MULTi by this language
+ default: FRENCH
+ options:
+ FRENCH: FRENCH
+ MULTi FRENCH: MULTi FRENCH
+ ENGLISH: ENGLISH
+ MULTi ENGLISH: MULTi ENGLISH
+ VOSTFR: VOSTFR
+ MULTi VOSTFR: MULTi VOSTFR
+ - name: vostfr
+ type: checkbox
+ label: Replace VOSTFR and SUBFRENCH with ENGLISH
+ default: false
+
+download:
+ selectors:
+ - selector: a[href^="magnet:?"]
+ attribute: href
+ - selector: script:contains("magnet:?")
+ filters:
+ - name: regexp
+ args: "\\s'(magnet:\\?.+?)';"
+
+search:
+ paths:
+ - path: "{{ if .Keywords }}recherche/{{ .Keywords }}{{ else }}derniers{{ end }}"
+ keywordsfilters:
+ # if searching for season packs swith S01 to saison 1 #9712
+ - name: re_replace
+ args: ["(?i)(S0)(\\d{1,2})$", "saison $2"]
+ - name: re_replace
+ args: ["(?i)(S)(\\d{1,3})$", "saison $2"]
+
+ rows:
+ selector: table.table-striped > tbody > tr
+
+ fields:
+ category:
+ selector: td:nth-child(1) i
+ attribute: class
+ title_phase1:
+ selector: td:nth-child(1) a
+ filters:
+ - name: re_replace
+ args: ["(?i)\\b(FRENCH|MULTI|TRUEFRENCH|VOSTFR|SUBFRENCH)\\b(.+?)(\\b(19|20\\d{2})\\b)$", "$3 $1$2"]
+ title_vostfr:
+ text: "{{ .Result.title_phase1 }}"
+ filters:
+ - name: re_replace
+ args: ["(?i)\\b(vostfr|subfrench)\\b", "ENGLISH"]
+ title_phase2:
+ text: "{{ if .Config.vostfr }}{{ .Result.title_vostfr }}{{ else }}{{ .Result.title_phase1 }}{{ end }}"
+ title_multilang:
+ text: "{{ .Result.title_phase2 }}"
+ filters:
+ - name: re_replace
+ args: ["(?i)\\b(MULTI(?!.*(?:FRENCH|ENGLISH|VOSTFR)))\\b", "{{ .Config.multilanguage }}"]
+ title:
+ text: "{{ if .Config.multilang }}{{ .Result.title_multilang }}{{ else }}{{ .Result.title_phase2 }}{{ end }}"
+ details_href:
+ selector: td:nth-child(1) a[href]
+ attribute: href
+ optional: true
+ filters:
+ - name: regexp
+ args: (/?detail/\d+)
+ details_onclick:
+ selector: td:nth-child(1) a[onclick]
+ attribute: onclick
+ optional: true
+ filters:
+ - name: regexp
+ args: (/?detail/\d+)
+ details:
+ text: "{{ or .Result.details_href .Result.details_onclick }}"
+ download:
+ text: "{{ .Result.details }}"
+ date:
+ text: now
+ size:
+ selector: td:nth-child(2)
+ seeders:
+ selector: td:nth-child(3)
+ optional: true
+ default: 0
+ leechers:
+ selector: td:nth-child(4)
+ optional: true
+ default: 0
+ downloadvolumefactor:
+ text: 0
+ uploadvolumefactor:
+ text: 1
+# engine n/a
diff --git a/mock-htpc/prowlarr/Definitions/torrent9.yml b/mock-htpc/prowlarr/Definitions/torrent9.yml
index 44adc98..2b71d69 100644
--- a/mock-htpc/prowlarr/Definitions/torrent9.yml
+++ b/mock-htpc/prowlarr/Definitions/torrent9.yml
@@ -8,9 +8,8 @@ encoding: UTF-8
followredirect: true
testlinktorrent: false
links:
+ - https://ww1.torrent9.fm/
- https://torrent9.to/
- - https://torrent9.ninjaproxy1.com/
- - https://torrent9.proxyninja.org/
legacylinks:
- https://ww1.torrent9.uno/
- https://wvw.t9.pe/
@@ -30,8 +29,12 @@ legacylinks:
- https://www.oxtorrent.me/
- https://www.torrent9.gg/
- https://www.torrent9.fi/ # this is the torrent9clone domain
- - https://torrent9.unblockninja.com/ # is a proxy for torrent9clone
- - https://www.torrent9.fm/ # no response data
+ - https://www.torrent9.fm/
+ - https://torrent9.se/ # redirect to www.
+ - https://torrent9.ninjaproxy1.com/ # no response data
+ - https://torrent9.proxyninja.org/ # Error 1007
+ - https://www.torrent9.se/
+ - https://torrent9.unblockninja.com/ # 403 forbidden
caps:
# dont forget to update the search fields category case block
@@ -89,8 +92,12 @@ settings:
download:
selectors:
- - selector: a:has(i.fa-magnet)
+ - selector: a[href^="magnet:?"]
attribute: href
+ - selector: script:contains("magnet:?")
+ filters:
+ - name: regexp
+ args: "\\s'(magnet:\\?.+?)';"
search:
paths:
diff --git a/mock-htpc/prowlarr/Definitions/torrentbd.yml b/mock-htpc/prowlarr/Definitions/torrentbd.yml
index ccce4ec..7260656 100644
--- a/mock-htpc/prowlarr/Definitions/torrentbd.yml
+++ b/mock-htpc/prowlarr/Definitions/torrentbd.yml
@@ -7,6 +7,7 @@ type: private
encoding: UTF-8
links:
- https://www.torrentbd.net/
+ - https://www.torrentbd.org/
legacylinks:
- http://www.torrentbd.com/torrent
- http://www.torrentbd.com/
@@ -79,22 +80,19 @@ settings:
type: text
label: Cookie
- name: info_cookie
- type: info
- label: How to get the Cookie
- default: "- Login to this tracker with your browser
- Ensure you have the Remember me ticked and the Log Me Out if IP Changes unticked when you login
- Open the DevTools panel by pressing F12
- Select the Network tab
- Click on the Doc button (Chrome Browser) or HTML button (FireFox)
- Refresh the page by pressing F5
- Click on the first row entry
- Select the Headers tab on the Right panel
- Find 'cookie:' in the Request Headers section
- Select and Copy the whole cookie string (everything after 'cookie: ') and Paste here.
"
+ type: info_cookie
- name: useragent
type: text
label: User-Agent
- name: info_useragent
- type: info
- label: How to get the User-Agent
- default: "- From the same place you fetched the cookie,
- Find 'user-agent:' in the Request Headers section
- Select and Copy the whole user-agent string (everything after 'user-agent: ') and Paste here.
"
+ type: info_useragent
- name: freeleech
type: checkbox
label: Search freeleech only
default: false
login:
+ # using cookie method because login page has embedded Google reCAPTCHA
method: cookie
inputs:
cookie: "{{ .Config.cookie }}"
@@ -105,6 +103,7 @@ login:
search:
headers:
User-Agent: ["{{ .Config.useragent }}"]
+ Referer: ["{{ .Config.sitelink }}index.php?initK&all"]
paths:
- path: ajgettorrents.php
diff --git a/mock-htpc/prowlarr/Definitions/torrentby.yml b/mock-htpc/prowlarr/Definitions/torrentby.yml
index cf27c1f..a94bd55 100644
--- a/mock-htpc/prowlarr/Definitions/torrentby.yml
+++ b/mock-htpc/prowlarr/Definitions/torrentby.yml
@@ -31,10 +31,8 @@ settings:
type: checkbox
label: Add RUS to end of all titles to improve language detection by Sonarr and Radarr. Will cause English-only results to be misidentified.
default: false
- - name: info_8000
- type: info
- label: About torrent.by Categories
- default: torrent.by does not return categories in its search results.To add to your Apps' Torznab indexer, replace all categories with 8000(Other).
+ - name: info_category_8000
+ type: info_category_8000
search:
paths:
diff --git a/mock-htpc/prowlarr/Definitions/torrentccf.yml b/mock-htpc/prowlarr/Definitions/torrentccf.yml
index 7dbc03d..3aaf601 100644
--- a/mock-htpc/prowlarr/Definitions/torrentccf.yml
+++ b/mock-htpc/prowlarr/Definitions/torrentccf.yml
@@ -38,10 +38,8 @@ settings:
- name: cookie
type: text
label: Cookie
- - name: info
- type: info
- label: How to get the Cookie
- default: "- Login to this tracker with your browser
- Open the DevTools panel by pressing F12
- Select the Network tab
- Click on the Doc button (Chrome Browser) or HTML button (FireFox)
- Refresh the page by pressing F5
- Click on the first row entry
- Select the Headers tab on the Right panel
- Find 'cookie:' in the Request Headers section
- Select and Copy the whole cookie string (everything after 'cookie: ') and Paste here.
"
+ - name: info_cookie
+ type: info_cookie
- name: freeleech
type: checkbox
label: Search freeleech only
@@ -72,6 +70,7 @@ settings:
default: "Cherish your user account. Inactive accounts would be deleted based on the following rules:- Veteran User or above would never be deleted. updated @ 2020.03.19
- Insane User or above would never be deleted if parked (at User CP)
- Parked accounts would be disabled if users have not logged in for more than 365 days in a row. updated @ 2020.09.20
- Un-parked accounts would be disabled if users have not logged in for more than 90 days in a row. updated @ 2020.09.20
- Accounts with both uploaded and downloaded amount being 0 would be disabled if users have not logged in for more than 30 days in a row.
"
login:
+ # switched from the form method to the cookie method due to #9577
method: cookie
inputs:
cookie: "{{ .Config.cookie }}"
diff --git a/mock-htpc/prowlarr/Definitions/torrentcore.yml b/mock-htpc/prowlarr/Definitions/torrentcore.yml
index 3bffe45..0aff6e3 100644
--- a/mock-htpc/prowlarr/Definitions/torrentcore.yml
+++ b/mock-htpc/prowlarr/Definitions/torrentcore.yml
@@ -5,6 +5,7 @@ description: "Torrent[CORE] is a Public DHT Crawler"
language: en-US
type: public
encoding: UTF-8
+requestDelay: 10.1
links:
- https://torrentcore.xyz/
@@ -41,10 +42,8 @@ caps:
book-search: [q]
settings:
- - name: flaresolverr
- type: info
- label: FlareSolverr
- default: This site may use Cloudflare DDoS Protection, therefore Prowlarr requires FlareSolverr to access it.
+ - name: info_flaresolverr
+ type: info_flaresolverr
download:
infohash:
@@ -63,6 +62,12 @@ search:
paths:
- path: "{{ if .Keywords }}search?s={{ .Keywords }}{{ else }}index{{ end }}"
# search is an exact match, there are no wild cards, or +word or AND/OR, and spaces and dots are treated uniquely
+ error:
+ - selector: :root:contains("Service Unavailable")
+ - selector: :root:contains("Connection failed")
+ message:
+ text: "Connection failed: Connection refused"
+ - selector: :root:contains("[Anti-DDoS]")
rows:
selector: div.content font[color="purple"], div.content font[color="orange"]:has(a), div.content font[color="gray"], div.content font[color="white"]
diff --git a/mock-htpc/prowlarr/Definitions/torrentdownload.yml b/mock-htpc/prowlarr/Definitions/torrentdownload.yml
new file mode 100644
index 0000000..2921de0
--- /dev/null
+++ b/mock-htpc/prowlarr/Definitions/torrentdownload.yml
@@ -0,0 +1,142 @@
+---
+id: torrentdownload
+name: TorrentDownload
+description: "TorrentDownload is a Public torrent meta-search engine"
+language: en-US
+type: public
+encoding: UTF-8
+links:
+ - https://www.torrentdownload.info/
+legacylinks:
+ - https://torrentdownload.mrunblock.bond/
+ - https://torrentdownload.nocensor.cloud/
+ - https://torrentdownload.unblockit.download/
+
+caps:
+ categorymappings:
+ - {id: Adult, cat: XXX, desc: Adult}
+ - {id: AdultPornHDVideo, cat: XXX, desc: "Adult Porn HD Video"}
+ - {id: AdultPornPictures, cat: XXX, desc: "Adult Porn Pictures"}
+ - {id: AdultPornVideo, cat: XXX, desc: "Adult Porn Video"}
+ - {id: Anime, cat: TV/Anime, desc: Anime}
+ - {id: AnimeEnglishtranslated, cat: TV/Anime, desc: "Anime English translated"}
+ - {id: AnimeAnimeOther, cat: TV/Anime, desc: "Anime Other"}
+ - {id: Applications, cat: PC/0day, desc: Applications}
+ - {id: ApplicationsAndroid, cat: PC/Mobile-Android, desc: "Applications Android"}
+ - {id: ApplicationsWindows, cat: PC/0day, desc: "Applications Windows"}
+ - {id: AudioBooks, cat: Audio/Audiobook, desc: "Books Audiobooks"}
+ - {id: AudioAudiobooks, cat: Audio/Audiobook, desc: "Books Audiobooks"}
+ - {id: AudioLossless, cat: Audio/Lossless, desc: "Audio Lossless"}
+ - {id: AudioMusic, cat: Audio/MP3, desc: "Audio Music"}
+ - {id: BooksAcademic, cat: Books, desc: "Books Academic"}
+ - {id: BooksComics, cat: Books/Comics, desc: "Books Comics"}
+ - {id: BooksEbooks, cat: Books/EBook, desc: "Books Ebooks"}
+ - {id: BooksEducational, cat: Books, desc: "Books Educational"}
+ - {id: BooksMagazines, cat: Books/Mags, desc: "Books Magazines"}
+ - {id: BooksFiction, cat: Books, desc: "Books Fiction"}
+ - {id: BooksNonfiction, cat: Books, desc: "Books Nonfiction"}
+ - {id: BooksTextbooks, cat: Books, desc: "Books Textbooks"}
+ - {id: Ebooks, cat: Books/EBook, desc: "Books Ebooks"}
+ - {id: Games, cat: Console, desc: Games}
+ - {id: GamesWindows, cat: PC/Games, desc: "Games Windows"}
+ - {id: Movies, cat: Movies, desc: Movies}
+ - {id: MoviesAction, cat: Movies, desc: Movies Action}
+ - {id: MoviesConcerts, cat: Movies, desc: "Movies Concerts"}
+ - {id: MoviesCrime, cat: Movies, desc: "Movies Crime"}
+ - {id: MoviesDocumentary, cat: TV/Documentary, desc: "Movies Documentary"}
+ - {id: MoviesDubbedMovies, cat: Movies, desc: "Movies Dubbed Movies"}
+ - {id: MoviesHighresMovies, cat: Movies, desc: "Movies Highres Movies"}
+ - {id: MoviesMusicvideos, cat: Audio/Video, desc: "Movies Musicvideos"}
+ - {id: MoviesThriller, cat: Movies, desc: "Movies Thriller"}
+ - {id: Music, cat: Audio, desc: Music}
+ - {id: MusicHardrock, cat: Audio, desc: "Music Hardrock"}
+ - {id: MusicMp, cat: Audio/MP3, desc: "Music Mp3"}
+ - {id: MusicFLAC, cat: Audio/Lossless, desc: "Music FLAC"}
+ - {id: MusicLossless, cat: Audio/Lossless, desc: "Music Lossless"}
+ - {id: MusicRB, cat: Audio, desc: "Music R&B"}
+ - {id: MusicTranceHouseDance, cat: Audio, desc: "Music Trance House Dance"}
+ - {id: Other, cat: Other, desc: Other}
+ - {id: OtherEbooks, cat: Books/EBook, desc: "Other Ebooks"}
+ - {id: OtherComics, cat: Other, desc: "Other Comics"}
+ - {id: OtherTutorials, cat: Other, desc: "Other Tutorials"}
+ - {id: OtherUnsorted, cat: Other, desc: "Other Unsorted"}
+ - {id: PicturesPicturesOther, cat: Other/Misc, desc: "Pictures Other"}
+ - {id: PicturesWallpapers, cat: Other/Misc, desc: "Pictures Wallpapers"}
+ - {id: Software, cat: PC/0day, desc: "Software"}
+ - {id: TV, cat: TV, desc: TV}
+ - {id: TVBBC, cat: TV, desc: "TV BBC"}
+ - {id: TVEllenDeGeneres, cat: TV, desc: "TV Ellen DeGeneres"}
+ - {id: TVOther, cat: TV/Other, desc: "TV Other"}
+ - {id: TVshows, cat: TV, desc: "TV shows"}
+ - {id: Television, cat: TV, desc: Television}
+ - {id: VideoMobile, cat: Movies, desc: "Movies Video Mobile"}
+ - {id: VideoMovies, cat: Movies, desc: "Video Movies"}
+ - {id: VideoMusic, cat: Audio/Video, desc: "Video Music"}
+ - {id: XXX, cat: XXX, desc: XXX}
+ - {id: XXXVideo, cat: XXX, desc: "XXX Video"}
+ - {id: XXXHDVideo, cat: XXX, desc: "XXX HD Video"}
+ - {id: XXXPictures, cat: XXX, desc: "XXX Pictures"}
+
+ modes:
+ search: [q]
+ tv-search: [q, season, ep]
+ movie-search: [q]
+ music-search: [q]
+ book-search: [q]
+
+settings:
+ - name: sort
+ type: select
+ label: Sort requested from site (Applies only to Search with Keywords)
+ default: d
+ options:
+ d: created
+ _: seeders
+
+download:
+ selectors:
+ - selector: a[href^="magnet:?xt="]
+ attribute: href
+
+search:
+ paths:
+ - path: "{{ if .Keywords }}search{{ re_replace .Config.sort \"_\" \"\" }}?q={{ .Keywords }}{{ else }}/{{ end }}"
+
+ rows:
+ selector: table.table2 > tbody > tr:has(span.smallish)
+
+ fields:
+ category:
+ selector: div.tt-name > span.smallish
+ filters:
+ - name: re_replace
+ args: ["[^A-Za-z]+", ""] # strip everything but letters
+ title:
+ selector: div.tt-name > a[href^="/"]
+ details:
+ selector: div.tt-name > a[href^="/"]
+ attribute: href
+ download:
+ selector: div.tt-name > a[href^="/"]
+ attribute: href
+ date:
+ selector: td:nth-child(2)
+ filters:
+ - name: replace
+ args: ["right ", ""]
+ - name: replace
+ args: ["Last Month", "1 month ago"]
+ - name: replace
+ args: ["+", " ago"]
+ - name: timeago
+ size:
+ selector: td:nth-child(3)
+ seeders:
+ selector: td.tdseed
+ leechers:
+ selector: td.tdleech
+ downloadvolumefactor:
+ text: 0
+ uploadvolumefactor:
+ text: 1
+# engine n/a
diff --git a/mock-htpc/prowlarr/Definitions/torrentdownloads.yml b/mock-htpc/prowlarr/Definitions/torrentdownloads.yml
index 0d294ea..eb7cbf9 100644
--- a/mock-htpc/prowlarr/Definitions/torrentdownloads.yml
+++ b/mock-htpc/prowlarr/Definitions/torrentdownloads.yml
@@ -7,33 +7,16 @@ type: public
encoding: UTF-8
links:
- https://www.torrentdownloads.pro/
- - https://torrentdownloads.unblockit.africa/
- https://torrentdownloads.unblockninja.com/
- https://torrentdownloads.ninjaproxy1.com/
- https://torrentdownloads.proxyninja.org/
+ - https://torrentdownloads.proxyninja.net/
legacylinks:
- https://www.torrentdownloads.me/
- - https://torrentdownloads.nocensor.lol/
- - https://torrentdownloads.unblockit.ink/
- - https://torrentdownloads.unblockit.bio/
- - https://torrentdownloads.unblockit.boo/
- https://www.torrentdownloads.info/
- - https://torrentdownloads.mrunblock.guru/
- - https://torrentdownloads.unblockit.click/
- - https://torrentdownloads.unblockit.asia/
- - https://torrentdownloads.unblockit.mov/
- - https://torrentdownloads.mrunblock.life/
- - https://torrentdownloads.unblockit.rsvp/
- - https://torrentdownloads.nocensor.click/
- - https://torrentdownloads.unblockit.vegas/
- - https://torrentdownloads.unblockit.esq/
- - https://torrentdownloads.unblockit.zip/
- - https://torrentdownloads.unblockit.foo/
- - https://torrentdownloads.unblockit.ing/
- https://torrentdownloads.mrunblock.bond/
- https://torrentdownloads.nocensor.cloud/
- - https://torrentdownloads.unblockit.date/
- - https://torrentdownloads.unblockit.dad/
+ - https://torrentdownloads.unblockit.download/
caps:
categorymappings:
diff --git a/mock-htpc/prowlarr/Definitions/torrenteros-api.yml b/mock-htpc/prowlarr/Definitions/torrenteros-api.yml
index 8457e00..ce2a82d 100644
--- a/mock-htpc/prowlarr/Definitions/torrenteros-api.yml
+++ b/mock-htpc/prowlarr/Definitions/torrenteros-api.yml
@@ -12,17 +12,11 @@ caps:
categorymappings:
- {id: 1, cat: Movies, desc: "Movies"}
- {id: 2, cat: TV, desc: "TV"}
- - {id: 3, cat: Audio, desc: "Music"}
- - {id: 4, cat: Console, desc: "Game"}
- - {id: 5, cat: PC, desc: "Application"}
- - {id: 6, cat: Books, desc: "Libros"}
modes:
search: [q]
tv-search: [q, season, ep, imdbid, tvdbid, tmdbid]
movie-search: [q, imdbid, tmdbid]
- music-search: [q]
- book-search: [q]
settings:
- name: apikey
@@ -36,6 +30,10 @@ settings:
type: checkbox
label: Search freeleech only
default: false
+ - name: single_file_release_use_filename
+ type: checkbox
+ label: Use filename as title for single file releases
+ default: true
- name: sort
type: select
label: Sort requested from site
@@ -61,11 +59,12 @@ login:
- selector: a[href*="/login"]
message:
text: "The API key was not accepted by {{ .Config.sitelink }}."
+ - selector: :root:contains("Account is Banned")
search:
paths:
- # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v7.0.0)
- # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L349
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
- path: "/api/torrents/filter"
response:
type: json
@@ -98,8 +97,15 @@ search:
fields:
category:
selector: category_id
- title:
+ title_optional:
selector: name
+ title_filename:
+ selector: "files[0].name"
+ optional: true
+ files:
+ selector: num_file
+ title:
+ text: "{{ if and (.Config.single_file_release_use_filename) (eq .Result.files \"1\") (.Result.title_filename) }}{{ .Result.title_filename }}{{ else }}{{ .Result.title_optional }}{{ end }}"
details:
selector: details_link
download:
@@ -120,18 +126,14 @@ search:
genre:
selector: meta.genres
filters:
- - name: re_replace
- args: ["(?i)^None$", ""]
- name: re_replace
args: ["(?i)(Ciencia ficción)", "Ciencia_ficción"]
- name: re_replace
- args: ["(?i)(TV Movie)", "TV_Movie"]
+ args: ["(?i)(Película de TV)", "Película_de_TV"]
- name: replace
args: [" & ", "_&_"]
description:
text: "{{ .Result.genre }}"
- files:
- selector: num_file
seeders:
selector: seeders
leechers:
@@ -143,12 +145,17 @@ search:
selector: created_at
filters:
- name: append
- args: " +00:00" # GMT
+ args: " -03:00" # BRT
- name: dateparse
args: "MM/dd/yyyy HH:mm:ss zzz"
size:
selector: size
- downloadvolumefactor:
+ _featured:
+ selector: featured
+ case:
+ False: "{{ .False }}"
+ True: "{{ .True }}"
+ downloadvolumefactor_freeleech:
# api returns 0%, 25%, 50%, 75%, 100%
selector: freeleech
case:
@@ -158,16 +165,20 @@ search:
75%: 0.25
100%: 0 # freeleech
"*": 0 # catch errors
- uploadvolumefactor:
+ downloadvolumefactor:
+ text: "{{ if .Result._featured }}0{{ else }}{{ .Result.downloadvolumefactor_freeleech }}{{ end }}"
+ uploadvolumefactor_double_upload:
# api returns False, True
selector: double_upload
case:
False: 1 # normal
True: 2 # double
-# global MR is 0.4 but torrents must be seeded for 7 days regardless of ratio
+ uploadvolumefactor:
+ text: "{{ if .Result._featured }}2{{ else }}{{ .Result.uploadvolumefactor_double_upload }}{{ end }}"
+# global MR is 0.25 but torrents must be seeded for 3 days regardless of ratio
# minimumratio:
-# text: 0.4
+# text: 0.25
minimumseedtime:
- # 7 days (as seconds = 7 x 24 x 60 x 60)
- text: 604800
-# json UNIT3D 7.0.3
+ # 3 days (as seconds = 3 x 24 x 60 x 60)
+ text: 259200
+# json UNIT3D 8.3.2 (custom)
diff --git a/mock-htpc/prowlarr/Definitions/torrentfunk.yml b/mock-htpc/prowlarr/Definitions/torrentfunk.yml
index 9ac4e36..d234d74 100644
--- a/mock-htpc/prowlarr/Definitions/torrentfunk.yml
+++ b/mock-htpc/prowlarr/Definitions/torrentfunk.yml
@@ -8,30 +8,13 @@ encoding: UTF-8
links:
- https://www.torrentfunk.com/
- https://www.torrentfunk2.com/
- - https://torrentfunk.unblockit.africa/
- https://torrentfunk.ninjaproxy1.com/
- https://torrentfunk.proxyninja.org/
+ - https://torrentfunk.proxyninja.net/
legacylinks:
- - https://torrentfunk.nocensor.lol/
- - https://torrentfunk.unblockit.ink/
- - https://torrentfunk.unblockit.bio/
- - https://torrentfunk.unblockit.boo/
- - https://torrentfunk.mrunblock.guru/
- - https://torrentfunk.unblockit.click/
- - https://torrentfunk.unblockit.asia/
- - https://torrentfunk.mrunblock.life/
- - https://torrentfunk.unblockit.mov/
- - https://torrentfunk.unblockit.rsvp/
- - https://torrentfunk.nocensor.click/
- - https://torrentfunk.unblockit.vegas/
- - https://torrentfunk.unblockit.esq/
- - https://torrentfunk.unblockit.zip/
- - https://torrentfunk.unblockit.foo/
- - https://torrentfunk.unblockit.ing/
- https://torrentfunk.nocensor.cloud/
- https://torrentfunk.mrunblock.bond/
- - https://torrentfunk.unblockit.date/
- - https://torrentfunk.unblockit.dad/
+ - https://torrentfunk.unblockit.download/
caps:
categorymappings:
diff --git a/mock-htpc/prowlarr/Definitions/torrenting.yml b/mock-htpc/prowlarr/Definitions/torrenting.yml
index eb0f0d2..ad99314 100644
--- a/mock-htpc/prowlarr/Definitions/torrenting.yml
+++ b/mock-htpc/prowlarr/Definitions/torrenting.yml
@@ -44,10 +44,8 @@ settings:
- name: cookie
type: text
label: Cookie
- - name: info
- type: info
- label: How to get the Cookie
- default: "- Login to this tracker with your browser
- Open the DevTools panel by pressing F12
- Select the Network tab
- Click on the Doc button (Chrome Browser) or HTML button (FireFox)
- Refresh the page by pressing F5
- Click on the first row entry
- Select the Headers tab on the Right panel
- Find 'cookie:' in the Request Headers section
- Select and Copy the whole cookie string (everything after 'cookie: ') and Paste here.
"
+ - name: info_cookie
+ type: info_cookie
- name: freeleech
type: checkbox
label: Search freeleech only
@@ -58,6 +56,7 @@ settings:
default: "All members are required to log into their account at least every 89 days or you will be deleted without warning."
login:
+ # using cookie method because login page has embedded Clouflare turnstile
method: cookie
inputs:
cookie: "{{ .Config.cookie }}"
diff --git a/mock-htpc/prowlarr/Definitions/torrentkitty.yml b/mock-htpc/prowlarr/Definitions/torrentkitty.yml
index 8c8b928..92c297c 100644
--- a/mock-htpc/prowlarr/Definitions/torrentkitty.yml
+++ b/mock-htpc/prowlarr/Definitions/torrentkitty.yml
@@ -7,7 +7,6 @@ type: public
encoding: UTF-8
links:
- https://www.torrentkitty.tv/
- - https://www.torrentkitty.se/
- https://www.torrentkitty.io/
- https://www.torrentkitty.vip/
- https://www.torrentkitty.app/
@@ -15,6 +14,9 @@ links:
- https://www.torrentkitty.lol/
- https://www.torrentkitty.best/
- https://www.torrentkitty.ink/
+ - https://torkitty.com/
+legacylinks:
+ - https://www.torrentkitty.se/
caps:
categories:
@@ -26,14 +28,10 @@ caps:
movie-search: [q]
settings:
- - name: flaresolverr
- type: info
- label: FlareSolverr
- default: This site may use Cloudflare DDoS Protection, therefore Prowlarr requires FlareSolverr to access it.
- - name: info_8000
- type: info
- label: About TorrentKitty Categories
- default: TorrentKitty does not return categories in its search results.To add to your Apps' Torznab indexer, replace all categories with 8000(Other).
+ - name: info_flaresolverr
+ type: info_flaresolverr
+ - name: info_category_8000
+ type: info_category_8000
search:
paths:
diff --git a/mock-htpc/prowlarr/Definitions/torrentland-api.yml b/mock-htpc/prowlarr/Definitions/torrentland-api.yml
index ba6ec08..c3c5dd7 100644
--- a/mock-htpc/prowlarr/Definitions/torrentland-api.yml
+++ b/mock-htpc/prowlarr/Definitions/torrentland-api.yml
@@ -73,6 +73,7 @@ login:
- selector: a[href*="/login"]
message:
text: "The API key was not accepted by {{ .Config.sitelink }}."
+ - selector: :root:contains("Account is Banned")
search:
paths:
diff --git a/mock-htpc/prowlarr/Definitions/torrentleech-pl.yml b/mock-htpc/prowlarr/Definitions/torrentleech-pl.yml
index d55aef3..24b7227 100644
--- a/mock-htpc/prowlarr/Definitions/torrentleech-pl.yml
+++ b/mock-htpc/prowlarr/Definitions/torrentleech-pl.yml
@@ -60,10 +60,8 @@ settings:
type: checkbox
label: Drop the Polish title prefix
default: false
- - name: flaresolverr
- type: info
- label: FlareSolverr
- default: This site may use Cloudflare DDoS Protection, therefore Prowlarr requires FlareSolverr to access it.
+ - name: info_flaresolverr
+ type: info_flaresolverr
- name: info_activity
type: info
label: Account Inactivity
diff --git a/mock-htpc/prowlarr/Definitions/torrentleech.yml b/mock-htpc/prowlarr/Definitions/torrentleech.yml
index 5274d37..4d41843 100644
--- a/mock-htpc/prowlarr/Definitions/torrentleech.yml
+++ b/mock-htpc/prowlarr/Definitions/torrentleech.yml
@@ -119,6 +119,8 @@ settings:
type: info
label: Results Per Page
default: For best results, change the Torrents per page: setting to 100 on your account profile.
+ - name: info_flaresolverr
+ type: info_flaresolverr
login:
path: user/account/login/
diff --git a/mock-htpc/prowlarr/Definitions/torrentmasters.yml b/mock-htpc/prowlarr/Definitions/torrentmasters.yml
index d7bff88..3f3c777 100644
--- a/mock-htpc/prowlarr/Definitions/torrentmasters.yml
+++ b/mock-htpc/prowlarr/Definitions/torrentmasters.yml
@@ -53,17 +53,13 @@ settings:
- name: cookie
type: text
label: Cookie
- - name: info
- type: info
- label: How to get the Cookie
- default: "- Login to this tracker with your browser
- Open the DevTools panel by pressing F12
- Select the Network tab
- Click on the Doc button (Chrome Browser) or HTML button (FireFox)
- Refresh the page by pressing F5
- Click on the first row entry
- Select the Headers tab on the Right panel
- Find 'cookie:' in the Request Headers section
- Select and Copy the whole cookie string (everything after 'cookie: ') and Paste here.
"
+ - name: info_cookie
+ type: info_cookie
- name: useragent
type: text
label: User-Agent
- name: info_useragent
- type: info
- label: How to get the User-Agent
- default: "- From the same place you fetched the cookie,
- Find 'user-agent:' in the Request Headers section
- Select and Copy the whole user-agent string (everything after 'user-agent: ') and Paste here.
"
+ type: info_useragent
- name: sort
type: select
label: Sort requested from site
@@ -86,6 +82,7 @@ settings:
default: For best results, change the Torrentek száma egy oldalon setting to 100 on your account profile.
login:
+ # using cookie method because login page has embedded Google reCAPTCHA
method: cookie
inputs:
cookie: "{{ .Config.cookie }}"
diff --git a/mock-htpc/prowlarr/Definitions/torrentoyunindir.yml b/mock-htpc/prowlarr/Definitions/torrentoyunindir.yml
index bef9385..439f8eb 100644
--- a/mock-htpc/prowlarr/Definitions/torrentoyunindir.yml
+++ b/mock-htpc/prowlarr/Definitions/torrentoyunindir.yml
@@ -18,7 +18,9 @@ caps:
modes:
search: [q]
-settings: []
+settings:
+ - name: info_flaresolverr
+ type: info_flaresolverr
download:
selectors:
diff --git a/mock-htpc/prowlarr/Definitions/torrentproject2.yml b/mock-htpc/prowlarr/Definitions/torrentproject2.yml
index 3fe6e28..4860659 100644
--- a/mock-htpc/prowlarr/Definitions/torrentproject2.yml
+++ b/mock-htpc/prowlarr/Definitions/torrentproject2.yml
@@ -43,10 +43,8 @@ settings:
oldest: "created asc"
seeders: seeders
size: size
- - name: info_8000
- type: info
- label: About TorrentProject2 Categories
- default: TorrentProject2 does not return categories in its search results.To add to your Apps' Torznab indexer, replace all categories with 8000(Other).
+ - name: info_category_8000
+ type: info_category_8000
download:
selectors:
diff --git a/mock-htpc/prowlarr/Definitions/torrentqq.yml b/mock-htpc/prowlarr/Definitions/torrentqq.yml
index 17fe7c7..750bd5a 100644
--- a/mock-htpc/prowlarr/Definitions/torrentqq.yml
+++ b/mock-htpc/prowlarr/Definitions/torrentqq.yml
@@ -7,23 +7,34 @@ type: public
encoding: UTF-8
followredirect: true
links:
- - https://torrentqq302.com/
+ - https://torrentqq346.com/
+ - https://torrentegg38.com/
legacylinks:
- - https://torrentqq286.com/
- - https://torrentqq287.com/
- - https://torrentqq288.com/
- - https://torrentqq289.com/
- - https://torrentqq290.com/
- - https://torrentqq291.com/
- - https://torrentqq292.com/
- - https://torrentqq293.com/
- - https://torrentqq294.com/
- - https://torrentqq295.com/
- - https://torrentqq296.com/
- - https://torrentqq297.com/
- - https://torrentqq298.com/
- - https://torrentqq299.com/
- - https://torrentqq301.com/
+ - https://torrentqq331.com/
+ - https://torrentqq332.com/
+ - https://torrentqq333.com/
+ - https://torrentqq334.com/
+ - https://torrentqq335.com/
+ - https://torrentqq336.com/
+ - https://torrentegg28.com/
+ - https://torrentqq337.com/
+ - https://torrentegg29.com/
+ - https://torrentqq338.com/
+ - https://torrentegg30.com/
+ - https://torrentqq339.com/
+ - https://torrentegg31.com/
+ - https://torrentqq340.com/
+ - https://torrentegg32.com/
+ - https://torrentegg33.com/
+ - https://torrentqq341.com/
+ - https://torrentqq342.com/
+ - https://torrentegg34.com/
+ - https://torrentqq343.com/
+ - https://torrentegg35.com/
+ - https://torrentegg36.com/
+ - https://torrentqq344.com/
+ - https://torrentegg37.com/
+ - https://torrentqq345.com/
caps:
categorymappings:
@@ -44,10 +55,8 @@ caps:
music-search: [q]
settings:
- - name: flaresolverr
- type: info
- label: FlareSolverr
- default: This site may use Cloudflare DDoS Protection, therefore Prowlarr requires FlareSolverr to access it.
+ - name: info_flaresolverr
+ type: info_flaresolverr
download:
infohash:
diff --git a/mock-htpc/prowlarr/Definitions/torrentseeds-api.yml b/mock-htpc/prowlarr/Definitions/torrentseeds-api.yml
index b677ecb..e672dc6 100644
--- a/mock-htpc/prowlarr/Definitions/torrentseeds-api.yml
+++ b/mock-htpc/prowlarr/Definitions/torrentseeds-api.yml
@@ -69,11 +69,12 @@ login:
- selector: a[href*="/login"]
message:
text: "The API key was not accepted by {{ .Config.sitelink }}."
+ - selector: :root:contains("Account is Banned")
search:
paths:
- # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v7.0.0)
- # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L349
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
- path: api/torrents/filter
response:
type: json
@@ -154,9 +155,8 @@ search:
case:
0: 1 # normal
1: 2 # double
-# global MR is 0.5 but torrents must be seeded for 5 days regardless of ratio
-# minimumratio:
-# text: 0.5
+ minimumratio:
+ text: 1.0
minimumseedtime:
# 5 days (as seconds = 5 x 24 x 60 x 60)
text: 432000
diff --git a/mock-htpc/prowlarr/Definitions/torrentsir.yml b/mock-htpc/prowlarr/Definitions/torrentsir.yml
index 33f0375..9e90e26 100644
--- a/mock-htpc/prowlarr/Definitions/torrentsir.yml
+++ b/mock-htpc/prowlarr/Definitions/torrentsir.yml
@@ -7,28 +7,27 @@ type: public
encoding: UTF-8
followredirect: true
links:
- - https://torrentsir137.com/
+ - https://torrentsir161.com/
legacylinks:
- - https://torrentsir127.com/
- - http://torrentsir128.com/
- - https://torrentsir128.com/
- - http://torrentsir129.com/
- - https://torrentsir129.com/
- - http://torrentsir130.com/
- - https://torrentsir130.com/
- - http://torrentsir131.com/
- - https://torrentsir131.com/
- - http://torrentsir132.com/
- - https://torrentsir132.com/
- - http://torrentsir133.com/
- - https://torrentsir133.com/
- - http://torrentsir134.com/
- - https://torrentsir134.com/
- - http://torrentsir135.com/
- - https://torrentsir135.com/
- - http://torrentsir136.com/
- - https://torrentsir136.com/
- - http://torrentsir137.com/
+ - http://torrentsir152.com/
+ - https://torrentsir152.com/
+ - http://torrentsir153.com/
+ - https://torrentsir153.com/
+ - http://torrentsir154.com/
+ - https://torrentsir154.com/
+ - http://torrentsir155.com/
+ - https://torrentsir155.com/
+ - http://torrentsir156.com/
+ - https://torrentsir156.com/
+ - http://torrentsir157.com/
+ - https://torrentsir157.com/
+ - http://torrentsir158.com/
+ - https://torrentsir158.com/
+ - http://torrentsir159.com/
+ - https://torrentsir159.com/
+ - http://torrentsir160.com/
+ - https://torrentsir160.com/
+ - http://torrentsir161.com/
caps:
categorymappings:
@@ -36,6 +35,7 @@ caps:
- {id: "ani", cat: TV, desc: "동영상 (Video)"}
- {id: "game", cat: Console, desc: "기타 (Games)"}
- {id: "tv", cat: TV, desc: "시사/교양 (TV)"}
+ - {id: "netflix", cat: TV, desc: "넷플시리즈 (Netflix)"}
- {id: "movie", cat: Movies, desc: "영화 (Movie)"}
- {id: "drama", cat: TV, desc: "드라마 (Drama)"}
- {id: "entertain", cat: TV, desc: "예능/오락 (Entertainment)"}
@@ -53,10 +53,8 @@ caps:
book-search: [q]
settings:
- - name: flaresolverr
- type: info
- label: FlareSolverr
- default: This site may use Cloudflare DDoS Protection, therefore Prowlarr requires FlareSolverr to access it.
+ - name: info_flaresolverr
+ type: info_flaresolverr
download:
infohash:
diff --git a/mock-htpc/prowlarr/Definitions/torrentslocal.yml b/mock-htpc/prowlarr/Definitions/torrentslocal.yml
index 4e5e947..a4508ed 100644
--- a/mock-htpc/prowlarr/Definitions/torrentslocal.yml
+++ b/mock-htpc/prowlarr/Definitions/torrentslocal.yml
@@ -5,6 +5,8 @@ description: "Torrents-Local is a RUSSIAN Semi-Private Torrent Tracker"
language: ru-RU
type: semi-private
encoding: UTF-8
+certificates:
+ - 314a854715f68440d92c14d2414065410785cf26 # expired 9th November 2024
links:
- https://torrents-local.xyz/
@@ -310,7 +312,7 @@ settings:
type: checkbox
label: Add RUS to end of all titles to improve language detection by Sonarr and Radarr. Will cause English-only results to be misidentified.
default: false
- - name: freeleech
+ - name: freeleech_50
type: checkbox
label: Search freeleech and 50% freeleech only
default: false
@@ -388,7 +390,7 @@ search:
nm: "{{ .Keywords }}"
# all words
allw: 1
- tor_type: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
+ tor_type: "{{ if .Config.freeleech_50 }}1{{ else }}{{ end }}"
keywordsfilters:
# strip season and/or ep
diff --git a/mock-htpc/prowlarr/Definitions/torrentview.yml b/mock-htpc/prowlarr/Definitions/torrentview.yml
index 20b84c4..a17fe1b 100644
--- a/mock-htpc/prowlarr/Definitions/torrentview.yml
+++ b/mock-htpc/prowlarr/Definitions/torrentview.yml
@@ -7,10 +7,8 @@ type: public
encoding: UTF-8
followredirect: true
links:
- - https://viewtorrent18.com/
+ - https://torrentview1.com/
legacylinks:
- - https://viewtorrent1.com/
- - https://viewtorrent2.com/
- https://viewtorrent4.com/
- https://viewtorrent5.com/
- https://viewtorrent6.com/
@@ -24,6 +22,8 @@ legacylinks:
- https://viewtorrent15.com/
- https://viewtorrent16.com/
- https://viewtorrent17.com/
+ - https://viewtorrent18.com/
+ - https://viewtorrent19.com/
caps:
categorymappings:
diff --git a/mock-htpc/prowlarr/Definitions/torrentz2nz.yml b/mock-htpc/prowlarr/Definitions/torrentz2nz.yml
index 3dae307..c80768c 100644
--- a/mock-htpc/prowlarr/Definitions/torrentz2nz.yml
+++ b/mock-htpc/prowlarr/Definitions/torrentz2nz.yml
@@ -8,12 +8,6 @@ encoding: UTF-8
links:
- https://torrentz2.nz/
legacylinks:
- - https://torrentz2.nocensor.world/
- - https://torrentz2.nocensor.lol/
- - https://torrentz2.nocensor.art/
- - https://torrentz2.mrunblock.guru/
- - https://torrentz2.mrunblock.life/
- - https://torrentz2.nocensor.click/
- https://torrentz2.mrunblock.bond/
- https://torrentz2.nocensor.cloud/
@@ -30,10 +24,8 @@ caps:
movie-search: [q]
settings:
- - name: info_8000
- type: info
- label: About Torrentz2nz Categories
- default: Torrentz2nz does not return categories in its search results.To add to your Apps' Torznab indexer, replace all categories with 8000(Other).
+ - name: info_category_8000
+ type: info_category_8000
search:
paths:
diff --git a/mock-htpc/prowlarr/Definitions/totheglory.yml b/mock-htpc/prowlarr/Definitions/totheglory.yml
index 3be2da3..4fd92a0 100644
--- a/mock-htpc/prowlarr/Definitions/totheglory.yml
+++ b/mock-htpc/prowlarr/Definitions/totheglory.yml
@@ -1,7 +1,7 @@
---
id: totheglory
name: ToTheGlory
-description: "ToTheGlory (TTG) A Chinese tracker"
+description: "ToTheGlory (TTG) is a CHINESE Private Torrent Tracker for MOVIES / TV / GENERAL"
language: zh-CN
type: private
encoding: UTF-8
@@ -95,13 +95,6 @@ settings:
- name: password
type: password
label: Password
- - name: 2facode
- type: text
- label: 2FA code
- - name: info_2fa
- type: info
- label: "About 2FA code"
- default: "Only fill in the 2FA code box if you have enabled 2FA on the TTG Web Site. Otherwise just leave it empty."
- name: passid
type: select
label: Security Question ID
@@ -118,14 +111,14 @@ settings:
- name: info_passid
type: info
label: "About Security ID"
- default: "Only select the Security Question ID from the pulldown if you have set it on the TTG Web Site. Otherwise just leave it as ignore not set."
+ default: "Only select the Security Question ID from the pulldown if you have set it on the TTG Web Site. Otherwise just leave it as Ignore not set."
- name: passan
type: text
label: Security Question Answer
- name: info_passan
type: info
label: "About Security Question Answer"
- default: "Only fill in the Security Question Answer box if you have set it on the TTG Web Site. Dont forget to write your answer in the same language you saved it on the TTG Web Site. Otherwise just leave it empty."
+ default: "Only fill in the Security Question Answer box if you have set it on the TTG Web Site. Don't forget to write your answer in the same language you saved it on the TTG Web Site. Otherwise just leave it empty."
login:
path: login.php?returnto=
@@ -135,7 +128,6 @@ login:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
rememberme: yes
- otp: "{{ .Config.2facode }}"
passid: "{{ .Config.passid }}"
passan: "{{ .Config.passan }}"
error:
diff --git a/mock-htpc/prowlarr/Definitions/totheglory2fa.yml b/mock-htpc/prowlarr/Definitions/totheglory2fa.yml
new file mode 100644
index 0000000..7e01428
--- /dev/null
+++ b/mock-htpc/prowlarr/Definitions/totheglory2fa.yml
@@ -0,0 +1,191 @@
+---
+id: totheglory2fa
+replaces:
+ - totheglorycookie
+name: ToTheGlory2FA
+description: "ToTheGlory (TTG) is a CHINESE Private Torrent Tracker for MOVIES / TV / GENERAL. This indexer uses cookie login for 2FA."
+language: zh-CN
+type: private
+encoding: UTF-8
+requestDelay: 2
+links:
+ - https://totheglory.im/
+
+caps:
+ categories:
+ # 电影 Movie
+ 电影DVDRip: Movies/SD # Movie DVDRip
+ 电影720p: Movies/HD # Movie 720p
+ 电影1080i/p: Movies/HD # Movie 1080i / p
+ BluRay原盘: Movies/BluRay # BluRay original disc
+ 影视2160p: Movies/UHD # Media - 2160p
+ UHD原盘: Movies/UHD # Blu-ray UHD
+ # 纪录片 Docs
+ 纪录片720p: Movies/HD # Documentary 720p
+ 纪录片1080i/p: Movies/HD # Documentary 1080i / p
+ 纪录片BluRay原盘: Movies/BluRay # Documentary BluRay Original
+ # 剧集 TV
+ 欧美剧720p: TV/HD # TV Series - EU/US - 720p
+ 欧美剧1080i/p: TV/HD # TV Series - EU/US - 1080i/p
+ 高清日剧: TV/HD # TV Series - JP
+ 大陆港台剧1080i/p: TV/HD # TV Series - CN - 1080i/p
+ 大陆港台剧720p: TV/HD # TV Series - CN - 720p
+ 高清韩剧: TV/HD # TV Series - KR
+ # 剧集包 TV Packs
+ 欧美剧包: TV/HD # TV Packs - EU/US
+ 日剧包: TV/HD # TV Packs - JP
+ 韩剧包: TV/HD # TV Packs - CN
+ 华语剧包: TV/HD # TV Packs - KR
+ # 音乐 Audio
+ (电影原声&Game)OST: Audio # OST - (Movie & Game) Track
+ 无损音乐FLAC&APE: Audio/Lossless # FLAC & APE
+ MV&演唱会: Audio/Video # MV & Concert
+ # 其他 Other
+ 高清体育节目: TV/Sport # HD Sports
+ 高清动漫: TV/Anime # HD Animation
+ 韩国综艺: TV/HD # TV Shows - KR
+ 高清综艺: TV/HD # TV Shows
+ 日本综艺: TV/HD # TV Shows - JP
+ MiniVideo: Other # MiniVideo
+ 补充音轨: Audio # Supplemental audio tracks
+ iPhone/iPad视频: PC/Mobile-Other # IPhone / iPad video
+ # 单机游戏
+ PC: PC/Games # Games - PC
+ MAC: PC/Mac # Games - MAC
+ # 微软系列
+ XBOX360: Console/XBox 360 # MicroSoft - XBOX360
+ XBOX1: Console/XBox # MicroSoft - XBOX360
+ XBLA: Console/XBox # MicroSoft - XBLA
+ XBOX+to+XBOX360: Console/XBox # MicroSoft - XBOX to XBOX360
+ # 索尼系列
+ PS2: Console/Other # SONY - PS2
+ PSP: Console/PSP # SONY - PSP
+ PS4: Console/PS4 # SONY - PS4
+ PS3: Console/PS3 # SONY - PS3
+ PSV: Console/PS Vita # SONY - PSV
+ # 任天堂系列
+ WIIU: Console/WiiU # Nintendo - WIIU
+ WII: Console/Wii # Nintendo- WII
+ SWITCH: Console/Other # Nintendo - SWITCH
+ NDS: Console/NDS # Nintendo - NDS
+ NGC: Console/Other # Nintendo - NGC
+ # 主机影视
+ PS3兼容高清: Console/PS3 # Video - HD - PS3
+ PSP兼容高清&标清: Console/PSP # Video - SD&HD - PSP
+ XBOX360兼容高清: Console/XBox 360 # Video - HD - XBOX360
+ Game+Video: Console/Other # Video - Game Video
+ # 软件
+ APPZ: PC # Software - APPZ
+ Game+Ebook: Books/EBook # Software - Game Ebook
+ Ebook: Books/EBook # Software - Ebook
+ # 苹果系列
+ iPhone/iPad游戏: PC/Mobile-iOS # Apple - Game - iPhone/iPad
+ iPad书籍: Books/EBook # Apple - Book - iPad
+ iPhone/iPad软件: PC/Mobile-iOS # Apple - Software - iPhone/iPad
+
+ modes:
+ search: [q]
+ tv-search: [q, season, ep, imdbid]
+ movie-search: [q, imdbid]
+ music-search: [q]
+ book-search: [q]
+
+settings:
+ - name: cookie
+ type: text
+ label: Cookie
+ - name: info_cookie
+ type: info_cookie
+
+login:
+ # using cookie method because login page can present second page for 2FA when enabled
+ method: cookie
+ inputs:
+ cookie: "{{ .Config.cookie }}"
+ test:
+ path: my.php
+ selector: a[href*="logout.php"]
+
+search:
+ paths:
+ - path: browse.php
+ inputs:
+ c: M
+ - path: browse.php
+ categories: [1000, 1010, 1020, 1030, 1040, 1050, 1060, 1070, 1080, 1090, 1100, 1110, 1120, 1130, 1140, 1150, 1160, 1170, 1180, 4000, 4010, 4020, 4030, 4040, 4050, 4060, 4070, 7000, 7010, 7020, 7030, 7040, 7050, 7060]
+ inputs:
+ c: G
+ inputs:
+ search_field: "{{ range .Categories }}分类:`{{.}}` {{end}}{{ if .Query.IMDBID }}imdb{{ .Query.IMDBIDShort }}{{ else }}{{ .Keywords }}{{ end }}"
+ rows:
+ selector: table#torrent_table > tbody > tr[id]
+
+ fields:
+ description:
+ selector: div.name_left > a > b
+ title:
+ selector: div.name_left > a > b
+ remove: span
+ category:
+ selector: tr[id] td:nth-child(1) > a
+ attribute: href
+ filters:
+ - name: querystring
+ args: search_field
+ - name: replace
+ args: ["category:", ""]
+ - name: trim
+ args: "\""
+ details:
+ selector: div.name_left > a
+ attribute: href
+ download:
+ selector: a.dl_a
+ attribute: href
+ files:
+ selector: td:nth-child(3)
+ size:
+ selector: td:nth-child(7)
+ seeders:
+ selector: td:nth-child(9)
+ filters:
+ - name: split
+ args: ["/", 0]
+ leechers:
+ selector: td:nth-child(9)
+ filters:
+ - name: split
+ args: ["/", 1]
+ - name: replace
+ args: ["\n", ""]
+ grabs:
+ selector: td:nth-child(8)
+ date:
+ selector: td:nth-child(5)
+ filters:
+ - name: append
+ args: " +08:00" # CST
+ - name: dateparse
+ args: "yyyy-MM-ddHH:mm:ss zzz"
+ imdbid:
+ selector: span.imdb_rate > a
+ attribute: href
+ downloadvolumefactor:
+ case:
+ img[alt="free"]: 0
+ img[alt="50%"]: 0.5
+ img[alt="30%"]: 0.3
+ "*": 1
+ uploadvolumefactor:
+ case:
+ img[alt="200%"]: 2
+ "*": 1
+ minimumratio:
+ case:
+ img[title="Hit and Run"]: 1
+ "*": 0
+ minimumseedtime:
+ case:
+ img[title="Hit and Run"]: 216000
+ "*": 0
+# engine n/a
diff --git a/mock-htpc/prowlarr/Definitions/trackermk.yml b/mock-htpc/prowlarr/Definitions/trackermk.yml
index c5a6158..b5868bc 100644
--- a/mock-htpc/prowlarr/Definitions/trackermk.yml
+++ b/mock-htpc/prowlarr/Definitions/trackermk.yml
@@ -10,6 +10,7 @@ links:
caps:
categorymappings:
+ - {id: 75, cat: Movies/UHD, desc: "Movies 4K"}
- {id: 49, cat: Movies/DVD, desc: "Movies DVD-R"}
- {id: 68, cat: PC/Mobile-Android, desc: "Андроид (Android)"}
- {id: 72, cat: PC/Mobile-Android, desc: "Андроид - Апликации (Android)"}
@@ -34,6 +35,7 @@ caps:
- {id: 50, cat: Audio/MP3, desc: "Mp3"}
- {id: 56, cat: Movies/SD, desc: "Movies Xvid"}
- {id: 59, cat: XXX, desc: "XXX"}
+ - {id: 74, cat: XXX, desc: "XXX 4K"}
modes:
search: [q]
diff --git a/mock-htpc/prowlarr/Definitions/traht.yml b/mock-htpc/prowlarr/Definitions/traht.yml
index 2381ba8..c17efaf 100644
--- a/mock-htpc/prowlarr/Definitions/traht.yml
+++ b/mock-htpc/prowlarr/Definitions/traht.yml
@@ -6,6 +6,8 @@ language: ru-RU
type: public
encoding: windows-1251
links:
+ - https://traht.org/
+legacylinks:
- http://traht.org/
caps:
diff --git a/mock-htpc/prowlarr/Definitions/trellas.yml b/mock-htpc/prowlarr/Definitions/trellas.yml
index 602e91e..148f021 100644
--- a/mock-htpc/prowlarr/Definitions/trellas.yml
+++ b/mock-htpc/prowlarr/Definitions/trellas.yml
@@ -1,12 +1,14 @@
---
id: trellas
+replaces:
+ - magico
name: Trellas
description: "Trellas (Magico) is a GREEK Private Torrent Tracker for MOVIES / TV / GENERAL"
language: el-GR
type: private
encoding: UTF-8
links:
- - https://trellas.net/
+ - https://trellas.me/
legacylinks:
- https://magico.info/
- https://magico.one/
@@ -14,6 +16,7 @@ legacylinks:
- https://magico.fun/
- https://trellas.info/
- https://trelas.club/
+ - https://trellas.net/
caps:
categorymappings:
diff --git a/mock-htpc/prowlarr/Definitions/trezzorcookie.yml b/mock-htpc/prowlarr/Definitions/trezzorcookie.yml
index 5ff0161..b6dc2cc 100644
--- a/mock-htpc/prowlarr/Definitions/trezzorcookie.yml
+++ b/mock-htpc/prowlarr/Definitions/trezzorcookie.yml
@@ -46,10 +46,8 @@ settings:
- name: cookie
type: text
label: Cookie
- - name: info
- type: info
- label: How to get the Cookie
- default: "- Login to this tracker with your browser
- Open the DevTools panel by pressing F12
- Select the Network tab
- Click on the Doc button (Chrome Browser) or HTML button (FireFox)
- Refresh the page by pressing F5
- Click on the first row entry
- Select the Headers tab on the Right panel
- Find 'cookie:' in the Request Headers section
- Select and Copy the whole cookie string (everything after 'cookie: ') and Paste here.
"
+ - name: info_cookie
+ type: info_cookie
- name: freeleech
type: checkbox
label: Filter FreeLeech only
@@ -84,6 +82,7 @@ settings:
default: "Park your account to protect it against deletion due to the fact that you have not logged in at least once every 3 months."
login:
+ # using the cookie method because the site expects a single session only, so using browser and Jackett can cause a lockout
method: cookie
inputs:
cookie: "{{ .Config.cookie }}"
diff --git a/mock-htpc/prowlarr/Definitions/trupornolabs.yml b/mock-htpc/prowlarr/Definitions/trupornolabs.yml
index 966bb2e..8aed5cb 100644
--- a/mock-htpc/prowlarr/Definitions/trupornolabs.yml
+++ b/mock-htpc/prowlarr/Definitions/trupornolabs.yml
@@ -15,12 +15,11 @@ caps:
modes:
search: [q]
-settings: []
+settings:
+ - name: info_flaresolverr
+ type: info_flaresolverr
search:
- headers:
- User-Agent: ["Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36 Edg/115.0.1901.203"]
-
paths:
# http://trupornolabs.org/search/vika
# http://trupornolabs.org/browse/0/0/0/0
diff --git a/mock-htpc/prowlarr/Definitions/turkseed-api.yml b/mock-htpc/prowlarr/Definitions/turkseed-api.yml
new file mode 100644
index 0000000..94d3999
--- /dev/null
+++ b/mock-htpc/prowlarr/Definitions/turkseed-api.yml
@@ -0,0 +1,199 @@
+---
+id: turkseed-api
+name: TurkSeed
+description: "TurkSeed is a TURKISH Private Torrent Tracker for MOVIES / TV / GENERAL"
+language: tr-TR
+type: private
+encoding: UTF-8
+links:
+ - https://turkseed.com/
+
+caps:
+ categorymappings:
+ - {id: 1, cat: Movies/Foreign, desc: "Yabancı Film"}
+ - {id: 2, cat: Movies, desc: "Yerli Film"}
+ - {id: 24, cat: Movies, desc: "Film (Boxet)"}
+ - {id: 6, cat: TV, desc: "Dizi / Show (Yerli)"}
+ - {id: 5, cat: TV/Foreign, desc: "Dizi / Show (Yabancı)"}
+ - {id: 18, cat: TV, desc: "Dizi (Boxet)"}
+ - {id: 25, cat: TV/Documentary, desc: "Belgesel"}
+ - {id: 28, cat: Console, desc: "GAME - OYUN"}
+ - {id: 26, cat: Other, desc: "Other"}
+ - {id: 27, cat: PC, desc: "PROGRAM"}
+
+ modes:
+ search: [q]
+ tv-search: [q, season, ep, imdbid, tvdbid, tmdbid]
+ movie-search: [q, imdbid, tmdbid]
+
+settings:
+ - name: apikey
+ type: text
+ label: APIKey
+ - name: info_key
+ type: info
+ label: About your API key
+ default: "Find or Generate a new API Token by accessing your TurkSeed account My Settings page and clicking on the API Key tab."
+ - name: freeleech
+ type: checkbox
+ label: Search freeleech only
+ default: false
+ - name: single_file_release_use_filename
+ type: checkbox
+ label: Use filename as title for single file releases
+ default: true
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: created_at
+ options:
+ created_at: created
+ seeders: seeders
+ size: size
+ name: title
+ - name: type
+ type: select
+ label: Order requested from site
+ default: desc
+ options:
+ desc: desc
+ asc: asc
+ - name: info_activity
+ type: info
+ label: Account Inactivity
+ default: "Accounts that do not download a 15GB torrent from our site within a month will receive a warning (will be closed)! Accounts that do not upload (seed, share) 20gb on our site within a month will receive a warning (will be closed)! The account that receives three warnings will be automatically closed! No objections are accepted to the deletion of accounts that have not been on our site for six months and have not been active in any way!"
+
+login:
+ path: /api/torrents
+ method: get
+ inputs: {} # TODO: remove in v10
+ error:
+ - selector: a[href*="/login"]
+ message:
+ text: "The API key was not accepted by {{ .Config.sitelink }}."
+ - selector: :root:contains("Account is Banned")
+
+search:
+ paths:
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
+ - path: "/api/torrents/filter"
+ response:
+ type: json
+
+ headers:
+ Authorization: ["Bearer {{ .Config.apikey }}"]
+
+ inputs:
+ # if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
+ $raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
+ name: "{{ .Keywords }}"
+ seasonNumber: "{{ .Query.Season }}"
+ episodeNumber: "{{ .Query.Ep }}"
+ imdbId: "{{ .Query.IMDBIDShort }}"
+ tmdbId: "{{ .Query.TMDBID }}"
+ tvdbId: "{{ .Query.TVDBID }}"
+ "free[]": "{{ if .Config.freeleech }}100{{ else }}{{ end }}"
+ sortField: "{{ .Config.sort }}"
+ sortDirection: "{{ .Config.type }}"
+ perPage: 100
+
+ keywordsfilters:
+ - name: re_replace
+ args: ["\\.", " "]
+
+ rows:
+ selector: data
+ attribute: attributes
+
+ fields:
+ category:
+ selector: category_id
+ title_optional:
+ selector: name
+ title_filename:
+ selector: "files[0].name"
+ optional: true
+ files:
+ selector: num_file
+ title:
+ text: "{{ if and (.Config.single_file_release_use_filename) (eq .Result.files \"1\") (.Result.title_filename) }}{{ .Result.title_filename }}{{ else }}{{ .Result.title_optional }}{{ end }}"
+ details:
+ selector: details_link
+ download:
+ selector: download_link
+ infohash:
+ selector: info_hash
+ poster:
+ selector: meta.poster
+ filters:
+ - name: replace
+ args: ["https://via.placeholder.com/90x135", ""]
+ imdbid:
+ selector: imdb_id
+ tmdbid:
+ selector: tmdb_id
+ tvdbid:
+ selector: tvdb_id
+ genre:
+ selector: meta.genres
+ filters:
+ - name: re_replace
+ args: ["(?i)(Bilim Kurgu)", "Bilim_Kurgu"]
+ - name: re_replace
+ args: ["(?i)(Pembe Dizi)", "Pembe_Dizi"]
+ - name: re_replace
+ args: ["(?i)(TV film)", "TV_film"]
+ - name: re_replace
+ args: ["(?i)(Vahşi Batı)", "Vahşi_Batı"]
+ - name: replace
+ args: [" & ", "_&_"]
+ description:
+ text: "{{ .Result.genre }}"
+ seeders:
+ selector: seeders
+ leechers:
+ selector: leechers
+ grabs:
+ selector: times_completed
+ date:
+ # "created_at": "2021-10-18T00:34:50.000000Z" is returned by Newtonsoft.Json.Linq as 18/10/2021 00:34:50
+ selector: created_at
+ filters:
+ - name: append
+ args: " +00:00" # GMT
+ - name: dateparse
+ args: "MM/dd/yyyy HH:mm:ss zzz"
+ size:
+ selector: size
+ _featured:
+ selector: featured
+ case:
+ False: "{{ .False }}"
+ True: "{{ .True }}"
+ downloadvolumefactor_freeleech:
+ # api returns 0%, 25%, 50%, 75%, 100%
+ selector: freeleech
+ case:
+ 0%: 1 # not free
+ 25%: 0.75
+ 50%: 0.5
+ 75%: 0.25
+ 100%: 0 # freeleech
+ "*": 0 # catch errors
+ downloadvolumefactor:
+ text: "{{ if .Result._featured }}0{{ else }}{{ .Result.downloadvolumefactor_freeleech }}{{ end }}"
+ uploadvolumefactor_double_upload:
+ # api returns False, True
+ selector: double_upload
+ case:
+ False: 1 # normal
+ True: 2 # double
+ uploadvolumefactor:
+ text: "{{ if .Result._featured }}2{{ else }}{{ .Result.uploadvolumefactor_double_upload }}{{ end }}"
+ minimumratio:
+ text: 0.5
+ minimumseedtime:
+ # 1.5 days (as seconds = 1.5 x 24 x 60 x 60)
+ text: 129600
+# json UNIT3D 8.3.4
diff --git a/mock-htpc/prowlarr/Definitions/turktorrent.yml b/mock-htpc/prowlarr/Definitions/turktorrent.yml
index e726585..9d38394 100644
--- a/mock-htpc/prowlarr/Definitions/turktorrent.yml
+++ b/mock-htpc/prowlarr/Definitions/turktorrent.yml
@@ -79,20 +79,16 @@ settings:
type: text
label: Cookie
- name: info_cookie
- type: info
- label: How to get the Cookie
- default: "- Login to this tracker with your browser
- Open the DevTools panel by pressing F12
- Select the Network tab
- Click on the Doc button (Chrome Browser) or HTML button (FireFox)
- Refresh the page by pressing F5
- Click on the first row entry
- Select the Headers tab on the Right panel
- Find 'cookie:' in the Request Headers section
- Select and Copy the whole cookie string (everything after 'cookie: ') and Paste here.
"
+ type: info_cookie
- name: useragent
type: text
label: User-Agent
- name: info_useragent
- type: info
- label: How to get the User-Agent
- default: "- From the same place you fetched the cookie,
- Find 'user-agent:' in the Request Headers section
- Select and Copy the whole user-agent string (everything after 'user-agent: ') and Paste here.
"
+ type: info_useragent
- name: info_profile
type: info
label: Layout
- default: "- Only the English Classic profile is supported.
- Make sure to set the Torrent Listing (Listeleme Biçimi) option in your profile to Classic (Klasik)
- And set the Language (Dil) to English
- Using the Modern theme will prevent results, and using Turkish will prevent upload dates.
"
+ default: "- Only the English Classic profile is supported.
- Make sure to set the Torrent Listing (Listeleme Biçimi) option in your profile to Classic (Klasik)
- And set the Language (Dil) to English
- Using the Modern theme will prevent results, and using Turkish will prevent upload dates.
"
- name: freeleech
type: checkbox
label: Filter freeleech only
@@ -114,6 +110,7 @@ settings:
asc: asc
login:
+ # using cookie method because login page has embedded hCaptcha
method: cookie
inputs:
cookie: "{{ .Config.cookie }}"
diff --git a/mock-htpc/prowlarr/Definitions/tvchaosuk.yml b/mock-htpc/prowlarr/Definitions/tvchaosuk.yml
index 34c0603..3c9b62c 100644
--- a/mock-htpc/prowlarr/Definitions/tvchaosuk.yml
+++ b/mock-htpc/prowlarr/Definitions/tvchaosuk.yml
@@ -91,6 +91,7 @@ search:
direction: "{{ .Config.type }}"
qty: 100
freeleech: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
+ view: list
# can search by genre but need range support. &genres[]=Action&genres[]=Comedy for Action and Comedy
keywordsfilters:
# if searching for season packs switch S01 to Series 1 #14369
@@ -208,7 +209,7 @@ search:
case:
i[class*="fa-gem text-green"]: 2 # Single Torrent Double Upload
i[class*="fa-globe text-green"]: 2 # Global Double Upload
- i[class*="fa-certificate text-pink"]: 2 # Featured Torrent
+ i[class*="fa-certificate text-pink"]: 2 # Featured Torrent Weekly Freeleech
"*": 1
minimumratio:
text: 0.4
diff --git a/mock-htpc/prowlarr/Definitions/u2.yml b/mock-htpc/prowlarr/Definitions/u2.yml
index c85c998..bd7f115 100644
--- a/mock-htpc/prowlarr/Definitions/u2.yml
+++ b/mock-htpc/prowlarr/Definitions/u2.yml
@@ -15,15 +15,14 @@ caps:
- {id: 413, cat: TV/Anime, desc: "Web"}
- {id: 12, cat: TV/Anime, desc: "BDRip"}
- {id: 13, cat: TV/Anime, desc: "DVDRip"}
- - {id: 14, cat: TV/Anime, desc: "HDTVRip"}
+ - {id: 14, cat: TV/Anime, desc: "HDTV"}
- {id: 15, cat: TV/Anime, desc: "DVDISO"}
- {id: 16, cat: TV/Anime, desc: "BDMV"}
- {id: 17, cat: TV/Anime, desc: "LQRip"}
- {id: 410, cat: TV/Anime, desc: "外挂结构 (TV Series)"}
- {id: 412, cat: TV/Anime, desc: "加流重灌 (Modded Blu-rays)"}
- - {id: 21, cat: Books, desc: "Raw Books"}
- - {id: 22, cat: Books, desc: "港译漫画 (HK Books)"}
- - {id: 23, cat: Books, desc: "台译漫画 (TW Books)"}
+ - {id: 21, cat: Books, desc: "原版漫画 (Raw Books)"}
+ - {id: 22, cat: Books, desc: "翻译漫画 (Translated Books)"}
- {id: 30, cat: Audio, desc: "Lossless Music"}
- {id: 40, cat: Other, desc: "Others"}
# Anime as Movies (Radarr uses t=movie):
@@ -32,7 +31,7 @@ caps:
- {id: 413, cat: Movies/Other, desc: "Web"}
- {id: 12, cat: Movies/HD, desc: "BDRip"}
- {id: 13, cat: Movies/Other, desc: "DVDRip"}
- - {id: 14, cat: Movies/Other, desc: "HDTVRip"}
+ - {id: 14, cat: Movies/Other, desc: "HDTV"}
- {id: 15, cat: Movies/Other, desc: "DVDISO"}
- {id: 16, cat: Movies/BluRay, desc: "BDMV"}
- {id: 17, cat: Movies/Other, desc: "LQRip"}
@@ -49,10 +48,8 @@ settings:
- name: cookie
type: text
label: Cookie
- - name: info
- type: info
- label: How to get the Cookie
- default: "- Login to this tracker with your browser
- Open the DevTools panel by pressing F12
- Select the Network tab
- Click on the Doc button (Chrome Browser) or HTML button (FireFox)
- Refresh the page by pressing F5
- Click on the first row entry
- Select the Headers tab on the Right panel
- Find 'cookie:' in the Request Headers section
- Select and Copy the whole cookie string (everything after 'cookie: ') and Paste here.
"
+ - name: info_cookie
+ type: info_cookie
- name: freeleech
type: checkbox
label: Search freeleech only
@@ -79,6 +76,7 @@ settings:
default: For best results, change the Torrents per page: setting to 100 on your account profile.
login:
+ # using the cookie method because the login page uses a custom captcha which is only displayed when you click a button first
method: cookie
inputs:
cookie: "{{ .Config.cookie }}"
@@ -86,6 +84,11 @@ login:
path: index.php
selector: a[href^="logout.php?key="]
+download:
+ selectors:
+ - selector: a[href^="download.php?id="]
+ attribute: href
+
search:
paths:
- path: torrents.php
@@ -94,7 +97,7 @@ search:
search: "{{ .Keywords }}"
# 0 incldead, 1 active, 2 dead
incldead: 0
- # 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x50%, 7 30%, 8 all promotions
+ # 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x50%, 7 30%, 8 custom promotion
spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
# 0 title, 1 descr, 3 uploader, 4 AniDB, 5 infohash
search_area: 0
@@ -114,22 +117,17 @@ search:
filters:
- name: querystring
args: cat
- title_default:
- selector: a[href^="details.php?id="]
title:
- selector: a[title][href^="details.php?id="]
- attribute: title
- optional: true
- default: "{{ .Result.title_default }}"
+ selector: a[href^="details.php?id="]
details:
selector: a[href^="details.php?id="]
attribute: href
download:
- selector: a[href^="download.php?id="]
+ selector: a[href^="details.php?id="]
attribute: href
date_elapsed:
# time type: time elapsed (default)
- selector: td:nth-child(4) > time[title]
+ selector: td.rowfollow:nth-child(3) > time[title]
attribute: title
optional: true
filters:
@@ -139,7 +137,7 @@ search:
args: "yyyy-MM-dd HH:mm:ss zzz"
date_added:
# time added
- selector: td:nth-child(4):not(time[title]) > time
+ selector: td.rowfollow:nth-child(3):not(time[title])
optional: true
filters:
- name: append
@@ -149,13 +147,13 @@ search:
date:
text: "{{ if or .Result.date_elapsed .Result.date_added }}{{ or .Result.date_elapsed .Result.date_added }}{{ else }}now{{ end }}"
size:
- selector: td:nth-child(5)
+ selector: td.rowfollow:nth-child(4)
seeders:
- selector: td:nth-child(6)
+ selector: td.rowfollow:nth-child(5)
leechers:
- selector: td:nth-child(7)
+ selector: td.rowfollow:nth-child(6)
grabs:
- selector: td:nth-child(8)
+ selector: td.rowfollow:nth-child(7)
downloadvolumefactor_custom:
selector: td.embedded > img.arrowdown + b
optional: true
@@ -170,19 +168,19 @@ search:
args: (.*)X
downloadvolumefactor:
case:
- img.pro_free: 0
- img.pro_free2up: 0
- img.pro_custom: "{{ .Result.downloadvolumefactor_custom }}"
- img.pro_50pctdown: 0.5
- img.pro_50pctdown2up: 0.5
- img.pro_30pctdown: 0.3
+ span.free: 0
+ span.twoupfree: 0
+ span.custompromotion: "{{ .Result.downloadvolumefactor_custom }}"
+ span.halfdown: 0.5
+ span.twouphalfdown: 0.5
+ span.thirtypercent: 0.3
"*": 1
uploadvolumefactor:
case:
- img.pro_50pctdown2up: 2
- img.pro_free2up: 2
- img.pro_2up: 2
- img.pro_custom: "{{ .Result.uploadvolumefactor_custom }}"
+ span.twouphalfdown: 2
+ span.twoupfree: 2
+ span.twoup: 2
+ span.custompromotion: "{{ .Result.uploadvolumefactor_custom }}"
"*": 1
description:
selector: td:nth-child(2)
diff --git a/mock-htpc/prowlarr/Definitions/u3c3.yml b/mock-htpc/prowlarr/Definitions/u3c3.yml
new file mode 100644
index 0000000..c7a60d0
--- /dev/null
+++ b/mock-htpc/prowlarr/Definitions/u3c3.yml
@@ -0,0 +1,83 @@
+---
+id: u3c3
+name: U3C3
+description: "U3C3 is a CHINESE Public tracker focused on 3X Eastern Asian media"
+language: zh-CN
+type: public
+encoding: UTF-8
+links:
+ - https://u3c3.com/
+ - https://a.u3c3.life/
+ - https://u001.25img.com/
+ - https://u002.25img.com/
+ - https://u003.25img.com/
+ - https://m0m0m0m.mnmnmnmnmn.com/ # numbers in subdomain can be m2m9m9m or less
+legacylinks:
+ - https://u3c3.in/
+
+caps:
+ categorymappings:
+ - {id: 國產原创, cat: XXX, desc: 國產原创}
+ - {id: U3C3, cat: XXX, desc: U3C3}
+ - {id: Video, cat: XXX, desc: Video}
+ - {id: Photo, cat: XXX/ImageSet, desc: Photo}
+ - {id: Book, cat: Books, desc: Book}
+ - {id: Game, cat: Console, desc: Game}
+ - {id: Software, cat: PC, desc: Software}
+ - {id: Other, cat: Other, desc: Other}
+
+ modes:
+ search: [q]
+ tv-search: [q, season, ep]
+ movie-search: [q]
+ music-search: [q]
+ book-search: [q]
+
+settings: []
+
+search:
+ paths:
+ - path: /
+ inputs:
+ search2: "{{ if .Keywords }}eelja3lfea{{ else }}{{ end }}"
+ search: "{{ .Keywords }}"
+
+ rows:
+ selector: table.torrent-list > tbody > tr:has(a[href^="/view?id="])
+ filters:
+ - name: andmatch
+
+ fields:
+ category:
+ selector: a[href^="/?type="]
+ attribute: title
+ title:
+ selector: a[href^="/view?id="]
+ attribute: title
+ details:
+ selector: a[href^="/view?id="]
+ attribute: href
+ download:
+ selector: a[href^="/torrent/"]
+ attribute: href
+ magnet:
+ selector: a[href^="magnet:?xt="]
+ attribute: href
+ date:
+ selector: td:nth-child(5)
+ filters:
+ - name: append
+ args: " +08:00" # CST
+ - name: dateparse
+ args: "yyyy-MM-dd HH:mm:ss zzz"
+ size:
+ selector: td:nth-child(4)
+ seeders:
+ text: 1
+ leechers:
+ text: 1
+ downloadvolumefactor:
+ text: 0
+ uploadvolumefactor:
+ text: 1
+# engine bt-btt
diff --git a/mock-htpc/prowlarr/Definitions/ubits.yml b/mock-htpc/prowlarr/Definitions/ubits.yml
index 1d485f4..93e8e04 100644
--- a/mock-htpc/prowlarr/Definitions/ubits.yml
+++ b/mock-htpc/prowlarr/Definitions/ubits.yml
@@ -199,4 +199,4 @@ search:
filters:
- name: prepend
args: "{{ .Result.description_verified }} "
-# NexusPHP v1.8.8 2023-09-25
+# NexusPHP v1.8.9 2024-03-16
diff --git a/mock-htpc/prowlarr/Definitions/ultrahd.yml b/mock-htpc/prowlarr/Definitions/ultrahd.yml
index fff33ce..f8fc0ad 100644
--- a/mock-htpc/prowlarr/Definitions/ultrahd.yml
+++ b/mock-htpc/prowlarr/Definitions/ultrahd.yml
@@ -28,10 +28,8 @@ settings:
- name: cookie
type: text
label: Cookie
- - name: info
- type: info
- label: How to get the Cookie
- default: "- Login to this tracker with your browser
- Open the DevTools panel by pressing F12
- Select the Network tab
- Click on the Doc button (Chrome Browser) or HTML button (FireFox)
- Refresh the page by pressing F5
- Click on the first row entry
- Select the Headers tab on the Right panel
- Find 'cookie:' in the Request Headers section
- Select and Copy the whole cookie string (everything after 'cookie: ') and Paste here.
"
+ - name: info_cookie
+ type: info_cookie
- name: freeleech
type: checkbox
label: Search freeleech only
@@ -62,6 +60,7 @@ settings:
default: "Inactive accounts (i.e. not logged in for a long time) are automatically deleted."
login:
+ # using cookie method because site regularly disables login page for certain events during the year
method: cookie
inputs:
cookie: "{{ .Config.cookie }}"
@@ -172,4 +171,4 @@ search:
description:
selector: td:nth-child(2)
remove: a, b, font, img, span
-# NexusPHP v1.8.8 2023-09-25
+# NexusPHP v1.8.14 2024-10-04
diff --git a/mock-htpc/prowlarr/Definitions/unionfansub.yml b/mock-htpc/prowlarr/Definitions/unionfansub.yml
index d5945e2..6b329c0 100644
--- a/mock-htpc/prowlarr/Definitions/unionfansub.yml
+++ b/mock-htpc/prowlarr/Definitions/unionfansub.yml
@@ -69,7 +69,7 @@ login:
quick_username: "{{ .Config.username }}"
quick_password: "{{ .Config.password }}"
action: do_login
- url: "https://torrent.unionfansub.com/"
+ url: "{{ .Config.sitelink }}"
quick_login: 1
quick_remember: yes
error:
@@ -98,8 +98,22 @@ search:
filters:
- name: querystring
args: cat
- title:
+ title_fansub:
+ selector: td:nth-child(2) span
+ optional: true
+ title_season:
selector: td:nth-child(2) a
+ filters:
+ - name: re_replace
+ args: ["(?i)\\b(\\d{1,4})([ºª])\\b", "$1"]
+ - name: re_replace
+ args: ["(?i)\\b(Temporada|Season) (\\d+)\\b", "S$2"]
+ - name: re_replace
+ args: ["(?i)\\b(\\d+)(st|nd|rd|th) (Season|Temporada)\\b", "S$1"]
+ - name: re_replace
+ args: ["(?i)\\b(Season|Temporada) (\\d+)(st|nd|rd|th)\\b", "S$2"]
+ title:
+ text: "{{ .Result.title_season }}{{ if .Result.title_fansub }} [{{ .Result.title_fansub }}]{{ else }}{{ end }}"
details:
selector: td:nth-child(2) a
attribute: href
diff --git a/mock-htpc/prowlarr/Definitions/uploadcx.yml b/mock-htpc/prowlarr/Definitions/uploadcx.yml
index 48ba060..ca5692f 100644
--- a/mock-htpc/prowlarr/Definitions/uploadcx.yml
+++ b/mock-htpc/prowlarr/Definitions/uploadcx.yml
@@ -1,7 +1,7 @@
---
id: uploadcx
name: upload.cx
-description: "upload.cx is a Private Torrent Tracker for MOVIES"
+description: "upload.cx (ULCX) is a Private Torrent Tracker for MOVIES / TV"
language: en-US
type: private
encoding: UTF-8
@@ -11,9 +11,11 @@ links:
caps:
categorymappings:
- {id: 1, cat: Movies, desc: "Movies"}
+ - {id: 2, cat: TV, desc: "TV"}
modes:
search: [q]
+ tv-search: [q, season, ep, imdbid, tvdbid, tmdbid]
movie-search: [q, imdbid, tmdbid]
settings:
@@ -28,6 +30,10 @@ settings:
type: checkbox
label: Search freeleech only
default: false
+ - name: single_file_release_use_filename
+ type: checkbox
+ label: Use filename as title for single file releases
+ default: true
- name: sort
type: select
label: Sort requested from site
@@ -47,7 +53,7 @@ settings:
- name: info_activity
type: info
label: Account Inactivity
- default: "All members of ULXC must engage with the site, through either logging in or navigating upload.cx. Any account that remains inactive for over four months will be deactivated and pruned after an additional four months of deactivation."
+ default: "All members must engage with the site, through either logging in or navigating upload.cx. Any account that remains inactive for over two months will be deactivated and pruned after an additional two months of deactivation."
login:
path: /api/torrents
@@ -57,11 +63,12 @@ login:
- selector: a[href*="/login"]
message:
text: "The API key was not accepted by {{ .Config.sitelink }}."
+ - selector: :root:contains("Account is Banned")
search:
paths:
- # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v7.0.0)
- # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L349
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
- path: "/api/torrents/filter"
response:
type: json
@@ -73,8 +80,11 @@ search:
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
name: "{{ .Keywords }}"
+ seasonNumber: "{{ .Query.Season }}"
+ episodeNumber: "{{ .Query.Ep }}"
imdbId: "{{ .Query.IMDBIDShort }}"
tmdbId: "{{ .Query.TMDBID }}"
+ tvdbId: "{{ .Query.TVDBID }}"
"free[]": "{{ if .Config.freeleech }}100{{ else }}{{ end }}"
sortField: "{{ .Config.sort }}"
sortDirection: "{{ .Config.type }}"
@@ -91,8 +101,15 @@ search:
fields:
category:
selector: category_id
- title:
+ title_optional:
selector: name
+ title_filename:
+ selector: "files[0].name"
+ optional: true
+ files:
+ selector: num_file
+ title:
+ text: "{{ if and (.Config.single_file_release_use_filename) (eq .Result.files \"1\") (.Result.title_filename) }}{{ .Result.title_filename }}{{ else }}{{ .Result.title_optional }}{{ end }}"
details:
selector: details_link
download:
@@ -108,19 +125,19 @@ search:
selector: imdb_id
tmdbid:
selector: tmdb_id
+ tvdbid:
+ selector: tvdb_id
genre:
selector: meta.genres
filters:
- - name: re_replace
- args: ["(?i)^None$", ""]
- name: re_replace
args: ["(?i)(Science Fiction)", "Science_Fiction"]
- name: re_replace
args: ["(?i)(TV Movie)", "TV_Movie"]
+ - name: replace
+ args: [" & ", "_&_"]
description:
text: "{{ .Result.genre }}"
- files:
- selector: num_file
seeders:
selector: seeders
leechers:
@@ -137,7 +154,12 @@ search:
args: "MM/dd/yyyy HH:mm:ss zzz"
size:
selector: size
- downloadvolumefactor:
+ _featured:
+ selector: featured
+ case:
+ False: "{{ .False }}"
+ True: "{{ .True }}"
+ downloadvolumefactor_freeleech:
# api returns 0%, 25%, 50%, 75%, 100%
selector: freeleech
case:
@@ -147,16 +169,20 @@ search:
75%: 0.25
100%: 0 # freeleech
"*": 0 # catch errors
- uploadvolumefactor:
+ downloadvolumefactor:
+ text: "{{ if .Result._featured }}0{{ else }}{{ .Result.downloadvolumefactor_freeleech }}{{ end }}"
+ uploadvolumefactor_double_upload:
# api returns False, True
selector: double_upload
case:
False: 1 # normal
True: 2 # double
-# global MR is 0.6 but torrents must be seeded for 2 days regardless of ratio
+ uploadvolumefactor:
+ text: "{{ if .Result._featured }}2{{ else }}{{ .Result.uploadvolumefactor_double_upload }}{{ end }}"
+# global MR is 0.4 but torrents must be seeded for 2 days regardless of ratio
# minimumratio:
-# text: 0.6
+# text: 0.4
minimumseedtime:
- # 2 day (as seconds = 2 x 24 x 60 x 60)
+ # 2 days (as seconds = 2 x 24 x 60 x 60)
text: 172800
-# json UNIT3D 7.2.5
+# json UNIT3D 8.3.3
diff --git a/mock-htpc/prowlarr/Definitions/upscalevault.yml b/mock-htpc/prowlarr/Definitions/upscalevault.yml
new file mode 100644
index 0000000..76756a0
--- /dev/null
+++ b/mock-htpc/prowlarr/Definitions/upscalevault.yml
@@ -0,0 +1,183 @@
+---
+id: upscalevault-api
+name: Upscale Vault (API)
+description: "Upscale Vault is a Private Torrent Tracker for AI upscaled and remastered MOVIES / TV"
+language: en-US
+type: private
+encoding: UTF-8
+links:
+ - https://upscalevault.com/
+
+caps:
+ categorymappings:
+ - {id: 1, cat: Movies, desc: "Movies"}
+ - {id: 2, cat: TV, desc: "TV"}
+ - {id: 3, cat: Audio/Video, desc: "Music Videos"}
+
+ modes:
+ search: [q]
+ tv-search: [q, season, ep, imdbid, tvdbid, tmdbid]
+ movie-search: [q, imdbid, tmdbid]
+ music-search: [q]
+
+settings:
+ - name: apikey
+ type: text
+ label: APIKey
+ - name: info_key
+ type: info
+ label: About your API key
+ default: "Find or Generate a new API Token by accessing your Upscale Vault account My Settings page and clicking on the API Key tab."
+ - name: freeleech
+ type: checkbox
+ label: Search freeleech only
+ default: false
+ - name: single_file_release_use_filename
+ type: checkbox
+ label: Use filename as title for single file releases
+ default: true
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: created_at
+ options:
+ created_at: created
+ seeders: seeders
+ size: size
+ name: title
+ - name: type
+ type: select
+ label: Order requested from site
+ default: desc
+ options:
+ desc: desc
+ asc: asc
+
+login:
+ path: /api/torrents
+ method: get
+ error:
+ - selector: a[href*="/login"]
+ message:
+ text: "The API key was not accepted by {{ .Config.sitelink }}."
+ - selector: :root:contains("Account is Banned")
+
+search:
+ paths:
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
+ - path: "/api/torrents/filter"
+ response:
+ type: json
+
+ headers:
+ Authorization: ["Bearer {{ .Config.apikey }}"]
+
+ inputs:
+ # if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
+ $raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
+ name: "{{ .Keywords }}"
+ seasonNumber: "{{ .Query.Season }}"
+ episodeNumber: "{{ .Query.Ep }}"
+ imdbId: "{{ .Query.IMDBIDShort }}"
+ tmdbId: "{{ .Query.TMDBID }}"
+ tvdbId: "{{ .Query.TVDBID }}"
+ "free[]": "{{ if .Config.freeleech }}100{{ else }}{{ end }}"
+ sortField: "{{ .Config.sort }}"
+ sortDirection: "{{ .Config.type }}"
+ perPage: 100
+
+ keywordsfilters:
+ - name: re_replace
+ args: ["\\.", " "]
+
+ rows:
+ selector: data
+ attribute: attributes
+
+ fields:
+ category:
+ selector: category_id
+ title_optional:
+ selector: name
+ title_filename:
+ selector: "files[0].name"
+ optional: true
+ files:
+ selector: num_file
+ title:
+ text: "{{ if and (.Config.single_file_release_use_filename) (eq .Result.files \"1\") (.Result.title_filename) }}{{ .Result.title_filename }}{{ else }}{{ .Result.title_optional }}{{ end }}"
+ details:
+ selector: details_link
+ download:
+ selector: download_link
+ infohash:
+ selector: info_hash
+ poster:
+ selector: meta.poster
+ filters:
+ - name: replace
+ args: ["https://via.placeholder.com/90x135", ""]
+ imdbid:
+ selector: imdb_id
+ tmdbid:
+ selector: tmdb_id
+ tvdbid:
+ selector: tvdb_id
+ genre:
+ selector: meta.genres
+ filters:
+ - name: re_replace
+ args: ["(?i)(Science Fiction)", "Science_Fiction"]
+ - name: replace
+ args: [" & ", "_&_"]
+ description:
+ text: "{{ .Result.genre }}"
+ seeders:
+ selector: seeders
+ leechers:
+ selector: leechers
+ grabs:
+ selector: times_completed
+ date:
+ # "created_at": "2021-10-18T00:34:50.000000Z" is returned by Newtonsoft.Json.Linq as 18/10/2021 00:34:50
+ selector: created_at
+ filters:
+ - name: append
+ args: " +00:00" # GMT
+ - name: dateparse
+ args: "MM/dd/yyyy HH:mm:ss zzz"
+ size:
+ selector: size
+ _featured:
+ selector: featured
+ case:
+ False: "{{ .False }}"
+ True: "{{ .True }}"
+ downloadvolumefactor_freeleech:
+ # api returns 0%, 25%, 50%, 75%, 100%
+ selector: freeleech
+ case:
+ 0%: 1 # not free
+ 25%: 0.75
+ 50%: 0.5
+ 75%: 0.25
+ 100%: 0 # freeleech
+ "*": 0 # catch errors
+ downloadvolumefactor:
+ text: "{{ if .Result._featured }}0{{ else }}{{ .Result.downloadvolumefactor_freeleech }}{{ end }}"
+ uploadvolumefactor_double_upload:
+ # api returns False, True
+ selector: double_upload
+ case:
+ False: 1 # normal
+ True: 2 # double
+ uploadvolumefactor:
+ text: "{{ if .Result._featured }}2{{ else }}{{ .Result.uploadvolumefactor_double_upload }}{{ end }}"
+# global MR is 0.5 but torrents must be seeded for 14 days regardless of ratio
+# minimumratio:
+# text: 0.5
+ minimumseedtime:
+ # 14 day (as seconds = 14 x 24 x 60 x 60)
+ text: 1209600
+# json UNIT3D 8.1.3
diff --git a/mock-htpc/prowlarr/Definitions/utopia.yml b/mock-htpc/prowlarr/Definitions/utopia.yml
index d0fb364..a20df37 100644
--- a/mock-htpc/prowlarr/Definitions/utopia.yml
+++ b/mock-htpc/prowlarr/Definitions/utopia.yml
@@ -30,6 +30,10 @@ settings:
type: checkbox
label: Search freeleech only
default: false
+ - name: single_file_release_use_filename
+ type: checkbox
+ label: Use filename as title for single file releases
+ default: true
- name: addukrainiantotitle
type: checkbox
label: Add UKR to end of all titles to improve language detection by Sonarr and Radarr. Will cause English-only results to be misidentified.
@@ -63,11 +67,12 @@ login:
- selector: a[href*="/login"]
message:
text: "The API key was not accepted by {{ .Config.sitelink }}."
+ - selector: :root:contains("Account is Banned")
search:
paths:
- # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v7.0.0)
- # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L349
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
- path: "/api/torrents/filter"
response:
type: json
@@ -100,8 +105,15 @@ search:
fields:
category:
selector: category_id
- title:
+ title_optional:
selector: name
+ title_filename:
+ selector: "files[0].name"
+ optional: true
+ files:
+ selector: num_file
+ title:
+ text: "{{ if and (.Config.single_file_release_use_filename) (eq .Result.files \"1\") (.Result.title_filename) }}{{ .Result.title_filename }}{{ else }}{{ .Result.title_optional }}{{ end }}"
filters:
- name: append
args: "{{ if .Config.addukrainiantotitle }} UKR{{ else }}{{ end }}"
@@ -125,8 +137,6 @@ search:
genre:
selector: meta.genres
filters:
- - name: re_replace
- args: ["(?i)^None$", ""]
- name: re_replace
args: ["(?i)(Екшн і Пригоди)", "Екшн_і_Пригоди"]
- name: re_replace
@@ -137,8 +147,6 @@ search:
args: ["(?i)(Політика та війна)", "Політика_та_війна"]
description:
text: "{{ .Result.genre }}"
- files:
- selector: num_file
seeders:
selector: seeders
leechers:
@@ -155,7 +163,12 @@ search:
args: "MM/dd/yyyy HH:mm:ss zzz"
size:
selector: size
- downloadvolumefactor:
+ _featured:
+ selector: featured
+ case:
+ False: "{{ .False }}"
+ True: "{{ .True }}"
+ downloadvolumefactor_freeleech:
# api returns 0%, 25%, 50%, 75%, 100%
selector: freeleech
case:
@@ -165,16 +178,20 @@ search:
75%: 0.25
100%: 0 # freeleech
"*": 0 # catch errors
- uploadvolumefactor:
+ downloadvolumefactor:
+ text: "{{ if .Result._featured }}0{{ else }}{{ .Result.downloadvolumefactor_freeleech }}{{ end }}"
+ uploadvolumefactor_double_upload:
# api returns False, True
selector: double_upload
case:
False: 1 # normal
True: 2 # double
+ uploadvolumefactor:
+ text: "{{ if .Result._featured }}2{{ else }}{{ .Result.uploadvolumefactor_double_upload }}{{ end }}"
# global MR is 0.4 but torrents must be seeded for 3 days regardless of ratio
# minimumratio:
# text: 0.4
minimumseedtime:
# 3 days (as seconds = 3 x 24 x 60 x 60)
text: 259200
-# json UNIT3D 7.0.3
+# json UNIT3D 8.1.3
diff --git a/mock-htpc/prowlarr/Definitions/vault-network.yml b/mock-htpc/prowlarr/Definitions/vault-network.yml
new file mode 100644
index 0000000..546310b
--- /dev/null
+++ b/mock-htpc/prowlarr/Definitions/vault-network.yml
@@ -0,0 +1,184 @@
+---
+id: vault-network
+name: Vault network
+description: "Vault network is a Private Torrent Tracker for MOVIES / TV / GENERAL"
+language: en-US
+type: private
+encoding: UTF-8
+links:
+ - https://vault-network.net/
+
+caps:
+ categorymappings:
+ - {id: 5, cat: PC/Mobile-Android, desc: "Apps Android"}
+ - {id: 4, cat: PC/Mac, desc: "Apps Mac"}
+ - {id: 3, cat: PC/0day, desc: "Apps Windows"}
+ - {id: 35, cat: Audio, desc: "Audio Boxsets"}
+ - {id: 33, cat: Audio, desc: "Audio Discography"}
+ - {id: 18, cat: Audio, desc: "Audio DMC"}
+ - {id: 15, cat: Audio/Lossless, desc: "Audio flac"}
+ - {id: 19, cat: Audio, desc: "Audio Mastermix"}
+ - {id: 14, cat: Audio/MP3, desc: "Audio mp3"}
+ - {id: 16, cat: Audio, desc: "Audio Packs / Weekly Packs"}
+ - {id: 17, cat: Audio/Video, desc: "Audio Video"}
+ - {id: 31, cat: Audio/Lossless, desc: "Audio WAV"}
+ - {id: 23, cat: Audio/Audiobook, desc: "Books Audio Books"}
+ - {id: 24, cat: Books/EBook, desc: "Books eBooks"}
+ - {id: 25, cat: Books/Mags, desc: "Books Magazines"}
+ - {id: 37, cat: Other, desc: "Christmas"}
+ - {id: 38, cat: Audio, desc: "Christmas Audio"}
+ - {id: 39, cat: Movies, desc: "Christmas Movie"}
+ - {id: 40, cat: TV, desc: "Christmas TV"}
+ - {id: 29, cat: Console, desc: "Games"}
+ - {id: 42, cat: PC/Games, desc: "Games PC"}
+ - {id: 43, cat: Console/Wii, desc: "Games Wii"}
+ - {id: 28, cat: Audio, desc: "Karaoke"}
+ - {id: 7, cat: Movies/HD, desc: "Movie 1080p"}
+ - {id: 6, cat: Movies/UHD, desc: "Movie 4K"}
+ - {id: 8, cat: Movies/HD, desc: "Movie 720p"}
+ - {id: 11, cat: Movies, desc: "Movie Animated"}
+ - {id: 12, cat: Movies, desc: "Movie Boxsets"}
+ - {id: 10, cat: Movies/SD, desc: "Movie Cam/TS"}
+ - {id: 13, cat: TV/Documentary, desc: "Movie Documentaries"}
+ - {id: 9, cat: Movies/SD, desc: "Movie SD"}
+ - {id: 30, cat: TV/Sport, desc: "Sport"}
+ - {id: 21, cat: TV/Documentary, desc: "TV Documentaries"}
+ - {id: 20, cat: TV, desc: "TV Episodes"}
+ - {id: 22, cat: TV, desc: "TV Packs"}
+ - {id: 27, cat: Other, desc: "VIP"}
+
+ modes:
+ search: [q]
+ tv-search: [q, season, ep]
+ movie-search: [q]
+ music-search: [q]
+ book-search: [q]
+
+settings:
+ - name: username
+ type: text
+ label: Username
+ - name: password
+ type: password
+ label: Password
+ - name: freeleech
+ type: checkbox
+ label: Filter freeleech only
+ default: false
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: added
+ options:
+ added: created
+ seeders: seeders
+ size: size
+ name: title
+ - name: type
+ type: select
+ label: Order requested from site
+ default: desc
+ options:
+ desc: desc
+ asc: asc
+ - name: info_tpp
+ type: info
+ label: Results Per Page
+ default: For best results, change the Torrents per page: setting to 40 on your account profile. The default is 20.
+
+login:
+ path: takelogin.php
+ method: post
+ inputs:
+ username: "{{ .Config.username }}"
+ password: "{{ .Config.password }}"
+ logout: ""
+ error:
+ - selector: table:contains("error has occured")
+ test:
+ path: browse.php
+ selector: a[href*="/logout.php"]
+
+download:
+ before:
+ path: takethanks.php
+ method: post
+ inputs:
+ torrentid: "{{ .DownloadUri.Query.id }}"
+ selectors:
+ - selector: a[href*="download.php?id="]
+ attribute: href
+
+search:
+ paths:
+ - path: browse.php
+ keywordsfilters:
+ - name: re_replace
+ args: ["[\\s]+", "%"]
+ inputs:
+ do: search
+ keywords: "{{ .Keywords }}"
+ # t_name, t_description, t_both, t_uploader, t_genre
+ search_type: t_name
+ category: 0 # multi cat search not supported
+ # yes, no
+ include_dead_torrents: yes
+ sort: "{{ if .Config.freeleech }}free{{ else }}{{ .Config.sort }}{{ end }}"
+ order: "{{ if .Config.freeleech }}asc{{ else }}{{ .Config.type }}{{ end }}"
+
+ rows:
+ selector: "table.sortable tr:has(a[href*=\"/download.php?id=\"]){{ if .Config.freeleech }}:has(img[src$=\"/freedownload.gif\"]){{ else }}{{ end }}"
+
+ fields:
+ category:
+ selector: a[href*="/browse.php?category="]
+ attribute: href
+ filters:
+ - name: querystring
+ args: category
+ title_default:
+ selector: a[href*="/details.php?id="]
+ title:
+ selector: div.tooltip-content > div
+ optional: true
+ default: "{{ .Result.title_default }}"
+ details:
+ selector: a[href*="/details.php?id="]
+ attribute: href
+ download:
+ selector: a[href*="/details.php?id="]
+ attribute: href
+ poster:
+ selector: div.tooltip-content > img
+ attribute: src
+ date:
+ selector: td:nth-child(2)
+ # auto adjusted by site account profile
+ filters:
+ - name: regexp
+ args: "(\\d{2}-\\d{2}-\\d{4} \\d{2}:\\d{2})"
+ - name: dateparse
+ args: "dd-MM-yyyy HH:mm"
+ size:
+ selector: td:nth-child(5)
+ grabs:
+ selector: td:nth-child(6)
+ seeders:
+ selector: td:nth-child(7)
+ leechers:
+ selector: td:nth-child(8)
+ downloadvolumefactor:
+ case:
+ img[src$="freedownload.gif"]: 0
+ img[src$="silverdownload.gif"]: 0.5
+ "*": 1
+ uploadvolumefactor:
+ case:
+ img[src$="x2.gif"]: 2
+ "*": 1
+ minimumratio:
+ text: 1.0
+ minimumseedtime:
+ # 1 day (as seconds = 1 x 24 x 60 x 60)
+ text: 86400
+# TS Special Edition v.8.0
diff --git a/mock-htpc/prowlarr/Definitions/videoteka.yml b/mock-htpc/prowlarr/Definitions/videoteka.yml
new file mode 100644
index 0000000..c4bedfa
--- /dev/null
+++ b/mock-htpc/prowlarr/Definitions/videoteka.yml
@@ -0,0 +1,215 @@
+---
+id: videoteka
+name: ViDEOTEKA
+description: "ViDEOTEKA (VT) is a SLOVENIAN Semi-Private Torrent Tracker for MOVIES / TV"
+language: sl-SI
+type: semi-private
+encoding: UTF-8
+links:
+ - http://videoteka.org/ # https is not supported
+
+caps:
+ categorymappings:
+ - {id: 1, cat: Movies, desc: "FILMI"}
+ - {id: 50, cat: Movies/WEB-DL, desc: "WEBRip-1080"}
+ - {id: 17, cat: Movies/WEB-DL, desc: "WEBRip-720"}
+ - {id: 51, cat: Movies/WEB-DL, desc: "WEBRip"}
+ - {id: 48, cat: Movies/BluRay, desc: "BluRay-1080"}
+ - {id: 49, cat: Movies/BluRay, desc: "BluRay-720"}
+ - {id: 52, cat: Movies/BluRay, desc: "BRRip"}
+ - {id: 44, cat: Movies/BluRay, desc: "BDRip"}
+ - {id: 32, cat: Movies/DVD, desc: "DVDRip"}
+ - {id: 36, cat: Movies/SD, desc: "TVRip"}
+ - {id: 43, cat: Movies/HD, desc: "HDRip"}
+ - {id: 16, cat: Movies/HD, desc: "HDTV"}
+ - {id: 31, cat: Movies/SD, desc: "HDSD"}
+ - {id: 46, cat: Movies/DVD, desc: "DVD"}
+ - {id: 45, cat: Movies/SD, desc: "XviD"}
+ - {id: 38, cat: TV, desc: "TV - Serija"}
+ - {id: 35, cat: TV/Documentary, desc: "Dokumentarni"}
+ - {id: 40, cat: TV, desc: "Slo"}
+ - {id: 33, cat: TV/Anime, desc: "Risanke"}
+ - {id: 34, cat: XXX, desc: "xxx"}
+ - {id: 6, cat: PC, desc: "PROGRAMI"}
+ - {id: 18, cat: PC, desc: "Programi"}
+ - {id: 47, cat: Console, desc: "Igre"}
+ - {id: 37, cat: Books/EBook, desc: "E-Knjiga"}
+ - {id: 19, cat: Other, desc: "Ostalo"}
+ - {id: 39, cat: PC/Mobile-Android, desc: "Android App"}
+ - {id: 7, cat: Audio, desc: "GLASBA"}
+ - {id: 20, cat: Audio/Video, desc: "Video"}
+ - {id: 21, cat: Audio, desc: "Glasba"}
+
+ modes:
+ search: [q]
+ tv-search: [q, season, ep]
+ movie-search: [q]
+ music-search: [q]
+ book-search: [q]
+
+settings:
+ - name: username
+ type: text
+ label: Username
+ - name: password
+ type: password
+ label: Password
+ - name: freeleech
+ type: checkbox
+ label: Filter freeleech only
+ default: false
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: added
+ options:
+ added: created
+ seeders: seeders
+ size: size
+ - name: type
+ type: select
+ label: Order requested from site
+ default: desc
+ options:
+ desc: desc
+ asc: asc
+ - name: info
+ type: info
+ label: Layout
+ default: "- Only the Classic list is supported.
- Make sure to set the Torrent Listing (Prikaz torrentov) option in your profile to Classic
- Using the Modern list will prevent results
"
+
+login:
+ path: ?p=home&pid=1
+ method: form
+ form: form#loginbox_form
+ submitpath: /ajax/login.php
+ inputs:
+ action: login
+ loginbox_membername: "{{ .Config.username }}"
+ loginbox_password: "{{ .Config.password }}"
+ loginbox_remember: 1
+ selectorinputs:
+ securitytoken:
+ selector: "script:contains(\"stKey: \")"
+ filters:
+ - name: regexp
+ args: "stKey: \"(.+?)\","
+ error:
+ - selector: ":contains(\"-ERROR-\")"
+ test:
+ path: ?p=home&pid=1
+ selector: a#logout
+
+search:
+ paths:
+ - path: /
+ keywordsfilters:
+ - name: re_replace # add brackets to year on searchquery if missing
+ args: ["\\(*((19|20)\\d{2})\\)*", "($1)"]
+ - name: re_replace
+ args: ["[^\\w\\d\\(\\)]+", "%"]
+ inputs:
+ p: torrents
+ pid: 32
+ $raw: "{{ range .Categories }}cid[]={{.}}&{{end}}"
+ keywords: "{{ .Keywords }}"
+ # name, description, both, uploader
+ search_type: name
+ "sortOptions[sortBy]": "{{ .Config.sort }}"
+ "sortOptions[sortOrder]": "{{ .Config.type }}"
+ error:
+ - selector: div.error:not(:contains("Nič ni najdeno.")):not(:contains("There are no results found."))
+
+ rows:
+ selector: "table#torrents_table_classic tr:has(td.torrent_name){{ if .Config.freeleech }}:has(img[src$=\"/torrent_free.png\"]){{ else }}{{ end }}"
+ filters:
+ - name: andmatch
+
+ fields:
+ category:
+ selector: a[href*="?p=torrents"][href*="&cid="]
+ attribute: href
+ filters:
+ - name: querystring
+ args: cid
+ title:
+ selector: a[href*="?p=torrents"][href*="&action=details"]
+ details:
+ selector: a[href*="?p=torrents"][href*="&action=details"]
+ attribute: href
+ download:
+ selector: a[href*="?p=torrents"][href*="&action=download"]
+ attribute: href
+ magnet:
+ selector: a[href^="magnet:?xt="]
+ attribute: href
+ poster:
+ selector: a[rel="fancybox"]
+ attribute: href
+ imdbid:
+ selector: a[href*="imdb.com/title/tt"]
+ attribute: href
+ size:
+ selector: a[rel="torrent_size"]
+ seeders:
+ selector: a[rel="torrent_seeders"]
+ leechers:
+ selector: a[rel="torrent_leechers"]
+ grabs:
+ selector: a[rel="times_completed"]
+ downloadvolumefactor:
+ case:
+ "img[src*=\"torrent_free.png\"]": 0
+ "*": 1
+ uploadvolumefactor:
+ text: 1
+ date_day:
+ selector: td.torrent_name:contains("day"), td.torrent_name:contains("Nedelja"), td.torrent_name:contains("Ponedeljek"), td.torrent_name:contains("Torek"), td.torrent_name:contains("Sreda"), td.torrent_name:contains("Četrtek"), td.torrent_name:contains("Petek"), td.torrent_name:contains("Sobota"), td.torrent_name:contains("Danes"), td.torrent_name:contains("Včeraj")
+ # auto adjusted by site account profile
+ optional: true
+ remove: span, a, br
+ filters:
+ - name: replace
+ args: ["Uploaded ", ""]
+ - name: replace
+ args: [" by", ""]
+ - name: replace
+ args: [" naložil", ""] # Uploaded
+ - name: replace
+ args: ["ob ", "at "] # at
+ - name: replace
+ args: ["Danes", "Today"]
+ - name: replace
+ args: ["Včeraj", "Yesterday"]
+ - name: replace
+ args: ["Ponedeljek", "Monday"]
+ - name: replace
+ args: ["Torek", "Tuesday"]
+ - name: replace
+ args: ["Sreda", "Wednesday"]
+ - name: replace
+ args: ["Četrtek", "Thursday"]
+ - name: replace
+ args: ["Petek", "Friday"]
+ - name: replace
+ args: ["Sobota", "Saturday"]
+ - name: replace
+ args: ["Nedelja", "Sunday"]
+ - name: fuzzytime
+ date_year:
+ selector: td.torrent_name:contains("-")
+ # auto adjusted by site account profile
+ optional: true
+ remove: span, a, br
+ filters:
+ - name: replace
+ args: ["Uploaded ", ""]
+ - name: replace
+ args: [" by", ""]
+ - name: replace
+ args: [" naložil", ""] # Uploaded
+ - name: dateparse
+ args: "dd-MM-yyyy HH:mm"
+ date:
+ text: "{{ if or .Result.date_day .Result.date_year }}{{ or .Result.date_day .Result.date_year }}{{ else }}now{{ end }}"
+# TSUE 2.1
diff --git a/mock-htpc/prowlarr/Definitions/vsthouse.yml b/mock-htpc/prowlarr/Definitions/vsthouse.yml
index 45c1109..7e72714 100644
--- a/mock-htpc/prowlarr/Definitions/vsthouse.yml
+++ b/mock-htpc/prowlarr/Definitions/vsthouse.yml
@@ -6,7 +6,9 @@ language: ru-RU
type: public
encoding: UTF-8
links:
- - http://vsthouse.ru/ # site forces http
+ - https://vsthouse.ru/
+legacylinks:
+ - http://vsthouse.ru/
caps:
categories:
diff --git a/mock-htpc/prowlarr/Definitions/world-of-tomorrow.yml b/mock-htpc/prowlarr/Definitions/world-of-tomorrow.yml
index ae9f74d..9c41987 100644
--- a/mock-htpc/prowlarr/Definitions/world-of-tomorrow.yml
+++ b/mock-htpc/prowlarr/Definitions/world-of-tomorrow.yml
@@ -13,56 +13,51 @@ legacylinks:
caps:
categorymappings:
- - {id: 1014, cat: Audio/MP3, desc: "Alben / Sampler / Singles"}
- - {id: 1087, cat: TV/Anime, desc: "Anime"}
- - {id: 1105, cat: TV/Anime, desc: "Anime Serien"}
- - {id: 1018, cat: PC, desc: "Appz-Sonstige"}
- - {id: 1064, cat: TV/Documentary, desc: "Dokumentation"}
- - {id: 1019, cat: Books/EBook, desc: "Ebooks"}
- - {id: 1111, cat: XXX, desc: "Englisch Section"}
- - {id: 1070, cat: Audio/Lossless, desc: "Flac"}
- - {id: 1075, cat: TV/Sport, desc: "Formel 1"}
- - {id: 1074, cat: TV/Sport, desc: "Fussball"}
- - {id: 1083, cat: TV/Sport, desc: "Games"}
- - {id: 1036, cat: Audio/Audiobook, desc: "Hörbuch"}
- - {id: 1101, cat: TV, desc: "Kids"}
- - {id: 1005, cat: Console, desc: "Konsolen-Games"}
- - {id: 1107, cat: PC/Mac, desc: "MAC-Programme"}
- - {id: 1091, cat: Movies, desc: "Movies"}
- - {id: 1066, cat: Movies, desc: "Movie-Packs"}
- - {id: 1011, cat: Movies/DVD, desc: "Movies DVD / HD2DVD"}
- - {id: 1089, cat: Movies/UHD, desc: "Movies UHD"}
- - {id: 1049, cat: Movies/HD, desc: "Movies-1080p"}
- - {id: 1090, cat: Movies/3D, desc: "Movies-3-D"}
- - {id: 1048, cat: Movies/HD, desc: "Movies-720p"}
- - {id: 1047, cat: Movies/BluRay, desc: "Movies-Bluray"}
- - {id: 1060, cat: Movies/HD, desc: "Movies-HDTV"}
- - {id: 1062, cat: Movies/SD, desc: "Movies-SD"}
- - {id: 1069, cat: Audio, desc: "Musik"}
- - {id: 1072, cat: Audio, desc: "Musik-Packs"}
- - {id: 1093, cat: Audio/Video, desc: "Musik-Videos"}
- - {id: 1004, cat: PC/Games, desc: "PC-Games"}
- - {id: 1068, cat: PC, desc: "Programme"}
- - {id: 1076, cat: TV, desc: "Serien"}
- - {id: 1079, cat: TV/HD, desc: "Serien-1080P"}
- - {id: 1095, cat: TV/UHD, desc: "Serien-2160P"}
- - {id: 1078, cat: TV/HD, desc: "Serien-720P"}
- - {id: 1100, cat: TV/HD, desc: "Serien-Packs-HD"}
- - {id: 1016, cat: TV/SD, desc: "Serien-Packs-SD"}
- - {id: 1077, cat: TV/SD, desc: "Serien-SD"}
- - {id: 1096, cat: Other, desc: "Sonstiges"}
- - {id: 1071, cat: Audio, desc: "Soundtracks"}
- - {id: 1073, cat: TV/Sport, desc: "Sport"}
- - {id: 1092, cat: Console, desc: "Wimmelbild"}
- - {id: 1028, cat: PC, desc: "Windows-Programme"}
- - {id: 1108, cat: Movies, desc: "WOTT-Filme"}
- - {id: 1108, cat: TV, desc: "WOTT-Filme"}
- - {id: 1110, cat: Audio, desc: "WOTT-MUSIK"}
- - {id: 1109, cat: TV, desc: "WOTT-SERIEN"}
- - {id: 1023, cat: TV/Sport, desc: "Wrestling"}
- - {id: 1088, cat: XXX, desc: "XXX"}
- - {id: 1106, cat: XXX/ImageSet, desc: "XXX Bilder"}
- - {id: 1102, cat: XXX/Other, desc: "XXX HENTAI"}
+ - {id: 1107, cat: PC/Mac, desc: "Apps: MAC"}
+ - {id: 1018, cat: PC, desc: "Apps: Sonstige"}
+ - {id: 1028, cat: PC/0day, desc: "Apps: Windows"}
+ - {id: 1036, cat: Audio/Audiobook, desc: "Audio: Hörbücher"}
+ - {id: 1072, cat: Audio, desc: "Audio: Musik-Packs"}
+ - {id: 1093, cat: Audio/Video, desc: "Audio: Musik-Videos"}
+ - {id: 1070, cat: Audio/Lossless, desc: "Audio: Musik/Flac"}
+ - {id: 1014, cat: Audio/MP3, desc: "Audio: Musik/MP3"}
+ - {id: 1071, cat: Audio, desc: "Audio: Soundtracks"}
+ - {id: 1110, cat: Audio, desc: "Audio: WOTT"}
+ - {id: 1049, cat: Movies/HD, desc: "Filme: 1080p"}
+ - {id: 1090, cat: Movies/3D, desc: "Filme: 3D"}
+ - {id: 1048, cat: Movies/HD, desc: "Filme: 720p"}
+ - {id: 1087, cat: TV/Anime, desc: "Filme: Anime"}
+ - {id: 1047, cat: Movies/BluRay, desc: "Filme: Bluray"}
+ - {id: 1011, cat: Movies/DVD, desc: "Filme: DVD / HD2DVD"}
+ - {id: 1060, cat: Movies/HD, desc: "Filme: HDTV"}
+ - {id: 1091, cat: Movies, desc: "Filme: Packs"}
+ - {id: 1062, cat: Movies/SD, desc: "Filme: SD"}
+ - {id: 1089, cat: Movies/UHD, desc: "Filme: UHD"}
+ - {id: 1108, cat: TV, desc: "Filme: WOTT"}
+ - {id: 1108, cat: Movies, desc: "Filme: WOTT"}
+ - {id: 1079, cat: TV/HD, desc: "Serien: 1080P"}
+ - {id: 1095, cat: TV/UHD, desc: "Serien: 2160P"}
+ - {id: 1078, cat: TV/HD, desc: "Serien: 720P"}
+ - {id: 1105, cat: TV/Anime, desc: "Serien: Anime"}
+ - {id: 1100, cat: TV/HD, desc: "Serien: Packs HD"}
+ - {id: 1016, cat: TV/SD, desc: "Serien: Packs-SD"}
+ - {id: 1077, cat: TV/SD, desc: "Serien: SD"}
+ - {id: 1109, cat: TV, desc: "Serien: WOTT"}
+ - {id: 1064, cat: TV/Documentary, desc: "Sonstiges: Dokumentation"}
+ - {id: 1019, cat: Books/EBook, desc: "Sonstiges: Ebooks"}
+ - {id: 1111, cat: Books/EBook, desc: "Sonstiges: English Section"}
+ - {id: 1101, cat: TV, desc: "Sonstiges: Kids"}
+ - {id: 1096, cat: Other, desc: "Sonstiges: Sonstiges"}
+ - {id: 1092, cat: Console, desc: "Sonstiges: Wimmelbild"}
+ - {id: 1088, cat: XXX, desc: "Sonstiges: XXX"}
+ - {id: 1106, cat: XXX/ImageSet, desc: "Sonstiges: XXX Bilder"}
+ - {id: 1102, cat: XXX/Other, desc: "Sonstiges: XXX HENTAI"}
+ - {id: 1005, cat: Console, desc: "Spiele: Konsolen"}
+ - {id: 1004, cat: PC/Games, desc: "Spiele: Windows"}
+ - {id: 1075, cat: TV/Sport, desc: "Sport: Formel 1"}
+ - {id: 1074, cat: TV/Sport, desc: "Sport: Fussball"}
+ - {id: 1073, cat: TV/Sport, desc: "Sport: Sport"}
+ - {id: 1023, cat: TV/Sport, desc: "Sport: Wrestling"}
modes:
search: [q]
@@ -83,36 +78,32 @@ settings:
label: Pin
- name: freeleech
type: checkbox
- label: Filter FreeLeech only
+ label: Search FreeLeech
default: false
- name: onlyupload
type: checkbox
- label: Filter OnlyUpload only
+ label: Search OnlyUpload
default: false
- name: info_free
type: info
label: About Freeleech and OnlyUpload at World-of-Tomorrow
- default: "- FreeLeech are torrents where neither the download or upload is counted. (On the Prowlarr search results page these are tagged as NoUpload).
- OnlyUpload are torrents where download is not counted but upload is. Good for building your Ratio up. (On the Prowlarr search results page these are tagged as Freeleech).
"
- - name: sort
+ default: "- FreeLeech are torrents where neither the download or upload is counted.
- OnlyUpload are torrents where download is not counted but upload is. Good for building your Ratio up.
"
+ - name: sortby
type: select
label: Sort requested from site
default: added
options:
added: created
- seeds: seeders
+ seeders: seeders
size: size
name: title
- - name: type
+ - name: typeby
type: select
label: Order requested from site
- default: desc
+ default: DESC
options:
- desc: desc
- asc: asc
- - name: info_tpp
- type: info
- label: Results Per Page
- default: For best results, change the Torrents pro Seite: setting to 100 on your Control Panel. The default is 15.
+ DESC: desc
+ ASC: asc
- name: info_activity
type: info
label: Account Inactivity
@@ -129,73 +120,90 @@ login:
- selector: table.tableinborder:contains("Login fehlgeschlagen!")
test:
path: index.php
- selector: a[href="logout.php"]
+ selector: a[href="logout.php"], title:contains("APRILSCHERZ")
search:
paths:
- - path: browse.php
+ # POST https://w-o-t.pro/search_query.php
+ # name=&categories[]=1107&maxAge=added&sortBy=added&sortByType=DESC&myTorrents=no&highlight=no&onlyupload=no&freeleech=no&offset=0&limit=10
+ - path: search_query.php
+ method: post
+
inputs:
- $raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
- showsearch: 1
- search: "{{ .Keywords }}"
- # 0 active, 1 all, 2 dead
- incldead: 1
- orderby: "{{ .Config.sort }}"
- sort: "{{ .Config.type }}"
+ name: "{{ .Keywords }}"
+ $raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
+ maxAge: added
+ sortBy: "{{ .Config.sortby }}"
+ sortByType: "{{ .Config.typeby }}"
+ myTorrents: no
+ highlight: no
+ onlyupload: "{{ if .Config.onlyupload }}yes{{ else }}no{{ end }}"
+ freeleech: "{{ if .Config.freeleech }}yes{{ else }}no{{ end }}"
+ limit: 100
rows:
- selector: "table.tableinborder[border=\"0\"][cellspacing=\"1\"][cellpadding=\"4\"][style=\"width:100%\"] > tbody > tr:has(a[href^=\"download.php\"]){{ if .Config.freeleech }}:has(img[src=\"pic/freeleech.gif\"]){{ else }}{{ end }}{{ if .Config.onlyupload }}:has(img[src=\"pic/oupic.gif\"]){{ else }}{{ end }}"
+ selector: div.container
fields:
- category:
- selector: a[href^="browse.php?cat="]
- attribute: href
+ categorydesc:
+ selector: div.category
+ attribute: data-content
filters:
- - name: querystring
- args: cat
+ - name: re_replace
+ args: [" \\[.+?\\]", ""]
title:
- selector: a[href^="details.php?id="] > b
+ selector: div.title a
details:
- selector: a[href^="details.php?id="]
+ selector: div.title a
attribute: href
download:
selector: a[href^="download.php?torrent="]
attribute: href
poster:
- selector: a[href^="details.php?id="]
- attribute: onMouseOver
- filters:
- - name: regexp
- args: "src=(.+?) "
- description:
- selector: td:nth-child(2) > img
- attribute: title
- grabs:
- selector: td:nth-last-child(8)
- date:
- selector: td:nth-last-child(6)
- filters:
- - name: append
- args: " +01:00" # CET
- - name: dateparse
- args: "dd.MM.yyyyHH:mm:ss zzz"
+ selector: img
+ attribute: src
+ imdbid:
+ selector: a[href*="imdb.com/title/tt"]
+ attribute: href
size:
- selector: td:nth-last-child(5)
+ selector: span:has(i.fa-hdd)
+ grabs:
+ selector: span:has(i.fa-download)
seeders:
- selector: td:nth-last-child(4)
+ selector: span:has(i.fa-circle-chevron-up)
leechers:
- selector: td:nth-last-child(3)
+ selector: span:has(i.fa-circle-chevron-down)
+ date:
+ selector: span:has(i.fa-clock)
+ filters:
+ - name: re_replace
+ args: ["(?i)(vor)", " ago"]
+ - name: re_replace
+ args: ["(?i)(sekunden|sekunde)", "seconds"]
+ - name: re_replace
+ args: ["(?i)(minuten|minute)", "minutes"]
+ - name: re_replace
+ args: ["(?i)(stunden|stunde)", "hours"]
+ - name: re_replace
+ args: ["(?i)(tagen|tag)", "days"]
+ - name: re_replace
+ args: ["(?i)(wochen|woche)", "weeks"]
+ - name: re_replace
+ args: ["(?i)(monaten|monat)", "months"]
+ - name: re_replace
+ args: ["(?i)(jahren|jahr)", " years"]
+ - name: timeago
downloadvolumefactor:
case:
- img[src="pic/oupic.gif"]: 0 # only upload is counted
+ div.status-button-onlyupload: 0 # only upload is counted
"*": 1
uploadvolumefactor:
case:
- img[src="pic/freeleech.gif"]: 0 # nothing is counted
+ div.status-button-freeleech: 0 # nothing is counted
"*": 1
minimumratio:
text: 0.7
minimumseedtime:
# 3 days (as seconds = 3 x 24 x 60 x 60)
text: 259200
-# WoT Reworked v8.2.1
+# WoT Reworked v8.3.7
diff --git a/mock-htpc/prowlarr/Definitions/wukong.yml b/mock-htpc/prowlarr/Definitions/wukong.yml
index 82c2997..7b2941b 100644
--- a/mock-htpc/prowlarr/Definitions/wukong.yml
+++ b/mock-htpc/prowlarr/Definitions/wukong.yml
@@ -67,7 +67,7 @@ settings:
- name: info_activity
type: info
label: Account Inactivity
- default: "Cherish your user account. Inactive accounts would be deleted based on the following rules:- Veteran User or above would never be deleted
- Elite User or above would never be deleted if parked (at User CP)
- Parked accounts would be deleted if users have not logged in for more than 400 days in a row
- Un-parked accounts would be deleted if users have not logged in for more than 150 days in a row
- Accounts with both uploaded and downloaded amount being 0 would be deleted if users have not logged in for more than 100 days in a row.
"
+ default: "Cherish your user account. Inactive accounts would be deleted based on the following rules:- Veteran User or above would never be deleted
- Elite User or above would never be deleted if parked (at User CP)
- Parked accounts would be deleted if users have not logged in for more than 400 days in a row
- Un-parked accounts would be deleted if users have not logged in for more than 365 days in a row
- Accounts with both uploaded and downloaded amount being 0 would be deleted if users have not logged in for more than 100 days in a row.
"
login:
path: login.php
diff --git a/mock-htpc/prowlarr/Definitions/xider-torrent.yml b/mock-htpc/prowlarr/Definitions/xider-torrent.yml
index d41ce6c..2004d5d 100644
--- a/mock-htpc/prowlarr/Definitions/xider-torrent.yml
+++ b/mock-htpc/prowlarr/Definitions/xider-torrent.yml
@@ -5,43 +5,32 @@ description: "Xider-Torrent is a HUNGARIAN Private Tracker for MOVIES / TV"
language: hu-HU
type: private
encoding: UTF-8
+certificates:
+ - 2191bbeb4c86d287861b0a63d26aecc0983d5087 # Expired 18th November 2024
links:
- https://xider.eu/
caps:
categorymappings:
- - {id: 4, cat: Movies/SD, desc: "Film/Cam/Eng"}
- - {id: 3, cat: Movies/SD, desc: "Film/Cam/Hun"}
- - {id: 8, cat: Movies/DVD, desc: "Film/DVD/Eng"}
- - {id: 7, cat: Movies/DVD, desc: "Film/DVD/Hun"}
- - {id: 10, cat: Movies/DVD, desc: "Film/DVD9/Eng"}
- - {id: 9, cat: Movies/DVD, desc: "Film/DVD9/Hun"}
- - {id: 37, cat: Movies/HD, desc: "Film/FHD/Eng"}
- - {id: 36, cat: Movies/HD, desc: "Film/FHD/Hun"}
- - {id: 12, cat: Movies/HD, desc: "Film/HD/Eng"}
- - {id: 11, cat: Movies/HD, desc: "Film/HD/Hun"}
- - {id: 2, cat: Movies/SD, desc: "Film/SD/Eng"}
- - {id: 1, cat: Movies/SD, desc: "Film/SD/Hun"}
- - {id: 18, cat: PC/Games, desc: "Játék/ISO"}
- - {id: 19, cat: PC/Games, desc: "Játék/Rip"}
- - {id: 24, cat: Other, desc: "Képek"}
- - {id: 23, cat: Books, desc: "Könyv/Eng"}
- - {id: 22, cat: Books, desc: "Könyv/Hun"}
- - {id: 20, cat: Console, desc: "Konzol"}
- - {id: 32, cat: Audio/Lossless, desc: "Lossless/Eng"}
- - {id: 31, cat: Audio/Lossless, desc: "Lossless/Hun"}
- - {id: 30, cat: TV/Anime, desc: "Mese/HD/Eng"}
- - {id: 29, cat: TV/Anime, desc: "Mese/HD/Hun"}
- - {id: 28, cat: TV/Anime, desc: "Mese/SD/Eng"}
- - {id: 27, cat: TV/Anime, desc: "Mese/SD/Hun"}
- - {id: 21, cat: PC/Mobile-Other, desc: "Mobil"}
- - {id: 16, cat: Audio/MP3, desc: "Mp3/Eng"}
- - {id: 15, cat: Audio/MP3, desc: "Mp3/Hun"}
- - {id: 17, cat: PC, desc: "Program"}
- - {id: 14, cat: TV, desc: "Sorozat/Eng"}
- - {id: 13, cat: TV, desc: "Sorozat/Hun"}
- - {id: 25, cat: XXX, desc: "XXX/Film"}
- - {id: 26, cat: XXX/ImageSet, desc: "XXX/Kép"}
+ - {id: 56, cat: TV, desc: " Film Sorozat"}
+ - {id: 44, cat: Movies/SD, desc: "Film-Cam/Eng"}
+ - {id: 45, cat: Movies/SD, desc: "Film-Cam/Hun"}
+ - {id: 58, cat: Movies/DVD, desc: "Film-DVD/Eng"}
+ - {id: 59, cat: Movies/DVD, desc: "Film-DVD/Hun"}
+ - {id: 64, cat: Movies/HD, desc: "Film-HD"}
+ - {id: 60, cat: Movies/SD, desc: "Film-Xvid/Eng"}
+ - {id: 62, cat: Movies/SD, desc: "Film-Xvid/Hun"}
+ - {id: 53, cat: Audio/Audiobook, desc: "Hangoskönyv"}
+ - {id: 51, cat: Other, desc: "Hátterek-Képek"}
+ - {id: 55, cat: PC/Games, desc: "Játék-ISO"}
+ - {id: 54, cat: PC/Games, desc: "Játék-RIP"}
+ - {id: 43, cat: Books, desc: "Könyvek"}
+ - {id: 50, cat: TV/Anime, desc: "Mesefilm"}
+ - {id: 42, cat: PC/Mobile-Other, desc: "Mobilok"}
+ - {id: 39, cat: PC, desc: "Program"}
+ - {id: 57, cat: Audio/MP3, desc: "Zene-MP3"}
+ - {id: 72, cat: XXX, desc: "XXX-Film"}
+ - {id: 71, cat: XXX/ImageSet, desc: "XXX-Kép"}
modes:
search: [q]
@@ -108,12 +97,15 @@ search:
incldead: 1
sort: "{{ .Config.sort }}"
type: "{{ .Config.type }}"
- # does not support imdbid search
+ # does not support imdbid search or return imdbid in results.
rows:
- selector: "tr.torrentDataRow:has(a[href^=\"download.php?\"]){{ if .Config.freeleech }}:has(span[style^=\"font\"]:contains(\"0x\")){{ else }}{{ end }}"
+ selector: "tr.torrentDataRow{{ if .Config.freeleech }}:has(span[style^=\"font\"]:contains(\"0x\")){{ else }}{{ end }}"
fields:
+ _id:
+ selector: a[data-torrent-id]
+ attribute: data-torrent-id
category:
selector: a[href^="browse.php?cat="]
attribute: href
@@ -121,7 +113,7 @@ search:
- name: querystring
args: cat
title:
- selector: a[href^="details.php?id="]
+ selector: a[data-torrent-id]
attribute: title
filters:
- name: replace
@@ -131,34 +123,32 @@ search:
- name: replace
args: ["Második név: -", ""]
details:
- selector: a[href^="details.php?id="]
- attribute: href
+ text: "details.php?id={{ .Result._id }}"
download:
- selector: a[href^="download.php?torrent="]
+ text: "download.php?torrent={{ .Result._id }}"
attribute: href
- imdbid:
- selector: a[href*="imdb.com/title/tt"]
+ poster:
+ selector: a[href^="kepek/"]
attribute: href
- files:
- selector: a[href$="filelist=1"]
date:
- selector: td:nth-child(7)
+ selector: td:nth-child(4) span
+ attribute: title
filters:
- name: append
args: " +01:00" # CET
- name: dateparse
args: "yyyy-MM-dd HH:mm:ss zzz"
size:
- selector: td:nth-child(8)
+ selector: td:nth-child(5)
grabs:
- selector: td:nth-child(9)
+ selector: td:nth-child(8)
seeders:
- selector: td:nth-child(10)
+ selector: td:nth-child(6)
leechers:
- selector: td:nth-child(11)
+ selector: td:nth-child(7)
description:
case:
- i.fa-check: Verified
+ span[style*="color:#ccc;"]: Verified
i.fa-question: Unverified
downloadvolumefactor:
case:
diff --git a/mock-htpc/prowlarr/Definitions/xtorrenty.yml b/mock-htpc/prowlarr/Definitions/xtorrenty.yml
index f4ebe73..dbcac49 100644
--- a/mock-htpc/prowlarr/Definitions/xtorrenty.yml
+++ b/mock-htpc/prowlarr/Definitions/xtorrenty.yml
@@ -1,9 +1,9 @@
---
id: xtorrenty
name: xTorrenty
-description: "xTorrenty is a POLISH Semi-Private Torrent Tracker for MOVIES / TV / GENERAL"
+description: "xTorrenty is a POLISH Private Torrent Tracker for MOVIES / TV / GENERAL"
language: pl-PL
-type: semi-private
+type: private
encoding: UTF-8
links:
- https://xtorrenty.org/
@@ -77,7 +77,7 @@ settings:
asc: asc
login:
- path: login.html
+ path: ?do=login
method: form
form: form
inputs:
@@ -85,6 +85,10 @@ login:
login_password: "{{ .Config.password }}"
login_not_save: ""
login: submit
+ error:
+ - selector: div.berrors b:contains("Wystąpił błąd podczas autoryzacji")
+ message:
+ text: "Uwaga! Logowanie na stronie nie powiodło się. Nieprawidłowy adres e-mail lub hasło."
test:
path: /
selector: a[href$="/index.php?action=logout"]
@@ -175,4 +179,4 @@ search:
text: 0
uploadvolumefactor:
text: 1
-# engine n/a
+# DataLife v22
diff --git a/mock-htpc/prowlarr/Definitions/xtremebytes.yml b/mock-htpc/prowlarr/Definitions/xtremebytes.yml
index 3629aa6..cf98495 100644
--- a/mock-htpc/prowlarr/Definitions/xtremebytes.yml
+++ b/mock-htpc/prowlarr/Definitions/xtremebytes.yml
@@ -1,5 +1,7 @@
---
id: xtremebytes
+replaces:
+ - torrentsurf
name: Xtreme Bytes
description: "Xtreme Bytes (TorrentSurf) is a Private Torrent Tracker for MOVIES / TV / GENERAL"
language: en-US
diff --git a/mock-htpc/prowlarr/Definitions/xwtorrents.yml b/mock-htpc/prowlarr/Definitions/xwtorrents.yml
index f715576..baa2740 100644
--- a/mock-htpc/prowlarr/Definitions/xwtorrents.yml
+++ b/mock-htpc/prowlarr/Definitions/xwtorrents.yml
@@ -105,6 +105,8 @@ settings:
options:
desc: desc
asc: asc
+ - name: info_flaresolverr
+ type: info_flaresolverr
login:
path: takelogin.php
diff --git a/mock-htpc/prowlarr/Definitions/xxxclub.yml b/mock-htpc/prowlarr/Definitions/xxxclub.yml
index 5d5db18..e998315 100644
--- a/mock-htpc/prowlarr/Definitions/xxxclub.yml
+++ b/mock-htpc/prowlarr/Definitions/xxxclub.yml
@@ -5,8 +5,10 @@ description: "XXXClub is a Public torrent site for 3X"
language: en-US
type: public
encoding: UTF-8
+requestDelay: 3
links:
- https://xxxclub.to/
+ - https://xxxclub.cc/
caps:
categorymappings:
@@ -37,6 +39,8 @@ settings:
options:
desc: desc
asc: asc
+ - name: info_flaresolverr
+ type: info_flaresolverr
download:
selectors:
@@ -44,12 +48,13 @@ download:
attribute: href
search:
- headers:
- User-Agent: ["Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36 Edg/115.0.1901.203"]
-
paths:
- # https://xxxclub.to/torrents/browse/2,4/metartx?sort=size&order=asc
- - path: "torrents/browse/{{ if .Categories }}{{ join .Categories \",\" }}{{ else }}all{{ end }}/{{ .Keywords }}?sort={{ .Config.sort }}&order={{ .Config.type }}"
+ # https://xxxclub.to/torrents/search/2,4/metartx?sort=size&order=asc
+ - path: "torrents/search/{{ if .Categories }}{{ join .Categories \",\" }}{{ else }}all{{ end }}/{{ .Keywords }}?sort={{ .Config.sort }}&order={{ .Config.type }}"
+
+ headers:
+ # site blocks Prowlarr's UAs
+ User-Agent: ["Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.35"]
rows:
selector: div.browsetableinside > ul > li:not(:first-child)
diff --git a/mock-htpc/prowlarr/Definitions/yggcookie.yml b/mock-htpc/prowlarr/Definitions/yggcookie.yml
index 9198a91..e71b503 100644
--- a/mock-htpc/prowlarr/Definitions/yggcookie.yml
+++ b/mock-htpc/prowlarr/Definitions/yggcookie.yml
@@ -1,17 +1,15 @@
---
id: yggcookie
-name: YGGcookie
-description: "YGGTorrent is a FRENCH Semi-Private Torrent Tracker for 0DAY / GENERAL"
+name: YGG cookie
+description: "YggTorrent (YGG) is a FRENCH Private Torrent Tracker for MOVIES / TV / GENERAL. This indexer uses cookie login."
language: fr-FR
-type: semi-private
+type: private
encoding: UTF-8
followredirect: true
requestDelay: 2
links:
- - https://www3.yggtorrent.qa/
+ - https://www.ygg.re/
legacylinks:
- - https://ww3.yggtorrent.si/
- - https://yggtorrent.si/
- http://www2.yggtorrent.si/
- https://www2.yggtorrent.si/
- https://www.yggtorrent.li/
@@ -25,6 +23,8 @@ legacylinks:
- https://www6.yggtorrent.lol/
- https://www3.yggtorrent.do/
- https://www3.yggtorrent.wtf/
+ - https://www3.yggtorrent.qa/
+ - https://www3.yggtorrent.cool/
caps:
categorymappings:
@@ -104,16 +104,12 @@ settings:
type: text
label: Cookie
- name: info_cookie
- type: info
- label: How to get the Cookie
- default: "- Login to this tracker with your browser
- Open the DevTools panel by pressing F12
- Select the Network tab
- Click on the Doc button (Chrome Browser) or HTML button (FireFox)
- Refresh the page by pressing F5
- Click on the first row entry
- Select the Headers tab on the Right panel
- Find 'cookie:' in the Request Headers section
- Select and Copy the whole cookie string (everything after 'cookie: ') and Paste here.
"
+ type: info_cookie
- name: useragent
type: text
label: User-Agent
- name: info_useragent
- type: info
- label: How to get the User-Agent
- default: "- From the same place you fetched the cookie,
- Find 'user-agent:' in the Request Headers section
- Select and Copy the whole user-agent string (everything after 'user-agent: ') and Paste here.
"
+ type: info_useragent
- name: category
type: select
label: Category
@@ -243,18 +239,17 @@ settings:
options:
desc: desc
asc: asc
- - name: flaresolverr
- type: info
- label: FlareSolverr
- default: This site may use Cloudflare DDoS Protection, therefore Prowlarr may require FlareSolver added as a proxy in Prowlarr (Settings => Indexers) to access it.
+ - name: info_flaresolverr
+ type: info_flaresolverr
login:
+ # using cookie method as an alternative when regular login for some users does not work
method: cookie
inputs:
cookie: "{{ .Config.cookie }}"
test:
path: /
- selector: div#top_panel:contains("Déconnexion")
+ selector: a[href$="/user/logout"]
search:
paths:
diff --git a/mock-htpc/prowlarr/Definitions/yggtorrent.yml b/mock-htpc/prowlarr/Definitions/yggtorrent.yml
index 05f6365..c9586db 100644
--- a/mock-htpc/prowlarr/Definitions/yggtorrent.yml
+++ b/mock-htpc/prowlarr/Definitions/yggtorrent.yml
@@ -1,17 +1,15 @@
---
id: yggtorrent
-name: YGGtorrent
-description: "YGGTorrent is a FRENCH Semi-Private Torrent Tracker for 0DAY / GENERAL"
+name: YggTorrent
+description: "YggTorrent (YGG) is a FRENCH Private Torrent Tracker for MOVIES / TV / GENERAL"
language: fr-FR
-type: semi-private
+type: private
encoding: UTF-8
followredirect: true
requestDelay: 2
links:
- - https://www3.yggtorrent.qa/
+ - https://www.ygg.re/
legacylinks:
- - https://ww3.yggtorrent.si/
- - https://yggtorrent.si/
- http://www2.yggtorrent.si/
- https://www2.yggtorrent.si/
- https://www.yggtorrent.li/
@@ -25,6 +23,8 @@ legacylinks:
- https://www6.yggtorrent.lol/
- https://www3.yggtorrent.do/
- https://www3.yggtorrent.wtf/
+ - https://www3.yggtorrent.qa/
+ - https://www3.yggtorrent.cool/
caps:
categorymappings:
@@ -235,23 +235,18 @@ settings:
options:
desc: desc
asc: asc
- - name: flaresolverr
- type: info
- label: FlareSolverr
- default: This site may use Cloudflare DDoS Protection, therefore Prowlarr may require FlareSolver added as a proxy in Prowlarr (Settings => Indexers) to access it.
+ - name: info_flaresolverr
+ type: info_flaresolverr
login:
method: form
- path: /
- form: "#user-login"
+ path: /auth/login
+ form: form.login-form
inputs:
id: "{{ .Config.username }}"
pass: "{{ .Config.password }}"
- ci_csrf_token: ""
error:
- - selector: "#login_msg_pass[style=\"\"][style] > center"
- - selector: "#ban_msg_login[style=\"\"][style] > center"
- - selector: "#login_msg_mail[style=\"\"][style] > center"
+ - selector: p.error-form
- selector: a[href$="/user/disabled"]
message:
# Compte Inactif
@@ -261,7 +256,7 @@ login:
args: " - Dès que vous passez en dessous d'un ratio inférieur à 1, Votre compte devient inactif et le site vous coupe les téléchargements."
test:
path: /
- selector: div#top_panel:contains("Déconnexion")
+ selector: a[href$="/user/logout"]
search:
paths:
diff --git a/mock-htpc/prowlarr/Definitions/yoinked.yml b/mock-htpc/prowlarr/Definitions/yoinked.yml
new file mode 100644
index 0000000..85103c2
--- /dev/null
+++ b/mock-htpc/prowlarr/Definitions/yoinked.yml
@@ -0,0 +1,187 @@
+---
+id: yoinked
+name: YOiNKED
+description: "YOiNKED is a Private Torrent Tracker for MOVIES / TV / MUSIC"
+language: en-US
+type: private
+encoding: UTF-8
+links:
+ - https://yoinked.org/
+
+caps:
+ categorymappings:
+ - {id: 1, cat: Movies, desc: "Movie"}
+ - {id: 2, cat: TV, desc: "TV"}
+ - {id: 3, cat: Audio, desc: "Music"}
+ - {id: 4, cat: Books, desc: "Book"}
+ - {id: 5, cat: Audio/Audiobook, desc: "AudioBook"}
+
+ modes:
+ search: [q]
+ tv-search: [q, season, ep, imdbid, tvdbid, tmdbid]
+ movie-search: [q, imdbid, tmdbid]
+ music-search: [q]
+ book-search: [q]
+
+settings:
+ - name: apikey
+ type: text
+ label: APIKey
+ - name: info_key
+ type: info
+ label: About your API key
+ default: "Find or Generate a new API Token by accessing your YOiNKED account My Settings page and clicking on the API Key tab."
+ - name: freeleech
+ type: checkbox
+ label: Search freeleech only
+ default: false
+ - name: single_file_release_use_filename
+ type: checkbox
+ label: Use filename as title for single file releases
+ default: true
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: created_at
+ options:
+ created_at: created
+ seeders: seeders
+ size: size
+ name: title
+ - name: type
+ type: select
+ label: Order requested from site
+ default: desc
+ options:
+ desc: desc
+ asc: asc
+ - name: info_activity
+ type: info
+ label: Account Inactivity
+ default: "If you do not log into the site or seed torrents, your account will be automatically pruned within 60 days."
+
+login:
+ path: /api/torrents
+ method: get
+ inputs: {} # TODO: remove in v10
+ error:
+ - selector: a[href*="/login"]
+ message:
+ text: "The API key was not accepted by {{ .Config.sitelink }}."
+ - selector: :root:contains("Account is Banned")
+
+search:
+ paths:
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
+ # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
+ - path: "/api/torrents/filter"
+ response:
+ type: json
+
+ headers:
+ Authorization: ["Bearer {{ .Config.apikey }}"]
+
+ inputs:
+ # if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
+ $raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
+ name: "{{ .Keywords }}"
+ seasonNumber: "{{ .Query.Season }}"
+ episodeNumber: "{{ .Query.Ep }}"
+ imdbId: "{{ .Query.IMDBIDShort }}"
+ tmdbId: "{{ .Query.TMDBID }}"
+ tvdbId: "{{ .Query.TVDBID }}"
+ "free[]": "{{ if .Config.freeleech }}100{{ else }}{{ end }}"
+ sortField: "{{ .Config.sort }}"
+ sortDirection: "{{ .Config.type }}"
+ perPage: 100
+
+ keywordsfilters:
+ - name: re_replace
+ args: ["\\.", " "]
+
+ rows:
+ selector: data
+ attribute: attributes
+
+ fields:
+ category:
+ selector: category_id
+ title_optional:
+ selector: name
+ title_filename:
+ selector: "files[0].name"
+ optional: true
+ files:
+ selector: num_file
+ title:
+ text: "{{ if and (.Config.single_file_release_use_filename) (eq .Result.files \"1\") (.Result.title_filename) }}{{ .Result.title_filename }}{{ else }}{{ .Result.title_optional }}{{ end }}"
+ details:
+ selector: details_link
+ download:
+ selector: download_link
+ infohash:
+ selector: info_hash
+ poster:
+ selector: meta.poster
+ filters:
+ - name: replace
+ args: ["https://via.placeholder.com/90x135", ""]
+ imdbid:
+ selector: imdb_id
+ tmdbid:
+ selector: tmdb_id
+ tvdbid:
+ selector: tvdb_id
+ genre:
+ selector: meta.genres
+ filters:
+ - name: re_replace
+ args: ["(?i)(Science Fiction)", "Science_Fiction"]
+ - name: replace
+ args: [" & ", "_&_"]
+ description:
+ text: "{{ .Result.genre }}"
+ seeders:
+ selector: seeders
+ leechers:
+ selector: leechers
+ grabs:
+ selector: times_completed
+ date:
+ # "created_at": "2021-10-18T00:34:50.000000Z" is returned by Newtonsoft.Json.Linq as 18/10/2021 00:34:50
+ selector: created_at
+ filters:
+ - name: append
+ args: " +00:00" # GMT
+ - name: dateparse
+ args: "MM/dd/yyyy HH:mm:ss zzz"
+ size:
+ selector: size
+ _featured:
+ selector: featured
+ case:
+ False: "{{ .False }}"
+ True: "{{ .True }}"
+ downloadvolumefactor_freeleech:
+ # api returns 0%, 25%, 50%, 75%, 100%
+ selector: freeleech
+ case:
+ 0%: 1 # not free
+ 25%: 0.75
+ 50%: 0.5
+ 75%: 0.25
+ 100%: 0 # freeleech
+ "*": 0 # catch errors
+ downloadvolumefactor:
+ text: "{{ if .Result._featured }}0{{ else }}{{ .Result.downloadvolumefactor_freeleech }}{{ end }}"
+ uploadvolumefactor_double_upload:
+ # api returns False, True
+ selector: double_upload
+ case:
+ False: 1 # normal
+ True: 2 # double
+ uploadvolumefactor:
+ text: "{{ if .Result._featured }}2{{ else }}{{ .Result.uploadvolumefactor_double_upload }}{{ end }}"
+ minimumratio:
+ text: 0.5
+# json UNIT3D 8.3.1 (custom)
diff --git a/mock-htpc/prowlarr/Definitions/yourbittorrent.yml b/mock-htpc/prowlarr/Definitions/yourbittorrent.yml
index 6285afe..c140417 100644
--- a/mock-htpc/prowlarr/Definitions/yourbittorrent.yml
+++ b/mock-htpc/prowlarr/Definitions/yourbittorrent.yml
@@ -10,15 +10,6 @@ links:
- https://yourbittorrent2.com/
legacylinks:
- https://yourbittorrent.host/
- - https://yourbittorrent.nocensor.space/
- - https://yourbittorrent.nocensor.work/
- - https://yourbittorrent.nocensor.biz/
- - https://yourbittorrent.nocensor.sbs/
- - https://yourbittorrent.nocensor.world/
- - https://yourbittorrent.nocensor.lol/
- - https://yourbittorrent.mrunblock.guru/
- - https://yourbittorrent.mrunblock.life/
- - https://yourbittorrent.nocensor.click/
- https://yourbittorrent.nocensor.cloud/
- https://yourbittorrent.mrunblock.bond/
diff --git a/mock-htpc/prowlarr/Definitions/yts.yml b/mock-htpc/prowlarr/Definitions/yts.yml
index ce182e3..eda127e 100644
--- a/mock-htpc/prowlarr/Definitions/yts.yml
+++ b/mock-htpc/prowlarr/Definitions/yts.yml
@@ -10,34 +10,19 @@ links:
# if the primary domain changes then don't forget to update the details, download and poster replace args
- https://yts.mx/
# official domain list are at https://yifystatus.com/ and official proxies list are at https://ytsproxies.com/
- - https://yts.lt/
- - https://yts.am/
- - https://yts.ag/
- - https://yts.unblockit.africa/
- https://yts.unblockninja.com/
- https://yts.ninjaproxy1.com/
- https://yts.proxyninja.org/
+ - https://yts.proxyninja.net/
- https://yts.torrentbay.st/
+ - https://yts.torrentsbay.org/
legacylinks:
- - https://yts.nocensor.art/
- - https://yts.unblockit.bio/
- - https://yts.unblockit.boo/
- - https://yts.mrunblock.guru/
- - https://yts.unblockit.click/
- - https://yts.unblockit.asia/
- - https://yts.unblockit.mov/
- - https://yts.mrunblock.life/
- - https://yts.unblockit.rsvp/
- - https://yts.nocensor.click/
- - https://yts.unblockit.vegas/
- - https://yts.unblockit.esq/
- - https://yts.unblockit.zip/
- - https://yts.unblockit.foo/
- - https://yts.unblockit.ing/
+ - https://yts.lt/
+ - https://yts.am/
+ - https://yts.ag/
- https://yts.mrunblock.bond/
- https://yts.nocensor.cloud/
- - https://yts.unblockit.date/
- - https://yts.unblockit.dad/
+ - https://yts.unblockit.download/
caps:
categorymappings:
diff --git a/mock-htpc/prowlarr/Definitions/zetorrents.yml b/mock-htpc/prowlarr/Definitions/zetorrents.yml
index d9df9d0..849b438 100644
--- a/mock-htpc/prowlarr/Definitions/zetorrents.yml
+++ b/mock-htpc/prowlarr/Definitions/zetorrents.yml
@@ -7,10 +7,17 @@ type: public
encoding: UTF-8
# to fetch current domain use https://www.protege-torrent.com/Zetorrents
links:
- - https://www.zetorrents.pw/
+ - https://www.zetorrents.sk/
legacylinks:
- - https://wvw.zetorrents.io/
- - https://vww.zetorrents.io/
+ - https://www.protege-liens.com/
+ - https://www.protege-liens.net/
+ # latest domains list
+ - https://www.protege-torrent.com/
+ - https://www.site-torrent.com/
+ - https://www.rantop.org/
+ - https://www.torrent.ws/
+ - https://www.torrent.onl/
+ # actual legacylinks
- https://wwv.zetorrents.io/
- https://ww1.zetorrents.io/
- https://www.zetorrents.org/
@@ -19,16 +26,15 @@ legacylinks:
- https://www.zetorrents.tv/
- https://www.zetorrents.bz/
- https://www.zetorrents.nl/
- - https://zetorrents.nocensor.world/
- https://www.zetorrents.biz/
- - https://zetorrents.nocensor.lol/
- - https://zetorrents.nocensor.art/
- https://www.zetorrents.ch/
- - https://zetorrents.mrunblock.guru/
- - https://zetorrents.mrunblock.life/
- - https://zetorrents.nocensor.click/
- https://zetorrents.mrunblock.bond/
- https://zetorrents.nocensor.cloud/
+ - https://www.zetorrents.pw/
+ - https://www.zetorrents.tw/
+ - https://www.zetorrents.in/
+ - https://www.zetorrents.vg/
+ - https://www.zetorrents.vc/
caps:
categories:
@@ -41,10 +47,8 @@ caps:
allowrawsearch: true
settings:
- - name: info_8000
- type: info
- label: About zetorrents Categories
- default: zetorrents does not return categories in its search results.To add to your Apps' Torznab indexer, replace all categories with 8000(Other).
+ - name: info_category_8000
+ type: info_category_8000
- name: multilang
type: checkbox
label: Replace MULTi by another language in release name
@@ -66,18 +70,10 @@ settings:
default: false
download:
- infohash:
- hash:
- selector: a[href^="/get_torrent/"]
+ selectors:
+ - selector: a[href^="magnet:?"]
attribute: href
- filters:
- - name: regexp
- args: ([A-F|a-f|0-9]{40})
- title:
- selector: ul#breadcrumbs > li:nth-child(3) > h2
- filters:
- - name: trim
- - name: validfilename
+
search:
paths:
- path: "{{ if .Keywords }}recherche/{{ .Keywords }}{{ else }}{{ end }}"
@@ -89,17 +85,14 @@ search:
args: ["(?i)(S)(\\d{1,3})$", "saison $2"]
rows:
- selector: table.table > tbody > tr:has(a[href^="/torrent/"])
+ selector: table.table > tbody > tr:has(a[href^="/detail/"])
fields:
category:
text: Other
title_phase1:
- selector: a[href^="/torrent/"]
- attribute: title
+ selector: a[href^="/detail/"]
filters:
- - name: replace
- args: [" en Torrent", ""]
- name: replace
args: ["WEBRIP", "WEBDL"]
- name: re_replace
@@ -119,10 +112,10 @@ search:
title:
text: "{{ if .Config.multilang }}{{ .Result.title_multilang }}{{ else }}{{ .Result.title_phase2 }}{{ end }}"
details:
- selector: a[href^="/torrent/"]
+ selector: a[href^="/detail/"]
attribute: href
download:
- selector: a[href^="/torrent/"]
+ selector: a[href^="/detail/"]
attribute: href
date:
text: now
diff --git a/mock-htpc/prowlarr/Definitions/zmpt.yml b/mock-htpc/prowlarr/Definitions/zmpt.yml
index 922448e..9663a19 100644
--- a/mock-htpc/prowlarr/Definitions/zmpt.yml
+++ b/mock-htpc/prowlarr/Definitions/zmpt.yml
@@ -10,20 +10,17 @@ links:
caps:
categorymappings:
- - {id: 421, cat: TV/Anime, desc: "Anime Other/动漫-其他"}
- - {id: 420, cat: TV/Anime, desc: "Anime Europe and America/动漫-欧美"}
- - {id: 419, cat: TV/Anime, desc: "Anime Korean/动漫-韩漫"}
- - {id: 418, cat: TV/Anime, desc: "Anime Japan/动漫-日漫"}
- - {id: 417, cat: TV/Anime, desc: "Anime China/动漫-国漫"}
- - {id: 409, cat: Other, desc: "Misc/综合-其他"}
- - {id: 403, cat: TV, desc: "TV Shows/综合-综艺"}
- - {id: 402, cat: TV, desc: "TV Series/综合-电视剧"}
- - {id: 422, cat: TV/Documentary, desc: "Documentaries/综合-纪录片"}
- - {id: 401, cat: Movies, desc: "Movies/综合-电影"}
- - {id: 423, cat: Audio, desc: "Music/声音类-音乐"}
- - {id: 424, cat: Audio/Audiobook, desc: "Music Audiobooks/声音类-有声书"}
- - {id: 425, cat: PC, desc: "Software/软件游戏-软件"}
- - {id: 426, cat: Console, desc: "Games/软件游戏-游戏"}
+ - {id: 409, cat: Other, desc: "其他 / Misc"}
+ - {id: 422, cat: TV/Documentary, desc: "纪录片 / documentary"}
+ - {id: 417, cat: TV/Anime, desc: "动漫 / Anime"}
+ - {id: 427, cat: Audio/Video, desc: "短剧 / Short Play"}
+ - {id: 401, cat: Movies, desc: "电影 / Movies"}
+ - {id: 402, cat: TV, desc: "电视剧 / TV Series"}
+ - {id: 403, cat: TV, desc: "综艺 / TV Shows"}
+ - {id: 423, cat: Audio, desc: "音乐 / Music"}
+ - {id: 424, cat: Audio/Audiobook, desc: "有声书 / Audiobook"}
+ - {id: 425, cat: PC, desc: "软件 / Software"}
+ - {id: 426, cat: Console, desc: "游戏 / Game"}
modes:
search: [q]
@@ -35,10 +32,8 @@ settings:
- name: cookie
type: text
label: Cookie
- - name: info
- type: info
- label: How to get the Cookie
- default: "- Login to this tracker with your browser
- Open the DevTools panel by pressing F12
- Select the Network tab
- Click on the Doc button (Chrome Browser) or HTML button (FireFox)
- Refresh the page by pressing F5
- Click on the first row entry
- Select the Headers tab on the Right panel
- Find 'cookie:' in the Request Headers section
- Select and Copy the whole cookie string (everything after 'cookie: ') and Paste here.
"
+ - name: info_cookie
+ type: info_cookie
- name: freeleech
type: checkbox
label: Search freeleech only
@@ -69,6 +64,7 @@ settings:
default: "Account retention rules:- Dou Sheng users and above will be retained forever
- Dou Huang and above will not have their account deleted after parking (in the control panel)
- Users with a parked account will be deleted if they do not log in for 180 consecutive days
- Users with a non-parked account will be banned if they do not log in for 45 consecutive days
- Users with no traffic (ie, upload/download data are both 0) will be banned if they do not log in for 7 consecutive days.
"
login:
+ # using cookie method because site regularly disables login page for certain events during the year
method: cookie
inputs:
cookie: "{{ .Config.cookie }}"
@@ -189,4 +185,4 @@ search:
filters:
- name: prepend
args: "{{ .Result.description_verified }} "
-# NexusPHP v1.8.8 2023-09-25
+# NexusPHP v1.8.13 2024-08-09
diff --git a/mock-htpc/prowlarr/Sentry/FDD003821460B16D4E0D4235129BD6BFAF29B751/.installation b/mock-htpc/prowlarr/Sentry/FDD003821460B16D4E0D4235129BD6BFAF29B751/.installation
new file mode 100644
index 0000000..8e84b6c
--- /dev/null
+++ b/mock-htpc/prowlarr/Sentry/FDD003821460B16D4E0D4235129BD6BFAF29B751/.installation
@@ -0,0 +1 @@
+1c8ad7cc-1d62-4766-84a7-691de43e39eb
\ No newline at end of file
diff --git a/mock-htpc/prowlarr/Sentry/FDD003821460B16D4E0D4235129BD6BFAF29B751/.session b/mock-htpc/prowlarr/Sentry/FDD003821460B16D4E0D4235129BD6BFAF29B751/.session
new file mode 100644
index 0000000..d9997ba
--- /dev/null
+++ b/mock-htpc/prowlarr/Sentry/FDD003821460B16D4E0D4235129BD6BFAF29B751/.session
@@ -0,0 +1 @@
+{"update":{"sid":"7a8eb91a601142c5b59fc5172a83dea9","did":"1c8ad7cc-1d62-4766-84a7-691de43e39eb","init":true,"started":"2024-12-14T02:35:58.2256674+00:00","timestamp":"2024-12-14T02:35:58.2258488+00:00","seq":0,"duration":0,"errors":0,"attrs":{"release":"Prowlarr@1.27.0.4852-master","environment":"master"}}}
\ No newline at end of file
diff --git a/mock-htpc/prowlarr/asp/key-493fdf49-0b71-405a-ba04-67d5c5cb909e.xml b/mock-htpc/prowlarr/asp/key-493fdf49-0b71-405a-ba04-67d5c5cb909e.xml
new file mode 100644
index 0000000..c653e46
--- /dev/null
+++ b/mock-htpc/prowlarr/asp/key-493fdf49-0b71-405a-ba04-67d5c5cb909e.xml
@@ -0,0 +1,16 @@
+
+
+ 2024-12-14T01:14:11.7854398Z
+ 2024-12-14T01:14:11.7734202Z
+ 2025-03-14T01:14:11.7734202Z
+
+
+
+
+
+
+ D1grHzJZKrtYpBuTb2OsxWlycX0sW3wyTF5ulf7vMUWLTS47dqR23+B8oS3WWcmZds/6MCdFasNnpL+zIoHpfw==
+
+
+
+
\ No newline at end of file
diff --git a/mock-htpc/prowlarr/logs.db b/mock-htpc/prowlarr/logs.db
index 4a653fc..9c9a90a 100644
Binary files a/mock-htpc/prowlarr/logs.db and b/mock-htpc/prowlarr/logs.db differ
diff --git a/mock-htpc/prowlarr/logs.db-shm b/mock-htpc/prowlarr/logs.db-shm
index d958e73..ab58208 100644
Binary files a/mock-htpc/prowlarr/logs.db-shm and b/mock-htpc/prowlarr/logs.db-shm differ
diff --git a/mock-htpc/prowlarr/logs.db-wal b/mock-htpc/prowlarr/logs.db-wal
index 43eda93..90e810e 100644
Binary files a/mock-htpc/prowlarr/logs.db-wal and b/mock-htpc/prowlarr/logs.db-wal differ
diff --git a/mock-htpc/prowlarr/logs/prowlarr.txt b/mock-htpc/prowlarr/logs/prowlarr.txt
new file mode 100644
index 0000000..f37f101
--- /dev/null
+++ b/mock-htpc/prowlarr/logs/prowlarr.txt
@@ -0,0 +1,1249 @@
+2024-12-14 01:14:11.4|Info|Bootstrap|Starting Prowlarr - /app/prowlarr/bin/Prowlarr - Version 1.27.0.4852
+2024-12-14 01:14:11.5|Info|AppFolderInfo|Data directory is being overridden to [/config]
+2024-12-14 01:14:11.5|Info|AppFolderInfo|Data directory is being overridden to [/config]
+2024-12-14 01:14:11.7|Info|AppFolderInfo|Data directory is being overridden to [/config]
+2024-12-14 01:14:11.7|Warn|Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager|No XML encryptor configured. Key {493fdf49-0b71-405a-ba04-67d5c5cb909e} may be persisted to storage in unencrypted form.
+2024-12-14 01:14:11.8|Info|MigrationController|*** Migrating data source=/config/prowlarr.db;cache size=-20000;datetimekind=Utc;journal mode=Wal;pooling=True;version=3;busytimeout=100 ***
+2024-12-14 01:14:11.9|Info|FluentMigrator.Runner.MigrationRunner|DatabaseEngineVersionCheck migrating
+2024-12-14 01:14:11.9|Info|FluentMigrator.Runner.MigrationRunner|PerformDBOperation
+2024-12-14 01:14:11.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Performing DB Operation
+2024-12-14 01:14:11.9|Info|DatabaseEngineVersionCheck|SQLite 3.45.3
+2024-12-14 01:14:11.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.031082s
+2024-12-14 01:14:11.9|Info|FluentMigrator.Runner.MigrationRunner|DatabaseEngineVersionCheck migrated
+2024-12-14 01:14:11.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.032407s
+2024-12-14 01:14:12.0|Info|FluentMigrator.Runner.MigrationRunner|40: newznab_category_to_capabilities_settings migrating
+2024-12-14 01:14:12.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:12.0|Info|newznab_category_to_capabilities_settings|Starting migration of Main DB to 40
+2024-12-14 01:14:12.0|Info|FluentMigrator.Runner.MigrationRunner|PerformDBOperation
+2024-12-14 01:14:12.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Performing DB Operation
+2024-12-14 01:14:12.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0054804s
+2024-12-14 01:14:12.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (40, '2024-12-14T01:14:12', 'newznab_category_to_capabilities_settings')
+2024-12-14 01:14:12.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:12.0|Info|FluentMigrator.Runner.MigrationRunner|40: newznab_category_to_capabilities_settings migrated
+2024-12-14 01:14:12.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0557506s
+2024-12-14 01:14:12.0|Info|FluentMigrator.Runner.MigrationRunner|41: gazelle_freeleech_token_options migrating
+2024-12-14 01:14:12.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:12.0|Info|gazelle_freeleech_token_options|Starting migration of Main DB to 41
+2024-12-14 01:14:12.0|Info|FluentMigrator.Runner.MigrationRunner|PerformDBOperation
+2024-12-14 01:14:12.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Performing DB Operation
+2024-12-14 01:14:12.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0014328s
+2024-12-14 01:14:12.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (41, '2024-12-14T01:14:12', 'gazelle_freeleech_token_options')
+2024-12-14 01:14:12.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:12.0|Info|FluentMigrator.Runner.MigrationRunner|41: gazelle_freeleech_token_options migrated
+2024-12-14 01:14:12.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0102057s
+2024-12-14 01:14:12.0|Info|MigrationController|*** Migrating data source=/config/logs.db;cache size=-20000;datetimekind=Utc;journal mode=Wal;pooling=True;version=3;busytimeout=100 ***
+2024-12-14 01:14:12.0|Info|FluentMigrator.Runner.MigrationRunner|DatabaseEngineVersionCheck migrating
+2024-12-14 01:14:12.0|Info|FluentMigrator.Runner.MigrationRunner|PerformDBOperation
+2024-12-14 01:14:12.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Performing DB Operation
+2024-12-14 01:14:12.0|Info|DatabaseEngineVersionCheck|SQLite 3.45.3
+2024-12-14 01:14:12.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0016976s
+2024-12-14 01:14:12.0|Info|FluentMigrator.Runner.MigrationRunner|DatabaseEngineVersionCheck migrated
+2024-12-14 01:14:12.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0018095s
+2024-12-14 01:14:12.0|Info|FluentMigrator.Runner.MigrationRunner|40: newznab_category_to_capabilities_settings migrating
+2024-12-14 01:14:12.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:12.0|Info|newznab_category_to_capabilities_settings|Starting migration of Log DB to 40
+2024-12-14 01:14:12.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (40, '2024-12-14T01:14:12', 'newznab_category_to_capabilities_settings')
+2024-12-14 01:14:12.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|40: newznab_category_to_capabilities_settings migrated
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0128964s
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|41: gazelle_freeleech_token_options migrating
+2024-12-14 01:14:12.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:12.1|Info|gazelle_freeleech_token_options|Starting migration of Log DB to 41
+2024-12-14 01:14:12.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (41, '2024-12-14T01:14:12', 'gazelle_freeleech_token_options')
+2024-12-14 01:14:12.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|41: gazelle_freeleech_token_options migrated
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.006757s
+2024-12-14 01:14:12.2|Info|Microsoft.Hosting.Lifetime|Now listening on: http://[::]:9696
+2024-12-14 01:14:12.4|Info|CommandExecutor|Starting 3 threads for tasks.
+2024-12-14 01:14:12.6|Info|ManagedHttpDispatcher|IPv4 is available: True, IPv6 will be disabled
+2024-12-14 01:14:12.9|Info|Microsoft.Hosting.Lifetime|Application started. Press Ctrl+C to shut down.
+2024-12-14 01:14:12.9|Info|Microsoft.Hosting.Lifetime|Hosting environment: Production
+2024-12-14 01:14:12.9|Info|Microsoft.Hosting.Lifetime|Content root path: /app/prowlarr/bin
+2024-12-14 01:14:42.4|Info|HousekeepingService|Running housecleaning tasks
+2024-12-14 01:14:42.5|Info|BackupService|Starting Backup
+2024-12-14 01:14:42.6|Info|Database|Vacuuming Log database
+2024-12-14 01:14:42.6|Info|Database|Log database compressed
+2024-12-14 01:14:42.6|Info|Database|Vacuuming Main database
+2024-12-14 01:14:42.6|Info|Database|Main database compressed
+2024-12-14 01:14:42.7|Info|HistoryService|Removing items older than 30 days from history
+2024-12-14 01:14:43.2|Info|ReleaseSearchService|Searching indexer(s): [Bangumi Moe] for Term: [], Offset: 0, Limit: 100, Categories: [2000]
+2024-12-14 01:14:43.8|Warn|HttpClient|HTTP Error - Res: HTTP/1.1 [POST] http://radarr:7878/api/v3/indexer: 400.BadRequest (274 bytes)
+[
+ {
+ "isWarning": false,
+ "propertyName": "",
+ "errorMessage": "Query successful, but no results in the configured categories were returned from your indexer. This may be an issue with the indexer or your indexer category settings.",
+ "severity": "error"
+ }
+]
+2024-12-14 01:14:43.9|Warn|RadarrV3Proxy|No Results in configured categories. See FAQ Entry: Prowlarr will not sync X Indexer to App
+
+[v1.27.0.4852] NzbDrone.Common.Http.HttpException: HTTP request failed: [400:BadRequest] [POST] at [http://radarr:7878/api/v3/indexer]
+ at NzbDrone.Common.Http.HttpClient.ExecuteAsync(HttpRequest request) in ./Prowlarr.Common/Http/HttpClient.cs:line 128
+ at NzbDrone.Common.Http.HttpClient.Execute(HttpRequest request) in ./Prowlarr.Common/Http/HttpClient.cs:line 137
+ at NzbDrone.Core.Applications.Radarr.RadarrV3Proxy.Execute[TResource](HttpRequest request) in ./Prowlarr.Core/Applications/Radarr/RadarrV3Proxy.cs:line 228
+ at NzbDrone.Core.Applications.Radarr.RadarrV3Proxy.ExecuteIndexerRequest(HttpRequest request) in ./Prowlarr.Core/Applications/Radarr/RadarrV3Proxy.cs:line 163
+[
+ {
+ "isWarning": false,
+ "propertyName": "",
+ "errorMessage": "Query successful, but no results in the configured categories were returned from your indexer. This may be an issue with the indexer or your indexer category settings.",
+ "severity": "error"
+ }
+]
+
+
+2024-12-14 01:14:45.2|Info|ReleaseSearchService|Searching indexer(s): [Bangumi Moe] for Term: [], Offset: 0, Limit: 100, Categories: [2000]
+2024-12-14 01:14:46.6|Warn|HttpClient|HTTP Error - Res: HTTP/1.1 [POST] http://radarr:7878/api/v3/indexer?forceSave=true: 400.BadRequest (274 bytes)
+[
+ {
+ "isWarning": false,
+ "propertyName": "",
+ "errorMessage": "Query successful, but no results in the configured categories were returned from your indexer. This may be an issue with the indexer or your indexer category settings.",
+ "severity": "error"
+ }
+]
+2024-12-14 01:14:46.6|Warn|RadarrV3Proxy|No Results in configured categories. See FAQ Entry: Prowlarr will not sync X Indexer to App
+
+[v1.27.0.4852] NzbDrone.Common.Http.HttpException: HTTP request failed: [400:BadRequest] [POST] at [http://radarr:7878/api/v3/indexer?forceSave=true]
+ at NzbDrone.Common.Http.HttpClient.ExecuteAsync(HttpRequest request) in ./Prowlarr.Common/Http/HttpClient.cs:line 128
+ at NzbDrone.Common.Http.HttpClient.Execute(HttpRequest request) in ./Prowlarr.Common/Http/HttpClient.cs:line 137
+ at NzbDrone.Core.Applications.Radarr.RadarrV3Proxy.Execute[TResource](HttpRequest request) in ./Prowlarr.Core/Applications/Radarr/RadarrV3Proxy.cs:line 228
+ at NzbDrone.Core.Applications.Radarr.RadarrV3Proxy.ExecuteIndexerRequest(HttpRequest request) in ./Prowlarr.Core/Applications/Radarr/RadarrV3Proxy.cs:line 163
+[
+ {
+ "isWarning": false,
+ "propertyName": "",
+ "errorMessage": "Query successful, but no results in the configured categories were returned from your indexer. This may be an issue with the indexer or your indexer category settings.",
+ "severity": "error"
+ }
+]
+
+
+2024-12-14 01:14:46.6|Warn|ApplicationService|NzbDrone.Core.Applications.ApplicationService HTTP request failed: [400:BadRequest] [POST] at [http://radarr:7878/api/v3/indexer?forceSave=true]
+
+[v1.27.0.4852] NzbDrone.Common.Http.HttpException: HTTP request failed: [400:BadRequest] [POST] at [http://radarr:7878/api/v3/indexer?forceSave=true]
+ at NzbDrone.Common.Http.HttpClient.ExecuteAsync(HttpRequest request) in ./Prowlarr.Common/Http/HttpClient.cs:line 128
+ at NzbDrone.Common.Http.HttpClient.Execute(HttpRequest request) in ./Prowlarr.Common/Http/HttpClient.cs:line 137
+ at NzbDrone.Core.Applications.Radarr.RadarrV3Proxy.Execute[TResource](HttpRequest request) in ./Prowlarr.Core/Applications/Radarr/RadarrV3Proxy.cs:line 228
+ at NzbDrone.Core.Applications.Radarr.RadarrV3Proxy.ExecuteIndexerRequest(HttpRequest request) in ./Prowlarr.Core/Applications/Radarr/RadarrV3Proxy.cs:line 163
+ at NzbDrone.Core.Applications.Radarr.RadarrV3Proxy.AddIndexer(RadarrIndexer indexer, RadarrSettings settings) in ./Prowlarr.Core/Applications/Radarr/RadarrV3Proxy.cs:line 100
+ at NzbDrone.Core.Applications.Radarr.Radarr.AddIndexer(IndexerDefinition indexer) in ./Prowlarr.Core/Applications/Radarr/Radarr.cs:line 135
+ at NzbDrone.Core.Applications.ApplicationService.<>c__DisplayClass14_2.b__5(IApplication a) in ./Prowlarr.Core/Applications/ApplicationService.cs:line 177
+ at NzbDrone.Core.Applications.ApplicationService.ExecuteAction(Action`1 applicationAction, IApplication application) in ./Prowlarr.Core/Applications/ApplicationService.cs:line 239
+[
+ {
+ "isWarning": false,
+ "propertyName": "",
+ "errorMessage": "Query successful, but no results in the configured categories were returned from your indexer. This may be an issue with the indexer or your indexer category settings.",
+ "severity": "error"
+ }
+]
+
+
+2024-12-14 01:14:47.1|Info|ReleaseSearchService|Searching indexer(s): [BitSearch] for Term: [], Offset: 0, Limit: 100, Categories: [2000]
+2024-12-14 01:14:48.3|Info|ReleaseSearchService|Searching indexer(s): [Badass Torrents] for Term: [], Offset: 0, Limit: 100, Categories: [2000]
+2024-12-14 01:14:48.3|Info|ReleaseSearchService|Searching indexer(s): [Internet Archive] for Term: [], Offset: 0, Limit: 100, Categories: [2000]
+2024-12-14 01:14:48.3|Info|ReleaseSearchService|Searching indexer(s): [Isohunt2] for Term: [], Offset: 0, Limit: 100, Categories: [2000]
+2024-12-14 01:14:48.3|Info|ReleaseSearchService|Searching indexer(s): [kickasstorrents.ws] for Term: [], Offset: 0, Limit: 100, Categories: [2000]
+2024-12-14 01:14:48.3|Info|ReleaseSearchService|Searching indexer(s): [Knaben] for Term: [], Offset: 0, Limit: 100, Categories: [2000, 2040, 2030, 2045, 2070, 2010, 2060, 2020]
+2024-12-14 01:14:48.3|Info|ReleaseSearchService|Searching indexer(s): [TheRARBG] for Term: [], Offset: 0, Limit: 100, Categories: [2000]
+2024-12-14 01:14:48.3|Info|ReleaseSearchService|Searching indexer(s): [kickasstorrents.to] for Term: [], Offset: 0, Limit: 100, Categories: [2000]
+2024-12-14 01:14:48.3|Info|ReleaseSearchService|Searching indexer(s): [The Pirate Bay] for Term: [], Offset: 0, Limit: 100, Categories: [2000, 2020, 2040, 2060, 2030, 2045]
+2024-12-14 01:14:48.4|Info|ReleaseSearchService|Searching indexer(s): [Torlock] for Term: [], Offset: 0, Limit: 100, Categories: [2000]
+2024-12-14 01:14:48.4|Info|ReleaseSearchService|Searching indexer(s): [YourBittorrent] for Term: [], Offset: 0, Limit: 100, Categories: [2000]
+2024-12-14 01:14:48.4|Info|ReleaseSearchService|Searching indexer(s): [Torrent Downloads] for Term: [], Offset: 0, Limit: 100, Categories: [2000]
+2024-12-14 01:14:48.4|Error|Cardigann|An error occurred while processing indexer feed. https://kickasstorrents.to/new/?sortby=time&sort=desc
+
+[v1.27.0.4852] System.FormatException: The format of value '' is invalid.
+ at System.Net.Http.Headers.HttpHeaderParser.ParseValue(String value, Object storeValue, Int32& index)
+ at System.Net.Http.Headers.HttpHeaders.ParseAndAddValue(HeaderDescriptor descriptor, HeaderStoreItemInfo info, String value)
+ at NzbDrone.Common.Http.Dispatchers.ManagedHttpDispatcher.AddRequestHeaders(HttpRequestMessage webRequest, HttpHeader headers) in ./Prowlarr.Common/Http/Dispatchers/ManagedHttpDispatcher.cs:line 218
+ at NzbDrone.Common.Http.Dispatchers.ManagedHttpDispatcher.GetResponseAsync(HttpRequest request, CookieContainer cookies) in ./Prowlarr.Common/Http/Dispatchers/ManagedHttpDispatcher.cs:line 109
+ at NzbDrone.Common.Http.HttpClient.ExecuteRequestAsync(HttpRequest request, CookieContainer cookieContainer) in ./Prowlarr.Common/Http/HttpClient.cs:line 171
+ at NzbDrone.Common.Http.HttpClient.ExecuteAsync(HttpRequest request) in ./Prowlarr.Common/Http/HttpClient.cs:line 70
+ at NzbDrone.Core.Indexers.IndexerHttpClient.ExecuteProxiedAsync(HttpRequest request, ProviderDefinition definition) in ./Prowlarr.Core/Indexers/IndexerHttpClient.cs:line 43
+ at NzbDrone.Core.Indexers.HttpIndexerBase`1.<>c.<b__57_0>d.MoveNext() in ./Prowlarr.Core/Indexers/HttpIndexerBase.cs:line 661
+--- End of stack trace from previous location ---
+ at Polly.ResiliencePipeline.<>c__9`2.<b__9_0>d.MoveNext()
+--- End of stack trace from previous location ---
+ at Polly.Outcome`1.GetResultOrRethrow()
+ at Polly.ResiliencePipeline.ExecuteAsync[TResult,TState](Func`3 callback, TState state, CancellationToken cancellationToken)
+ at NzbDrone.Core.Indexers.HttpIndexerBase`1.FetchIndexerResponse(IndexerRequest request) in ./Prowlarr.Core/Indexers/HttpIndexerBase.cs:line 660
+ at NzbDrone.Core.Indexers.HttpIndexerBase`1.FetchPage(IndexerRequest request, IParseIndexerResponse parser) in ./Prowlarr.Core/Indexers/HttpIndexerBase.cs:line 583
+ at NzbDrone.Core.Indexers.HttpIndexerBase`1.FetchReleases(Func`2 pageableRequestChainSelector, SearchCriteriaBase searchCriteria, Boolean isRecent) in ./Prowlarr.Core/Indexers/HttpIndexerBase.cs:line 424
+FeedUrl: https://kickasstorrents.to/new/?sortby=time&sort=desc
+
+2024-12-14 01:14:48.5|Info|ReleaseSearchService|Searching indexer(s): [YTS] for Term: [], Offset: 0, Limit: 100, Categories: [2000, 2040, 2045, 2060]
+2024-12-14 01:14:49.3|Info|ReleaseSearchService|Searching indexer(s): [TorrentGalaxy] for Term: [], Offset: 0, Limit: 100, Categories: [2000, 2045, 2010, 2020, 2040, 2030]
+2024-12-14 01:14:50.3|Info|ReleaseSearchService|Searching indexer(s): [Internet Archive] for Term: [], Offset: 100, Limit: 100, Categories: [2000]
+2024-12-14 01:14:50.3|Info|ReleaseSearchService|Searching indexer(s): [TheRARBG] for Term: [], Offset: 100, Limit: 100, Categories: [2000]
+2024-12-14 01:14:50.5|Info|ReleaseSearchService|Searching indexer(s): [YTS] for Term: [], Offset: 100, Limit: 100, Categories: [2000, 2040, 2045, 2060]
+2024-12-14 01:14:55.2|Info|ReleaseSearchService|Searching indexer(s): [AniSource] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5070]
+2024-12-14 01:15:01.1|Info|ReleaseSearchService|Searching indexer(s): [Badass Torrents] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5070]
+2024-12-14 01:15:07.3|Info|ReleaseSearchService|Searching indexer(s): [Bangumi Moe] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5070]
+2024-12-14 01:15:09.3|Info|ReleaseSearchService|Searching indexer(s): [BitSearch] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 01:15:26.5|Warn|Cardigann|Request for BitSearch failed with status 522. Retrying in 1.4257109s.
+2024-12-14 01:15:48.7|Warn|Cardigann|Request for BitSearch failed with status 522. Retrying in 2.3774158s.
+2024-12-14 01:16:07.4|Warn|Cardigann|Request for BitSearch failed with status 522. Retrying in 3.9786703s.
+2024-12-14 01:16:26.6|Error|RadarrV3Proxy|Unable to add or update indexer
+
+[v1.27.0.4852] System.Net.WebException: Http request timed out
+ ---> System.IO.IOException: Unable to read data from the transport connection: Operation canceled.
+ ---> System.Net.Sockets.SocketException (125): Operation canceled
+ --- End of inner exception stack trace ---
+ at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ThrowException(SocketError error, CancellationToken cancellationToken)
+ at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.System.Threading.Tasks.Sources.IValueTaskSource.GetResult(Int16 token)
+ at System.Net.Http.HttpConnection.InitialFillAsync(Boolean async)
+ at System.Net.Http.HttpConnection.SendAsyncCore(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
+ --- End of inner exception stack trace ---
+ at NzbDrone.Common.Http.Dispatchers.ManagedHttpDispatcher.GetResponseAsync(HttpRequest request, CookieContainer cookies) in ./Prowlarr.Common/Http/Dispatchers/ManagedHttpDispatcher.cs:line 170
+ at NzbDrone.Common.Http.HttpClient.ExecuteRequestAsync(HttpRequest request, CookieContainer cookieContainer) in ./Prowlarr.Common/Http/HttpClient.cs:line 171
+ at NzbDrone.Common.Http.HttpClient.ExecuteAsync(HttpRequest request) in ./Prowlarr.Common/Http/HttpClient.cs:line 70
+ at NzbDrone.Common.Http.HttpClient.Execute(HttpRequest request) in ./Prowlarr.Common/Http/HttpClient.cs:line 137
+ at NzbDrone.Core.Applications.Radarr.RadarrV3Proxy.Execute[TResource](HttpRequest request) in ./Prowlarr.Core/Applications/Radarr/RadarrV3Proxy.cs:line 228
+ at NzbDrone.Core.Applications.Radarr.RadarrV3Proxy.ExecuteIndexerRequest(HttpRequest request) in ./Prowlarr.Core/Applications/Radarr/RadarrV3Proxy.cs:line 163
+
+
+2024-12-14 01:16:26.6|Warn|ApplicationService|NzbDrone.Core.Applications.ApplicationService server is currently unavailable. Http request timed out
+
+[v1.27.0.4852] System.Net.WebException: Http request timed out
+ ---> System.IO.IOException: Unable to read data from the transport connection: Operation canceled.
+ ---> System.Net.Sockets.SocketException (125): Operation canceled
+ --- End of inner exception stack trace ---
+ at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ThrowException(SocketError error, CancellationToken cancellationToken)
+ at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.System.Threading.Tasks.Sources.IValueTaskSource.GetResult(Int16 token)
+ at System.Net.Http.HttpConnection.InitialFillAsync(Boolean async)
+ at System.Net.Http.HttpConnection.SendAsyncCore(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
+ --- End of inner exception stack trace ---
+ at NzbDrone.Common.Http.Dispatchers.ManagedHttpDispatcher.GetResponseAsync(HttpRequest request, CookieContainer cookies) in ./Prowlarr.Common/Http/Dispatchers/ManagedHttpDispatcher.cs:line 170
+ at NzbDrone.Common.Http.HttpClient.ExecuteRequestAsync(HttpRequest request, CookieContainer cookieContainer) in ./Prowlarr.Common/Http/HttpClient.cs:line 171
+ at NzbDrone.Common.Http.HttpClient.ExecuteAsync(HttpRequest request) in ./Prowlarr.Common/Http/HttpClient.cs:line 70
+ at NzbDrone.Common.Http.HttpClient.Execute(HttpRequest request) in ./Prowlarr.Common/Http/HttpClient.cs:line 137
+ at NzbDrone.Core.Applications.Radarr.RadarrV3Proxy.Execute[TResource](HttpRequest request) in ./Prowlarr.Core/Applications/Radarr/RadarrV3Proxy.cs:line 228
+ at NzbDrone.Core.Applications.Radarr.RadarrV3Proxy.ExecuteIndexerRequest(HttpRequest request) in ./Prowlarr.Core/Applications/Radarr/RadarrV3Proxy.cs:line 163
+ at NzbDrone.Core.Applications.Radarr.RadarrV3Proxy.AddIndexer(RadarrIndexer indexer, RadarrSettings settings) in ./Prowlarr.Core/Applications/Radarr/RadarrV3Proxy.cs:line 92
+ at NzbDrone.Core.Applications.Radarr.Radarr.AddIndexer(IndexerDefinition indexer) in ./Prowlarr.Core/Applications/Radarr/Radarr.cs:line 135
+ at NzbDrone.Core.Applications.ApplicationService.<>c__DisplayClass14_2.b__5(IApplication a) in ./Prowlarr.Core/Applications/ApplicationService.cs:line 177
+ at NzbDrone.Core.Applications.ApplicationService.ExecuteAction(Action`1 applicationAction, IApplication application) in ./Prowlarr.Core/Applications/ApplicationService.cs:line 239
+
+
+2024-12-14 01:16:26.7|Info|ReleaseSearchService|Searching indexer(s): [LimeTorrents] for Term: [], Offset: 0, Limit: 100, Categories: [2000]
+2024-12-14 01:16:27.0|Warn|HttpClient|HTTP Error - Res: HTTP/1.1 [POST] http://radarr:7878/api/v3/indexer: 400.BadRequest (274 bytes)
+[
+ {
+ "isWarning": false,
+ "propertyName": "",
+ "errorMessage": "Query successful, but no results in the configured categories were returned from your indexer. This may be an issue with the indexer or your indexer category settings.",
+ "severity": "error"
+ }
+]
+2024-12-14 01:16:27.0|Warn|RadarrV3Proxy|No Results in configured categories. See FAQ Entry: Prowlarr will not sync X Indexer to App
+
+[v1.27.0.4852] NzbDrone.Common.Http.HttpException: HTTP request failed: [400:BadRequest] [POST] at [http://radarr:7878/api/v3/indexer]
+ at NzbDrone.Common.Http.HttpClient.ExecuteAsync(HttpRequest request) in ./Prowlarr.Common/Http/HttpClient.cs:line 128
+ at NzbDrone.Common.Http.HttpClient.Execute(HttpRequest request) in ./Prowlarr.Common/Http/HttpClient.cs:line 137
+ at NzbDrone.Core.Applications.Radarr.RadarrV3Proxy.Execute[TResource](HttpRequest request) in ./Prowlarr.Core/Applications/Radarr/RadarrV3Proxy.cs:line 228
+ at NzbDrone.Core.Applications.Radarr.RadarrV3Proxy.ExecuteIndexerRequest(HttpRequest request) in ./Prowlarr.Core/Applications/Radarr/RadarrV3Proxy.cs:line 163
+[
+ {
+ "isWarning": false,
+ "propertyName": "",
+ "errorMessage": "Query successful, but no results in the configured categories were returned from your indexer. This may be an issue with the indexer or your indexer category settings.",
+ "severity": "error"
+ }
+]
+
+
+2024-12-14 01:16:28.7|Info|ReleaseSearchService|Searching indexer(s): [LimeTorrents] for Term: [], Offset: 0, Limit: 100, Categories: [2000]
+2024-12-14 01:16:28.8|Warn|HttpClient|HTTP Error - Res: HTTP/1.1 [POST] http://radarr:7878/api/v3/indexer?forceSave=true: 400.BadRequest (274 bytes)
+[
+ {
+ "isWarning": false,
+ "propertyName": "",
+ "errorMessage": "Query successful, but no results in the configured categories were returned from your indexer. This may be an issue with the indexer or your indexer category settings.",
+ "severity": "error"
+ }
+]
+2024-12-14 01:16:28.8|Warn|RadarrV3Proxy|No Results in configured categories. See FAQ Entry: Prowlarr will not sync X Indexer to App
+
+[v1.27.0.4852] NzbDrone.Common.Http.HttpException: HTTP request failed: [400:BadRequest] [POST] at [http://radarr:7878/api/v3/indexer?forceSave=true]
+ at NzbDrone.Common.Http.HttpClient.ExecuteAsync(HttpRequest request) in ./Prowlarr.Common/Http/HttpClient.cs:line 128
+ at NzbDrone.Common.Http.HttpClient.Execute(HttpRequest request) in ./Prowlarr.Common/Http/HttpClient.cs:line 137
+ at NzbDrone.Core.Applications.Radarr.RadarrV3Proxy.Execute[TResource](HttpRequest request) in ./Prowlarr.Core/Applications/Radarr/RadarrV3Proxy.cs:line 228
+ at NzbDrone.Core.Applications.Radarr.RadarrV3Proxy.ExecuteIndexerRequest(HttpRequest request) in ./Prowlarr.Core/Applications/Radarr/RadarrV3Proxy.cs:line 163
+[
+ {
+ "isWarning": false,
+ "propertyName": "",
+ "errorMessage": "Query successful, but no results in the configured categories were returned from your indexer. This may be an issue with the indexer or your indexer category settings.",
+ "severity": "error"
+ }
+]
+
+
+2024-12-14 01:16:28.8|Warn|ApplicationService|NzbDrone.Core.Applications.ApplicationService HTTP request failed: [400:BadRequest] [POST] at [http://radarr:7878/api/v3/indexer?forceSave=true]
+
+[v1.27.0.4852] NzbDrone.Common.Http.HttpException: HTTP request failed: [400:BadRequest] [POST] at [http://radarr:7878/api/v3/indexer?forceSave=true]
+ at NzbDrone.Common.Http.HttpClient.ExecuteAsync(HttpRequest request) in ./Prowlarr.Common/Http/HttpClient.cs:line 128
+ at NzbDrone.Common.Http.HttpClient.Execute(HttpRequest request) in ./Prowlarr.Common/Http/HttpClient.cs:line 137
+ at NzbDrone.Core.Applications.Radarr.RadarrV3Proxy.Execute[TResource](HttpRequest request) in ./Prowlarr.Core/Applications/Radarr/RadarrV3Proxy.cs:line 228
+ at NzbDrone.Core.Applications.Radarr.RadarrV3Proxy.ExecuteIndexerRequest(HttpRequest request) in ./Prowlarr.Core/Applications/Radarr/RadarrV3Proxy.cs:line 163
+ at NzbDrone.Core.Applications.Radarr.RadarrV3Proxy.AddIndexer(RadarrIndexer indexer, RadarrSettings settings) in ./Prowlarr.Core/Applications/Radarr/RadarrV3Proxy.cs:line 100
+ at NzbDrone.Core.Applications.Radarr.Radarr.AddIndexer(IndexerDefinition indexer) in ./Prowlarr.Core/Applications/Radarr/Radarr.cs:line 135
+ at NzbDrone.Core.Applications.ApplicationService.<>c__DisplayClass14_2.b__5(IApplication a) in ./Prowlarr.Core/Applications/ApplicationService.cs:line 177
+ at NzbDrone.Core.Applications.ApplicationService.ExecuteAction(Action`1 applicationAction, IApplication application) in ./Prowlarr.Core/Applications/ApplicationService.cs:line 239
+[
+ {
+ "isWarning": false,
+ "propertyName": "",
+ "errorMessage": "Query successful, but no results in the configured categories were returned from your indexer. This may be an issue with the indexer or your indexer category settings.",
+ "severity": "error"
+ }
+]
+
+
+2024-12-14 01:16:29.9|Warn|Cardigann|Request for BitSearch failed with status 522. Retrying in 3.0985812s.
+2024-12-14 01:16:30.7|Info|ReleaseSearchService|Searching indexer(s): [Solid Torrents] for Term: [], Offset: 0, Limit: 100, Categories: [2000]
+2024-12-14 01:16:47.6|Error|SonarrV3Proxy|Unable to add or update indexer
+
+[v1.27.0.4852] System.Net.WebException: Http request timed out
+ ---> System.IO.IOException: Unable to read data from the transport connection: Operation canceled.
+ ---> System.Net.Sockets.SocketException (125): Operation canceled
+ --- End of inner exception stack trace ---
+ at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ThrowException(SocketError error, CancellationToken cancellationToken)
+ at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.System.Threading.Tasks.Sources.IValueTaskSource.GetResult(Int16 token)
+ at System.Net.Http.HttpConnection.InitialFillAsync(Boolean async)
+ at System.Net.Http.HttpConnection.SendAsyncCore(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
+ --- End of inner exception stack trace ---
+ at NzbDrone.Common.Http.Dispatchers.ManagedHttpDispatcher.GetResponseAsync(HttpRequest request, CookieContainer cookies) in ./Prowlarr.Common/Http/Dispatchers/ManagedHttpDispatcher.cs:line 170
+ at NzbDrone.Common.Http.HttpClient.ExecuteRequestAsync(HttpRequest request, CookieContainer cookieContainer) in ./Prowlarr.Common/Http/HttpClient.cs:line 171
+ at NzbDrone.Common.Http.HttpClient.ExecuteAsync(HttpRequest request) in ./Prowlarr.Common/Http/HttpClient.cs:line 70
+ at NzbDrone.Common.Http.HttpClient.Execute(HttpRequest request) in ./Prowlarr.Common/Http/HttpClient.cs:line 137
+ at NzbDrone.Core.Applications.Sonarr.SonarrV3Proxy.Execute[TResource](HttpRequest request) in ./Prowlarr.Core/Applications/Sonarr/SonarrV3Proxy.cs:line 215
+ at NzbDrone.Core.Applications.Sonarr.SonarrV3Proxy.ExecuteIndexerRequest(HttpRequest request) in ./Prowlarr.Core/Applications/Sonarr/SonarrV3Proxy.cs:line 150
+
+
+2024-12-14 01:16:47.6|Warn|ApplicationService|NzbDrone.Core.Applications.ApplicationService server is currently unavailable. Http request timed out
+
+[v1.27.0.4852] System.Net.WebException: Http request timed out
+ ---> System.IO.IOException: Unable to read data from the transport connection: Operation canceled.
+ ---> System.Net.Sockets.SocketException (125): Operation canceled
+ --- End of inner exception stack trace ---
+ at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ThrowException(SocketError error, CancellationToken cancellationToken)
+ at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.System.Threading.Tasks.Sources.IValueTaskSource.GetResult(Int16 token)
+ at System.Net.Http.HttpConnection.InitialFillAsync(Boolean async)
+ at System.Net.Http.HttpConnection.SendAsyncCore(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
+ --- End of inner exception stack trace ---
+ at NzbDrone.Common.Http.Dispatchers.ManagedHttpDispatcher.GetResponseAsync(HttpRequest request, CookieContainer cookies) in ./Prowlarr.Common/Http/Dispatchers/ManagedHttpDispatcher.cs:line 170
+ at NzbDrone.Common.Http.HttpClient.ExecuteRequestAsync(HttpRequest request, CookieContainer cookieContainer) in ./Prowlarr.Common/Http/HttpClient.cs:line 171
+ at NzbDrone.Common.Http.HttpClient.ExecuteAsync(HttpRequest request) in ./Prowlarr.Common/Http/HttpClient.cs:line 70
+ at NzbDrone.Common.Http.HttpClient.Execute(HttpRequest request) in ./Prowlarr.Common/Http/HttpClient.cs:line 137
+ at NzbDrone.Core.Applications.Sonarr.SonarrV3Proxy.Execute[TResource](HttpRequest request) in ./Prowlarr.Core/Applications/Sonarr/SonarrV3Proxy.cs:line 215
+ at NzbDrone.Core.Applications.Sonarr.SonarrV3Proxy.ExecuteIndexerRequest(HttpRequest request) in ./Prowlarr.Core/Applications/Sonarr/SonarrV3Proxy.cs:line 150
+ at NzbDrone.Core.Applications.Sonarr.SonarrV3Proxy.AddIndexer(SonarrIndexer indexer, SonarrSettings settings) in ./Prowlarr.Core/Applications/Sonarr/SonarrV3Proxy.cs:line 91
+ at NzbDrone.Core.Applications.Sonarr.Sonarr.AddIndexer(IndexerDefinition indexer) in ./Prowlarr.Core/Applications/Sonarr/Sonarr.cs:line 140
+ at NzbDrone.Core.Applications.ApplicationService.<>c__DisplayClass14_2.b__5(IApplication a) in ./Prowlarr.Core/Applications/ApplicationService.cs:line 177
+ at NzbDrone.Core.Applications.ApplicationService.ExecuteAction(Action`1 applicationAction, IApplication application) in ./Prowlarr.Core/Applications/ApplicationService.cs:line 239
+
+
+2024-12-14 01:16:47.7|Info|ReleaseSearchService|Searching indexer(s): [E-Hentai] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5070]
+2024-12-14 01:16:50.0|Info|ReleaseSearchService|Searching indexer(s): [EZTV] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 01:16:50.7|Warn|Cardigann|HTTP Error - Res: HTTP/2.0 [GET] https://bitsearch.to/search?sort=date&order=desc&limit=100&page=1: 522.522 (15 bytes)
+error code: 522
+2024-12-14 01:16:50.7|Warn|Cardigann|Unable to connect to BitSearch at [https://bitsearch.to/search?sort=date&order=desc&limit=100&page=1]. Indexer's server is unavailable. Try again later. HTTP request failed: [522:522] [GET] at [https://bitsearch.to/search?sort=date&order=desc&limit=100&page=1]
+
+[v1.27.0.4852] NzbDrone.Common.Http.HttpException: HTTP request failed: [522:522] [GET] at [https://bitsearch.to/search?sort=date&order=desc&limit=100&page=1]
+ at NzbDrone.Core.Indexers.HttpIndexerBase`1.FetchIndexerResponse(IndexerRequest request) in ./Prowlarr.Core/Indexers/HttpIndexerBase.cs:line 697
+ at NzbDrone.Core.Indexers.HttpIndexerBase`1.FetchPage(IndexerRequest request, IParseIndexerResponse parser) in ./Prowlarr.Core/Indexers/HttpIndexerBase.cs:line 606
+ at NzbDrone.Core.Indexers.HttpIndexerBase`1.FetchReleases(Func`2 pageableRequestChainSelector, SearchCriteriaBase searchCriteria, Boolean isRecent) in ./Prowlarr.Core/Indexers/HttpIndexerBase.cs:line 424
+error code: 522
+
+
+2024-12-14 01:16:52.0|Info|ReleaseSearchService|Searching indexer(s): [Internet Archive] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 01:16:54.0|Info|ReleaseSearchService|Searching indexer(s): [Isohunt2] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5070]
+2024-12-14 01:16:56.0|Info|ReleaseSearchService|Searching indexer(s): [kickasstorrents.ws] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 01:16:58.0|Info|ReleaseSearchService|Searching indexer(s): [Knaben] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5040, 5030, 5045, 5020, 5050, 5070]
+2024-12-14 01:16:58.9|Warn|HttpClient|HTTP Error - Res: HTTP/1.1 [POST] http://sonarr:8989/api/v3/indexer: 400.BadRequest (274 bytes)
+[
+ {
+ "isWarning": false,
+ "propertyName": "",
+ "errorMessage": "Query successful, but no results in the configured categories were returned from your indexer. This may be an issue with the indexer or your indexer category settings.",
+ "severity": "error"
+ }
+]
+2024-12-14 01:16:58.9|Warn|SonarrV3Proxy|No Results in configured categories. See FAQ Entry: Prowlarr will not sync X Indexer to App
+
+[v1.27.0.4852] NzbDrone.Common.Http.HttpException: HTTP request failed: [400:BadRequest] [POST] at [http://sonarr:8989/api/v3/indexer]
+ at NzbDrone.Common.Http.HttpClient.ExecuteAsync(HttpRequest request) in ./Prowlarr.Common/Http/HttpClient.cs:line 128
+ at NzbDrone.Common.Http.HttpClient.Execute(HttpRequest request) in ./Prowlarr.Common/Http/HttpClient.cs:line 137
+ at NzbDrone.Core.Applications.Sonarr.SonarrV3Proxy.Execute[TResource](HttpRequest request) in ./Prowlarr.Core/Applications/Sonarr/SonarrV3Proxy.cs:line 215
+ at NzbDrone.Core.Applications.Sonarr.SonarrV3Proxy.ExecuteIndexerRequest(HttpRequest request) in ./Prowlarr.Core/Applications/Sonarr/SonarrV3Proxy.cs:line 150
+[
+ {
+ "isWarning": false,
+ "propertyName": "",
+ "errorMessage": "Query successful, but no results in the configured categories were returned from your indexer. This may be an issue with the indexer or your indexer category settings.",
+ "severity": "error"
+ }
+]
+
+
+2024-12-14 01:17:00.0|Info|ReleaseSearchService|Searching indexer(s): [Knaben] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5040, 5030, 5045, 5020, 5050, 5070]
+2024-12-14 01:17:00.6|Warn|HttpClient|HTTP Error - Res: HTTP/1.1 [POST] http://sonarr:8989/api/v3/indexer?forceSave=true: 400.BadRequest (274 bytes)
+[
+ {
+ "isWarning": false,
+ "propertyName": "",
+ "errorMessage": "Query successful, but no results in the configured categories were returned from your indexer. This may be an issue with the indexer or your indexer category settings.",
+ "severity": "error"
+ }
+]
+2024-12-14 01:17:00.6|Warn|SonarrV3Proxy|No Results in configured categories. See FAQ Entry: Prowlarr will not sync X Indexer to App
+
+[v1.27.0.4852] NzbDrone.Common.Http.HttpException: HTTP request failed: [400:BadRequest] [POST] at [http://sonarr:8989/api/v3/indexer?forceSave=true]
+ at NzbDrone.Common.Http.HttpClient.ExecuteAsync(HttpRequest request) in ./Prowlarr.Common/Http/HttpClient.cs:line 128
+ at NzbDrone.Common.Http.HttpClient.Execute(HttpRequest request) in ./Prowlarr.Common/Http/HttpClient.cs:line 137
+ at NzbDrone.Core.Applications.Sonarr.SonarrV3Proxy.Execute[TResource](HttpRequest request) in ./Prowlarr.Core/Applications/Sonarr/SonarrV3Proxy.cs:line 215
+ at NzbDrone.Core.Applications.Sonarr.SonarrV3Proxy.ExecuteIndexerRequest(HttpRequest request) in ./Prowlarr.Core/Applications/Sonarr/SonarrV3Proxy.cs:line 150
+[
+ {
+ "isWarning": false,
+ "propertyName": "",
+ "errorMessage": "Query successful, but no results in the configured categories were returned from your indexer. This may be an issue with the indexer or your indexer category settings.",
+ "severity": "error"
+ }
+]
+
+
+2024-12-14 01:17:00.6|Warn|ApplicationService|NzbDrone.Core.Applications.ApplicationService HTTP request failed: [400:BadRequest] [POST] at [http://sonarr:8989/api/v3/indexer?forceSave=true]
+
+[v1.27.0.4852] NzbDrone.Common.Http.HttpException: HTTP request failed: [400:BadRequest] [POST] at [http://sonarr:8989/api/v3/indexer?forceSave=true]
+ at NzbDrone.Common.Http.HttpClient.ExecuteAsync(HttpRequest request) in ./Prowlarr.Common/Http/HttpClient.cs:line 128
+ at NzbDrone.Common.Http.HttpClient.Execute(HttpRequest request) in ./Prowlarr.Common/Http/HttpClient.cs:line 137
+ at NzbDrone.Core.Applications.Sonarr.SonarrV3Proxy.Execute[TResource](HttpRequest request) in ./Prowlarr.Core/Applications/Sonarr/SonarrV3Proxy.cs:line 215
+ at NzbDrone.Core.Applications.Sonarr.SonarrV3Proxy.ExecuteIndexerRequest(HttpRequest request) in ./Prowlarr.Core/Applications/Sonarr/SonarrV3Proxy.cs:line 150
+ at NzbDrone.Core.Applications.Sonarr.SonarrV3Proxy.AddIndexer(SonarrIndexer indexer, SonarrSettings settings) in ./Prowlarr.Core/Applications/Sonarr/SonarrV3Proxy.cs:line 99
+ at NzbDrone.Core.Applications.Sonarr.Sonarr.AddIndexer(IndexerDefinition indexer) in ./Prowlarr.Core/Applications/Sonarr/Sonarr.cs:line 140
+ at NzbDrone.Core.Applications.ApplicationService.<>c__DisplayClass14_2.b__5(IApplication a) in ./Prowlarr.Core/Applications/ApplicationService.cs:line 177
+ at NzbDrone.Core.Applications.ApplicationService.ExecuteAction(Action`1 applicationAction, IApplication application) in ./Prowlarr.Core/Applications/ApplicationService.cs:line 239
+[
+ {
+ "isWarning": false,
+ "propertyName": "",
+ "errorMessage": "Query successful, but no results in the configured categories were returned from your indexer. This may be an issue with the indexer or your indexer category settings.",
+ "severity": "error"
+ }
+]
+
+
+2024-12-14 01:17:02.0|Info|ReleaseSearchService|Searching indexer(s): [LimeTorrents] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5070]
+2024-12-14 01:17:04.0|Info|ReleaseSearchService|Searching indexer(s): [Shana Project] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5070]
+2024-12-14 01:17:06.0|Info|ReleaseSearchService|Searching indexer(s): [showRSS] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5030, 5040]
+2024-12-14 01:17:08.5|Info|ReleaseSearchService|Searching indexer(s): [Solid Torrents] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 01:17:09.7|Warn|Cardigann|Request for Solid Torrents failed with status 522. Retrying in 0.8642307s.
+2024-12-14 01:17:11.9|Warn|Cardigann|HTTP Error - Res: HTTP/2.0 [GET] https://bitsearch.to/search?sort=date&order=desc&limit=100&page=1: 522.522 (15 bytes)
+error code: 522
+2024-12-14 01:17:11.9|Warn|Cardigann|Unable to connect to BitSearch at [https://bitsearch.to/search?sort=date&order=desc&limit=100&page=1]. Indexer's server is unavailable. Try again later. HTTP request failed: [522:522] [GET] at [https://bitsearch.to/search?sort=date&order=desc&limit=100&page=1]
+
+[v1.27.0.4852] NzbDrone.Common.Http.HttpException: HTTP request failed: [522:522] [GET] at [https://bitsearch.to/search?sort=date&order=desc&limit=100&page=1]
+ at NzbDrone.Core.Indexers.HttpIndexerBase`1.FetchIndexerResponse(IndexerRequest request) in ./Prowlarr.Core/Indexers/HttpIndexerBase.cs:line 697
+ at NzbDrone.Core.Indexers.HttpIndexerBase`1.FetchPage(IndexerRequest request, IParseIndexerResponse parser) in ./Prowlarr.Core/Indexers/HttpIndexerBase.cs:line 606
+ at NzbDrone.Core.Indexers.HttpIndexerBase`1.FetchReleases(Func`2 pageableRequestChainSelector, SearchCriteriaBase searchCriteria, Boolean isRecent) in ./Prowlarr.Core/Indexers/HttpIndexerBase.cs:line 424
+error code: 522
+
+
+2024-12-14 01:17:47.6|Warn|Cardigann|Request for Solid Torrents failed with status 522. Retrying in 2.3525335s.
+2024-12-14 01:17:49.7|Warn|Cardigann|Request for Solid Torrents failed with status 522. Retrying in 4.0027551s.
+2024-12-14 01:18:08.8|Error|RadarrV3Proxy|Unable to add or update indexer
+
+[v1.27.0.4852] System.Net.WebException: Http request timed out
+ ---> System.IO.IOException: Unable to read data from the transport connection: Operation canceled.
+ ---> System.Net.Sockets.SocketException (125): Operation canceled
+ --- End of inner exception stack trace ---
+ at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ThrowException(SocketError error, CancellationToken cancellationToken)
+ at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.System.Threading.Tasks.Sources.IValueTaskSource.GetResult(Int16 token)
+ at System.Net.Http.HttpConnection.InitialFillAsync(Boolean async)
+ at System.Net.Http.HttpConnection.SendAsyncCore(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
+ --- End of inner exception stack trace ---
+ at NzbDrone.Common.Http.Dispatchers.ManagedHttpDispatcher.GetResponseAsync(HttpRequest request, CookieContainer cookies) in ./Prowlarr.Common/Http/Dispatchers/ManagedHttpDispatcher.cs:line 170
+ at NzbDrone.Common.Http.HttpClient.ExecuteRequestAsync(HttpRequest request, CookieContainer cookieContainer) in ./Prowlarr.Common/Http/HttpClient.cs:line 171
+ at NzbDrone.Common.Http.HttpClient.ExecuteAsync(HttpRequest request) in ./Prowlarr.Common/Http/HttpClient.cs:line 70
+ at NzbDrone.Common.Http.HttpClient.Execute(HttpRequest request) in ./Prowlarr.Common/Http/HttpClient.cs:line 137
+ at NzbDrone.Core.Applications.Radarr.RadarrV3Proxy.Execute[TResource](HttpRequest request) in ./Prowlarr.Core/Applications/Radarr/RadarrV3Proxy.cs:line 228
+ at NzbDrone.Core.Applications.Radarr.RadarrV3Proxy.ExecuteIndexerRequest(HttpRequest request) in ./Prowlarr.Core/Applications/Radarr/RadarrV3Proxy.cs:line 163
+
+
+2024-12-14 01:18:08.8|Warn|ApplicationService|NzbDrone.Core.Applications.ApplicationService server is currently unavailable. Http request timed out
+
+[v1.27.0.4852] System.Net.WebException: Http request timed out
+ ---> System.IO.IOException: Unable to read data from the transport connection: Operation canceled.
+ ---> System.Net.Sockets.SocketException (125): Operation canceled
+ --- End of inner exception stack trace ---
+ at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ThrowException(SocketError error, CancellationToken cancellationToken)
+ at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.System.Threading.Tasks.Sources.IValueTaskSource.GetResult(Int16 token)
+ at System.Net.Http.HttpConnection.InitialFillAsync(Boolean async)
+ at System.Net.Http.HttpConnection.SendAsyncCore(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
+ --- End of inner exception stack trace ---
+ at NzbDrone.Common.Http.Dispatchers.ManagedHttpDispatcher.GetResponseAsync(HttpRequest request, CookieContainer cookies) in ./Prowlarr.Common/Http/Dispatchers/ManagedHttpDispatcher.cs:line 170
+ at NzbDrone.Common.Http.HttpClient.ExecuteRequestAsync(HttpRequest request, CookieContainer cookieContainer) in ./Prowlarr.Common/Http/HttpClient.cs:line 171
+ at NzbDrone.Common.Http.HttpClient.ExecuteAsync(HttpRequest request) in ./Prowlarr.Common/Http/HttpClient.cs:line 70
+ at NzbDrone.Common.Http.HttpClient.Execute(HttpRequest request) in ./Prowlarr.Common/Http/HttpClient.cs:line 137
+ at NzbDrone.Core.Applications.Radarr.RadarrV3Proxy.Execute[TResource](HttpRequest request) in ./Prowlarr.Core/Applications/Radarr/RadarrV3Proxy.cs:line 228
+ at NzbDrone.Core.Applications.Radarr.RadarrV3Proxy.ExecuteIndexerRequest(HttpRequest request) in ./Prowlarr.Core/Applications/Radarr/RadarrV3Proxy.cs:line 163
+ at NzbDrone.Core.Applications.Radarr.RadarrV3Proxy.AddIndexer(RadarrIndexer indexer, RadarrSettings settings) in ./Prowlarr.Core/Applications/Radarr/RadarrV3Proxy.cs:line 92
+ at NzbDrone.Core.Applications.Radarr.Radarr.AddIndexer(IndexerDefinition indexer) in ./Prowlarr.Core/Applications/Radarr/Radarr.cs:line 135
+ at NzbDrone.Core.Applications.ApplicationService.<>c__DisplayClass14_2.b__5(IApplication a) in ./Prowlarr.Core/Applications/ApplicationService.cs:line 177
+ at NzbDrone.Core.Applications.ApplicationService.ExecuteAction(Action`1 applicationAction, IApplication application) in ./Prowlarr.Core/Applications/ApplicationService.cs:line 239
+
+
+2024-12-14 01:18:08.9|Info|ReleaseSearchService|Searching indexer(s): [SubsPlease] for Term: [], Offset: 0, Limit: 100, Categories: [2000, 2020]
+2024-12-14 01:18:09.3|Warn|HttpClient|HTTP Error - Res: HTTP/1.1 [POST] http://radarr:7878/api/v3/indexer: 400.BadRequest (274 bytes)
+[
+ {
+ "isWarning": false,
+ "propertyName": "",
+ "errorMessage": "Query successful, but no results in the configured categories were returned from your indexer. This may be an issue with the indexer or your indexer category settings.",
+ "severity": "error"
+ }
+]
+2024-12-14 01:18:09.3|Warn|RadarrV3Proxy|No Results in configured categories. See FAQ Entry: Prowlarr will not sync X Indexer to App
+
+[v1.27.0.4852] NzbDrone.Common.Http.HttpException: HTTP request failed: [400:BadRequest] [POST] at [http://radarr:7878/api/v3/indexer]
+ at NzbDrone.Common.Http.HttpClient.ExecuteAsync(HttpRequest request) in ./Prowlarr.Common/Http/HttpClient.cs:line 128
+ at NzbDrone.Common.Http.HttpClient.Execute(HttpRequest request) in ./Prowlarr.Common/Http/HttpClient.cs:line 137
+ at NzbDrone.Core.Applications.Radarr.RadarrV3Proxy.Execute[TResource](HttpRequest request) in ./Prowlarr.Core/Applications/Radarr/RadarrV3Proxy.cs:line 228
+ at NzbDrone.Core.Applications.Radarr.RadarrV3Proxy.ExecuteIndexerRequest(HttpRequest request) in ./Prowlarr.Core/Applications/Radarr/RadarrV3Proxy.cs:line 163
+[
+ {
+ "isWarning": false,
+ "propertyName": "",
+ "errorMessage": "Query successful, but no results in the configured categories were returned from your indexer. This may be an issue with the indexer or your indexer category settings.",
+ "severity": "error"
+ }
+]
+
+
+2024-12-14 01:18:10.9|Info|ReleaseSearchService|Searching indexer(s): [SubsPlease] for Term: [], Offset: 0, Limit: 100, Categories: [2000, 2020]
+2024-12-14 01:18:11.1|Warn|HttpClient|HTTP Error - Res: HTTP/1.1 [POST] http://radarr:7878/api/v3/indexer?forceSave=true: 400.BadRequest (274 bytes)
+[
+ {
+ "isWarning": false,
+ "propertyName": "",
+ "errorMessage": "Query successful, but no results in the configured categories were returned from your indexer. This may be an issue with the indexer or your indexer category settings.",
+ "severity": "error"
+ }
+]
+2024-12-14 01:18:11.1|Warn|RadarrV3Proxy|No Results in configured categories. See FAQ Entry: Prowlarr will not sync X Indexer to App
+
+[v1.27.0.4852] NzbDrone.Common.Http.HttpException: HTTP request failed: [400:BadRequest] [POST] at [http://radarr:7878/api/v3/indexer?forceSave=true]
+ at NzbDrone.Common.Http.HttpClient.ExecuteAsync(HttpRequest request) in ./Prowlarr.Common/Http/HttpClient.cs:line 128
+ at NzbDrone.Common.Http.HttpClient.Execute(HttpRequest request) in ./Prowlarr.Common/Http/HttpClient.cs:line 137
+ at NzbDrone.Core.Applications.Radarr.RadarrV3Proxy.Execute[TResource](HttpRequest request) in ./Prowlarr.Core/Applications/Radarr/RadarrV3Proxy.cs:line 228
+ at NzbDrone.Core.Applications.Radarr.RadarrV3Proxy.ExecuteIndexerRequest(HttpRequest request) in ./Prowlarr.Core/Applications/Radarr/RadarrV3Proxy.cs:line 163
+[
+ {
+ "isWarning": false,
+ "propertyName": "",
+ "errorMessage": "Query successful, but no results in the configured categories were returned from your indexer. This may be an issue with the indexer or your indexer category settings.",
+ "severity": "error"
+ }
+]
+
+
+2024-12-14 01:18:11.1|Warn|ApplicationService|NzbDrone.Core.Applications.ApplicationService HTTP request failed: [400:BadRequest] [POST] at [http://radarr:7878/api/v3/indexer?forceSave=true]
+
+[v1.27.0.4852] NzbDrone.Common.Http.HttpException: HTTP request failed: [400:BadRequest] [POST] at [http://radarr:7878/api/v3/indexer?forceSave=true]
+ at NzbDrone.Common.Http.HttpClient.ExecuteAsync(HttpRequest request) in ./Prowlarr.Common/Http/HttpClient.cs:line 128
+ at NzbDrone.Common.Http.HttpClient.Execute(HttpRequest request) in ./Prowlarr.Common/Http/HttpClient.cs:line 137
+ at NzbDrone.Core.Applications.Radarr.RadarrV3Proxy.Execute[TResource](HttpRequest request) in ./Prowlarr.Core/Applications/Radarr/RadarrV3Proxy.cs:line 228
+ at NzbDrone.Core.Applications.Radarr.RadarrV3Proxy.ExecuteIndexerRequest(HttpRequest request) in ./Prowlarr.Core/Applications/Radarr/RadarrV3Proxy.cs:line 163
+ at NzbDrone.Core.Applications.Radarr.RadarrV3Proxy.AddIndexer(RadarrIndexer indexer, RadarrSettings settings) in ./Prowlarr.Core/Applications/Radarr/RadarrV3Proxy.cs:line 100
+ at NzbDrone.Core.Applications.Radarr.Radarr.AddIndexer(IndexerDefinition indexer) in ./Prowlarr.Core/Applications/Radarr/Radarr.cs:line 135
+ at NzbDrone.Core.Applications.ApplicationService.ExecuteAction(Action`1 applicationAction, IApplication application) in ./Prowlarr.Core/Applications/ApplicationService.cs:line 281
+[
+ {
+ "isWarning": false,
+ "propertyName": "",
+ "errorMessage": "Query successful, but no results in the configured categories were returned from your indexer. This may be an issue with the indexer or your indexer category settings.",
+ "severity": "error"
+ }
+]
+
+
+2024-12-14 01:18:12.9|Info|ReleaseSearchService|Searching indexer(s): [Torrentz2nz] for Term: [], Offset: 0, Limit: 100, Categories: [2000]
+2024-12-14 01:18:29.4|Warn|Cardigann|Request for Solid Torrents failed with status 522. Retrying in 3.0419697s.
+2024-12-14 01:18:32.7|Warn|Cardigann|HTTP Error - Res: HTTP/2.0 [GET] https://solidtorrents.eu/search?sort=date&order=desc&limit=100&page=1: 522.522 (15 bytes)
+error code: 522
+2024-12-14 01:18:32.7|Warn|Cardigann|Unable to connect to Solid Torrents at [https://solidtorrents.eu/search?sort=date&order=desc&limit=100&page=1]. Indexer's server is unavailable. Try again later. HTTP request failed: [522:522] [GET] at [https://solidtorrents.eu/search?sort=date&order=desc&limit=100&page=1]
+
+[v1.27.0.4852] NzbDrone.Common.Http.HttpException: HTTP request failed: [522:522] [GET] at [https://solidtorrents.eu/search?sort=date&order=desc&limit=100&page=1]
+ at NzbDrone.Core.Indexers.HttpIndexerBase`1.FetchIndexerResponse(IndexerRequest request) in ./Prowlarr.Core/Indexers/HttpIndexerBase.cs:line 697
+ at NzbDrone.Core.Indexers.HttpIndexerBase`1.FetchPage(IndexerRequest request, IParseIndexerResponse parser) in ./Prowlarr.Core/Indexers/HttpIndexerBase.cs:line 606
+ at NzbDrone.Core.Indexers.HttpIndexerBase`1.FetchReleases(Func`2 pageableRequestChainSelector, SearchCriteriaBase searchCriteria, Boolean isRecent) in ./Prowlarr.Core/Indexers/HttpIndexerBase.cs:line 424
+error code: 522
+
+
+2024-12-14 01:18:48.5|Error|SonarrV3Proxy|Unable to add or update indexer
+
+[v1.27.0.4852] System.Net.WebException: Http request timed out
+ ---> System.IO.IOException: Unable to read data from the transport connection: Operation canceled.
+ ---> System.Net.Sockets.SocketException (125): Operation canceled
+ --- End of inner exception stack trace ---
+ at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ThrowException(SocketError error, CancellationToken cancellationToken)
+ at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.System.Threading.Tasks.Sources.IValueTaskSource.GetResult(Int16 token)
+ at System.Net.Http.HttpConnection.InitialFillAsync(Boolean async)
+ at System.Net.Http.HttpConnection.SendAsyncCore(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
+ --- End of inner exception stack trace ---
+ at NzbDrone.Common.Http.Dispatchers.ManagedHttpDispatcher.GetResponseAsync(HttpRequest request, CookieContainer cookies) in ./Prowlarr.Common/Http/Dispatchers/ManagedHttpDispatcher.cs:line 170
+ at NzbDrone.Common.Http.HttpClient.ExecuteRequestAsync(HttpRequest request, CookieContainer cookieContainer) in ./Prowlarr.Common/Http/HttpClient.cs:line 171
+ at NzbDrone.Common.Http.HttpClient.ExecuteAsync(HttpRequest request) in ./Prowlarr.Common/Http/HttpClient.cs:line 70
+ at NzbDrone.Common.Http.HttpClient.Execute(HttpRequest request) in ./Prowlarr.Common/Http/HttpClient.cs:line 137
+ at NzbDrone.Core.Applications.Sonarr.SonarrV3Proxy.Execute[TResource](HttpRequest request) in ./Prowlarr.Core/Applications/Sonarr/SonarrV3Proxy.cs:line 215
+ at NzbDrone.Core.Applications.Sonarr.SonarrV3Proxy.ExecuteIndexerRequest(HttpRequest request) in ./Prowlarr.Core/Applications/Sonarr/SonarrV3Proxy.cs:line 150
+
+
+2024-12-14 01:18:48.5|Warn|ApplicationService|NzbDrone.Core.Applications.ApplicationService server is currently unavailable. Http request timed out
+
+[v1.27.0.4852] System.Net.WebException: Http request timed out
+ ---> System.IO.IOException: Unable to read data from the transport connection: Operation canceled.
+ ---> System.Net.Sockets.SocketException (125): Operation canceled
+ --- End of inner exception stack trace ---
+ at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ThrowException(SocketError error, CancellationToken cancellationToken)
+ at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.System.Threading.Tasks.Sources.IValueTaskSource.GetResult(Int16 token)
+ at System.Net.Http.HttpConnection.InitialFillAsync(Boolean async)
+ at System.Net.Http.HttpConnection.SendAsyncCore(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
+ --- End of inner exception stack trace ---
+ at NzbDrone.Common.Http.Dispatchers.ManagedHttpDispatcher.GetResponseAsync(HttpRequest request, CookieContainer cookies) in ./Prowlarr.Common/Http/Dispatchers/ManagedHttpDispatcher.cs:line 170
+ at NzbDrone.Common.Http.HttpClient.ExecuteRequestAsync(HttpRequest request, CookieContainer cookieContainer) in ./Prowlarr.Common/Http/HttpClient.cs:line 171
+ at NzbDrone.Common.Http.HttpClient.ExecuteAsync(HttpRequest request) in ./Prowlarr.Common/Http/HttpClient.cs:line 70
+ at NzbDrone.Common.Http.HttpClient.Execute(HttpRequest request) in ./Prowlarr.Common/Http/HttpClient.cs:line 137
+ at NzbDrone.Core.Applications.Sonarr.SonarrV3Proxy.Execute[TResource](HttpRequest request) in ./Prowlarr.Core/Applications/Sonarr/SonarrV3Proxy.cs:line 215
+ at NzbDrone.Core.Applications.Sonarr.SonarrV3Proxy.ExecuteIndexerRequest(HttpRequest request) in ./Prowlarr.Core/Applications/Sonarr/SonarrV3Proxy.cs:line 150
+ at NzbDrone.Core.Applications.Sonarr.SonarrV3Proxy.AddIndexer(SonarrIndexer indexer, SonarrSettings settings) in ./Prowlarr.Core/Applications/Sonarr/SonarrV3Proxy.cs:line 91
+ at NzbDrone.Core.Applications.Sonarr.Sonarr.AddIndexer(IndexerDefinition indexer) in ./Prowlarr.Core/Applications/Sonarr/Sonarr.cs:line 140
+ at NzbDrone.Core.Applications.ApplicationService.ExecuteAction(Action`1 applicationAction, IApplication application) in ./Prowlarr.Core/Applications/ApplicationService.cs:line 281
+
+
+2024-12-14 01:18:48.5|Info|ReleaseSearchService|Searching indexer(s): [SubsPlease] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5070]
+2024-12-14 01:18:50.5|Info|ReleaseSearchService|Searching indexer(s): [The Pirate Bay] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5050, 5040, 5045]
+2024-12-14 01:18:52.5|Info|ReleaseSearchService|Searching indexer(s): [TheRARBG] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5070]
+2024-12-14 01:18:52.6|Warn|Cardigann|Request for Torrentz2nz failed with status 522. Retrying in 1.7260262s.
+2024-12-14 01:18:54.5|Info|ReleaseSearchService|Searching indexer(s): [Tokyo Toshokan] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5070]
+2024-12-14 01:18:56.5|Info|ReleaseSearchService|Searching indexer(s): [Torlock] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5070]
+2024-12-14 01:18:59.1|Info|ReleaseSearchService|Searching indexer(s): [Torrent Downloads] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5070]
+2024-12-14 01:19:01.1|Info|ReleaseSearchService|Searching indexer(s): [TorrentGalaxy] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5040, 5030, 5045, 5050, 5070]
+2024-12-14 01:19:03.8|Info|ReleaseSearchService|Searching indexer(s): [Torrentz2nz] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 01:19:11.6|Warn|Cardigann|HTTP Error - Res: HTTP/2.0 [GET] https://solidtorrents.eu/search?sort=date&order=desc&limit=100&page=1: 522.522 (15 bytes)
+error code: 522
+2024-12-14 01:19:11.6|Warn|Cardigann|Unable to connect to Solid Torrents at [https://solidtorrents.eu/search?sort=date&order=desc&limit=100&page=1]. Indexer's server is unavailable. Try again later. HTTP request failed: [522:522] [GET] at [https://solidtorrents.eu/search?sort=date&order=desc&limit=100&page=1]
+
+[v1.27.0.4852] NzbDrone.Common.Http.HttpException: HTTP request failed: [522:522] [GET] at [https://solidtorrents.eu/search?sort=date&order=desc&limit=100&page=1]
+ at NzbDrone.Core.Indexers.HttpIndexerBase`1.FetchIndexerResponse(IndexerRequest request) in ./Prowlarr.Core/Indexers/HttpIndexerBase.cs:line 697
+ at NzbDrone.Core.Indexers.HttpIndexerBase`1.FetchPage(IndexerRequest request, IParseIndexerResponse parser) in ./Prowlarr.Core/Indexers/HttpIndexerBase.cs:line 606
+ at NzbDrone.Core.Indexers.HttpIndexerBase`1.FetchReleases(Func`2 pageableRequestChainSelector, SearchCriteriaBase searchCriteria, Boolean isRecent) in ./Prowlarr.Core/Indexers/HttpIndexerBase.cs:line 424
+error code: 522
+
+
+2024-12-14 01:19:33.2|Warn|Cardigann|Request for Torrentz2nz failed with status 522. Retrying in 1.5886512s.
+2024-12-14 01:19:42.9|Warn|Cardigann|Request for Torrentz2nz failed with status 522. Retrying in 0.6422524s.
+2024-12-14 01:19:51.1|Error|RadarrV3Proxy|Unable to add or update indexer
+
+[v1.27.0.4852] System.Net.WebException: Http request timed out
+ ---> System.IO.IOException: Unable to read data from the transport connection: Operation canceled.
+ ---> System.Net.Sockets.SocketException (125): Operation canceled
+ --- End of inner exception stack trace ---
+ at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ThrowException(SocketError error, CancellationToken cancellationToken)
+ at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.System.Threading.Tasks.Sources.IValueTaskSource.GetResult(Int16 token)
+ at System.Net.Http.HttpConnection.InitialFillAsync(Boolean async)
+ at System.Net.Http.HttpConnection.SendAsyncCore(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
+ --- End of inner exception stack trace ---
+ at NzbDrone.Common.Http.Dispatchers.ManagedHttpDispatcher.GetResponseAsync(HttpRequest request, CookieContainer cookies) in ./Prowlarr.Common/Http/Dispatchers/ManagedHttpDispatcher.cs:line 170
+ at NzbDrone.Common.Http.HttpClient.ExecuteRequestAsync(HttpRequest request, CookieContainer cookieContainer) in ./Prowlarr.Common/Http/HttpClient.cs:line 171
+ at NzbDrone.Common.Http.HttpClient.ExecuteAsync(HttpRequest request) in ./Prowlarr.Common/Http/HttpClient.cs:line 70
+ at NzbDrone.Common.Http.HttpClient.Execute(HttpRequest request) in ./Prowlarr.Common/Http/HttpClient.cs:line 137
+ at NzbDrone.Core.Applications.Radarr.RadarrV3Proxy.Execute[TResource](HttpRequest request) in ./Prowlarr.Core/Applications/Radarr/RadarrV3Proxy.cs:line 228
+ at NzbDrone.Core.Applications.Radarr.RadarrV3Proxy.ExecuteIndexerRequest(HttpRequest request) in ./Prowlarr.Core/Applications/Radarr/RadarrV3Proxy.cs:line 163
+
+
+2024-12-14 01:19:51.2|Warn|ApplicationService|NzbDrone.Core.Applications.ApplicationService server is currently unavailable. Http request timed out
+
+[v1.27.0.4852] System.Net.WebException: Http request timed out
+ ---> System.IO.IOException: Unable to read data from the transport connection: Operation canceled.
+ ---> System.Net.Sockets.SocketException (125): Operation canceled
+ --- End of inner exception stack trace ---
+ at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ThrowException(SocketError error, CancellationToken cancellationToken)
+ at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.System.Threading.Tasks.Sources.IValueTaskSource.GetResult(Int16 token)
+ at System.Net.Http.HttpConnection.InitialFillAsync(Boolean async)
+ at System.Net.Http.HttpConnection.SendAsyncCore(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
+ --- End of inner exception stack trace ---
+ at NzbDrone.Common.Http.Dispatchers.ManagedHttpDispatcher.GetResponseAsync(HttpRequest request, CookieContainer cookies) in ./Prowlarr.Common/Http/Dispatchers/ManagedHttpDispatcher.cs:line 170
+ at NzbDrone.Common.Http.HttpClient.ExecuteRequestAsync(HttpRequest request, CookieContainer cookieContainer) in ./Prowlarr.Common/Http/HttpClient.cs:line 171
+ at NzbDrone.Common.Http.HttpClient.ExecuteAsync(HttpRequest request) in ./Prowlarr.Common/Http/HttpClient.cs:line 70
+ at NzbDrone.Common.Http.HttpClient.Execute(HttpRequest request) in ./Prowlarr.Common/Http/HttpClient.cs:line 137
+ at NzbDrone.Core.Applications.Radarr.RadarrV3Proxy.Execute[TResource](HttpRequest request) in ./Prowlarr.Core/Applications/Radarr/RadarrV3Proxy.cs:line 228
+ at NzbDrone.Core.Applications.Radarr.RadarrV3Proxy.ExecuteIndexerRequest(HttpRequest request) in ./Prowlarr.Core/Applications/Radarr/RadarrV3Proxy.cs:line 163
+ at NzbDrone.Core.Applications.Radarr.RadarrV3Proxy.AddIndexer(RadarrIndexer indexer, RadarrSettings settings) in ./Prowlarr.Core/Applications/Radarr/RadarrV3Proxy.cs:line 92
+ at NzbDrone.Core.Applications.Radarr.Radarr.AddIndexer(IndexerDefinition indexer) in ./Prowlarr.Core/Applications/Radarr/Radarr.cs:line 135
+ at NzbDrone.Core.Applications.ApplicationService.ExecuteAction(Action`1 applicationAction, IApplication application) in ./Prowlarr.Core/Applications/ApplicationService.cs:line 281
+
+
+2024-12-14 01:20:13.6|Warn|Cardigann|HTTP Error - Res: HTTP/2.0 [GET] https://torrentz2.nz/search: 522.522 (15 bytes)
+error code: 522
+2024-12-14 01:20:13.6|Warn|Cardigann|Unable to connect to Torrentz2nz at [https://torrentz2.nz/search]. Indexer's server is unavailable. Try again later. HTTP request failed: [522:522] [GET] at [https://torrentz2.nz/search]
+
+[v1.27.0.4852] NzbDrone.Common.Http.HttpException: HTTP request failed: [522:522] [GET] at [https://torrentz2.nz/search]
+ at NzbDrone.Core.Indexers.HttpIndexerBase`1.FetchIndexerResponse(IndexerRequest request) in ./Prowlarr.Core/Indexers/HttpIndexerBase.cs:line 697
+ at NzbDrone.Core.Indexers.HttpIndexerBase`1.FetchPage(IndexerRequest request, IParseIndexerResponse parser) in ./Prowlarr.Core/Indexers/HttpIndexerBase.cs:line 606
+ at NzbDrone.Core.Indexers.HttpIndexerBase`1.FetchReleases(Func`2 pageableRequestChainSelector, SearchCriteriaBase searchCriteria, Boolean isRecent) in ./Prowlarr.Core/Indexers/HttpIndexerBase.cs:line 424
+error code: 522
+
+
+2024-12-14 01:20:22.3|Warn|Cardigann|Request for Torrentz2nz failed with status 522. Retrying in 3.9536447s.
+2024-12-14 01:20:43.8|Error|SonarrV3Proxy|Unable to add or update indexer
+
+[v1.27.0.4852] System.Net.WebException: Http request timed out
+ ---> System.IO.IOException: Unable to read data from the transport connection: Operation canceled.
+ ---> System.Net.Sockets.SocketException (125): Operation canceled
+ --- End of inner exception stack trace ---
+ at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ThrowException(SocketError error, CancellationToken cancellationToken)
+ at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.System.Threading.Tasks.Sources.IValueTaskSource.GetResult(Int16 token)
+ at System.Net.Http.HttpConnection.InitialFillAsync(Boolean async)
+ at System.Net.Http.HttpConnection.SendAsyncCore(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
+ --- End of inner exception stack trace ---
+ at NzbDrone.Common.Http.Dispatchers.ManagedHttpDispatcher.GetResponseAsync(HttpRequest request, CookieContainer cookies) in ./Prowlarr.Common/Http/Dispatchers/ManagedHttpDispatcher.cs:line 170
+ at NzbDrone.Common.Http.HttpClient.ExecuteRequestAsync(HttpRequest request, CookieContainer cookieContainer) in ./Prowlarr.Common/Http/HttpClient.cs:line 171
+ at NzbDrone.Common.Http.HttpClient.ExecuteAsync(HttpRequest request) in ./Prowlarr.Common/Http/HttpClient.cs:line 70
+ at NzbDrone.Common.Http.HttpClient.Execute(HttpRequest request) in ./Prowlarr.Common/Http/HttpClient.cs:line 137
+ at NzbDrone.Core.Applications.Sonarr.SonarrV3Proxy.Execute[TResource](HttpRequest request) in ./Prowlarr.Core/Applications/Sonarr/SonarrV3Proxy.cs:line 215
+ at NzbDrone.Core.Applications.Sonarr.SonarrV3Proxy.ExecuteIndexerRequest(HttpRequest request) in ./Prowlarr.Core/Applications/Sonarr/SonarrV3Proxy.cs:line 150
+
+
+2024-12-14 01:20:43.8|Warn|ApplicationService|NzbDrone.Core.Applications.ApplicationService server is currently unavailable. Http request timed out
+
+[v1.27.0.4852] System.Net.WebException: Http request timed out
+ ---> System.IO.IOException: Unable to read data from the transport connection: Operation canceled.
+ ---> System.Net.Sockets.SocketException (125): Operation canceled
+ --- End of inner exception stack trace ---
+ at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ThrowException(SocketError error, CancellationToken cancellationToken)
+ at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.System.Threading.Tasks.Sources.IValueTaskSource.GetResult(Int16 token)
+ at System.Net.Http.HttpConnection.InitialFillAsync(Boolean async)
+ at System.Net.Http.HttpConnection.SendAsyncCore(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
+ --- End of inner exception stack trace ---
+ at NzbDrone.Common.Http.Dispatchers.ManagedHttpDispatcher.GetResponseAsync(HttpRequest request, CookieContainer cookies) in ./Prowlarr.Common/Http/Dispatchers/ManagedHttpDispatcher.cs:line 170
+ at NzbDrone.Common.Http.HttpClient.ExecuteRequestAsync(HttpRequest request, CookieContainer cookieContainer) in ./Prowlarr.Common/Http/HttpClient.cs:line 171
+ at NzbDrone.Common.Http.HttpClient.ExecuteAsync(HttpRequest request) in ./Prowlarr.Common/Http/HttpClient.cs:line 70
+ at NzbDrone.Common.Http.HttpClient.Execute(HttpRequest request) in ./Prowlarr.Common/Http/HttpClient.cs:line 137
+ at NzbDrone.Core.Applications.Sonarr.SonarrV3Proxy.Execute[TResource](HttpRequest request) in ./Prowlarr.Core/Applications/Sonarr/SonarrV3Proxy.cs:line 215
+ at NzbDrone.Core.Applications.Sonarr.SonarrV3Proxy.ExecuteIndexerRequest(HttpRequest request) in ./Prowlarr.Core/Applications/Sonarr/SonarrV3Proxy.cs:line 150
+ at NzbDrone.Core.Applications.Sonarr.SonarrV3Proxy.AddIndexer(SonarrIndexer indexer, SonarrSettings settings) in ./Prowlarr.Core/Applications/Sonarr/SonarrV3Proxy.cs:line 91
+ at NzbDrone.Core.Applications.Sonarr.Sonarr.AddIndexer(IndexerDefinition indexer) in ./Prowlarr.Core/Applications/Sonarr/Sonarr.cs:line 126
+ at NzbDrone.Core.Applications.ApplicationService.ExecuteAction(Action`1 applicationAction, IApplication application) in ./Prowlarr.Core/Applications/ApplicationService.cs:line 281
+
+
+2024-12-14 01:20:43.8|Info|ReleaseSearchService|Searching indexer(s): [YourBittorrent] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5070]
+2024-12-14 01:21:05.3|Warn|Cardigann|HTTP Error - Res: HTTP/2.0 [GET] https://torrentz2.nz/search: 522.522 (15 bytes)
+error code: 522
+2024-12-14 01:21:05.3|Warn|Cardigann|Unable to connect to Torrentz2nz at [https://torrentz2.nz/search]. Indexer's server is unavailable. Try again later. HTTP request failed: [522:522] [GET] at [https://torrentz2.nz/search]
+
+[v1.27.0.4852] NzbDrone.Common.Http.HttpException: HTTP request failed: [522:522] [GET] at [https://torrentz2.nz/search]
+ at NzbDrone.Core.Indexers.HttpIndexerBase`1.FetchIndexerResponse(IndexerRequest request) in ./Prowlarr.Core/Indexers/HttpIndexerBase.cs:line 697
+ at NzbDrone.Core.Indexers.HttpIndexerBase`1.FetchPage(IndexerRequest request, IParseIndexerResponse parser) in ./Prowlarr.Core/Indexers/HttpIndexerBase.cs:line 606
+ at NzbDrone.Core.Indexers.HttpIndexerBase`1.FetchReleases(Func`2 pageableRequestChainSelector, SearchCriteriaBase searchCriteria, Boolean isRecent) in ./Prowlarr.Core/Indexers/HttpIndexerBase.cs:line 424
+error code: 522
+
+
+2024-12-14 01:29:16.8|Info|ReleaseSearchService|Searching indexer(s): [Badass Torrents] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5070]
+2024-12-14 01:29:16.8|Info|ReleaseSearchService|Searching indexer(s): [E-Hentai] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5070]
+2024-12-14 01:29:16.8|Info|ReleaseSearchService|Searching indexer(s): [Bangumi Moe] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5070]
+2024-12-14 01:29:16.9|Info|ReleaseSearchService|Searching indexer(s): [AniSource] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5070]
+2024-12-14 01:29:16.9|Info|ReleaseSearchService|Searching indexer(s): [EZTV] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 01:29:16.9|Info|ReleaseSearchService|Searching indexer(s): [Shana Project] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5070]
+2024-12-14 01:29:16.9|Info|ReleaseSearchService|Searching indexer(s): [showRSS] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5030, 5040]
+2024-12-14 01:29:16.9|Info|ReleaseSearchService|Searching indexer(s): [SubsPlease] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5070]
+2024-12-14 01:29:16.9|Info|ReleaseSearchService|Searching indexer(s): [Internet Archive] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 01:29:16.9|Info|ReleaseSearchService|Searching indexer(s): [kickasstorrents.ws] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 01:29:16.9|Info|ReleaseSearchService|Searching indexer(s): [LimeTorrents] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5070]
+2024-12-14 01:29:16.9|Info|ReleaseSearchService|Searching indexer(s): [Isohunt2] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5070]
+2024-12-14 01:29:17.8|Info|ReleaseSearchService|Searching indexer(s): [The Pirate Bay] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5050, 5040, 5045]
+2024-12-14 01:29:18.0|Info|ReleaseSearchService|Searching indexer(s): [TheRARBG] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5070]
+2024-12-14 01:29:18.1|Info|ReleaseSearchService|Searching indexer(s): [Tokyo Toshokan] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5070]
+2024-12-14 01:29:18.2|Info|ReleaseSearchService|Searching indexer(s): [Torlock] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5070]
+2024-12-14 01:29:18.3|Info|ReleaseSearchService|Searching indexer(s): [Torrent Downloads] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5070]
+2024-12-14 01:29:18.3|Info|ReleaseSearchService|Searching indexer(s): [TorrentGalaxy] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5040, 5030, 5045, 5050, 5070]
+2024-12-14 01:29:18.5|Info|ReleaseSearchService|Searching indexer(s): [YourBittorrent] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5070]
+2024-12-14 01:34:49.4|Info|Microsoft.Hosting.Lifetime|Application is shutting down...
+2024-12-14 01:34:49.5|Info|ConsoleApp|Exiting main.
+2024-12-14 01:37:11.6|Info|Bootstrap|Starting Prowlarr - /app/prowlarr/bin/Prowlarr - Version 1.27.0.4852
+2024-12-14 01:37:11.7|Info|AppFolderInfo|Data directory is being overridden to [/config]
+2024-12-14 01:37:11.7|Info|AppFolderInfo|Data directory is being overridden to [/config]
+2024-12-14 01:37:12.0|Info|AppFolderInfo|Data directory is being overridden to [/config]
+2024-12-14 01:37:12.1|Info|MigrationController|*** Migrating data source=/config/prowlarr.db;cache size=-20000;datetimekind=Utc;journal mode=Wal;pooling=True;version=3;busytimeout=100 ***
+2024-12-14 01:37:12.2|Info|FluentMigrator.Runner.MigrationRunner|DatabaseEngineVersionCheck migrating
+2024-12-14 01:37:12.2|Info|FluentMigrator.Runner.MigrationRunner|PerformDBOperation
+2024-12-14 01:37:12.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Performing DB Operation
+2024-12-14 01:37:12.2|Info|DatabaseEngineVersionCheck|SQLite 3.45.3
+2024-12-14 01:37:12.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0319261s
+2024-12-14 01:37:12.2|Info|FluentMigrator.Runner.MigrationRunner|DatabaseEngineVersionCheck migrated
+2024-12-14 01:37:12.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0333436s
+2024-12-14 01:37:12.2|Info|MigrationController|*** Migrating data source=/config/logs.db;cache size=-20000;datetimekind=Utc;journal mode=Wal;pooling=True;version=3;busytimeout=100 ***
+2024-12-14 01:37:12.2|Info|FluentMigrator.Runner.MigrationRunner|DatabaseEngineVersionCheck migrating
+2024-12-14 01:37:12.2|Info|FluentMigrator.Runner.MigrationRunner|PerformDBOperation
+2024-12-14 01:37:12.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Performing DB Operation
+2024-12-14 01:37:12.2|Info|DatabaseEngineVersionCheck|SQLite 3.45.3
+2024-12-14 01:37:12.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0019616s
+2024-12-14 01:37:12.2|Info|FluentMigrator.Runner.MigrationRunner|DatabaseEngineVersionCheck migrated
+2024-12-14 01:37:12.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.002059s
+2024-12-14 01:37:12.4|Info|Microsoft.Hosting.Lifetime|Now listening on: http://[::]:9696
+2024-12-14 01:37:12.5|Info|CommandExecutor|Starting 3 threads for tasks.
+2024-12-14 01:37:12.8|Info|ManagedHttpDispatcher|IPv4 is available: True, IPv6 will be disabled
+2024-12-14 01:37:13.5|Info|Microsoft.Hosting.Lifetime|Application started. Press Ctrl+C to shut down.
+2024-12-14 01:37:13.5|Info|Microsoft.Hosting.Lifetime|Hosting environment: Production
+2024-12-14 01:37:13.5|Info|Microsoft.Hosting.Lifetime|Content root path: /app/prowlarr/bin
+2024-12-14 01:39:32.9|Info|Microsoft.Hosting.Lifetime|Application is shutting down...
+2024-12-14 01:39:32.9|Info|ConsoleApp|Exiting main.
+2024-12-14 01:39:49.0|Info|Bootstrap|Starting Prowlarr - /app/prowlarr/bin/Prowlarr - Version 1.27.0.4852
+2024-12-14 01:39:49.1|Info|AppFolderInfo|Data directory is being overridden to [/config]
+2024-12-14 01:39:49.1|Info|AppFolderInfo|Data directory is being overridden to [/config]
+2024-12-14 01:39:49.4|Info|AppFolderInfo|Data directory is being overridden to [/config]
+2024-12-14 01:39:49.5|Info|MigrationController|*** Migrating data source=/config/prowlarr.db;cache size=-20000;datetimekind=Utc;journal mode=Wal;pooling=True;version=3;busytimeout=100 ***
+2024-12-14 01:39:49.6|Info|FluentMigrator.Runner.MigrationRunner|DatabaseEngineVersionCheck migrating
+2024-12-14 01:39:49.6|Info|FluentMigrator.Runner.MigrationRunner|PerformDBOperation
+2024-12-14 01:39:49.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Performing DB Operation
+2024-12-14 01:39:49.6|Info|DatabaseEngineVersionCheck|SQLite 3.45.3
+2024-12-14 01:39:49.6|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0315571s
+2024-12-14 01:39:49.6|Info|FluentMigrator.Runner.MigrationRunner|DatabaseEngineVersionCheck migrated
+2024-12-14 01:39:49.6|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0327925s
+2024-12-14 01:39:49.6|Info|MigrationController|*** Migrating data source=/config/logs.db;cache size=-20000;datetimekind=Utc;journal mode=Wal;pooling=True;version=3;busytimeout=100 ***
+2024-12-14 01:39:49.6|Info|FluentMigrator.Runner.MigrationRunner|DatabaseEngineVersionCheck migrating
+2024-12-14 01:39:49.6|Info|FluentMigrator.Runner.MigrationRunner|PerformDBOperation
+2024-12-14 01:39:49.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Performing DB Operation
+2024-12-14 01:39:49.6|Info|DatabaseEngineVersionCheck|SQLite 3.45.3
+2024-12-14 01:39:49.6|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0015004s
+2024-12-14 01:39:49.6|Info|FluentMigrator.Runner.MigrationRunner|DatabaseEngineVersionCheck migrated
+2024-12-14 01:39:49.6|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0015923s
+2024-12-14 01:39:49.8|Info|Microsoft.Hosting.Lifetime|Now listening on: http://[::]:9696
+2024-12-14 01:39:49.9|Info|CommandExecutor|Starting 3 threads for tasks.
+2024-12-14 01:39:50.0|Info|ManagedHttpDispatcher|IPv4 is available: True, IPv6 will be disabled
+2024-12-14 01:39:50.6|Info|Microsoft.Hosting.Lifetime|Application started. Press Ctrl+C to shut down.
+2024-12-14 01:39:50.6|Info|Microsoft.Hosting.Lifetime|Hosting environment: Production
+2024-12-14 01:39:50.6|Info|Microsoft.Hosting.Lifetime|Content root path: /app/prowlarr/bin
+2024-12-14 01:44:50.8|Info|ReleaseSearchService|Searching indexer(s): [AniSource] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5070]
+2024-12-14 01:44:50.8|Info|ReleaseSearchService|Searching indexer(s): [Badass Torrents] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5070]
+2024-12-14 01:44:50.8|Info|ReleaseSearchService|Searching indexer(s): [Bangumi Moe] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5070]
+2024-12-14 01:44:50.8|Info|ReleaseSearchService|Searching indexer(s): [E-Hentai] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5070]
+2024-12-14 01:44:50.8|Info|ReleaseSearchService|Searching indexer(s): [EZTV] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 01:44:50.8|Info|ReleaseSearchService|Searching indexer(s): [Internet Archive] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 01:44:50.9|Info|ReleaseSearchService|Searching indexer(s): [Isohunt2] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5070]
+2024-12-14 01:44:50.9|Info|ReleaseSearchService|Searching indexer(s): [showRSS] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5030, 5040]
+2024-12-14 01:44:50.9|Info|ReleaseSearchService|Searching indexer(s): [kickasstorrents.ws] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 01:44:50.9|Info|ReleaseSearchService|Searching indexer(s): [SubsPlease] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5070]
+2024-12-14 01:44:50.9|Info|ReleaseSearchService|Searching indexer(s): [LimeTorrents] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5070]
+2024-12-14 01:44:50.9|Info|ReleaseSearchService|Searching indexer(s): [Shana Project] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5070]
+2024-12-14 01:44:52.1|Info|ReleaseSearchService|Searching indexer(s): [The Pirate Bay] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5050, 5040, 5045]
+2024-12-14 01:44:52.2|Info|ReleaseSearchService|Searching indexer(s): [TheRARBG] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5070]
+2024-12-14 01:44:52.2|Info|ReleaseSearchService|Searching indexer(s): [Tokyo Toshokan] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5070]
+2024-12-14 01:44:52.4|Info|ReleaseSearchService|Searching indexer(s): [Torrent Downloads] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5070]
+2024-12-14 01:44:52.4|Info|ReleaseSearchService|Searching indexer(s): [Torlock] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5070]
+2024-12-14 01:44:52.5|Info|ReleaseSearchService|Searching indexer(s): [TorrentGalaxy] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5040, 5030, 5045, 5050, 5070]
+2024-12-14 01:44:52.5|Info|ReleaseSearchService|Searching indexer(s): [YourBittorrent] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5070]
+2024-12-14 01:45:20.6|Info|ReleaseSearchService|Searching indexer(s): [Badass Torrents] for Term: [], Offset: 0, Limit: 100, Categories: [2000]
+2024-12-14 01:45:20.6|Info|ReleaseSearchService|Searching indexer(s): [Internet Archive] for Term: [], Offset: 0, Limit: 100, Categories: [2000]
+2024-12-14 01:45:20.6|Info|ReleaseSearchService|Searching indexer(s): [Isohunt2] for Term: [], Offset: 0, Limit: 100, Categories: [2000]
+2024-12-14 01:45:20.6|Info|ReleaseSearchService|Searching indexer(s): [kickasstorrents.ws] for Term: [], Offset: 0, Limit: 100, Categories: [2000]
+2024-12-14 01:45:20.6|Info|ReleaseSearchService|Searching indexer(s): [Knaben] for Term: [], Offset: 0, Limit: 100, Categories: [2000, 2040, 2030, 2045, 2070, 2010, 2060, 2020]
+2024-12-14 01:45:20.6|Info|ReleaseSearchService|Searching indexer(s): [kickasstorrents.to] for Term: [], Offset: 0, Limit: 100, Categories: [2000]
+2024-12-14 01:45:20.6|Info|ReleaseSearchService|Searching indexer(s): [The Pirate Bay] for Term: [], Offset: 0, Limit: 100, Categories: [2000, 2020, 2040, 2060, 2030, 2045]
+2024-12-14 01:45:20.6|Info|ReleaseSearchService|Searching indexer(s): [TheRARBG] for Term: [], Offset: 0, Limit: 100, Categories: [2000]
+2024-12-14 01:45:20.6|Info|ReleaseSearchService|Searching indexer(s): [Torlock] for Term: [], Offset: 0, Limit: 100, Categories: [2000]
+2024-12-14 01:45:20.6|Info|ReleaseSearchService|Searching indexer(s): [Torrent Downloads] for Term: [], Offset: 0, Limit: 100, Categories: [2000]
+2024-12-14 01:45:20.6|Info|ReleaseSearchService|Searching indexer(s): [YourBittorrent] for Term: [], Offset: 0, Limit: 100, Categories: [2000]
+2024-12-14 01:45:20.6|Info|ReleaseSearchService|Searching indexer(s): [YTS] for Term: [], Offset: 0, Limit: 100, Categories: [2000, 2040, 2045, 2060]
+2024-12-14 01:45:20.6|Error|Cardigann|An error occurred while processing indexer feed. https://kickasstorrents.to/new/?sortby=time&sort=desc
+
+[v1.27.0.4852] System.FormatException: The format of value '' is invalid.
+ at System.Net.Http.Headers.HttpHeaderParser.ParseValue(String value, Object storeValue, Int32& index)
+ at System.Net.Http.Headers.HttpHeaders.ParseAndAddValue(HeaderDescriptor descriptor, HeaderStoreItemInfo info, String value)
+ at NzbDrone.Common.Http.Dispatchers.ManagedHttpDispatcher.AddRequestHeaders(HttpRequestMessage webRequest, HttpHeader headers) in ./Prowlarr.Common/Http/Dispatchers/ManagedHttpDispatcher.cs:line 218
+ at NzbDrone.Common.Http.Dispatchers.ManagedHttpDispatcher.GetResponseAsync(HttpRequest request, CookieContainer cookies) in ./Prowlarr.Common/Http/Dispatchers/ManagedHttpDispatcher.cs:line 109
+ at NzbDrone.Common.Http.HttpClient.ExecuteRequestAsync(HttpRequest request, CookieContainer cookieContainer) in ./Prowlarr.Common/Http/HttpClient.cs:line 171
+ at NzbDrone.Common.Http.HttpClient.ExecuteAsync(HttpRequest request) in ./Prowlarr.Common/Http/HttpClient.cs:line 70
+ at NzbDrone.Core.Indexers.IndexerHttpClient.ExecuteProxiedAsync(HttpRequest request, ProviderDefinition definition) in ./Prowlarr.Core/Indexers/IndexerHttpClient.cs:line 44
+ at NzbDrone.Core.Indexers.HttpIndexerBase`1.<>c.<b__57_0>d.MoveNext() in ./Prowlarr.Core/Indexers/HttpIndexerBase.cs:line 661
+--- End of stack trace from previous location ---
+ at Polly.ResiliencePipeline.<>c__9`2.<b__9_0>d.MoveNext()
+--- End of stack trace from previous location ---
+ at Polly.Outcome`1.GetResultOrRethrow()
+ at Polly.ResiliencePipeline.ExecuteAsync[TResult,TState](Func`3 callback, TState state, CancellationToken cancellationToken)
+ at NzbDrone.Core.Indexers.HttpIndexerBase`1.FetchIndexerResponse(IndexerRequest request) in ./Prowlarr.Core/Indexers/HttpIndexerBase.cs:line 660
+ at NzbDrone.Core.Indexers.HttpIndexerBase`1.FetchPage(IndexerRequest request, IParseIndexerResponse parser) in ./Prowlarr.Core/Indexers/HttpIndexerBase.cs:line 606
+ at NzbDrone.Core.Indexers.HttpIndexerBase`1.FetchReleases(Func`2 pageableRequestChainSelector, SearchCriteriaBase searchCriteria, Boolean isRecent) in ./Prowlarr.Core/Indexers/HttpIndexerBase.cs:line 424
+FeedUrl: https://kickasstorrents.to/new/?sortby=time&sort=desc
+
+2024-12-14 01:45:20.7|Info|ReleaseSearchService|Searching indexer(s): [TorrentGalaxy] for Term: [], Offset: 0, Limit: 100, Categories: [2000, 2045, 2010, 2020, 2040, 2030]
+2024-12-14 02:00:20.8|Info|ReleaseSearchService|Searching indexer(s): [EZTV] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:00:20.8|Info|ReleaseSearchService|Searching indexer(s): [kickasstorrents.ws] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:00:20.8|Info|ReleaseSearchService|Searching indexer(s): [Internet Archive] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:00:20.8|Info|ReleaseSearchService|Searching indexer(s): [SubsPlease] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5070]
+2024-12-14 02:00:20.8|Info|ReleaseSearchService|Searching indexer(s): [E-Hentai] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5070]
+2024-12-14 02:00:20.8|Info|ReleaseSearchService|Searching indexer(s): [Badass Torrents] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5070]
+2024-12-14 02:00:20.8|Info|ReleaseSearchService|Searching indexer(s): [Bangumi Moe] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5070]
+2024-12-14 02:00:20.8|Info|ReleaseSearchService|Searching indexer(s): [AniSource] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5070]
+2024-12-14 02:00:20.8|Info|ReleaseSearchService|Searching indexer(s): [LimeTorrents] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5070]
+2024-12-14 02:00:20.8|Info|ReleaseSearchService|Searching indexer(s): [Isohunt2] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5070]
+2024-12-14 02:00:20.8|Info|ReleaseSearchService|Searching indexer(s): [Shana Project] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5070]
+2024-12-14 02:00:20.8|Info|ReleaseSearchService|Searching indexer(s): [showRSS] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5030, 5040]
+2024-12-14 02:00:21.7|Info|ReleaseSearchService|Searching indexer(s): [The Pirate Bay] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5050, 5040, 5045]
+2024-12-14 02:00:21.8|Info|ReleaseSearchService|Searching indexer(s): [TheRARBG] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5070]
+2024-12-14 02:00:21.9|Info|ReleaseSearchService|Searching indexer(s): [Tokyo Toshokan] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5070]
+2024-12-14 02:00:22.0|Info|ReleaseSearchService|Searching indexer(s): [Torlock] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5070]
+2024-12-14 02:00:22.1|Info|ReleaseSearchService|Searching indexer(s): [Torrent Downloads] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5070]
+2024-12-14 02:00:22.4|Info|ReleaseSearchService|Searching indexer(s): [TorrentGalaxy] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5040, 5030, 5045, 5050, 5070]
+2024-12-14 02:00:22.6|Info|ReleaseSearchService|Searching indexer(s): [YourBittorrent] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5070]
+2024-12-14 02:09:50.2|Info|ReleaseSearchService|Searching indexer(s): [Bangumi Moe] for Term: [Test A New Era For Australias Team] for Season / Episode:[S01], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:09:50.2|Info|ReleaseSearchService|Searching indexer(s): [E-Hentai] for Term: [Test A New Era For Australias Team] for Season / Episode:[S01], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:09:50.2|Info|ReleaseSearchService|Searching indexer(s): [LimeTorrents] for Term: [Test A New Era For Australias Team] for Season / Episode:[S01], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:09:50.2|Info|ReleaseSearchService|Searching indexer(s): [kickasstorrents.ws] for Term: [Test A New Era For Australias Team] for Season / Episode:[S01], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:09:50.2|Info|ReleaseSearchService|Searching indexer(s): [Isohunt2] for Term: [Test A New Era For Australias Team] for Season / Episode:[S01], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:09:50.2|Info|ReleaseSearchService|Searching indexer(s): [SubsPlease] for Term: [Test A New Era For Australias Team] for Season / Episode:[S01], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:09:50.2|Info|ReleaseSearchService|Searching indexer(s): [AniSource] for Term: [Test A New Era For Australias Team] for Season / Episode:[S01], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:09:50.2|Info|ReleaseSearchService|Searching indexer(s): [Internet Archive] for Term: [Test A New Era For Australias Team] for Season / Episode:[S01], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:09:50.2|Info|ReleaseSearchService|Searching indexer(s): [EZTV] for Term: [Test A New Era For Australias Team] for Season / Episode:[S01], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:09:50.2|Info|ReleaseSearchService|Searching indexer(s): [Shana Project] for Term: [Test A New Era For Australias Team] for Season / Episode:[S01], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:09:50.2|Info|ReleaseSearchService|Searching indexer(s): [Badass Torrents] for Term: [Test A New Era For Australias Team] for Season / Episode:[S01], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:09:50.2|Info|ReleaseSearchService|Searching indexer(s): [showRSS] for Term: [Test A New Era For Australias Team] for Season / Episode:[S01], Offset: 0, Limit: 100, Categories: [5000, 5030, 5040]
+2024-12-14 02:09:50.9|Info|ReleaseSearchService|Searching indexer(s): [The Pirate Bay] for Term: [Test A New Era For Australias Team] for Season / Episode:[S01], Offset: 0, Limit: 100, Categories: [5000, 5050, 5040, 5045]
+2024-12-14 02:09:51.0|Info|ReleaseSearchService|Searching indexer(s): [TheRARBG] for Term: [Test A New Era For Australias Team] for Season / Episode:[S01], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:09:51.1|Info|ReleaseSearchService|Searching indexer(s): [Tokyo Toshokan] for Term: [Test A New Era For Australias Team] for Season / Episode:[S01], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:09:51.3|Info|ReleaseSearchService|Searching indexer(s): [Torlock] for Term: [Test A New Era For Australias Team] for Season / Episode:[S01], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:09:51.3|Info|ReleaseSearchService|Searching indexer(s): [Torrent Downloads] for Term: [The Test A New Era For Australias Team] for Season / Episode:[S01], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:09:51.3|Info|ReleaseSearchService|Searching indexer(s): [TorrentGalaxy] for Term: [] | ID(s): IMDbId:[11347692] for Season / Episode:[S01], Offset: 0, Limit: 100, Categories: [5000, 5040, 5030, 5045, 5050]
+2024-12-14 02:09:51.4|Info|ReleaseSearchService|Searching indexer(s): [YourBittorrent] for Term: [Test A New Era For Australias Team] for Season / Episode:[S01], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:09:52.2|Info|ReleaseSearchService|Searching indexer(s): [EZTV] for Term: [Test] for Season / Episode:[S01], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:09:52.2|Info|ReleaseSearchService|Searching indexer(s): [AniSource] for Term: [Test] for Season / Episode:[S01], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:09:52.2|Info|ReleaseSearchService|Searching indexer(s): [Internet Archive] for Term: [Test] for Season / Episode:[S01], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:09:52.2|Info|ReleaseSearchService|Searching indexer(s): [Bangumi Moe] for Term: [Test] for Season / Episode:[S01], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:09:52.2|Info|ReleaseSearchService|Searching indexer(s): [Badass Torrents] for Term: [Test] for Season / Episode:[S01], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:09:52.2|Info|ReleaseSearchService|Searching indexer(s): [E-Hentai] for Term: [Test] for Season / Episode:[S01], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:09:52.2|Info|ReleaseSearchService|Searching indexer(s): [Isohunt2] for Term: [Test] for Season / Episode:[S01], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:09:52.2|Info|ReleaseSearchService|Searching indexer(s): [kickasstorrents.ws] for Term: [Test] for Season / Episode:[S01], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:09:52.3|Info|ReleaseSearchService|Searching indexer(s): [LimeTorrents] for Term: [Test] for Season / Episode:[S01], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:09:52.5|Info|ReleaseSearchService|Searching indexer(s): [Shana Project] for Term: [Test] for Season / Episode:[S01], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:09:52.6|Info|ReleaseSearchService|Searching indexer(s): [The Pirate Bay] for Term: [Test] for Season / Episode:[S01], Offset: 0, Limit: 100, Categories: [5000, 5050, 5040, 5045]
+2024-12-14 02:09:52.6|Info|ReleaseSearchService|Searching indexer(s): [SubsPlease] for Term: [Test] for Season / Episode:[S01], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:09:52.7|Info|ReleaseSearchService|Searching indexer(s): [TheRARBG] for Term: [Test] for Season / Episode:[S01], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:09:52.8|Info|ReleaseSearchService|Searching indexer(s): [Tokyo Toshokan] for Term: [Test] for Season / Episode:[S01], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:09:52.8|Info|ReleaseSearchService|Searching indexer(s): [Torrent Downloads] for Term: [The Test] for Season / Episode:[S01], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:09:53.2|Info|ReleaseSearchService|Searching indexer(s): [YourBittorrent] for Term: [Test] for Season / Episode:[S01], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:09:53.8|Info|ReleaseSearchService|Searching indexer(s): [Torlock] for Term: [Test] for Season / Episode:[S01], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:09:54.2|Info|ReleaseSearchService|Searching indexer(s): [EZTV] for Term: [Test] for Season / Episode:[S01], Offset: 100, Limit: 100, Categories: [5000]
+2024-12-14 02:09:54.7|Info|ReleaseSearchService|Searching indexer(s): [showRSS] for Term: [Test] for Season / Episode:[S01], Offset: 0, Limit: 100, Categories: [5000, 5030, 5040]
+2024-12-14 02:10:02.4|Info|ReleaseSearchService|Searching indexer(s): [Badass Torrents] for Term: [Test A New Era For Australias Team] for Season / Episode:[S02], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:10:02.5|Info|ReleaseSearchService|Searching indexer(s): [Bangumi Moe] for Term: [Test A New Era For Australias Team] for Season / Episode:[S02], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:10:02.5|Info|ReleaseSearchService|Searching indexer(s): [AniSource] for Term: [Test A New Era For Australias Team] for Season / Episode:[S02], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:10:02.5|Info|ReleaseSearchService|Searching indexer(s): [Isohunt2] for Term: [Test A New Era For Australias Team] for Season / Episode:[S02], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:10:02.5|Info|ReleaseSearchService|Searching indexer(s): [kickasstorrents.ws] for Term: [Test A New Era For Australias Team] for Season / Episode:[S02], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:10:02.5|Info|ReleaseSearchService|Searching indexer(s): [LimeTorrents] for Term: [Test A New Era For Australias Team] for Season / Episode:[S02], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:10:02.5|Info|ReleaseSearchService|Searching indexer(s): [E-Hentai] for Term: [Test A New Era For Australias Team] for Season / Episode:[S02], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:10:02.5|Info|ReleaseSearchService|Searching indexer(s): [showRSS] for Term: [Test A New Era For Australias Team] for Season / Episode:[S02], Offset: 0, Limit: 100, Categories: [5000, 5030, 5040]
+2024-12-14 02:10:02.5|Info|ReleaseSearchService|Searching indexer(s): [Internet Archive] for Term: [Test A New Era For Australias Team] for Season / Episode:[S02], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:10:02.5|Info|ReleaseSearchService|Searching indexer(s): [Shana Project] for Term: [Test A New Era For Australias Team] for Season / Episode:[S02], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:10:02.5|Info|ReleaseSearchService|Searching indexer(s): [SubsPlease] for Term: [Test A New Era For Australias Team] for Season / Episode:[S02], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:10:02.5|Info|ReleaseSearchService|Searching indexer(s): [EZTV] for Term: [Test A New Era For Australias Team] for Season / Episode:[S02], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:10:02.7|Info|ReleaseSearchService|Searching indexer(s): [The Pirate Bay] for Term: [Test A New Era For Australias Team] for Season / Episode:[S02], Offset: 0, Limit: 100, Categories: [5000, 5050, 5040, 5045]
+2024-12-14 02:10:02.7|Info|ReleaseSearchService|Searching indexer(s): [TheRARBG] for Term: [Test A New Era For Australias Team] for Season / Episode:[S02], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:10:02.7|Info|ReleaseSearchService|Searching indexer(s): [Tokyo Toshokan] for Term: [Test A New Era For Australias Team] for Season / Episode:[S02], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:10:02.9|Info|ReleaseSearchService|Searching indexer(s): [Torrent Downloads] for Term: [The Test A New Era For Australias Team] for Season / Episode:[S02], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:10:02.9|Info|ReleaseSearchService|Searching indexer(s): [Torlock] for Term: [Test A New Era For Australias Team] for Season / Episode:[S02], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:10:02.9|Info|ReleaseSearchService|Searching indexer(s): [TorrentGalaxy] for Term: [] | ID(s): IMDbId:[11347692] for Season / Episode:[S02], Offset: 0, Limit: 100, Categories: [5000, 5040, 5030, 5045, 5050]
+2024-12-14 02:10:03.0|Info|ReleaseSearchService|Searching indexer(s): [YourBittorrent] for Term: [Test A New Era For Australias Team] for Season / Episode:[S02], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:10:03.3|Warn|Cardigann|Request for YourBittorrent failed with status ServiceUnavailable. Retrying in 2.7104307s.
+2024-12-14 02:10:04.5|Info|ReleaseSearchService|Searching indexer(s): [Bangumi Moe] for Term: [Test] for Season / Episode:[S02], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:10:04.5|Info|ReleaseSearchService|Searching indexer(s): [AniSource] for Term: [Test] for Season / Episode:[S02], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:10:04.5|Info|ReleaseSearchService|Searching indexer(s): [Internet Archive] for Term: [Test] for Season / Episode:[S02], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:10:04.5|Info|ReleaseSearchService|Searching indexer(s): [EZTV] for Term: [Test] for Season / Episode:[S02], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:10:04.5|Info|ReleaseSearchService|Searching indexer(s): [Isohunt2] for Term: [Test] for Season / Episode:[S02], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:10:04.5|Info|ReleaseSearchService|Searching indexer(s): [E-Hentai] for Term: [Test] for Season / Episode:[S02], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:10:04.5|Info|ReleaseSearchService|Searching indexer(s): [LimeTorrents] for Term: [Test] for Season / Episode:[S02], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:10:04.7|Info|ReleaseSearchService|Searching indexer(s): [Shana Project] for Term: [Test] for Season / Episode:[S02], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:10:04.7|Info|ReleaseSearchService|Searching indexer(s): [The Pirate Bay] for Term: [Test] for Season / Episode:[S02], Offset: 0, Limit: 100, Categories: [5000, 5050, 5040, 5045]
+2024-12-14 02:10:04.8|Info|ReleaseSearchService|Searching indexer(s): [SubsPlease] for Term: [Test] for Season / Episode:[S02], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:10:04.9|Info|ReleaseSearchService|Searching indexer(s): [Tokyo Toshokan] for Term: [Test] for Season / Episode:[S02], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:10:05.0|Info|ReleaseSearchService|Searching indexer(s): [Torrent Downloads] for Term: [The Test] for Season / Episode:[S02], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:10:05.0|Info|ReleaseSearchService|Searching indexer(s): [Torlock] for Term: [Test] for Season / Episode:[S02], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:10:05.2|Info|ReleaseSearchService|Searching indexer(s): [TheRARBG] for Term: [Test] for Season / Episode:[S02], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:10:05.7|Info|ReleaseSearchService|Searching indexer(s): [Badass Torrents] for Term: [Test] for Season / Episode:[S02], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:10:06.0|Info|ReleaseSearchService|Searching indexer(s): [kickasstorrents.ws] for Term: [Test] for Season / Episode:[S02], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:10:06.2|Info|ReleaseSearchService|Searching indexer(s): [showRSS] for Term: [Test] for Season / Episode:[S02], Offset: 0, Limit: 100, Categories: [5000, 5030, 5040]
+2024-12-14 02:10:06.4|Warn|Cardigann|Request for YourBittorrent failed with status ServiceUnavailable. Retrying in 0.3459972s.
+2024-12-14 02:10:06.5|Info|ReleaseSearchService|Searching indexer(s): [EZTV] for Term: [Test] for Season / Episode:[S02], Offset: 100, Limit: 100, Categories: [5000]
+2024-12-14 02:10:08.4|Warn|Cardigann|HTTP Error - Res: HTTP/2.0 [GET] https://yourbittorrent.com/?q=test-a-new-era-for-australias-team-s02: 503.ServiceUnavailable (159 bytes)
+Query:
Database connection failed.
We are currently experiencing a database problem. - This session has been terminated. - Please try again later.
+2024-12-14 02:10:08.4|Warn|Cardigann|Unable to connect to YourBittorrent at [https://yourbittorrent.com/?q=test-a-new-era-for-australias-team-s02]. Indexer's server is unavailable. Try again later. HTTP request failed: [503:ServiceUnavailable] [GET] at [https://yourbittorrent.com/?q=test-a-new-era-for-australias-team-s02]
+
+[v1.27.0.4852] NzbDrone.Common.Http.HttpException: HTTP request failed: [503:ServiceUnavailable] [GET] at [https://yourbittorrent.com/?q=test-a-new-era-for-australias-team-s02]
+ at NzbDrone.Core.Indexers.HttpIndexerBase`1.FetchIndexerResponse(IndexerRequest request) in ./Prowlarr.Core/Indexers/HttpIndexerBase.cs:line 697
+ at NzbDrone.Core.Indexers.HttpIndexerBase`1.FetchPage(IndexerRequest request, IParseIndexerResponse parser) in ./Prowlarr.Core/Indexers/HttpIndexerBase.cs:line 606
+ at NzbDrone.Core.Indexers.HttpIndexerBase`1.FetchReleases(Func`2 pageableRequestChainSelector, SearchCriteriaBase searchCriteria, Boolean isRecent) in ./Prowlarr.Core/Indexers/HttpIndexerBase.cs:line 424
+Query:
Database connection failed.
We are currently experiencing a database problem. - This session has been terminated. - Please try again later.
+
+
+2024-12-14 02:10:12.0|Info|ReleaseSearchService|Searching indexer(s): [EZTV] for Term: [Test A New Era For Australias Team] for Season / Episode:[S03], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:10:12.0|Info|ReleaseSearchService|Searching indexer(s): [E-Hentai] for Term: [Test A New Era For Australias Team] for Season / Episode:[S03], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:10:12.0|Info|ReleaseSearchService|Searching indexer(s): [Isohunt2] for Term: [Test A New Era For Australias Team] for Season / Episode:[S03], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:10:12.0|Info|ReleaseSearchService|Searching indexer(s): [Badass Torrents] for Term: [Test A New Era For Australias Team] for Season / Episode:[S03], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:10:12.0|Info|ReleaseSearchService|Searching indexer(s): [kickasstorrents.ws] for Term: [Test A New Era For Australias Team] for Season / Episode:[S03], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:10:12.0|Info|ReleaseSearchService|Searching indexer(s): [Internet Archive] for Term: [Test A New Era For Australias Team] for Season / Episode:[S03], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:10:12.0|Info|ReleaseSearchService|Searching indexer(s): [LimeTorrents] for Term: [Test A New Era For Australias Team] for Season / Episode:[S03], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:10:12.0|Info|ReleaseSearchService|Searching indexer(s): [Bangumi Moe] for Term: [Test A New Era For Australias Team] for Season / Episode:[S03], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:10:12.0|Info|ReleaseSearchService|Searching indexer(s): [AniSource] for Term: [Test A New Era For Australias Team] for Season / Episode:[S03], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:10:12.0|Info|ReleaseSearchService|Searching indexer(s): [showRSS] for Term: [Test A New Era For Australias Team] for Season / Episode:[S03], Offset: 0, Limit: 100, Categories: [5000, 5030, 5040]
+2024-12-14 02:10:12.0|Info|ReleaseSearchService|Searching indexer(s): [Shana Project] for Term: [Test A New Era For Australias Team] for Season / Episode:[S03], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:10:12.0|Info|ReleaseSearchService|Searching indexer(s): [SubsPlease] for Term: [Test A New Era For Australias Team] for Season / Episode:[S03], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:10:12.2|Info|ReleaseSearchService|Searching indexer(s): [The Pirate Bay] for Term: [Test A New Era For Australias Team] for Season / Episode:[S03], Offset: 0, Limit: 100, Categories: [5000, 5050, 5040, 5045]
+2024-12-14 02:10:12.2|Info|ReleaseSearchService|Searching indexer(s): [TheRARBG] for Term: [Test A New Era For Australias Team] for Season / Episode:[S03], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:10:12.2|Info|ReleaseSearchService|Searching indexer(s): [Tokyo Toshokan] for Term: [Test A New Era For Australias Team] for Season / Episode:[S03], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:10:12.3|Info|ReleaseSearchService|Searching indexer(s): [Torlock] for Term: [Test A New Era For Australias Team] for Season / Episode:[S03], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:10:12.3|Info|ReleaseSearchService|Searching indexer(s): [Torrent Downloads] for Term: [The Test A New Era For Australias Team] for Season / Episode:[S03], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:10:12.3|Info|ReleaseSearchService|Searching indexer(s): [TorrentGalaxy] for Term: [] | ID(s): IMDbId:[11347692] for Season / Episode:[S03], Offset: 0, Limit: 100, Categories: [5000, 5040, 5030, 5045, 5050]
+2024-12-14 02:10:14.0|Info|ReleaseSearchService|Searching indexer(s): [Bangumi Moe] for Term: [Test] for Season / Episode:[S03], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:10:14.0|Info|ReleaseSearchService|Searching indexer(s): [EZTV] for Term: [Test] for Season / Episode:[S03], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:10:14.0|Info|ReleaseSearchService|Searching indexer(s): [Internet Archive] for Term: [Test] for Season / Episode:[S03], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:10:14.0|Info|ReleaseSearchService|Searching indexer(s): [AniSource] for Term: [Test] for Season / Episode:[S03], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:10:14.0|Info|ReleaseSearchService|Searching indexer(s): [LimeTorrents] for Term: [Test] for Season / Episode:[S03], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:10:14.0|Info|ReleaseSearchService|Searching indexer(s): [E-Hentai] for Term: [Test] for Season / Episode:[S03], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:10:14.0|Info|ReleaseSearchService|Searching indexer(s): [Shana Project] for Term: [Test] for Season / Episode:[S03], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:10:14.0|Info|ReleaseSearchService|Searching indexer(s): [Isohunt2] for Term: [Test] for Season / Episode:[S03], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:10:14.2|Info|ReleaseSearchService|Searching indexer(s): [SubsPlease] for Term: [Test] for Season / Episode:[S03], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:10:14.3|Info|ReleaseSearchService|Searching indexer(s): [TheRARBG] for Term: [Test] for Season / Episode:[S03], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:10:14.3|Info|ReleaseSearchService|Searching indexer(s): [The Pirate Bay] for Term: [Test] for Season / Episode:[S03], Offset: 0, Limit: 100, Categories: [5000, 5050, 5040, 5045]
+2024-12-14 02:10:14.3|Info|ReleaseSearchService|Searching indexer(s): [Torlock] for Term: [Test] for Season / Episode:[S03], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:10:14.5|Info|ReleaseSearchService|Searching indexer(s): [Tokyo Toshokan] for Term: [Test] for Season / Episode:[S03], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:10:14.7|Info|ReleaseSearchService|Searching indexer(s): [Torrent Downloads] for Term: [The Test] for Season / Episode:[S03], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:10:15.7|Info|ReleaseSearchService|Searching indexer(s): [Badass Torrents] for Term: [Test] for Season / Episode:[S03], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:10:15.7|Info|ReleaseSearchService|Searching indexer(s): [showRSS] for Term: [Test] for Season / Episode:[S03], Offset: 0, Limit: 100, Categories: [5000, 5030, 5040]
+2024-12-14 02:10:16.0|Info|ReleaseSearchService|Searching indexer(s): [kickasstorrents.ws] for Term: [Test] for Season / Episode:[S03], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:10:16.0|Info|ReleaseSearchService|Searching indexer(s): [EZTV] for Term: [Test] for Season / Episode:[S03], Offset: 100, Limit: 100, Categories: [5000]
+2024-12-14 02:11:02.2|Info|ReleaseSearchService|Searching indexer(s): [kickasstorrents.ws] for Term: [Test 2018], Offset: 0, Limit: 100, Categories: [2000]
+2024-12-14 02:11:02.2|Info|ReleaseSearchService|Searching indexer(s): [kickasstorrents.to] for Term: [Test 2018], Offset: 0, Limit: 100, Categories: [2000]
+2024-12-14 02:11:02.2|Info|ReleaseSearchService|Searching indexer(s): [Torlock] for Term: [Test 2018], Offset: 0, Limit: 100, Categories: [2000]
+2024-12-14 02:11:02.2|Info|ReleaseSearchService|Searching indexer(s): [TorrentGalaxy] for Term: [] | ID(s): IMDbId:[6988290], Offset: 0, Limit: 100, Categories: [2000, 2045, 2010, 2020, 2040, 2030]
+2024-12-14 02:11:02.2|Info|ReleaseSearchService|Searching indexer(s): [TheRARBG] for Term: [] | ID(s): IMDbId:[6988290], Offset: 0, Limit: 100, Categories: [2000]
+2024-12-14 02:11:02.2|Info|ReleaseSearchService|Searching indexer(s): [YTS] for Term: [] | ID(s): IMDbId:[6988290], Offset: 0, Limit: 100, Categories: [2000, 2040, 2045, 2060]
+2024-12-14 02:11:02.2|Info|ReleaseSearchService|Searching indexer(s): [Badass Torrents] for Term: [Test 2018], Offset: 0, Limit: 100, Categories: [2000]
+2024-12-14 02:11:02.2|Info|ReleaseSearchService|Searching indexer(s): [Knaben] for Term: [Test 2018], Offset: 0, Limit: 100, Categories: [2000, 2040, 2030, 2045, 2070, 2010, 2060, 2020]
+2024-12-14 02:11:02.2|Info|ReleaseSearchService|Searching indexer(s): [The Pirate Bay] for Term: [Test 2018], Offset: 0, Limit: 100, Categories: [2000, 2020, 2040, 2060, 2030, 2045]
+2024-12-14 02:11:02.2|Info|ReleaseSearchService|Searching indexer(s): [Internet Archive] for Term: [Test 2018], Offset: 0, Limit: 100, Categories: [2000]
+2024-12-14 02:11:02.2|Info|ReleaseSearchService|Searching indexer(s): [Torrent Downloads] for Term: [Test 2018], Offset: 0, Limit: 100, Categories: [2000]
+2024-12-14 02:11:02.2|Info|ReleaseSearchService|Searching indexer(s): [Isohunt2] for Term: [Test 2018], Offset: 0, Limit: 100, Categories: [2000]
+2024-12-14 02:11:02.2|Error|Cardigann|An error occurred while processing indexer feed. https://kickasstorrents.to/usearch/Test%202018/?sortby=time&sort=desc
+
+[v1.27.0.4852] System.FormatException: The format of value '' is invalid.
+ at System.Net.Http.Headers.HttpHeaderParser.ParseValue(String value, Object storeValue, Int32& index)
+ at System.Net.Http.Headers.HttpHeaders.ParseAndAddValue(HeaderDescriptor descriptor, HeaderStoreItemInfo info, String value)
+ at NzbDrone.Common.Http.Dispatchers.ManagedHttpDispatcher.AddRequestHeaders(HttpRequestMessage webRequest, HttpHeader headers) in ./Prowlarr.Common/Http/Dispatchers/ManagedHttpDispatcher.cs:line 218
+ at NzbDrone.Common.Http.Dispatchers.ManagedHttpDispatcher.GetResponseAsync(HttpRequest request, CookieContainer cookies) in ./Prowlarr.Common/Http/Dispatchers/ManagedHttpDispatcher.cs:line 109
+ at NzbDrone.Common.Http.HttpClient.ExecuteRequestAsync(HttpRequest request, CookieContainer cookieContainer) in ./Prowlarr.Common/Http/HttpClient.cs:line 171
+ at NzbDrone.Common.Http.HttpClient.ExecuteAsync(HttpRequest request) in ./Prowlarr.Common/Http/HttpClient.cs:line 70
+ at NzbDrone.Core.Indexers.IndexerHttpClient.ExecuteProxiedAsync(HttpRequest request, ProviderDefinition definition) in ./Prowlarr.Core/Indexers/IndexerHttpClient.cs:line 44
+ at NzbDrone.Core.Indexers.HttpIndexerBase`1.<>c.<b__57_0>d.MoveNext() in ./Prowlarr.Core/Indexers/HttpIndexerBase.cs:line 661
+--- End of stack trace from previous location ---
+ at Polly.ResiliencePipeline.<>c__9`2.<b__9_0>d.MoveNext()
+--- End of stack trace from previous location ---
+ at Polly.Outcome`1.GetResultOrRethrow()
+ at Polly.ResiliencePipeline.ExecuteAsync[TResult,TState](Func`3 callback, TState state, CancellationToken cancellationToken)
+ at NzbDrone.Core.Indexers.HttpIndexerBase`1.FetchIndexerResponse(IndexerRequest request) in ./Prowlarr.Core/Indexers/HttpIndexerBase.cs:line 660
+ at NzbDrone.Core.Indexers.HttpIndexerBase`1.FetchPage(IndexerRequest request, IParseIndexerResponse parser) in ./Prowlarr.Core/Indexers/HttpIndexerBase.cs:line 606
+ at NzbDrone.Core.Indexers.HttpIndexerBase`1.FetchReleases(Func`2 pageableRequestChainSelector, SearchCriteriaBase searchCriteria, Boolean isRecent) in ./Prowlarr.Core/Indexers/HttpIndexerBase.cs:line 424
+FeedUrl: https://kickasstorrents.to/usearch/Test%202018/?sortby=time&sort=desc
+
+2024-12-14 02:11:04.2|Info|ReleaseSearchService|Searching indexer(s): [YTS] for Term: [Test 2018], Offset: 0, Limit: 100, Categories: [2000, 2040, 2045, 2060]
+2024-12-14 02:11:04.2|Info|ReleaseSearchService|Searching indexer(s): [TheRARBG] for Term: [Test 2018], Offset: 0, Limit: 100, Categories: [2000]
+2024-12-14 02:14:49.2|Info|Microsoft.Hosting.Lifetime|Application is shutting down...
+2024-12-14 02:14:49.3|Info|ConsoleApp|Exiting main.
+2024-12-14 02:15:50.8|Info|Bootstrap|Starting Prowlarr - /app/prowlarr/bin/Prowlarr - Version 1.27.0.4852
+2024-12-14 02:15:50.9|Info|AppFolderInfo|Data directory is being overridden to [/config]
+2024-12-14 02:15:50.9|Info|AppFolderInfo|Data directory is being overridden to [/config]
+2024-12-14 02:15:51.1|Info|AppFolderInfo|Data directory is being overridden to [/config]
+2024-12-14 02:15:51.2|Info|MigrationController|*** Migrating data source=/config/prowlarr.db;cache size=-20000;datetimekind=Utc;journal mode=Wal;pooling=True;version=3;busytimeout=100 ***
+2024-12-14 02:15:51.3|Info|FluentMigrator.Runner.MigrationRunner|DatabaseEngineVersionCheck migrating
+2024-12-14 02:15:51.3|Info|FluentMigrator.Runner.MigrationRunner|PerformDBOperation
+2024-12-14 02:15:51.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Performing DB Operation
+2024-12-14 02:15:51.4|Info|DatabaseEngineVersionCheck|SQLite 3.45.3
+2024-12-14 02:15:51.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0314163s
+2024-12-14 02:15:51.4|Info|FluentMigrator.Runner.MigrationRunner|DatabaseEngineVersionCheck migrated
+2024-12-14 02:15:51.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0327387s
+2024-12-14 02:15:51.4|Info|MigrationController|*** Migrating data source=/config/logs.db;cache size=-20000;datetimekind=Utc;journal mode=Wal;pooling=True;version=3;busytimeout=100 ***
+2024-12-14 02:15:51.4|Info|FluentMigrator.Runner.MigrationRunner|DatabaseEngineVersionCheck migrating
+2024-12-14 02:15:51.4|Info|FluentMigrator.Runner.MigrationRunner|PerformDBOperation
+2024-12-14 02:15:51.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Performing DB Operation
+2024-12-14 02:15:51.4|Info|DatabaseEngineVersionCheck|SQLite 3.45.3
+2024-12-14 02:15:51.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0015921s
+2024-12-14 02:15:51.4|Info|FluentMigrator.Runner.MigrationRunner|DatabaseEngineVersionCheck migrated
+2024-12-14 02:15:51.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0016872s
+2024-12-14 02:15:51.6|Info|Microsoft.Hosting.Lifetime|Now listening on: http://[::]:9696
+2024-12-14 02:15:51.7|Info|CommandExecutor|Starting 3 threads for tasks.
+2024-12-14 02:15:51.9|Info|ManagedHttpDispatcher|IPv4 is available: True, IPv6 will be disabled
+2024-12-14 02:15:52.3|Info|Microsoft.Hosting.Lifetime|Application started. Press Ctrl+C to shut down.
+2024-12-14 02:15:52.3|Info|Microsoft.Hosting.Lifetime|Hosting environment: Production
+2024-12-14 02:15:52.3|Info|Microsoft.Hosting.Lifetime|Content root path: /app/prowlarr/bin
+2024-12-14 02:16:16.5|Info|Microsoft.Hosting.Lifetime|Application is shutting down...
+2024-12-14 02:16:16.5|Info|ConsoleApp|Exiting main.
+2024-12-14 02:16:47.0|Info|Bootstrap|Starting Prowlarr - /app/prowlarr/bin/Prowlarr - Version 1.27.0.4852
+2024-12-14 02:16:47.1|Info|AppFolderInfo|Data directory is being overridden to [/config]
+2024-12-14 02:16:47.1|Info|AppFolderInfo|Data directory is being overridden to [/config]
+2024-12-14 02:16:47.3|Info|AppFolderInfo|Data directory is being overridden to [/config]
+2024-12-14 02:16:47.4|Info|MigrationController|*** Migrating data source=/config/prowlarr.db;cache size=-20000;datetimekind=Utc;journal mode=Wal;pooling=True;version=3;busytimeout=100 ***
+2024-12-14 02:16:47.5|Info|FluentMigrator.Runner.MigrationRunner|DatabaseEngineVersionCheck migrating
+2024-12-14 02:16:47.5|Info|FluentMigrator.Runner.MigrationRunner|PerformDBOperation
+2024-12-14 02:16:47.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Performing DB Operation
+2024-12-14 02:16:47.5|Info|DatabaseEngineVersionCheck|SQLite 3.45.3
+2024-12-14 02:16:47.5|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0325407s
+2024-12-14 02:16:47.5|Info|FluentMigrator.Runner.MigrationRunner|DatabaseEngineVersionCheck migrated
+2024-12-14 02:16:47.5|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0339474s
+2024-12-14 02:16:47.6|Info|MigrationController|*** Migrating data source=/config/logs.db;cache size=-20000;datetimekind=Utc;journal mode=Wal;pooling=True;version=3;busytimeout=100 ***
+2024-12-14 02:16:47.6|Info|FluentMigrator.Runner.MigrationRunner|DatabaseEngineVersionCheck migrating
+2024-12-14 02:16:47.6|Info|FluentMigrator.Runner.MigrationRunner|PerformDBOperation
+2024-12-14 02:16:47.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Performing DB Operation
+2024-12-14 02:16:47.6|Info|DatabaseEngineVersionCheck|SQLite 3.45.3
+2024-12-14 02:16:47.6|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0017736s
+2024-12-14 02:16:47.6|Info|FluentMigrator.Runner.MigrationRunner|DatabaseEngineVersionCheck migrated
+2024-12-14 02:16:47.6|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0018882s
+2024-12-14 02:16:47.7|Info|Microsoft.Hosting.Lifetime|Now listening on: http://[::]:9696
+2024-12-14 02:16:47.8|Info|CommandExecutor|Starting 3 threads for tasks.
+2024-12-14 02:16:48.0|Info|ManagedHttpDispatcher|IPv4 is available: True, IPv6 will be disabled
+2024-12-14 02:16:48.3|Info|Microsoft.Hosting.Lifetime|Application started. Press Ctrl+C to shut down.
+2024-12-14 02:16:48.3|Info|Microsoft.Hosting.Lifetime|Hosting environment: Production
+2024-12-14 02:16:48.3|Info|Microsoft.Hosting.Lifetime|Content root path: /app/prowlarr/bin
+2024-12-14 02:17:18.6|Info|ReleaseSearchService|Searching indexer(s): [Badass Torrents] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5070]
+2024-12-14 02:17:18.6|Info|ReleaseSearchService|Searching indexer(s): [Internet Archive] for Term: [], Offset: 0, Limit: 100, Categories: [2000]
+2024-12-14 02:17:18.6|Info|ReleaseSearchService|Searching indexer(s): [Bangumi Moe] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5070]
+2024-12-14 02:17:18.6|Info|ReleaseSearchService|Searching indexer(s): [Isohunt2] for Term: [], Offset: 0, Limit: 100, Categories: [2000]
+2024-12-14 02:17:18.6|Info|ReleaseSearchService|Searching indexer(s): [Badass Torrents] for Term: [], Offset: 0, Limit: 100, Categories: [2000]
+2024-12-14 02:17:18.6|Info|ReleaseSearchService|Searching indexer(s): [E-Hentai] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5070]
+2024-12-14 02:17:18.6|Info|ReleaseSearchService|Searching indexer(s): [AniSource] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5070]
+2024-12-14 02:17:18.6|Info|ReleaseSearchService|Searching indexer(s): [kickasstorrents.ws] for Term: [], Offset: 0, Limit: 100, Categories: [2000]
+2024-12-14 02:17:18.7|Info|ReleaseSearchService|Searching indexer(s): [Internet Archive] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:17:18.7|Info|ReleaseSearchService|Searching indexer(s): [EZTV] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:17:18.7|Info|ReleaseSearchService|Searching indexer(s): [Isohunt2] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5070]
+2024-12-14 02:17:18.7|Info|ReleaseSearchService|Searching indexer(s): [kickasstorrents.to] for Term: [], Offset: 0, Limit: 100, Categories: [2000]
+2024-12-14 02:17:18.7|Info|ReleaseSearchService|Searching indexer(s): [kickasstorrents.ws] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:17:18.7|Info|ReleaseSearchService|Searching indexer(s): [TheRARBG] for Term: [], Offset: 0, Limit: 100, Categories: [2000]
+2024-12-14 02:17:18.7|Info|ReleaseSearchService|Searching indexer(s): [Knaben] for Term: [], Offset: 0, Limit: 100, Categories: [2000, 2040, 2030, 2045, 2070, 2010, 2060, 2020]
+2024-12-14 02:17:18.7|Info|ReleaseSearchService|Searching indexer(s): [LimeTorrents] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5070]
+2024-12-14 02:17:18.7|Info|ReleaseSearchService|Searching indexer(s): [showRSS] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5030, 5040]
+2024-12-14 02:17:18.7|Info|ReleaseSearchService|Searching indexer(s): [Shana Project] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5070]
+2024-12-14 02:17:18.7|Info|ReleaseSearchService|Searching indexer(s): [SubsPlease] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5070]
+2024-12-14 02:17:18.7|Info|ReleaseSearchService|Searching indexer(s): [The Pirate Bay] for Term: [], Offset: 0, Limit: 100, Categories: [2000, 2020, 2040, 2060, 2030, 2045]
+2024-12-14 02:17:18.7|Info|ReleaseSearchService|Searching indexer(s): [Torlock] for Term: [], Offset: 0, Limit: 100, Categories: [2000]
+2024-12-14 02:17:18.7|Info|ReleaseSearchService|Searching indexer(s): [YourBittorrent] for Term: [], Offset: 0, Limit: 100, Categories: [2000]
+2024-12-14 02:17:18.7|Info|ReleaseSearchService|Searching indexer(s): [YTS] for Term: [], Offset: 0, Limit: 100, Categories: [2000, 2040, 2045, 2060]
+2024-12-14 02:17:18.7|Info|ReleaseSearchService|Searching indexer(s): [Torrent Downloads] for Term: [], Offset: 0, Limit: 100, Categories: [2000]
+2024-12-14 02:17:18.7|Error|Cardigann|An error occurred while processing indexer feed. https://kickasstorrents.to/new/?sortby=time&sort=desc
+
+[v1.27.0.4852] System.FormatException: The format of value '' is invalid.
+ at System.Net.Http.Headers.HttpHeaderParser.ParseValue(String value, Object storeValue, Int32& index)
+ at System.Net.Http.Headers.HttpHeaders.ParseAndAddValue(HeaderDescriptor descriptor, HeaderStoreItemInfo info, String value)
+ at NzbDrone.Common.Http.Dispatchers.ManagedHttpDispatcher.AddRequestHeaders(HttpRequestMessage webRequest, HttpHeader headers) in ./Prowlarr.Common/Http/Dispatchers/ManagedHttpDispatcher.cs:line 218
+ at NzbDrone.Common.Http.Dispatchers.ManagedHttpDispatcher.GetResponseAsync(HttpRequest request, CookieContainer cookies) in ./Prowlarr.Common/Http/Dispatchers/ManagedHttpDispatcher.cs:line 109
+ at NzbDrone.Common.Http.HttpClient.ExecuteRequestAsync(HttpRequest request, CookieContainer cookieContainer) in ./Prowlarr.Common/Http/HttpClient.cs:line 171
+ at NzbDrone.Common.Http.HttpClient.ExecuteAsync(HttpRequest request) in ./Prowlarr.Common/Http/HttpClient.cs:line 70
+ at NzbDrone.Core.Indexers.IndexerHttpClient.ExecuteProxiedAsync(HttpRequest request, ProviderDefinition definition) in ./Prowlarr.Core/Indexers/IndexerHttpClient.cs:line 43
+ at NzbDrone.Core.Indexers.HttpIndexerBase`1.<>c.<b__57_0>d.MoveNext() in ./Prowlarr.Core/Indexers/HttpIndexerBase.cs:line 661
+--- End of stack trace from previous location ---
+ at Polly.ResiliencePipeline.<>c__9`2.<b__9_0>d.MoveNext()
+--- End of stack trace from previous location ---
+ at Polly.Outcome`1.GetResultOrRethrow()
+ at Polly.ResiliencePipeline.ExecuteAsync[TResult,TState](Func`3 callback, TState state, CancellationToken cancellationToken)
+ at NzbDrone.Core.Indexers.HttpIndexerBase`1.FetchIndexerResponse(IndexerRequest request) in ./Prowlarr.Core/Indexers/HttpIndexerBase.cs:line 660
+ at NzbDrone.Core.Indexers.HttpIndexerBase`1.FetchPage(IndexerRequest request, IParseIndexerResponse parser) in ./Prowlarr.Core/Indexers/HttpIndexerBase.cs:line 583
+ at NzbDrone.Core.Indexers.HttpIndexerBase`1.FetchReleases(Func`2 pageableRequestChainSelector, SearchCriteriaBase searchCriteria, Boolean isRecent) in ./Prowlarr.Core/Indexers/HttpIndexerBase.cs:line 424
+FeedUrl: https://kickasstorrents.to/new/?sortby=time&sort=desc
+
+2024-12-14 02:17:18.9|Info|ReleaseSearchService|Searching indexer(s): [TorrentGalaxy] for Term: [], Offset: 0, Limit: 100, Categories: [2000, 2045, 2010, 2020, 2040, 2030]
+2024-12-14 02:17:20.4|Info|ReleaseSearchService|Searching indexer(s): [The Pirate Bay] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5050, 5040, 5045]
+2024-12-14 02:17:20.5|Info|ReleaseSearchService|Searching indexer(s): [TheRARBG] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5070]
+2024-12-14 02:17:20.5|Info|ReleaseSearchService|Searching indexer(s): [Tokyo Toshokan] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5070]
+2024-12-14 02:17:20.7|Info|ReleaseSearchService|Searching indexer(s): [Torlock] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5070]
+2024-12-14 02:17:20.7|Info|ReleaseSearchService|Searching indexer(s): [Torrent Downloads] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5070]
+2024-12-14 02:17:20.8|Info|ReleaseSearchService|Searching indexer(s): [TorrentGalaxy] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5040, 5030, 5045, 5050, 5070]
+2024-12-14 02:17:20.9|Info|ReleaseSearchService|Searching indexer(s): [YourBittorrent] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5070]
+2024-12-14 02:17:22.6|Info|ReleaseSearchService|Searching indexer(s): [Internet Archive] for Term: [], Offset: 100, Limit: 100, Categories: [2000]
+2024-12-14 02:18:46.0|Info|Microsoft.Hosting.Lifetime|Application is shutting down...
+2024-12-14 02:18:46.0|Info|ConsoleApp|Exiting main.
+2024-12-14 02:18:59.4|Info|Bootstrap|Starting Prowlarr - /app/prowlarr/bin/Prowlarr - Version 1.27.0.4852
+2024-12-14 02:18:59.5|Info|AppFolderInfo|Data directory is being overridden to [/config]
+2024-12-14 02:18:59.5|Info|AppFolderInfo|Data directory is being overridden to [/config]
+2024-12-14 02:18:59.7|Info|AppFolderInfo|Data directory is being overridden to [/config]
+2024-12-14 02:18:59.8|Info|MigrationController|*** Migrating data source=/config/prowlarr.db;cache size=-20000;datetimekind=Utc;journal mode=Wal;pooling=True;version=3;busytimeout=100 ***
+2024-12-14 02:18:59.9|Info|FluentMigrator.Runner.MigrationRunner|DatabaseEngineVersionCheck migrating
+2024-12-14 02:18:59.9|Info|FluentMigrator.Runner.MigrationRunner|PerformDBOperation
+2024-12-14 02:18:59.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Performing DB Operation
+2024-12-14 02:18:59.9|Info|DatabaseEngineVersionCheck|SQLite 3.45.3
+2024-12-14 02:18:59.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0318255s
+2024-12-14 02:18:59.9|Info|FluentMigrator.Runner.MigrationRunner|DatabaseEngineVersionCheck migrated
+2024-12-14 02:18:59.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0331304s
+2024-12-14 02:19:00.0|Info|MigrationController|*** Migrating data source=/config/logs.db;cache size=-20000;datetimekind=Utc;journal mode=Wal;pooling=True;version=3;busytimeout=100 ***
+2024-12-14 02:19:00.0|Info|FluentMigrator.Runner.MigrationRunner|DatabaseEngineVersionCheck migrating
+2024-12-14 02:19:00.0|Info|FluentMigrator.Runner.MigrationRunner|PerformDBOperation
+2024-12-14 02:19:00.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Performing DB Operation
+2024-12-14 02:19:00.0|Info|DatabaseEngineVersionCheck|SQLite 3.45.3
+2024-12-14 02:19:00.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0015644s
+2024-12-14 02:19:00.0|Info|FluentMigrator.Runner.MigrationRunner|DatabaseEngineVersionCheck migrated
+2024-12-14 02:19:00.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0016577s
+2024-12-14 02:19:00.1|Info|Microsoft.Hosting.Lifetime|Now listening on: http://[::]:9696
+2024-12-14 02:19:00.2|Info|CommandExecutor|Starting 3 threads for tasks.
+2024-12-14 02:19:00.4|Info|ManagedHttpDispatcher|IPv4 is available: True, IPv6 will be disabled
+2024-12-14 02:19:00.7|Info|Microsoft.Hosting.Lifetime|Application started. Press Ctrl+C to shut down.
+2024-12-14 02:19:00.7|Info|Microsoft.Hosting.Lifetime|Hosting environment: Production
+2024-12-14 02:19:00.7|Info|Microsoft.Hosting.Lifetime|Content root path: /app/prowlarr/bin
+2024-12-14 02:33:01.1|Info|ReleaseSearchService|Searching indexer(s): [Badass Torrents] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5070]
+2024-12-14 02:33:01.1|Info|ReleaseSearchService|Searching indexer(s): [AniSource] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5070]
+2024-12-14 02:33:01.1|Info|ReleaseSearchService|Searching indexer(s): [Bangumi Moe] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5070]
+2024-12-14 02:33:01.1|Info|ReleaseSearchService|Searching indexer(s): [E-Hentai] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5070]
+2024-12-14 02:33:01.1|Info|ReleaseSearchService|Searching indexer(s): [EZTV] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:33:01.1|Info|ReleaseSearchService|Searching indexer(s): [Internet Archive] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:33:01.2|Info|ReleaseSearchService|Searching indexer(s): [Isohunt2] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5070]
+2024-12-14 02:33:01.2|Info|ReleaseSearchService|Searching indexer(s): [LimeTorrents] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5070]
+2024-12-14 02:33:01.2|Info|ReleaseSearchService|Searching indexer(s): [kickasstorrents.ws] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000]
+2024-12-14 02:33:01.2|Info|ReleaseSearchService|Searching indexer(s): [Shana Project] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5070]
+2024-12-14 02:33:01.2|Info|ReleaseSearchService|Searching indexer(s): [showRSS] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5030, 5040]
+2024-12-14 02:33:01.2|Info|ReleaseSearchService|Searching indexer(s): [SubsPlease] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5070]
+2024-12-14 02:33:02.1|Info|ReleaseSearchService|Searching indexer(s): [The Pirate Bay] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5050, 5040, 5045]
+2024-12-14 02:33:02.1|Info|ReleaseSearchService|Searching indexer(s): [TheRARBG] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5070]
+2024-12-14 02:33:02.3|Info|ReleaseSearchService|Searching indexer(s): [Tokyo Toshokan] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5070]
+2024-12-14 02:33:02.4|Info|ReleaseSearchService|Searching indexer(s): [Torlock] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5070]
+2024-12-14 02:33:02.4|Info|ReleaseSearchService|Searching indexer(s): [Torrent Downloads] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5070]
+2024-12-14 02:33:02.5|Info|ReleaseSearchService|Searching indexer(s): [TorrentGalaxy] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5040, 5030, 5045, 5050, 5070]
+2024-12-14 02:33:02.6|Info|ReleaseSearchService|Searching indexer(s): [YourBittorrent] for Term: [] for Season / Episode:[], Offset: 0, Limit: 100, Categories: [5000, 5070]
+2024-12-14 02:35:08.4|Info|Microsoft.Hosting.Lifetime|Application is shutting down...
+2024-12-14 02:35:08.5|Info|ConsoleApp|Exiting main.
+2024-12-14 02:35:58.2|Info|Bootstrap|Starting Prowlarr - /app/prowlarr/bin/Prowlarr - Version 1.27.0.4852
+2024-12-14 02:35:58.3|Info|AppFolderInfo|Data directory is being overridden to [/config]
+2024-12-14 02:35:58.3|Info|AppFolderInfo|Data directory is being overridden to [/config]
+2024-12-14 02:35:58.5|Info|AppFolderInfo|Data directory is being overridden to [/config]
+2024-12-14 02:35:58.7|Info|MigrationController|*** Migrating data source=/config/prowlarr.db;cache size=-20000;datetimekind=Utc;journal mode=Wal;pooling=True;version=3;busytimeout=100 ***
+2024-12-14 02:35:58.7|Info|FluentMigrator.Runner.MigrationRunner|DatabaseEngineVersionCheck migrating
+2024-12-14 02:35:58.7|Info|FluentMigrator.Runner.MigrationRunner|PerformDBOperation
+2024-12-14 02:35:58.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Performing DB Operation
+2024-12-14 02:35:58.8|Info|DatabaseEngineVersionCheck|SQLite 3.45.3
+2024-12-14 02:35:58.8|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0316116s
+2024-12-14 02:35:58.8|Info|FluentMigrator.Runner.MigrationRunner|DatabaseEngineVersionCheck migrated
+2024-12-14 02:35:58.8|Info|FluentMigrator.Runner.MigrationRunner|=> 0.032981s
+2024-12-14 02:35:58.8|Info|MigrationController|*** Migrating data source=/config/logs.db;cache size=-20000;datetimekind=Utc;journal mode=Wal;pooling=True;version=3;busytimeout=100 ***
+2024-12-14 02:35:58.8|Info|FluentMigrator.Runner.MigrationRunner|DatabaseEngineVersionCheck migrating
+2024-12-14 02:35:58.8|Info|FluentMigrator.Runner.MigrationRunner|PerformDBOperation
+2024-12-14 02:35:58.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Performing DB Operation
+2024-12-14 02:35:58.8|Info|DatabaseEngineVersionCheck|SQLite 3.45.3
+2024-12-14 02:35:58.8|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0015864s
+2024-12-14 02:35:58.8|Info|FluentMigrator.Runner.MigrationRunner|DatabaseEngineVersionCheck migrated
+2024-12-14 02:35:58.8|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0016941s
+2024-12-14 02:35:59.0|Info|Microsoft.Hosting.Lifetime|Now listening on: http://[::]:9696
+2024-12-14 02:35:59.1|Info|CommandExecutor|Starting 3 threads for tasks.
+2024-12-14 02:35:59.3|Info|ManagedHttpDispatcher|IPv4 is available: True, IPv6 will be disabled
+2024-12-14 02:35:59.7|Info|Microsoft.Hosting.Lifetime|Application started. Press Ctrl+C to shut down.
+2024-12-14 02:35:59.7|Info|Microsoft.Hosting.Lifetime|Hosting environment: Production
+2024-12-14 02:35:59.7|Info|Microsoft.Hosting.Lifetime|Content root path: /app/prowlarr/bin
+2024-12-14 02:36:57.5|Info|Microsoft.Hosting.Lifetime|Application is shutting down...
+2024-12-14 02:36:57.6|Info|ConsoleApp|Exiting main.
diff --git a/mock-htpc/prowlarr/prowlarr.db b/mock-htpc/prowlarr/prowlarr.db
index 56eca66..bc1d58d 100644
Binary files a/mock-htpc/prowlarr/prowlarr.db and b/mock-htpc/prowlarr/prowlarr.db differ
diff --git a/mock-htpc/prowlarr/prowlarr.pid b/mock-htpc/prowlarr/prowlarr.pid
index d7019ae..bc768da 100644
--- a/mock-htpc/prowlarr/prowlarr.pid
+++ b/mock-htpc/prowlarr/prowlarr.pid
@@ -1 +1 @@
-149
\ No newline at end of file
+146
\ No newline at end of file
diff --git a/mock-htpc/sonarr/MediaCover/1/banner-35.jpg b/mock-htpc/sonarr/MediaCover/1/banner-35.jpg
new file mode 100644
index 0000000..783bffb
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/1/banner-35.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/1/banner-70.jpg b/mock-htpc/sonarr/MediaCover/1/banner-70.jpg
new file mode 100644
index 0000000..f3cec36
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/1/banner-70.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/1/banner.jpg b/mock-htpc/sonarr/MediaCover/1/banner.jpg
new file mode 100644
index 0000000..cab0ec8
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/1/banner.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/1/clearlogo.png b/mock-htpc/sonarr/MediaCover/1/clearlogo.png
new file mode 100644
index 0000000..3ef41da
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/1/clearlogo.png differ
diff --git a/mock-htpc/sonarr/MediaCover/1/fanart-180.jpg b/mock-htpc/sonarr/MediaCover/1/fanart-180.jpg
new file mode 100644
index 0000000..b8a8090
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/1/fanart-180.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/1/fanart-360.jpg b/mock-htpc/sonarr/MediaCover/1/fanart-360.jpg
new file mode 100644
index 0000000..b21e223
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/1/fanart-360.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/1/fanart.jpg b/mock-htpc/sonarr/MediaCover/1/fanart.jpg
new file mode 100644
index 0000000..3cef9bb
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/1/fanart.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/1/poster-250.jpg b/mock-htpc/sonarr/MediaCover/1/poster-250.jpg
new file mode 100644
index 0000000..8220a05
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/1/poster-250.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/1/poster-500.jpg b/mock-htpc/sonarr/MediaCover/1/poster-500.jpg
new file mode 100644
index 0000000..9db2b16
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/1/poster-500.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/1/poster.jpg b/mock-htpc/sonarr/MediaCover/1/poster.jpg
new file mode 100644
index 0000000..ba176e3
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/1/poster.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/10/banner-35.jpg b/mock-htpc/sonarr/MediaCover/10/banner-35.jpg
new file mode 100644
index 0000000..4d3383e
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/10/banner-35.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/10/banner-70.jpg b/mock-htpc/sonarr/MediaCover/10/banner-70.jpg
new file mode 100644
index 0000000..79198b7
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/10/banner-70.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/10/banner.jpg b/mock-htpc/sonarr/MediaCover/10/banner.jpg
new file mode 100644
index 0000000..7e64738
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/10/banner.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/10/clearlogo.png b/mock-htpc/sonarr/MediaCover/10/clearlogo.png
new file mode 100644
index 0000000..ecefb03
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/10/clearlogo.png differ
diff --git a/mock-htpc/sonarr/MediaCover/10/fanart-180.jpg b/mock-htpc/sonarr/MediaCover/10/fanart-180.jpg
new file mode 100644
index 0000000..6957a4c
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/10/fanart-180.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/10/fanart-360.jpg b/mock-htpc/sonarr/MediaCover/10/fanart-360.jpg
new file mode 100644
index 0000000..6fb5f8d
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/10/fanart-360.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/10/fanart.jpg b/mock-htpc/sonarr/MediaCover/10/fanart.jpg
new file mode 100644
index 0000000..173feff
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/10/fanart.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/10/poster-250.jpg b/mock-htpc/sonarr/MediaCover/10/poster-250.jpg
new file mode 100644
index 0000000..b6c7950
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/10/poster-250.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/10/poster-500.jpg b/mock-htpc/sonarr/MediaCover/10/poster-500.jpg
new file mode 100644
index 0000000..d5d210d
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/10/poster-500.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/10/poster.jpg b/mock-htpc/sonarr/MediaCover/10/poster.jpg
new file mode 100644
index 0000000..4939933
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/10/poster.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/11/banner-35.jpg b/mock-htpc/sonarr/MediaCover/11/banner-35.jpg
new file mode 100644
index 0000000..9534112
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/11/banner-35.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/11/banner-70.jpg b/mock-htpc/sonarr/MediaCover/11/banner-70.jpg
new file mode 100644
index 0000000..38a69f2
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/11/banner-70.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/11/banner.jpg b/mock-htpc/sonarr/MediaCover/11/banner.jpg
new file mode 100644
index 0000000..11cad9f
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/11/banner.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/11/clearlogo.png b/mock-htpc/sonarr/MediaCover/11/clearlogo.png
new file mode 100644
index 0000000..bfe8129
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/11/clearlogo.png differ
diff --git a/mock-htpc/sonarr/MediaCover/11/fanart-180.jpg b/mock-htpc/sonarr/MediaCover/11/fanart-180.jpg
new file mode 100644
index 0000000..a32fe37
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/11/fanart-180.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/11/fanart-360.jpg b/mock-htpc/sonarr/MediaCover/11/fanart-360.jpg
new file mode 100644
index 0000000..d7cee2c
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/11/fanart-360.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/11/fanart.jpg b/mock-htpc/sonarr/MediaCover/11/fanart.jpg
new file mode 100644
index 0000000..ed1616b
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/11/fanart.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/11/poster-250.jpg b/mock-htpc/sonarr/MediaCover/11/poster-250.jpg
new file mode 100644
index 0000000..2279355
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/11/poster-250.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/11/poster-500.jpg b/mock-htpc/sonarr/MediaCover/11/poster-500.jpg
new file mode 100644
index 0000000..d4e5cf9
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/11/poster-500.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/11/poster.jpg b/mock-htpc/sonarr/MediaCover/11/poster.jpg
new file mode 100644
index 0000000..f0fa4c7
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/11/poster.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/12/banner-35.jpg b/mock-htpc/sonarr/MediaCover/12/banner-35.jpg
new file mode 100644
index 0000000..496c8eb
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/12/banner-35.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/12/banner-70.jpg b/mock-htpc/sonarr/MediaCover/12/banner-70.jpg
new file mode 100644
index 0000000..9bfbf2d
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/12/banner-70.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/12/banner.jpg b/mock-htpc/sonarr/MediaCover/12/banner.jpg
new file mode 100644
index 0000000..2cac9cc
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/12/banner.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/12/fanart-180.jpg b/mock-htpc/sonarr/MediaCover/12/fanart-180.jpg
new file mode 100644
index 0000000..3c970cf
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/12/fanart-180.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/12/fanart-360.jpg b/mock-htpc/sonarr/MediaCover/12/fanart-360.jpg
new file mode 100644
index 0000000..b8b0651
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/12/fanart-360.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/12/fanart.jpg b/mock-htpc/sonarr/MediaCover/12/fanart.jpg
new file mode 100644
index 0000000..c9f1e8d
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/12/fanart.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/12/poster-250.jpg b/mock-htpc/sonarr/MediaCover/12/poster-250.jpg
new file mode 100644
index 0000000..cd7d68e
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/12/poster-250.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/12/poster-500.jpg b/mock-htpc/sonarr/MediaCover/12/poster-500.jpg
new file mode 100644
index 0000000..0b5df3c
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/12/poster-500.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/12/poster.jpg b/mock-htpc/sonarr/MediaCover/12/poster.jpg
new file mode 100644
index 0000000..4a095df
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/12/poster.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/13/banner-35.jpg b/mock-htpc/sonarr/MediaCover/13/banner-35.jpg
new file mode 100644
index 0000000..ad48fb6
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/13/banner-35.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/13/banner-70.jpg b/mock-htpc/sonarr/MediaCover/13/banner-70.jpg
new file mode 100644
index 0000000..e09b045
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/13/banner-70.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/13/banner.jpg b/mock-htpc/sonarr/MediaCover/13/banner.jpg
new file mode 100644
index 0000000..8e23025
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/13/banner.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/13/clearlogo.png b/mock-htpc/sonarr/MediaCover/13/clearlogo.png
new file mode 100644
index 0000000..997344f
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/13/clearlogo.png differ
diff --git a/mock-htpc/sonarr/MediaCover/13/fanart-180.jpg b/mock-htpc/sonarr/MediaCover/13/fanart-180.jpg
new file mode 100644
index 0000000..ad7c5bb
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/13/fanart-180.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/13/fanart-360.jpg b/mock-htpc/sonarr/MediaCover/13/fanart-360.jpg
new file mode 100644
index 0000000..055d24b
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/13/fanart-360.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/13/fanart.jpg b/mock-htpc/sonarr/MediaCover/13/fanart.jpg
new file mode 100644
index 0000000..531fdfc
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/13/fanart.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/13/poster-250.jpg b/mock-htpc/sonarr/MediaCover/13/poster-250.jpg
new file mode 100644
index 0000000..494e9c5
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/13/poster-250.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/13/poster-500.jpg b/mock-htpc/sonarr/MediaCover/13/poster-500.jpg
new file mode 100644
index 0000000..96daf93
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/13/poster-500.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/13/poster.jpg b/mock-htpc/sonarr/MediaCover/13/poster.jpg
new file mode 100644
index 0000000..9e58496
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/13/poster.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/14/banner-35.jpg b/mock-htpc/sonarr/MediaCover/14/banner-35.jpg
new file mode 100644
index 0000000..d16eb57
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/14/banner-35.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/14/banner-70.jpg b/mock-htpc/sonarr/MediaCover/14/banner-70.jpg
new file mode 100644
index 0000000..58115c1
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/14/banner-70.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/14/banner.jpg b/mock-htpc/sonarr/MediaCover/14/banner.jpg
new file mode 100644
index 0000000..cb6317e
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/14/banner.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/14/clearlogo.png b/mock-htpc/sonarr/MediaCover/14/clearlogo.png
new file mode 100644
index 0000000..462ad39
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/14/clearlogo.png differ
diff --git a/mock-htpc/sonarr/MediaCover/14/fanart-180.jpg b/mock-htpc/sonarr/MediaCover/14/fanart-180.jpg
new file mode 100644
index 0000000..e5bfea0
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/14/fanart-180.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/14/fanart-360.jpg b/mock-htpc/sonarr/MediaCover/14/fanart-360.jpg
new file mode 100644
index 0000000..00420bb
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/14/fanart-360.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/14/fanart.jpg b/mock-htpc/sonarr/MediaCover/14/fanart.jpg
new file mode 100644
index 0000000..1f72d12
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/14/fanart.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/14/poster-250.jpg b/mock-htpc/sonarr/MediaCover/14/poster-250.jpg
new file mode 100644
index 0000000..05bb690
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/14/poster-250.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/14/poster-500.jpg b/mock-htpc/sonarr/MediaCover/14/poster-500.jpg
new file mode 100644
index 0000000..e1b494a
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/14/poster-500.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/14/poster.jpg b/mock-htpc/sonarr/MediaCover/14/poster.jpg
new file mode 100644
index 0000000..8508e38
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/14/poster.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/15/banner-35.jpg b/mock-htpc/sonarr/MediaCover/15/banner-35.jpg
new file mode 100644
index 0000000..0fedf67
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/15/banner-35.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/15/banner-70.jpg b/mock-htpc/sonarr/MediaCover/15/banner-70.jpg
new file mode 100644
index 0000000..8e74617
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/15/banner-70.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/15/banner.jpg b/mock-htpc/sonarr/MediaCover/15/banner.jpg
new file mode 100644
index 0000000..d88e212
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/15/banner.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/15/fanart-180.jpg b/mock-htpc/sonarr/MediaCover/15/fanart-180.jpg
new file mode 100644
index 0000000..c60eeaf
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/15/fanart-180.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/15/fanart-360.jpg b/mock-htpc/sonarr/MediaCover/15/fanart-360.jpg
new file mode 100644
index 0000000..901a8c3
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/15/fanart-360.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/15/fanart.jpg b/mock-htpc/sonarr/MediaCover/15/fanart.jpg
new file mode 100644
index 0000000..f45d702
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/15/fanart.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/15/poster-250.jpg b/mock-htpc/sonarr/MediaCover/15/poster-250.jpg
new file mode 100644
index 0000000..ef4bdfa
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/15/poster-250.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/15/poster-500.jpg b/mock-htpc/sonarr/MediaCover/15/poster-500.jpg
new file mode 100644
index 0000000..1d1f55e
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/15/poster-500.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/15/poster.jpg b/mock-htpc/sonarr/MediaCover/15/poster.jpg
new file mode 100644
index 0000000..262cd68
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/15/poster.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/2/banner-35.jpg b/mock-htpc/sonarr/MediaCover/2/banner-35.jpg
new file mode 100644
index 0000000..214c9e3
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/2/banner-35.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/2/banner-70.jpg b/mock-htpc/sonarr/MediaCover/2/banner-70.jpg
new file mode 100644
index 0000000..08ff78b
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/2/banner-70.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/2/banner.jpg b/mock-htpc/sonarr/MediaCover/2/banner.jpg
new file mode 100644
index 0000000..3b31a01
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/2/banner.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/2/clearlogo.png b/mock-htpc/sonarr/MediaCover/2/clearlogo.png
new file mode 100644
index 0000000..2677867
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/2/clearlogo.png differ
diff --git a/mock-htpc/sonarr/MediaCover/2/fanart-180.jpg b/mock-htpc/sonarr/MediaCover/2/fanart-180.jpg
new file mode 100644
index 0000000..38aff7f
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/2/fanart-180.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/2/fanart-360.jpg b/mock-htpc/sonarr/MediaCover/2/fanart-360.jpg
new file mode 100644
index 0000000..70945b7
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/2/fanart-360.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/2/fanart.jpg b/mock-htpc/sonarr/MediaCover/2/fanart.jpg
new file mode 100644
index 0000000..2766d84
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/2/fanart.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/2/poster-250.jpg b/mock-htpc/sonarr/MediaCover/2/poster-250.jpg
new file mode 100644
index 0000000..9598b63
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/2/poster-250.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/2/poster-500.jpg b/mock-htpc/sonarr/MediaCover/2/poster-500.jpg
new file mode 100644
index 0000000..bb4e1b5
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/2/poster-500.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/2/poster.jpg b/mock-htpc/sonarr/MediaCover/2/poster.jpg
new file mode 100644
index 0000000..babf127
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/2/poster.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/3/banner-35.jpg b/mock-htpc/sonarr/MediaCover/3/banner-35.jpg
new file mode 100644
index 0000000..7137b41
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/3/banner-35.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/3/banner-70.jpg b/mock-htpc/sonarr/MediaCover/3/banner-70.jpg
new file mode 100644
index 0000000..b032384
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/3/banner-70.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/3/banner.jpg b/mock-htpc/sonarr/MediaCover/3/banner.jpg
new file mode 100644
index 0000000..6fce418
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/3/banner.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/3/clearlogo.png b/mock-htpc/sonarr/MediaCover/3/clearlogo.png
new file mode 100644
index 0000000..84e6e4f
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/3/clearlogo.png differ
diff --git a/mock-htpc/sonarr/MediaCover/3/fanart-180.jpg b/mock-htpc/sonarr/MediaCover/3/fanart-180.jpg
new file mode 100644
index 0000000..ed0fa85
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/3/fanart-180.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/3/fanart-360.jpg b/mock-htpc/sonarr/MediaCover/3/fanart-360.jpg
new file mode 100644
index 0000000..a6945d5
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/3/fanart-360.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/3/fanart.jpg b/mock-htpc/sonarr/MediaCover/3/fanart.jpg
new file mode 100644
index 0000000..1db0f40
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/3/fanart.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/3/poster-250.jpg b/mock-htpc/sonarr/MediaCover/3/poster-250.jpg
new file mode 100644
index 0000000..c73a122
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/3/poster-250.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/3/poster-500.jpg b/mock-htpc/sonarr/MediaCover/3/poster-500.jpg
new file mode 100644
index 0000000..c110f5a
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/3/poster-500.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/3/poster.jpg b/mock-htpc/sonarr/MediaCover/3/poster.jpg
new file mode 100644
index 0000000..7697f54
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/3/poster.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/4/banner-35.jpg b/mock-htpc/sonarr/MediaCover/4/banner-35.jpg
new file mode 100644
index 0000000..44fb421
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/4/banner-35.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/4/banner-70.jpg b/mock-htpc/sonarr/MediaCover/4/banner-70.jpg
new file mode 100644
index 0000000..d428d1e
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/4/banner-70.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/4/banner.jpg b/mock-htpc/sonarr/MediaCover/4/banner.jpg
new file mode 100644
index 0000000..d53ab84
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/4/banner.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/4/clearlogo.png b/mock-htpc/sonarr/MediaCover/4/clearlogo.png
new file mode 100644
index 0000000..54b2270
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/4/clearlogo.png differ
diff --git a/mock-htpc/sonarr/MediaCover/4/fanart-180.jpg b/mock-htpc/sonarr/MediaCover/4/fanart-180.jpg
new file mode 100644
index 0000000..7f0620d
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/4/fanart-180.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/4/fanart-360.jpg b/mock-htpc/sonarr/MediaCover/4/fanart-360.jpg
new file mode 100644
index 0000000..f83cca6
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/4/fanart-360.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/4/fanart.jpg b/mock-htpc/sonarr/MediaCover/4/fanart.jpg
new file mode 100644
index 0000000..178fbcf
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/4/fanart.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/4/poster-250.jpg b/mock-htpc/sonarr/MediaCover/4/poster-250.jpg
new file mode 100644
index 0000000..52f18dc
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/4/poster-250.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/4/poster-500.jpg b/mock-htpc/sonarr/MediaCover/4/poster-500.jpg
new file mode 100644
index 0000000..51fb9bc
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/4/poster-500.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/4/poster.jpg b/mock-htpc/sonarr/MediaCover/4/poster.jpg
new file mode 100644
index 0000000..d350d7c
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/4/poster.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/5/banner-35.jpg b/mock-htpc/sonarr/MediaCover/5/banner-35.jpg
new file mode 100644
index 0000000..746fe4a
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/5/banner-35.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/5/banner-70.jpg b/mock-htpc/sonarr/MediaCover/5/banner-70.jpg
new file mode 100644
index 0000000..9bc21be
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/5/banner-70.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/5/banner.jpg b/mock-htpc/sonarr/MediaCover/5/banner.jpg
new file mode 100644
index 0000000..88ecb93
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/5/banner.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/5/clearlogo.png b/mock-htpc/sonarr/MediaCover/5/clearlogo.png
new file mode 100644
index 0000000..84e220a
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/5/clearlogo.png differ
diff --git a/mock-htpc/sonarr/MediaCover/5/fanart-180.jpg b/mock-htpc/sonarr/MediaCover/5/fanart-180.jpg
new file mode 100644
index 0000000..6d86339
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/5/fanart-180.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/5/fanart-360.jpg b/mock-htpc/sonarr/MediaCover/5/fanart-360.jpg
new file mode 100644
index 0000000..997060c
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/5/fanart-360.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/5/fanart.jpg b/mock-htpc/sonarr/MediaCover/5/fanart.jpg
new file mode 100644
index 0000000..8e91d3c
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/5/fanart.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/5/poster-250.jpg b/mock-htpc/sonarr/MediaCover/5/poster-250.jpg
new file mode 100644
index 0000000..99539a8
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/5/poster-250.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/5/poster-500.jpg b/mock-htpc/sonarr/MediaCover/5/poster-500.jpg
new file mode 100644
index 0000000..d2458bc
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/5/poster-500.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/5/poster.jpg b/mock-htpc/sonarr/MediaCover/5/poster.jpg
new file mode 100644
index 0000000..ba1bc7d
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/5/poster.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/6/banner-35.jpg b/mock-htpc/sonarr/MediaCover/6/banner-35.jpg
new file mode 100644
index 0000000..90765eb
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/6/banner-35.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/6/banner-70.jpg b/mock-htpc/sonarr/MediaCover/6/banner-70.jpg
new file mode 100644
index 0000000..32ec401
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/6/banner-70.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/6/banner.jpg b/mock-htpc/sonarr/MediaCover/6/banner.jpg
new file mode 100644
index 0000000..66cd388
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/6/banner.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/6/clearlogo.png b/mock-htpc/sonarr/MediaCover/6/clearlogo.png
new file mode 100644
index 0000000..d159b35
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/6/clearlogo.png differ
diff --git a/mock-htpc/sonarr/MediaCover/6/fanart-180.jpg b/mock-htpc/sonarr/MediaCover/6/fanart-180.jpg
new file mode 100644
index 0000000..c7b23ad
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/6/fanart-180.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/6/fanart-360.jpg b/mock-htpc/sonarr/MediaCover/6/fanart-360.jpg
new file mode 100644
index 0000000..ebd38ef
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/6/fanart-360.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/6/fanart.jpg b/mock-htpc/sonarr/MediaCover/6/fanart.jpg
new file mode 100644
index 0000000..6ada284
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/6/fanart.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/6/poster-250.jpg b/mock-htpc/sonarr/MediaCover/6/poster-250.jpg
new file mode 100644
index 0000000..dbe696b
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/6/poster-250.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/6/poster-500.jpg b/mock-htpc/sonarr/MediaCover/6/poster-500.jpg
new file mode 100644
index 0000000..83217ba
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/6/poster-500.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/6/poster.jpg b/mock-htpc/sonarr/MediaCover/6/poster.jpg
new file mode 100644
index 0000000..eab1d53
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/6/poster.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/7/banner-35.jpg b/mock-htpc/sonarr/MediaCover/7/banner-35.jpg
new file mode 100644
index 0000000..d13995c
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/7/banner-35.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/7/banner-70.jpg b/mock-htpc/sonarr/MediaCover/7/banner-70.jpg
new file mode 100644
index 0000000..66db9f4
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/7/banner-70.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/7/banner.jpg b/mock-htpc/sonarr/MediaCover/7/banner.jpg
new file mode 100644
index 0000000..d6c3302
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/7/banner.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/7/clearlogo.png b/mock-htpc/sonarr/MediaCover/7/clearlogo.png
new file mode 100644
index 0000000..e5334fc
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/7/clearlogo.png differ
diff --git a/mock-htpc/sonarr/MediaCover/7/fanart-180.jpg b/mock-htpc/sonarr/MediaCover/7/fanart-180.jpg
new file mode 100644
index 0000000..3635318
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/7/fanart-180.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/7/fanart-360.jpg b/mock-htpc/sonarr/MediaCover/7/fanart-360.jpg
new file mode 100644
index 0000000..c0056ca
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/7/fanart-360.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/7/fanart.jpg b/mock-htpc/sonarr/MediaCover/7/fanart.jpg
new file mode 100644
index 0000000..648e63f
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/7/fanart.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/7/poster-250.jpg b/mock-htpc/sonarr/MediaCover/7/poster-250.jpg
new file mode 100644
index 0000000..705e92f
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/7/poster-250.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/7/poster-500.jpg b/mock-htpc/sonarr/MediaCover/7/poster-500.jpg
new file mode 100644
index 0000000..1ce70b5
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/7/poster-500.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/7/poster.jpg b/mock-htpc/sonarr/MediaCover/7/poster.jpg
new file mode 100644
index 0000000..bb8ba0c
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/7/poster.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/8/banner-35.jpg b/mock-htpc/sonarr/MediaCover/8/banner-35.jpg
new file mode 100644
index 0000000..8172bab
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/8/banner-35.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/8/banner-70.jpg b/mock-htpc/sonarr/MediaCover/8/banner-70.jpg
new file mode 100644
index 0000000..b758d18
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/8/banner-70.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/8/banner.jpg b/mock-htpc/sonarr/MediaCover/8/banner.jpg
new file mode 100644
index 0000000..edcbc7a
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/8/banner.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/8/fanart-180.jpg b/mock-htpc/sonarr/MediaCover/8/fanart-180.jpg
new file mode 100644
index 0000000..d3ef6b7
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/8/fanart-180.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/8/fanart-360.jpg b/mock-htpc/sonarr/MediaCover/8/fanart-360.jpg
new file mode 100644
index 0000000..69de2ce
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/8/fanart-360.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/8/fanart.jpg b/mock-htpc/sonarr/MediaCover/8/fanart.jpg
new file mode 100644
index 0000000..52c9585
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/8/fanart.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/8/poster-250.jpg b/mock-htpc/sonarr/MediaCover/8/poster-250.jpg
new file mode 100644
index 0000000..6b336a0
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/8/poster-250.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/8/poster-500.jpg b/mock-htpc/sonarr/MediaCover/8/poster-500.jpg
new file mode 100644
index 0000000..43926dc
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/8/poster-500.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/8/poster.jpg b/mock-htpc/sonarr/MediaCover/8/poster.jpg
new file mode 100644
index 0000000..7c2c3ba
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/8/poster.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/9/banner-35.jpg b/mock-htpc/sonarr/MediaCover/9/banner-35.jpg
new file mode 100644
index 0000000..b64c1c5
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/9/banner-35.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/9/banner-70.jpg b/mock-htpc/sonarr/MediaCover/9/banner-70.jpg
new file mode 100644
index 0000000..a8961a7
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/9/banner-70.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/9/banner.jpg b/mock-htpc/sonarr/MediaCover/9/banner.jpg
new file mode 100644
index 0000000..cb14d40
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/9/banner.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/9/clearlogo.png b/mock-htpc/sonarr/MediaCover/9/clearlogo.png
new file mode 100644
index 0000000..1fee998
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/9/clearlogo.png differ
diff --git a/mock-htpc/sonarr/MediaCover/9/fanart-180.jpg b/mock-htpc/sonarr/MediaCover/9/fanart-180.jpg
new file mode 100644
index 0000000..c6a53e1
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/9/fanart-180.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/9/fanart-360.jpg b/mock-htpc/sonarr/MediaCover/9/fanart-360.jpg
new file mode 100644
index 0000000..1a32ced
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/9/fanart-360.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/9/fanart.jpg b/mock-htpc/sonarr/MediaCover/9/fanart.jpg
new file mode 100644
index 0000000..c36c590
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/9/fanart.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/9/poster-250.jpg b/mock-htpc/sonarr/MediaCover/9/poster-250.jpg
new file mode 100644
index 0000000..6a79a2c
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/9/poster-250.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/9/poster-500.jpg b/mock-htpc/sonarr/MediaCover/9/poster-500.jpg
new file mode 100644
index 0000000..928126d
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/9/poster-500.jpg differ
diff --git a/mock-htpc/sonarr/MediaCover/9/poster.jpg b/mock-htpc/sonarr/MediaCover/9/poster.jpg
new file mode 100644
index 0000000..2f0f2a0
Binary files /dev/null and b/mock-htpc/sonarr/MediaCover/9/poster.jpg differ
diff --git a/mock-htpc/sonarr/Sentry/07ADDC43B5669C4F6DB64F2EF2B23B3FEEDFE865/.installation b/mock-htpc/sonarr/Sentry/07ADDC43B5669C4F6DB64F2EF2B23B3FEEDFE865/.installation
new file mode 100644
index 0000000..87d4ec9
--- /dev/null
+++ b/mock-htpc/sonarr/Sentry/07ADDC43B5669C4F6DB64F2EF2B23B3FEEDFE865/.installation
@@ -0,0 +1 @@
+7e04c170-7a48-4386-a73a-b1de910fffc9
\ No newline at end of file
diff --git a/mock-htpc/sonarr/Sentry/07ADDC43B5669C4F6DB64F2EF2B23B3FEEDFE865/.session b/mock-htpc/sonarr/Sentry/07ADDC43B5669C4F6DB64F2EF2B23B3FEEDFE865/.session
new file mode 100644
index 0000000..817ad35
--- /dev/null
+++ b/mock-htpc/sonarr/Sentry/07ADDC43B5669C4F6DB64F2EF2B23B3FEEDFE865/.session
@@ -0,0 +1 @@
+{"update":{"sid":"c9dc203f813d4f879d525e7f74af373d","did":"7e04c170-7a48-4386-a73a-b1de910fffc9","init":true,"started":"2024-12-14T02:35:58.245489+00:00","timestamp":"2024-12-14T02:35:58.245678+00:00","seq":0,"duration":0,"errors":0,"attrs":{"release":"4.0.11.2680-main","environment":"main"}}}
\ No newline at end of file
diff --git a/mock-htpc/sonarr/asp/key-f8f606df-d80c-42d4-b766-043008eca8ce.xml b/mock-htpc/sonarr/asp/key-f8f606df-d80c-42d4-b766-043008eca8ce.xml
new file mode 100644
index 0000000..c7548b3
--- /dev/null
+++ b/mock-htpc/sonarr/asp/key-f8f606df-d80c-42d4-b766-043008eca8ce.xml
@@ -0,0 +1,16 @@
+
+
+ 2024-12-14T01:14:11.7529998Z
+ 2024-12-14T01:14:11.7504364Z
+ 2025-03-14T01:14:11.7504364Z
+
+
+
+
+
+
+ HVQNTkT+Uzc/UjtRQVzxD/578fMOUhucmp8T0didXEgOfJobKSW4vEaNCOjjd2rXroZ67g3itf6MGniHzQxqMQ==
+
+
+
+
\ No newline at end of file
diff --git a/mock-htpc/sonarr/config.xml b/mock-htpc/sonarr/config.xml
new file mode 100644
index 0000000..c5362c9
--- /dev/null
+++ b/mock-htpc/sonarr/config.xml
@@ -0,0 +1,17 @@
+
+ *
+ 8989
+ 9898
+ False
+ True
+ 08717304eb94465f81c5129bb46cc2f9
+ Basic
+ DisabledForLocalAddresses
+ main
+ debug
+
+
+
+ Sonarr
+ Docker
+
\ No newline at end of file
diff --git a/mock-htpc/sonarr/logs.db b/mock-htpc/sonarr/logs.db
new file mode 100644
index 0000000..b28197f
Binary files /dev/null and b/mock-htpc/sonarr/logs.db differ
diff --git a/mock-htpc/sonarr/logs.db-shm b/mock-htpc/sonarr/logs.db-shm
new file mode 100644
index 0000000..5801f66
Binary files /dev/null and b/mock-htpc/sonarr/logs.db-shm differ
diff --git a/mock-htpc/sonarr/logs.db-wal b/mock-htpc/sonarr/logs.db-wal
new file mode 100644
index 0000000..344be7f
Binary files /dev/null and b/mock-htpc/sonarr/logs.db-wal differ
diff --git a/mock-htpc/sonarr/logs/sonarr.0.txt b/mock-htpc/sonarr/logs/sonarr.0.txt
new file mode 100644
index 0000000..0552e6e
--- /dev/null
+++ b/mock-htpc/sonarr/logs/sonarr.0.txt
@@ -0,0 +1,8212 @@
+2024-12-14 01:14:11.4|Info|Bootstrap|Starting Sonarr - /app/sonarr/bin/Sonarr - Version 4.0.11.2680
+2024-12-14 01:14:11.4|Info|AppFolderInfo|Data directory is being overridden to [/config]
+2024-12-14 01:14:11.5|Info|AppFolderInfo|Data directory is being overridden to [/config]
+2024-12-14 01:14:11.7|Info|AppFolderInfo|Data directory is being overridden to [/config]
+2024-12-14 01:14:11.7|Warn|Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager|No XML encryptor configured. Key {f8f606df-d80c-42d4-b766-043008eca8ce} may be persisted to storage in unencrypted form.
+2024-12-14 01:14:11.8|Info|MigrationController|*** Migrating data source=/config/sonarr.db;cache size=-20000;datetimekind=Utc;journal mode=Wal;pooling=True;version=3;busytimeout=100 ***
+2024-12-14 01:14:11.9|Info|FluentMigrator.Runner.MigrationRunner|DatabaseEngineVersionCheck migrating
+2024-12-14 01:14:11.9|Info|FluentMigrator.Runner.MigrationRunner|PerformDBOperation
+2024-12-14 01:14:11.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Performing DB Operation
+2024-12-14 01:14:12.0|Info|DatabaseEngineVersionCheck|SQLite 3.45.3
+2024-12-14 01:14:12.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0484499s
+2024-12-14 01:14:12.0|Info|FluentMigrator.Runner.MigrationRunner|DatabaseEngineVersionCheck migrated
+2024-12-14 01:14:12.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0498474s
+2024-12-14 01:14:12.0|Info|FluentMigrator.Runner.MigrationRunner|VersionMigration migrating
+2024-12-14 01:14:12.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:12.0|Info|FluentMigrator.Runner.MigrationRunner|CreateTable VersionInfo
+2024-12-14 01:14:12.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "VersionInfo" ("Version" INTEGER NOT NULL)
+2024-12-14 01:14:12.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0199272s
+2024-12-14 01:14:12.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:12.0|Info|FluentMigrator.Runner.MigrationRunner|VersionMigration migrated
+2024-12-14 01:14:12.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0403131s
+2024-12-14 01:14:12.0|Info|FluentMigrator.Runner.MigrationRunner|VersionUniqueMigration migrating
+2024-12-14 01:14:12.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:12.0|Info|FluentMigrator.Runner.MigrationRunner|CreateIndex VersionInfo (Version)
+2024-12-14 01:14:12.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "UC_Version" ON "VersionInfo" ("Version" ASC)
+2024-12-14 01:14:12.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.001315s
+2024-12-14 01:14:12.0|Info|FluentMigrator.Runner.MigrationRunner|AlterTable VersionInfo
+2024-12-14 01:14:12.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001348s
+2024-12-14 01:14:12.0|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn VersionInfo AppliedOn DateTime
+2024-12-14 01:14:12.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "VersionInfo" ADD COLUMN "AppliedOn" DATETIME
+2024-12-14 01:14:12.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0009298s
+2024-12-14 01:14:12.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:12.0|Info|FluentMigrator.Runner.MigrationRunner|VersionUniqueMigration migrated
+2024-12-14 01:14:12.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0072658s
+2024-12-14 01:14:12.0|Info|FluentMigrator.Runner.MigrationRunner|VersionDescriptionMigration migrating
+2024-12-14 01:14:12.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:12.0|Info|FluentMigrator.Runner.MigrationRunner|AlterTable VersionInfo
+2024-12-14 01:14:12.0|Info|FluentMigrator.Runner.MigrationRunner|=> 1.14E-05s
+2024-12-14 01:14:12.0|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn VersionInfo Description String
+2024-12-14 01:14:12.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "VersionInfo" ADD COLUMN "Description" TEXT
+2024-12-14 01:14:12.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0003275s
+2024-12-14 01:14:12.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|VersionDescriptionMigration migrated
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0118928s
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|1: InitialSetup migrating
+2024-12-14 01:14:12.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:12.1|Info|InitialSetup|Starting migration of Main DB to 1
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|CreateTable Config
+2024-12-14 01:14:12.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "Config" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "Key" TEXT NOT NULL, "Value" TEXT NOT NULL)
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0003454s
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|CreateIndex Config (Key)
+2024-12-14 01:14:12.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_Config_Key" ON "Config" ("Key" ASC)
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001746s
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|CreateTable RootFolders
+2024-12-14 01:14:12.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "RootFolders" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "Path" TEXT NOT NULL)
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.000184s
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|CreateIndex RootFolders (Path)
+2024-12-14 01:14:12.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_RootFolders_Path" ON "RootFolders" ("Path" ASC)
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001624s
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|CreateTable Series
+2024-12-14 01:14:12.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "Series" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "TvdbId" INTEGER NOT NULL, "TvRageId" INTEGER NOT NULL, "ImdbId" TEXT NOT NULL, "Title" TEXT NOT NULL, "TitleSlug" TEXT NOT NULL, "CleanTitle" TEXT NOT NULL, "Status" INTEGER NOT NULL, "Overview" TEXT, "AirTime" TEXT, "Images" TEXT NOT NULL, "Path" TEXT NOT NULL, "Monitored" INTEGER NOT NULL, "QualityProfileId" INTEGER NOT NULL, "SeasonFolder" INTEGER NOT NULL, "LastInfoSync" DATETIME, "LastDiskSync" DATETIME, "Runtime" INTEGER NOT NULL, "SeriesType" INTEGER NOT NULL, "BacklogSetting" INTEGER NOT NULL, "Network" TEXT, "CustomStartDate" DATETIME, "UseSceneNumbering" INTEGER NOT NULL, "FirstAired" DATETIME, "NextAiring" DATETIME)
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0004737s
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|CreateIndex Series (TvdbId)
+2024-12-14 01:14:12.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_Series_TvdbId" ON "Series" ("TvdbId" ASC)
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001543s
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|CreateIndex Series (TvRageId)
+2024-12-14 01:14:12.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_Series_TvRageId" ON "Series" ("TvRageId" ASC)
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001557s
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|CreateIndex Series (ImdbId)
+2024-12-14 01:14:12.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_Series_ImdbId" ON "Series" ("ImdbId" ASC)
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001502s
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|CreateIndex Series (TitleSlug)
+2024-12-14 01:14:12.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_Series_TitleSlug" ON "Series" ("TitleSlug" ASC)
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001521s
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|CreateTable Seasons
+2024-12-14 01:14:12.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "Seasons" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "SeriesId" INTEGER NOT NULL, "SeasonNumber" INTEGER NOT NULL, "Ignored" INTEGER NOT NULL)
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0002225s
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|CreateTable Episodes
+2024-12-14 01:14:12.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "Episodes" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "TvDbEpisodeId" INTEGER NOT NULL, "SeriesId" INTEGER NOT NULL, "SeasonNumber" INTEGER NOT NULL, "EpisodeNumber" INTEGER NOT NULL, "Title" TEXT, "Overview" TEXT, "Ignored" INTEGER, "EpisodeFileId" INTEGER, "AirDate" DATETIME, "AbsoluteEpisodeNumber" INTEGER, "SceneAbsoluteEpisodeNumber" INTEGER, "SceneSeasonNumber" INTEGER, "SceneEpisodeNumber" INTEGER)
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0003353s
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|CreateIndex Episodes (TvDbEpisodeId)
+2024-12-14 01:14:12.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_Episodes_TvDbEpisodeId" ON "Episodes" ("TvDbEpisodeId" ASC)
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.000162s
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|CreateTable EpisodeFiles
+2024-12-14 01:14:12.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "EpisodeFiles" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "SeriesId" INTEGER NOT NULL, "Path" TEXT NOT NULL, "Quality" TEXT NOT NULL, "Size" INTEGER NOT NULL, "DateAdded" DATETIME NOT NULL, "SeasonNumber" INTEGER NOT NULL, "SceneName" TEXT, "ReleaseGroup" TEXT)
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0002956s
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|CreateIndex EpisodeFiles (Path)
+2024-12-14 01:14:12.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_EpisodeFiles_Path" ON "EpisodeFiles" ("Path" ASC)
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001705s
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|CreateTable History
+2024-12-14 01:14:12.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "History" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "EpisodeId" INTEGER NOT NULL, "SeriesId" INTEGER NOT NULL, "NzbTitle" TEXT NOT NULL, "Date" DATETIME NOT NULL, "Quality" TEXT NOT NULL, "Indexer" TEXT NOT NULL, "NzbInfoUrl" TEXT, "ReleaseGroup" TEXT)
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0002878s
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|CreateTable Notifications
+2024-12-14 01:14:12.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "Notifications" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "Name" TEXT NOT NULL, "OnGrab" INTEGER NOT NULL, "OnDownload" INTEGER NOT NULL, "Settings" TEXT NOT NULL, "Implementation" TEXT NOT NULL)
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.004538s
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|CreateTable ScheduledTasks
+2024-12-14 01:14:12.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "ScheduledTasks" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "TypeName" TEXT NOT NULL, "Interval" INTEGER NOT NULL, "LastExecution" DATETIME NOT NULL)
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0002447s
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|CreateIndex ScheduledTasks (TypeName)
+2024-12-14 01:14:12.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_ScheduledTasks_TypeName" ON "ScheduledTasks" ("TypeName" ASC)
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001687s
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|CreateTable Indexers
+2024-12-14 01:14:12.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "Indexers" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "Enable" INTEGER NOT NULL, "Name" TEXT NOT NULL, "Implementation" TEXT NOT NULL, "Settings" TEXT)
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0002158s
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|CreateIndex Indexers (Name)
+2024-12-14 01:14:12.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_Indexers_Name" ON "Indexers" ("Name" ASC)
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001724s
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|CreateTable QualityProfiles
+2024-12-14 01:14:12.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "QualityProfiles" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "Name" TEXT NOT NULL, "Cutoff" INTEGER NOT NULL, "Allowed" TEXT NOT NULL)
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0002078s
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|CreateIndex QualityProfiles (Name)
+2024-12-14 01:14:12.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_QualityProfiles_Name" ON "QualityProfiles" ("Name" ASC)
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001488s
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|CreateTable QualitySizes
+2024-12-14 01:14:12.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "QualitySizes" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "QualityId" INTEGER NOT NULL, "Name" TEXT NOT NULL, "MinSize" INTEGER NOT NULL, "MaxSize" INTEGER NOT NULL)
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.000228s
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|CreateIndex QualitySizes (QualityId)
+2024-12-14 01:14:12.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_QualitySizes_QualityId" ON "QualitySizes" ("QualityId" ASC)
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.000165s
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|CreateIndex QualitySizes (Name)
+2024-12-14 01:14:12.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_QualitySizes_Name" ON "QualitySizes" ("Name" ASC)
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.000152s
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|CreateTable SceneMappings
+2024-12-14 01:14:12.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "SceneMappings" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "CleanTitle" TEXT NOT NULL, "SceneName" TEXT NOT NULL, "TvdbId" INTEGER NOT NULL, "SeasonNumber" INTEGER NOT NULL)
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0002417s
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|CreateTable NamingConfig
+2024-12-14 01:14:12.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "NamingConfig" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "UseSceneName" INTEGER NOT NULL, "Separator" TEXT NOT NULL, "NumberStyle" INTEGER NOT NULL, "IncludeSeriesTitle" INTEGER NOT NULL, "MultiEpisodeStyle" INTEGER NOT NULL, "IncludeEpisodeTitle" INTEGER NOT NULL, "IncludeQuality" INTEGER NOT NULL, "ReplaceSpaces" INTEGER NOT NULL, "SeasonFolderFormat" TEXT NOT NULL)
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0003016s
+2024-12-14 01:14:12.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (1, '2024-12-14T01:14:12', 'InitialSetup')
+2024-12-14 01:14:12.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|1: InitialSetup migrated
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0101501s
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|2: remove_tvrage_imdb_unique_constraint migrating
+2024-12-14 01:14:12.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:12.1|Info|remove_tvrage_imdb_unique_constraint|Starting migration of Main DB to 2
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|DeleteIndex Series (TvRageId)
+2024-12-14 01:14:12.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP INDEX "IX_Series_TvRageId"
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0004173s
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|DeleteIndex Series (ImdbId)
+2024-12-14 01:14:12.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP INDEX "IX_Series_ImdbId"
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001947s
+2024-12-14 01:14:12.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (2, '2024-12-14T01:14:12', 'remove_tvrage_imdb_unique_constraint')
+2024-12-14 01:14:12.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|2: remove_tvrage_imdb_unique_constraint migrated
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.006664s
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|3: remove_renamed_scene_mapping_columns migrating
+2024-12-14 01:14:12.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:12.1|Info|remove_renamed_scene_mapping_columns|Starting migration of Main DB to 3
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|DeleteTable SceneMappings
+2024-12-14 01:14:12.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP TABLE "SceneMappings"
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.00034s
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|CreateTable SceneMappings
+2024-12-14 01:14:12.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "SceneMappings" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "TvdbId" INTEGER NOT NULL, "SeasonNumber" INTEGER NOT NULL, "SearchTerm" TEXT NOT NULL, "ParseTerm" TEXT NOT NULL)
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0002394s
+2024-12-14 01:14:12.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (3, '2024-12-14T01:14:12', 'remove_renamed_scene_mapping_columns')
+2024-12-14 01:14:12.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|3: remove_renamed_scene_mapping_columns migrated
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0065703s
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|4: updated_history migrating
+2024-12-14 01:14:12.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:12.1|Info|updated_history|Starting migration of Main DB to 4
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|DeleteTable History
+2024-12-14 01:14:12.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP TABLE "History"
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0002774s
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|CreateTable History
+2024-12-14 01:14:12.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "History" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "EpisodeId" INTEGER NOT NULL, "SeriesId" INTEGER NOT NULL, "SourceTitle" TEXT NOT NULL, "Date" DATETIME NOT NULL, "Quality" TEXT NOT NULL, "Data" TEXT NOT NULL)
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0002884s
+2024-12-14 01:14:12.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (4, '2024-12-14T01:14:12', 'updated_history')
+2024-12-14 01:14:12.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|4: updated_history migrated
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0066848s
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|5: added_eventtype_to_history migrating
+2024-12-14 01:14:12.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:12.1|Info|added_eventtype_to_history|Starting migration of Main DB to 5
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|AlterTable History
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|=> 6E-07s
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn History EventType Int32
+2024-12-14 01:14:12.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "History" ADD COLUMN "EventType" INTEGER
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0003755s
+2024-12-14 01:14:12.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (5, '2024-12-14T01:14:12', 'added_eventtype_to_history')
+2024-12-14 01:14:12.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|5: added_eventtype_to_history migrated
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0067553s
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|6: add_index_to_log_time migrating
+2024-12-14 01:14:12.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:12.1|Info|add_index_to_log_time|Starting migration of Main DB to 6
+2024-12-14 01:14:12.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (6, '2024-12-14T01:14:12', 'add_index_to_log_time')
+2024-12-14 01:14:12.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|6: add_index_to_log_time migrated
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0065083s
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|7: add_renameEpisodes_to_naming migrating
+2024-12-14 01:14:12.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:12.1|Info|add_renameEpisodes_to_naming|Starting migration of Main DB to 7
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|AlterTable NamingConfig
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|=> 4E-07s
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn NamingConfig RenameEpisodes Boolean
+2024-12-14 01:14:12.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "NamingConfig" ADD COLUMN "RenameEpisodes" INTEGER
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0002956s
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|ExecuteSqlStatement UPDATE "NamingConfig" SET "RenameEpisodes" = NOT "UseSceneName"
+2024-12-14 01:14:12.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|UPDATE "NamingConfig" SET "RenameEpisodes" = NOT "UseSceneName"
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.00029s
+2024-12-14 01:14:12.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (7, '2024-12-14T01:14:12', 'add_renameEpisodes_to_naming')
+2024-12-14 01:14:12.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|7: add_renameEpisodes_to_naming migrated
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0066752s
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|8: remove_backlog migrating
+2024-12-14 01:14:12.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:12.1|Info|remove_backlog|Starting migration of Main DB to 8
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|DeleteColumn Series BacklogSetting
+2024-12-14 01:14:12.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "Series_temp" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "TvdbId" INTEGER NOT NULL, "TvRageId" INTEGER NOT NULL, "ImdbId" TEXT NOT NULL, "Title" TEXT NOT NULL, "TitleSlug" TEXT NOT NULL, "CleanTitle" TEXT NOT NULL, "Status" INTEGER NOT NULL, "Overview" TEXT, "AirTime" TEXT, "Images" TEXT NOT NULL, "Path" TEXT NOT NULL, "Monitored" INTEGER NOT NULL, "QualityProfileId" INTEGER NOT NULL, "SeasonFolder" INTEGER NOT NULL, "LastInfoSync" DATETIME, "LastDiskSync" DATETIME, "Runtime" INTEGER NOT NULL, "SeriesType" INTEGER NOT NULL, "Network" TEXT, "CustomStartDate" DATETIME, "UseSceneNumbering" INTEGER NOT NULL, "FirstAired" DATETIME, "NextAiring" DATETIME)
+2024-12-14 01:14:12.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "Series_temp" ("Id", "TvdbId", "TvRageId", "ImdbId", "Title", "TitleSlug", "CleanTitle", "Status", "Overview", "AirTime", "Images", "Path", "Monitored", "QualityProfileId", "SeasonFolder", "LastInfoSync", "LastDiskSync", "Runtime", "SeriesType", "Network", "CustomStartDate", "UseSceneNumbering", "FirstAired", "NextAiring") SELECT "Id", "TvdbId", "TvRageId", "ImdbId", "Title", "TitleSlug", "CleanTitle", "Status", "Overview", "AirTime", "Images", "Path", "Monitored", "QualityProfileId", "SeasonFolder", "LastInfoSync", "LastDiskSync", "Runtime", "SeriesType", "Network", "CustomStartDate", "UseSceneNumbering", "FirstAired", "NextAiring" FROM "Series"
+2024-12-14 01:14:12.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP TABLE "Series"
+2024-12-14 01:14:12.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Series_temp" RENAME TO "Series"
+2024-12-14 01:14:12.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_Series_TvdbId" ON "Series" ("TvdbId" ASC)
+2024-12-14 01:14:12.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_Series_TitleSlug" ON "Series" ("TitleSlug" ASC)
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0133433s
+2024-12-14 01:14:12.1|Info|FluentMigrator.Runner.MigrationRunner|DeleteColumn NamingConfig UseSceneName
+2024-12-14 01:14:12.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "NamingConfig_temp" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "Separator" TEXT NOT NULL, "NumberStyle" INTEGER NOT NULL, "IncludeSeriesTitle" INTEGER NOT NULL, "MultiEpisodeStyle" INTEGER NOT NULL, "IncludeEpisodeTitle" INTEGER NOT NULL, "IncludeQuality" INTEGER NOT NULL, "ReplaceSpaces" INTEGER NOT NULL, "SeasonFolderFormat" TEXT NOT NULL, "RenameEpisodes" INTEGER)
+2024-12-14 01:14:12.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "NamingConfig_temp" ("Id", "Separator", "NumberStyle", "IncludeSeriesTitle", "MultiEpisodeStyle", "IncludeEpisodeTitle", "IncludeQuality", "ReplaceSpaces", "SeasonFolderFormat", "RenameEpisodes") SELECT "Id", "Separator", "NumberStyle", "IncludeSeriesTitle", "MultiEpisodeStyle", "IncludeEpisodeTitle", "IncludeQuality", "ReplaceSpaces", "SeasonFolderFormat", "RenameEpisodes" FROM "NamingConfig"
+2024-12-14 01:14:12.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP TABLE "NamingConfig"
+2024-12-14 01:14:12.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "NamingConfig_temp" RENAME TO "NamingConfig"
+2024-12-14 01:14:12.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0020143s
+2024-12-14 01:14:12.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (8, '2024-12-14T01:14:12', 'remove_backlog')
+2024-12-14 01:14:12.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:12.2|Info|FluentMigrator.Runner.MigrationRunner|8: remove_backlog migrated
+2024-12-14 01:14:12.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0085387s
+2024-12-14 01:14:12.2|Info|FluentMigrator.Runner.MigrationRunner|9: fix_rename_episodes migrating
+2024-12-14 01:14:12.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:12.2|Info|fix_rename_episodes|Starting migration of Main DB to 9
+2024-12-14 01:14:12.2|Info|FluentMigrator.Runner.MigrationRunner|DeleteColumn NamingConfig SeasonFolderFormat
+2024-12-14 01:14:12.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "NamingConfig_temp" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "Separator" TEXT NOT NULL, "NumberStyle" INTEGER NOT NULL, "IncludeSeriesTitle" INTEGER NOT NULL, "MultiEpisodeStyle" INTEGER NOT NULL, "IncludeEpisodeTitle" INTEGER NOT NULL, "IncludeQuality" INTEGER NOT NULL, "ReplaceSpaces" INTEGER NOT NULL, "RenameEpisodes" INTEGER)
+2024-12-14 01:14:12.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "NamingConfig_temp" ("Id", "Separator", "NumberStyle", "IncludeSeriesTitle", "MultiEpisodeStyle", "IncludeEpisodeTitle", "IncludeQuality", "ReplaceSpaces", "RenameEpisodes") SELECT "Id", "Separator", "NumberStyle", "IncludeSeriesTitle", "MultiEpisodeStyle", "IncludeEpisodeTitle", "IncludeQuality", "ReplaceSpaces", "RenameEpisodes" FROM "NamingConfig"
+2024-12-14 01:14:12.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP TABLE "NamingConfig"
+2024-12-14 01:14:12.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "NamingConfig_temp" RENAME TO "NamingConfig"
+2024-12-14 01:14:12.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0019649s
+2024-12-14 01:14:12.2|Info|FluentMigrator.Runner.MigrationRunner|UpdateData
+2024-12-14 01:14:12.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|UPDATE "NamingConfig" SET "RenameEpisodes" = 1 WHERE "RenameEpisodes" = -1
+2024-12-14 01:14:12.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0015s
+2024-12-14 01:14:12.2|Info|FluentMigrator.Runner.MigrationRunner|UpdateData
+2024-12-14 01:14:12.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|UPDATE "NamingConfig" SET "RenameEpisodes" = 0 WHERE "RenameEpisodes" = -2
+2024-12-14 01:14:12.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001356s
+2024-12-14 01:14:12.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (9, '2024-12-14T01:14:12', 'fix_rename_episodes')
+2024-12-14 01:14:12.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:12.2|Info|FluentMigrator.Runner.MigrationRunner|9: fix_rename_episodes migrated
+2024-12-14 01:14:12.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0067331s
+2024-12-14 01:14:12.2|Info|FluentMigrator.Runner.MigrationRunner|10: add_monitored migrating
+2024-12-14 01:14:12.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:12.2|Info|add_monitored|Starting migration of Main DB to 10
+2024-12-14 01:14:12.2|Info|FluentMigrator.Runner.MigrationRunner|AlterTable Episodes
+2024-12-14 01:14:12.2|Info|FluentMigrator.Runner.MigrationRunner|=> 5E-07s
+2024-12-14 01:14:12.2|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn Episodes Monitored Boolean
+2024-12-14 01:14:12.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Episodes" ADD COLUMN "Monitored" INTEGER
+2024-12-14 01:14:12.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.00038s
+2024-12-14 01:14:12.2|Info|FluentMigrator.Runner.MigrationRunner|AlterTable Seasons
+2024-12-14 01:14:12.2|Info|FluentMigrator.Runner.MigrationRunner|=> 4E-07s
+2024-12-14 01:14:12.2|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn Seasons Monitored Boolean
+2024-12-14 01:14:12.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Seasons" ADD COLUMN "Monitored" INTEGER
+2024-12-14 01:14:12.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0002951s
+2024-12-14 01:14:12.2|Info|FluentMigrator.Runner.MigrationRunner|UpdateData
+2024-12-14 01:14:12.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|UPDATE "Episodes" SET "Monitored" = 1 WHERE "Ignored" = 0
+2024-12-14 01:14:12.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0002054s
+2024-12-14 01:14:12.2|Info|FluentMigrator.Runner.MigrationRunner|UpdateData
+2024-12-14 01:14:12.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|UPDATE "Episodes" SET "Monitored" = 0 WHERE "Ignored" = 1
+2024-12-14 01:14:12.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001281s
+2024-12-14 01:14:12.2|Info|FluentMigrator.Runner.MigrationRunner|UpdateData
+2024-12-14 01:14:12.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|UPDATE "Seasons" SET "Monitored" = 1 WHERE "Ignored" = 0
+2024-12-14 01:14:12.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001263s
+2024-12-14 01:14:12.2|Info|FluentMigrator.Runner.MigrationRunner|UpdateData
+2024-12-14 01:14:12.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|UPDATE "Seasons" SET "Monitored" = 0 WHERE "Ignored" = 1
+2024-12-14 01:14:12.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001244s
+2024-12-14 01:14:12.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (10, '2024-12-14T01:14:12', 'add_monitored')
+2024-12-14 01:14:12.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:12.2|Info|FluentMigrator.Runner.MigrationRunner|10: add_monitored migrated
+2024-12-14 01:14:12.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0064889s
+2024-12-14 01:14:12.2|Info|FluentMigrator.Runner.MigrationRunner|11: remove_ignored migrating
+2024-12-14 01:14:12.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:12.2|Info|remove_ignored|Starting migration of Main DB to 11
+2024-12-14 01:14:12.2|Info|FluentMigrator.Runner.MigrationRunner|DeleteColumn Seasons Ignored
+2024-12-14 01:14:12.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "Seasons_temp" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "SeriesId" INTEGER NOT NULL, "SeasonNumber" INTEGER NOT NULL, "Monitored" INTEGER)
+2024-12-14 01:14:12.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "Seasons_temp" ("Id", "SeriesId", "SeasonNumber", "Monitored") SELECT "Id", "SeriesId", "SeasonNumber", "Monitored" FROM "Seasons"
+2024-12-14 01:14:12.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP TABLE "Seasons"
+2024-12-14 01:14:12.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Seasons_temp" RENAME TO "Seasons"
+2024-12-14 01:14:12.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0021007s
+2024-12-14 01:14:12.2|Info|FluentMigrator.Runner.MigrationRunner|DeleteColumn Episodes Ignored
+2024-12-14 01:14:12.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "Episodes_temp" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "TvDbEpisodeId" INTEGER NOT NULL, "SeriesId" INTEGER NOT NULL, "SeasonNumber" INTEGER NOT NULL, "EpisodeNumber" INTEGER NOT NULL, "Title" TEXT, "Overview" TEXT, "EpisodeFileId" INTEGER, "AirDate" DATETIME, "AbsoluteEpisodeNumber" INTEGER, "SceneAbsoluteEpisodeNumber" INTEGER, "SceneSeasonNumber" INTEGER, "SceneEpisodeNumber" INTEGER, "Monitored" INTEGER)
+2024-12-14 01:14:12.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "Episodes_temp" ("Id", "TvDbEpisodeId", "SeriesId", "SeasonNumber", "EpisodeNumber", "Title", "Overview", "EpisodeFileId", "AirDate", "AbsoluteEpisodeNumber", "SceneAbsoluteEpisodeNumber", "SceneSeasonNumber", "SceneEpisodeNumber", "Monitored") SELECT "Id", "TvDbEpisodeId", "SeriesId", "SeasonNumber", "EpisodeNumber", "Title", "Overview", "EpisodeFileId", "AirDate", "AbsoluteEpisodeNumber", "SceneAbsoluteEpisodeNumber", "SceneSeasonNumber", "SceneEpisodeNumber", "Monitored" FROM "Episodes"
+2024-12-14 01:14:12.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP TABLE "Episodes"
+2024-12-14 01:14:12.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Episodes_temp" RENAME TO "Episodes"
+2024-12-14 01:14:12.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_Episodes_TvDbEpisodeId" ON "Episodes" ("TvDbEpisodeId" ASC)
+2024-12-14 01:14:12.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0027147s
+2024-12-14 01:14:12.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (11, '2024-12-14T01:14:12', 'remove_ignored')
+2024-12-14 01:14:12.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:12.2|Info|FluentMigrator.Runner.MigrationRunner|11: remove_ignored migrated
+2024-12-14 01:14:12.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0092962s
+2024-12-14 01:14:12.2|Info|FluentMigrator.Runner.MigrationRunner|12: remove_custom_start_date migrating
+2024-12-14 01:14:12.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:12.2|Info|remove_custom_start_date|Starting migration of Main DB to 12
+2024-12-14 01:14:12.2|Info|FluentMigrator.Runner.MigrationRunner|DeleteColumn Series CustomStartDate
+2024-12-14 01:14:12.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "Series_temp" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "TvdbId" INTEGER NOT NULL, "TvRageId" INTEGER NOT NULL, "ImdbId" TEXT NOT NULL, "Title" TEXT NOT NULL, "TitleSlug" TEXT NOT NULL, "CleanTitle" TEXT NOT NULL, "Status" INTEGER NOT NULL, "Overview" TEXT, "AirTime" TEXT, "Images" TEXT NOT NULL, "Path" TEXT NOT NULL, "Monitored" INTEGER NOT NULL, "QualityProfileId" INTEGER NOT NULL, "SeasonFolder" INTEGER NOT NULL, "LastInfoSync" DATETIME, "LastDiskSync" DATETIME, "Runtime" INTEGER NOT NULL, "SeriesType" INTEGER NOT NULL, "Network" TEXT, "UseSceneNumbering" INTEGER NOT NULL, "FirstAired" DATETIME, "NextAiring" DATETIME)
+2024-12-14 01:14:12.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "Series_temp" ("Id", "TvdbId", "TvRageId", "ImdbId", "Title", "TitleSlug", "CleanTitle", "Status", "Overview", "AirTime", "Images", "Path", "Monitored", "QualityProfileId", "SeasonFolder", "LastInfoSync", "LastDiskSync", "Runtime", "SeriesType", "Network", "UseSceneNumbering", "FirstAired", "NextAiring") SELECT "Id", "TvdbId", "TvRageId", "ImdbId", "Title", "TitleSlug", "CleanTitle", "Status", "Overview", "AirTime", "Images", "Path", "Monitored", "QualityProfileId", "SeasonFolder", "LastInfoSync", "LastDiskSync", "Runtime", "SeriesType", "Network", "UseSceneNumbering", "FirstAired", "NextAiring" FROM "Series"
+2024-12-14 01:14:12.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP TABLE "Series"
+2024-12-14 01:14:12.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Series_temp" RENAME TO "Series"
+2024-12-14 01:14:12.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_Series_TvdbId" ON "Series" ("TvdbId" ASC)
+2024-12-14 01:14:12.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_Series_TitleSlug" ON "Series" ("TitleSlug" ASC)
+2024-12-14 01:14:12.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0032255s
+2024-12-14 01:14:12.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (12, '2024-12-14T01:14:12', 'remove_custom_start_date')
+2024-12-14 01:14:12.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:12.2|Info|FluentMigrator.Runner.MigrationRunner|12: remove_custom_start_date migrated
+2024-12-14 01:14:12.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0097523s
+2024-12-14 01:14:12.2|Info|FluentMigrator.Runner.MigrationRunner|13: add_air_date_utc migrating
+2024-12-14 01:14:12.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:12.2|Info|add_air_date_utc|Starting migration of Main DB to 13
+2024-12-14 01:14:12.2|Info|FluentMigrator.Runner.MigrationRunner|AlterTable Episodes
+2024-12-14 01:14:12.2|Info|FluentMigrator.Runner.MigrationRunner|=> 4E-07s
+2024-12-14 01:14:12.2|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn Episodes AirDateUtc DateTime
+2024-12-14 01:14:12.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Episodes" ADD COLUMN "AirDateUtc" DATETIME
+2024-12-14 01:14:12.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.000326s
+2024-12-14 01:14:12.2|Info|FluentMigrator.Runner.MigrationRunner|ExecuteSqlStatement UPDATE "Episodes" SET "AirDateUtc" = "AirDate"
+2024-12-14 01:14:12.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|UPDATE "Episodes" SET "AirDateUtc" = "AirDate"
+2024-12-14 01:14:12.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001477s
+2024-12-14 01:14:12.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (13, '2024-12-14T01:14:12', 'add_air_date_utc')
+2024-12-14 01:14:12.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:12.2|Info|FluentMigrator.Runner.MigrationRunner|13: add_air_date_utc migrated
+2024-12-14 01:14:12.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0065994s
+2024-12-14 01:14:12.2|Info|FluentMigrator.Runner.MigrationRunner|14: drop_air_date migrating
+2024-12-14 01:14:12.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:12.2|Info|drop_air_date|Starting migration of Main DB to 14
+2024-12-14 01:14:12.2|Info|FluentMigrator.Runner.MigrationRunner|DeleteColumn Episodes AirDate
+2024-12-14 01:14:12.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "Episodes_temp" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "TvDbEpisodeId" INTEGER NOT NULL, "SeriesId" INTEGER NOT NULL, "SeasonNumber" INTEGER NOT NULL, "EpisodeNumber" INTEGER NOT NULL, "Title" TEXT, "Overview" TEXT, "EpisodeFileId" INTEGER, "AbsoluteEpisodeNumber" INTEGER, "SceneAbsoluteEpisodeNumber" INTEGER, "SceneSeasonNumber" INTEGER, "SceneEpisodeNumber" INTEGER, "Monitored" INTEGER, "AirDateUtc" DATETIME)
+2024-12-14 01:14:12.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "Episodes_temp" ("Id", "TvDbEpisodeId", "SeriesId", "SeasonNumber", "EpisodeNumber", "Title", "Overview", "EpisodeFileId", "AbsoluteEpisodeNumber", "SceneAbsoluteEpisodeNumber", "SceneSeasonNumber", "SceneEpisodeNumber", "Monitored", "AirDateUtc") SELECT "Id", "TvDbEpisodeId", "SeriesId", "SeasonNumber", "EpisodeNumber", "Title", "Overview", "EpisodeFileId", "AbsoluteEpisodeNumber", "SceneAbsoluteEpisodeNumber", "SceneSeasonNumber", "SceneEpisodeNumber", "Monitored", "AirDateUtc" FROM "Episodes"
+2024-12-14 01:14:12.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP TABLE "Episodes"
+2024-12-14 01:14:12.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Episodes_temp" RENAME TO "Episodes"
+2024-12-14 01:14:12.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_Episodes_TvDbEpisodeId" ON "Episodes" ("TvDbEpisodeId" ASC)
+2024-12-14 01:14:12.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.002917s
+2024-12-14 01:14:12.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (14, '2024-12-14T01:14:12', 'drop_air_date')
+2024-12-14 01:14:12.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:12.2|Info|FluentMigrator.Runner.MigrationRunner|14: drop_air_date migrated
+2024-12-14 01:14:12.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0093185s
+2024-12-14 01:14:12.2|Info|FluentMigrator.Runner.MigrationRunner|15: add_air_date_as_string migrating
+2024-12-14 01:14:12.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:12.2|Info|add_air_date_as_string|Starting migration of Main DB to 15
+2024-12-14 01:14:12.2|Info|FluentMigrator.Runner.MigrationRunner|AlterTable Episodes
+2024-12-14 01:14:12.2|Info|FluentMigrator.Runner.MigrationRunner|=> 5E-07s
+2024-12-14 01:14:12.2|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn Episodes AirDate String
+2024-12-14 01:14:12.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Episodes" ADD COLUMN "AirDate" TEXT
+2024-12-14 01:14:12.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0003226s
+2024-12-14 01:14:12.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (15, '2024-12-14T01:14:12', 'add_air_date_as_string')
+2024-12-14 01:14:12.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:12.2|Info|FluentMigrator.Runner.MigrationRunner|15: add_air_date_as_string migrated
+2024-12-14 01:14:12.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0071498s
+2024-12-14 01:14:12.2|Info|FluentMigrator.Runner.MigrationRunner|16: updated_imported_history_item migrating
+2024-12-14 01:14:12.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:12.2|Info|updated_imported_history_item|Starting migration of Main DB to 16
+2024-12-14 01:14:12.2|Info|FluentMigrator.Runner.MigrationRunner|ExecuteSqlStatement UPDATE "History" SET "Data" = replace( "Data", '"Path"', '"ImportedPath"' ) WHERE "EventType" = 3
+2024-12-14 01:14:12.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|UPDATE "History" SET "Data" = replace( "Data", '"Path"', '"ImportedPath"' ) WHERE "EventType" = 3
+2024-12-14 01:14:12.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001687s
+2024-12-14 01:14:12.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (16, '2024-12-14T01:14:12', 'updated_imported_history_item')
+2024-12-14 01:14:12.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:12.2|Info|FluentMigrator.Runner.MigrationRunner|16: updated_imported_history_item migrated
+2024-12-14 01:14:12.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0066503s
+2024-12-14 01:14:12.2|Info|FluentMigrator.Runner.MigrationRunner|17: reset_scene_names migrating
+2024-12-14 01:14:12.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:12.2|Info|reset_scene_names|Starting migration of Main DB to 17
+2024-12-14 01:14:12.2|Info|FluentMigrator.Runner.MigrationRunner|ExecuteSqlStatement UPDATE "EpisodeFiles" SET "SceneName" = NULL where "SceneName" != NULL
+2024-12-14 01:14:12.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|UPDATE "EpisodeFiles" SET "SceneName" = NULL where "SceneName" != NULL
+2024-12-14 01:14:12.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001848s
+2024-12-14 01:14:12.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (17, '2024-12-14T01:14:12', 'reset_scene_names')
+2024-12-14 01:14:12.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:12.2|Info|FluentMigrator.Runner.MigrationRunner|17: reset_scene_names migrated
+2024-12-14 01:14:12.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0066134s
+2024-12-14 01:14:12.2|Info|FluentMigrator.Runner.MigrationRunner|18: remove_duplicates migrating
+2024-12-14 01:14:12.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:12.2|Info|remove_duplicates|Starting migration of Main DB to 18
+2024-12-14 01:14:12.2|Info|FluentMigrator.Runner.MigrationRunner|PerformDBOperation
+2024-12-14 01:14:12.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Performing DB Operation
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0076483s
+2024-12-14 01:14:12.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (18, '2024-12-14T01:14:12', 'remove_duplicates')
+2024-12-14 01:14:12.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|18: remove_duplicates migrated
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0125658s
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|19: restore_unique_constraints migrating
+2024-12-14 01:14:12.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:12.3|Info|restore_unique_constraints|Starting migration of Main DB to 19
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|ExecuteSqlStatement DROP INDEX IF EXISTS "IX_Series_TvdbId"
+2024-12-14 01:14:12.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP INDEX IF EXISTS "IX_Series_TvdbId"
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0002607s
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|ExecuteSqlStatement DROP INDEX IF EXISTS "IX_Series_TitleSlug"
+2024-12-14 01:14:12.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP INDEX IF EXISTS "IX_Series_TitleSlug"
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0002027s
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|ExecuteSqlStatement DROP INDEX IF EXISTS "IX_Episodes_TvDbEpisodeId"
+2024-12-14 01:14:12.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP INDEX IF EXISTS "IX_Episodes_TvDbEpisodeId"
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001928s
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|CreateIndex Series (TvdbId)
+2024-12-14 01:14:12.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_Series_TvdbId" ON "Series" ("TvdbId" ASC)
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.000184s
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|CreateIndex Series (TitleSlug)
+2024-12-14 01:14:12.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_Series_TitleSlug" ON "Series" ("TitleSlug" ASC)
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001677s
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|CreateIndex Episodes (TvDbEpisodeId)
+2024-12-14 01:14:12.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_Episodes_TvDbEpisodeId" ON "Episodes" ("TvDbEpisodeId" ASC)
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001801s
+2024-12-14 01:14:12.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (19, '2024-12-14T01:14:12', 'restore_unique_constraints')
+2024-12-14 01:14:12.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|19: restore_unique_constraints migrated
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0066901s
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|20: add_year_and_seasons_to_series migrating
+2024-12-14 01:14:12.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:12.3|Info|add_year_and_seasons_to_series|Starting migration of Main DB to 20
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|AlterTable Series
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|=> 4E-07s
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn Series Year Int32
+2024-12-14 01:14:12.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Series" ADD COLUMN "Year" INTEGER
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0003669s
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|AlterTable Series
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|=> 5E-07s
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn Series Seasons String
+2024-12-14 01:14:12.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Series" ADD COLUMN "Seasons" TEXT
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0003406s
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|PerformDBOperation
+2024-12-14 01:14:12.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Performing DB Operation
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0028675s
+2024-12-14 01:14:12.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (20, '2024-12-14T01:14:12', 'add_year_and_seasons_to_series')
+2024-12-14 01:14:12.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|20: add_year_and_seasons_to_series migrated
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0093719s
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|21: drop_seasons_table migrating
+2024-12-14 01:14:12.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:12.3|Info|drop_seasons_table|Starting migration of Main DB to 21
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|DeleteTable Seasons
+2024-12-14 01:14:12.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP TABLE "Seasons"
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.000234s
+2024-12-14 01:14:12.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (21, '2024-12-14T01:14:12', 'drop_seasons_table')
+2024-12-14 01:14:12.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|21: drop_seasons_table migrated
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0066475s
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|22: move_indexer_to_generic_provider migrating
+2024-12-14 01:14:12.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:12.3|Info|move_indexer_to_generic_provider|Starting migration of Main DB to 22
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|AlterTable Indexers
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|=> 4E-07s
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn Indexers ConfigContract String
+2024-12-14 01:14:12.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Indexers" ADD COLUMN "ConfigContract" TEXT
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0003261s
+2024-12-14 01:14:12.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (22, '2024-12-14T01:14:12', 'move_indexer_to_generic_provider')
+2024-12-14 01:14:12.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|22: move_indexer_to_generic_provider migrated
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0068134s
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|23: add_config_contract_to_indexers migrating
+2024-12-14 01:14:12.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:12.3|Info|add_config_contract_to_indexers|Starting migration of Main DB to 23
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|UpdateData
+2024-12-14 01:14:12.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|UPDATE "Indexers" SET "ConfigContract" = 'NewznabSettings' WHERE "Implementation" = 'Newznab'
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001723s
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|UpdateData
+2024-12-14 01:14:12.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|UPDATE "Indexers" SET "ConfigContract" = 'OmgwtfnzbsSettings' WHERE "Implementation" = 'Omgwtfnzbs'
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001845s
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|UpdateData
+2024-12-14 01:14:12.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|UPDATE "Indexers" SET "ConfigContract" = 'NullConfig' WHERE "Implementation" = 'Wombles'
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001838s
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|UpdateData
+2024-12-14 01:14:12.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|UPDATE "Indexers" SET "ConfigContract" = 'NullConfig' WHERE "Implementation" = 'Eztv'
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001389s
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|FluentMigrator.Expressions.DeleteDataExpression
+2024-12-14 01:14:12.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DELETE FROM "Indexers" WHERE "ConfigContract" IS NULL
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0018062s
+2024-12-14 01:14:12.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (23, '2024-12-14T01:14:12', 'add_config_contract_to_indexers')
+2024-12-14 01:14:12.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|23: add_config_contract_to_indexers migrated
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0081438s
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|24: drop_tvdb_episodeid migrating
+2024-12-14 01:14:12.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:12.3|Info|drop_tvdb_episodeid|Starting migration of Main DB to 24
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|DeleteColumn Episodes TvDbEpisodeId
+2024-12-14 01:14:12.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "Episodes_temp" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "SeriesId" INTEGER NOT NULL, "SeasonNumber" INTEGER NOT NULL, "EpisodeNumber" INTEGER NOT NULL, "Title" TEXT, "Overview" TEXT, "EpisodeFileId" INTEGER, "AbsoluteEpisodeNumber" INTEGER, "SceneAbsoluteEpisodeNumber" INTEGER, "SceneSeasonNumber" INTEGER, "SceneEpisodeNumber" INTEGER, "Monitored" INTEGER, "AirDateUtc" DATETIME, "AirDate" TEXT)
+2024-12-14 01:14:12.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "Episodes_temp" ("Id", "SeriesId", "SeasonNumber", "EpisodeNumber", "Title", "Overview", "EpisodeFileId", "AbsoluteEpisodeNumber", "SceneAbsoluteEpisodeNumber", "SceneSeasonNumber", "SceneEpisodeNumber", "Monitored", "AirDateUtc", "AirDate") SELECT "Id", "SeriesId", "SeasonNumber", "EpisodeNumber", "Title", "Overview", "EpisodeFileId", "AbsoluteEpisodeNumber", "SceneAbsoluteEpisodeNumber", "SceneSeasonNumber", "SceneEpisodeNumber", "Monitored", "AirDateUtc", "AirDate" FROM "Episodes"
+2024-12-14 01:14:12.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP TABLE "Episodes"
+2024-12-14 01:14:12.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Episodes_temp" RENAME TO "Episodes"
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0024449s
+2024-12-14 01:14:12.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (24, '2024-12-14T01:14:12', 'drop_tvdb_episodeid')
+2024-12-14 01:14:12.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|24: drop_tvdb_episodeid migrated
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0088584s
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|25: move_notification_to_generic_provider migrating
+2024-12-14 01:14:12.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:12.3|Info|move_notification_to_generic_provider|Starting migration of Main DB to 25
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|AlterTable Notifications
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|=> 4E-07s
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn Notifications ConfigContract String
+2024-12-14 01:14:12.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Notifications" ADD COLUMN "ConfigContract" TEXT
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0002824s
+2024-12-14 01:14:12.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (25, '2024-12-14T01:14:12', 'move_notification_to_generic_provider')
+2024-12-14 01:14:12.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|25: move_notification_to_generic_provider migrated
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0126905s
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|26: add_config_contract_to_notifications migrating
+2024-12-14 01:14:12.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:12.3|Info|add_config_contract_to_notifications|Starting migration of Main DB to 26
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|UpdateData
+2024-12-14 01:14:12.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|UPDATE "Notifications" SET "ConfigContract" = 'EmailSettings' WHERE "Implementation" = 'Email'
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001554s
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|UpdateData
+2024-12-14 01:14:12.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|UPDATE "Notifications" SET "ConfigContract" = 'GrowlSettings' WHERE "Implementation" = 'Growl'
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001512s
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|UpdateData
+2024-12-14 01:14:12.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|UPDATE "Notifications" SET "ConfigContract" = 'NotifyMyAndroidSettings' WHERE "Implementation" = 'NotifyMyAndroid'
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001487s
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|UpdateData
+2024-12-14 01:14:12.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|UPDATE "Notifications" SET "ConfigContract" = 'PlexClientSettings' WHERE "Implementation" = 'PlexClient'
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001645s
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|UpdateData
+2024-12-14 01:14:12.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|UPDATE "Notifications" SET "ConfigContract" = 'PlexServerSettings' WHERE "Implementation" = 'PlexServer'
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001478s
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|UpdateData
+2024-12-14 01:14:12.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|UPDATE "Notifications" SET "ConfigContract" = 'ProwlSettings' WHERE "Implementation" = 'Prowl'
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001512s
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|UpdateData
+2024-12-14 01:14:12.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|UPDATE "Notifications" SET "ConfigContract" = 'PushBulletSettings' WHERE "Implementation" = 'PushBullet'
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001547s
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|UpdateData
+2024-12-14 01:14:12.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|UPDATE "Notifications" SET "ConfigContract" = 'PushoverSettings' WHERE "Implementation" = 'Pushover'
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.000153s
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|UpdateData
+2024-12-14 01:14:12.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|UPDATE "Notifications" SET "ConfigContract" = 'XbmcSettings' WHERE "Implementation" = 'Xbmc'
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001392s
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|FluentMigrator.Expressions.DeleteDataExpression
+2024-12-14 01:14:12.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DELETE FROM "Notifications" WHERE "ConfigContract" IS NULL
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001544s
+2024-12-14 01:14:12.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (26, '2024-12-14T01:14:12', 'add_config_contract_to_notifications')
+2024-12-14 01:14:12.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|26: add_config_contract_to_notifications migrated
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.008654s
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|27: fix_omgwtfnzbs migrating
+2024-12-14 01:14:12.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:12.3|Info|fix_omgwtfnzbs|Starting migration of Main DB to 27
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|UpdateData
+2024-12-14 01:14:12.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|UPDATE "Indexers" SET "ConfigContract" = 'OmgwtfnzbsSettings' WHERE "Implementation" = 'Omgwtfnzbs'
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001443s
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|UpdateData
+2024-12-14 01:14:12.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|UPDATE "Indexers" SET "Settings" = '{}' WHERE "Implementation" = 'Omgwtfnzbs' AND "Settings" IS NULL
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001525s
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|UpdateData
+2024-12-14 01:14:12.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|UPDATE "Indexers" SET "Settings" = '{}' WHERE "Implementation" = 'Omgwtfnzbs' AND "Settings" = ''
+2024-12-14 01:14:12.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001384s
+2024-12-14 01:14:12.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (27, '2024-12-14T01:14:12', 'fix_omgwtfnzbs')
+2024-12-14 01:14:12.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:12.4|Info|FluentMigrator.Runner.MigrationRunner|27: fix_omgwtfnzbs migrated
+2024-12-14 01:14:12.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0100562s
+2024-12-14 01:14:12.4|Info|FluentMigrator.Runner.MigrationRunner|28: add_blacklist_table migrating
+2024-12-14 01:14:12.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:12.4|Info|add_blacklist_table|Starting migration of Main DB to 28
+2024-12-14 01:14:12.4|Info|FluentMigrator.Runner.MigrationRunner|CreateTable Blacklist
+2024-12-14 01:14:12.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "Blacklist" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "SeriesId" INTEGER NOT NULL, "EpisodeIds" TEXT NOT NULL, "SourceTitle" TEXT NOT NULL, "Quality" TEXT NOT NULL, "Date" DATETIME NOT NULL)
+2024-12-14 01:14:12.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0002564s
+2024-12-14 01:14:12.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (28, '2024-12-14T01:14:12', 'add_blacklist_table')
+2024-12-14 01:14:12.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:12.4|Info|FluentMigrator.Runner.MigrationRunner|28: add_blacklist_table migrated
+2024-12-14 01:14:12.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.010082s
+2024-12-14 01:14:12.4|Info|FluentMigrator.Runner.MigrationRunner|29: add_formats_to_naming_config migrating
+2024-12-14 01:14:12.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:12.4|Info|add_formats_to_naming_config|Starting migration of Main DB to 29
+2024-12-14 01:14:12.4|Info|FluentMigrator.Runner.MigrationRunner|AlterTable NamingConfig
+2024-12-14 01:14:12.4|Info|FluentMigrator.Runner.MigrationRunner|=> 6E-07s
+2024-12-14 01:14:12.4|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn NamingConfig StandardEpisodeFormat String
+2024-12-14 01:14:12.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "NamingConfig" ADD COLUMN "StandardEpisodeFormat" TEXT
+2024-12-14 01:14:12.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0003222s
+2024-12-14 01:14:12.4|Info|FluentMigrator.Runner.MigrationRunner|AlterTable NamingConfig
+2024-12-14 01:14:12.4|Info|FluentMigrator.Runner.MigrationRunner|=> 7E-07s
+2024-12-14 01:14:12.4|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn NamingConfig DailyEpisodeFormat String
+2024-12-14 01:14:12.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "NamingConfig" ADD COLUMN "DailyEpisodeFormat" TEXT
+2024-12-14 01:14:12.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0003059s
+2024-12-14 01:14:12.4|Info|FluentMigrator.Runner.MigrationRunner|PerformDBOperation
+2024-12-14 01:14:12.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Performing DB Operation
+2024-12-14 01:14:12.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0040445s
+2024-12-14 01:14:12.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (29, '2024-12-14T01:14:12', 'add_formats_to_naming_config')
+2024-12-14 01:14:12.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:12.4|Info|FluentMigrator.Runner.MigrationRunner|29: add_formats_to_naming_config migrated
+2024-12-14 01:14:12.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0161097s
+2024-12-14 01:14:12.4|Info|FluentMigrator.Runner.MigrationRunner|30: add_season_folder_format_to_naming_config migrating
+2024-12-14 01:14:12.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:12.4|Info|add_season_folder_format_to_naming_config|Starting migration of Main DB to 30
+2024-12-14 01:14:12.4|Info|FluentMigrator.Runner.MigrationRunner|AlterTable NamingConfig
+2024-12-14 01:14:12.4|Info|FluentMigrator.Runner.MigrationRunner|=> 4E-07s
+2024-12-14 01:14:12.4|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn NamingConfig SeasonFolderFormat String
+2024-12-14 01:14:12.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "NamingConfig" ADD COLUMN "SeasonFolderFormat" TEXT
+2024-12-14 01:14:12.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0003177s
+2024-12-14 01:14:12.4|Info|FluentMigrator.Runner.MigrationRunner|PerformDBOperation
+2024-12-14 01:14:12.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Performing DB Operation
+2024-12-14 01:14:12.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0004996s
+2024-12-14 01:14:12.4|Info|FluentMigrator.Runner.MigrationRunner|ExecuteSqlStatement DELETE FROM "Config" WHERE "Key" = 'seasonfolderformat'
+2024-12-14 01:14:12.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DELETE FROM "Config" WHERE "Key" = 'seasonfolderformat'
+2024-12-14 01:14:12.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.000116s
+2024-12-14 01:14:12.4|Info|FluentMigrator.Runner.MigrationRunner|ExecuteSqlStatement DELETE FROM "Config" WHERE "Key" = 'useseasonfolder'
+2024-12-14 01:14:12.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DELETE FROM "Config" WHERE "Key" = 'useseasonfolder'
+2024-12-14 01:14:12.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001083s
+2024-12-14 01:14:12.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (30, '2024-12-14T01:14:12', 'add_season_folder_format_to_naming_config')
+2024-12-14 01:14:12.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:12.4|Info|FluentMigrator.Runner.MigrationRunner|30: add_season_folder_format_to_naming_config migrated
+2024-12-14 01:14:12.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0095069s
+2024-12-14 01:14:12.4|Info|FluentMigrator.Runner.MigrationRunner|31: delete_old_naming_config_columns migrating
+2024-12-14 01:14:12.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:12.4|Info|delete_old_naming_config_columns|Starting migration of Main DB to 31
+2024-12-14 01:14:12.4|Info|FluentMigrator.Runner.MigrationRunner|DeleteColumn NamingConfig Separator, NumberStyle, IncludeSeriesTitle, IncludeEpisodeTitle, IncludeQuality, ReplaceSpaces
+2024-12-14 01:14:12.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "NamingConfig_temp" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "MultiEpisodeStyle" INTEGER NOT NULL, "RenameEpisodes" INTEGER, "StandardEpisodeFormat" TEXT, "DailyEpisodeFormat" TEXT, "SeasonFolderFormat" TEXT)
+2024-12-14 01:14:12.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "NamingConfig_temp" ("Id", "MultiEpisodeStyle", "RenameEpisodes", "StandardEpisodeFormat", "DailyEpisodeFormat", "SeasonFolderFormat") SELECT "Id", "MultiEpisodeStyle", "RenameEpisodes", "StandardEpisodeFormat", "DailyEpisodeFormat", "SeasonFolderFormat" FROM "NamingConfig"
+2024-12-14 01:14:12.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP TABLE "NamingConfig"
+2024-12-14 01:14:12.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "NamingConfig_temp" RENAME TO "NamingConfig"
+2024-12-14 01:14:12.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0021271s
+2024-12-14 01:14:12.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (31, '2024-12-14T01:14:12', 'delete_old_naming_config_columns')
+2024-12-14 01:14:12.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:12.4|Info|FluentMigrator.Runner.MigrationRunner|31: delete_old_naming_config_columns migrated
+2024-12-14 01:14:12.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0111863s
+2024-12-14 01:14:12.4|Info|FluentMigrator.Runner.MigrationRunner|32: set_default_release_group migrating
+2024-12-14 01:14:12.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:12.4|Info|set_default_release_group|Starting migration of Main DB to 32
+2024-12-14 01:14:12.4|Info|FluentMigrator.Runner.MigrationRunner|UpdateData
+2024-12-14 01:14:12.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|UPDATE "EpisodeFiles" SET "ReleaseGroup" = 'DRONE' WHERE "ReleaseGroup" IS NULL
+2024-12-14 01:14:12.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.000138s
+2024-12-14 01:14:12.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (32, '2024-12-14T01:14:12', 'set_default_release_group')
+2024-12-14 01:14:12.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:12.4|Info|FluentMigrator.Runner.MigrationRunner|32: set_default_release_group migrated
+2024-12-14 01:14:12.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0114652s
+2024-12-14 01:14:12.4|Info|FluentMigrator.Runner.MigrationRunner|33: add_api_key_to_pushover migrating
+2024-12-14 01:14:12.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:12.4|Info|add_api_key_to_pushover|Starting migration of Main DB to 33
+2024-12-14 01:14:12.4|Info|FluentMigrator.Runner.MigrationRunner|PerformDBOperation
+2024-12-14 01:14:12.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Performing DB Operation
+2024-12-14 01:14:12.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0005618s
+2024-12-14 01:14:12.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (33, '2024-12-14T01:14:12', 'add_api_key_to_pushover')
+2024-12-14 01:14:12.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:12.4|Info|FluentMigrator.Runner.MigrationRunner|33: add_api_key_to_pushover migrated
+2024-12-14 01:14:12.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0096491s
+2024-12-14 01:14:12.4|Info|FluentMigrator.Runner.MigrationRunner|34: remove_series_contraints migrating
+2024-12-14 01:14:12.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:12.4|Info|remove_series_contraints|Starting migration of Main DB to 34
+2024-12-14 01:14:12.4|Info|FluentMigrator.Runner.MigrationRunner|AlterTable Series
+2024-12-14 01:14:12.4|Info|FluentMigrator.Runner.MigrationRunner|=> 4E-07s
+2024-12-14 01:14:12.4|Info|FluentMigrator.Runner.MigrationRunner|AlterColumn Series ImdbId String
+2024-12-14 01:14:12.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "Series_temp" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "TvdbId" INTEGER NOT NULL, "TvRageId" INTEGER NOT NULL, "ImdbId" TEXT, "Title" TEXT NOT NULL, "TitleSlug" TEXT NOT NULL, "CleanTitle" TEXT NOT NULL, "Status" INTEGER NOT NULL, "Overview" TEXT, "AirTime" TEXT, "Images" TEXT NOT NULL, "Path" TEXT NOT NULL, "Monitored" INTEGER NOT NULL, "QualityProfileId" INTEGER NOT NULL, "SeasonFolder" INTEGER NOT NULL, "LastInfoSync" DATETIME, "LastDiskSync" DATETIME, "Runtime" INTEGER NOT NULL, "SeriesType" INTEGER NOT NULL, "Network" TEXT, "UseSceneNumbering" INTEGER NOT NULL, "FirstAired" DATETIME, "NextAiring" DATETIME, "Year" INTEGER, "Seasons" TEXT)
+2024-12-14 01:14:12.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "Series_temp" ("Id", "TvdbId", "TvRageId", "ImdbId", "Title", "TitleSlug", "CleanTitle", "Status", "Overview", "AirTime", "Images", "Path", "Monitored", "QualityProfileId", "SeasonFolder", "LastInfoSync", "LastDiskSync", "Runtime", "SeriesType", "Network", "UseSceneNumbering", "FirstAired", "NextAiring", "Year", "Seasons") SELECT "Id", "TvdbId", "TvRageId", "ImdbId", "Title", "TitleSlug", "CleanTitle", "Status", "Overview", "AirTime", "Images", "Path", "Monitored", "QualityProfileId", "SeasonFolder", "LastInfoSync", "LastDiskSync", "Runtime", "SeriesType", "Network", "UseSceneNumbering", "FirstAired", "NextAiring", "Year", "Seasons" FROM "Series"
+2024-12-14 01:14:12.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP TABLE "Series"
+2024-12-14 01:14:12.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Series_temp" RENAME TO "Series"
+2024-12-14 01:14:12.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_Series_TvdbId" ON "Series" ("TvdbId" ASC)
+2024-12-14 01:14:12.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_Series_TitleSlug" ON "Series" ("TitleSlug" ASC)
+2024-12-14 01:14:12.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0129537s
+2024-12-14 01:14:12.4|Info|FluentMigrator.Runner.MigrationRunner|AlterColumn Series TitleSlug String
+2024-12-14 01:14:12.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "Series_temp" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "TvdbId" INTEGER NOT NULL, "TvRageId" INTEGER NOT NULL, "ImdbId" TEXT, "Title" TEXT NOT NULL, "TitleSlug" TEXT, "CleanTitle" TEXT NOT NULL, "Status" INTEGER NOT NULL, "Overview" TEXT, "AirTime" TEXT, "Images" TEXT NOT NULL, "Path" TEXT NOT NULL, "Monitored" INTEGER NOT NULL, "QualityProfileId" INTEGER NOT NULL, "SeasonFolder" INTEGER NOT NULL, "LastInfoSync" DATETIME, "LastDiskSync" DATETIME, "Runtime" INTEGER NOT NULL, "SeriesType" INTEGER NOT NULL, "Network" TEXT, "UseSceneNumbering" INTEGER NOT NULL, "FirstAired" DATETIME, "NextAiring" DATETIME, "Year" INTEGER, "Seasons" TEXT)
+2024-12-14 01:14:12.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "Series_temp" ("Id", "TvdbId", "TvRageId", "ImdbId", "Title", "TitleSlug", "CleanTitle", "Status", "Overview", "AirTime", "Images", "Path", "Monitored", "QualityProfileId", "SeasonFolder", "LastInfoSync", "LastDiskSync", "Runtime", "SeriesType", "Network", "UseSceneNumbering", "FirstAired", "NextAiring", "Year", "Seasons") SELECT "Id", "TvdbId", "TvRageId", "ImdbId", "Title", "TitleSlug", "CleanTitle", "Status", "Overview", "AirTime", "Images", "Path", "Monitored", "QualityProfileId", "SeasonFolder", "LastInfoSync", "LastDiskSync", "Runtime", "SeriesType", "Network", "UseSceneNumbering", "FirstAired", "NextAiring", "Year", "Seasons" FROM "Series"
+2024-12-14 01:14:12.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP TABLE "Series"
+2024-12-14 01:14:12.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Series_temp" RENAME TO "Series"
+2024-12-14 01:14:12.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_Series_TvdbId" ON "Series" ("TvdbId" ASC)
+2024-12-14 01:14:12.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_Series_TitleSlug" ON "Series" ("TitleSlug" ASC)
+2024-12-14 01:14:12.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0025637s
+2024-12-14 01:14:12.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (34, '2024-12-14T01:14:12', 'remove_series_contraints')
+2024-12-14 01:14:12.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:12.5|Info|FluentMigrator.Runner.MigrationRunner|34: remove_series_contraints migrated
+2024-12-14 01:14:12.5|Info|FluentMigrator.Runner.MigrationRunner|=> 0.010094s
+2024-12-14 01:14:12.5|Info|FluentMigrator.Runner.MigrationRunner|35: add_series_folder_format_to_naming_config migrating
+2024-12-14 01:14:12.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:12.5|Info|add_series_folder_format_to_naming_config|Starting migration of Main DB to 35
+2024-12-14 01:14:12.5|Info|FluentMigrator.Runner.MigrationRunner|AlterTable NamingConfig
+2024-12-14 01:14:12.5|Info|FluentMigrator.Runner.MigrationRunner|=> 4.3E-06s
+2024-12-14 01:14:12.5|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn NamingConfig SeriesFolderFormat String
+2024-12-14 01:14:12.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "NamingConfig" ADD COLUMN "SeriesFolderFormat" TEXT
+2024-12-14 01:14:12.5|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0002705s
+2024-12-14 01:14:12.5|Info|FluentMigrator.Runner.MigrationRunner|UpdateData
+2024-12-14 01:14:12.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|UPDATE "NamingConfig" SET "SeriesFolderFormat" = '{Series Title}' WHERE 1 = 1
+2024-12-14 01:14:12.5|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001138s
+2024-12-14 01:14:12.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (35, '2024-12-14T01:14:12', 'add_series_folder_format_to_naming_config')
+2024-12-14 01:14:12.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:12.5|Info|FluentMigrator.Runner.MigrationRunner|35: add_series_folder_format_to_naming_config migrated
+2024-12-14 01:14:12.5|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0103206s
+2024-12-14 01:14:12.5|Info|FluentMigrator.Runner.MigrationRunner|36: update_with_quality_converters migrating
+2024-12-14 01:14:12.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:12.5|Info|update_with_quality_converters|Starting migration of Main DB to 36
+2024-12-14 01:14:12.5|Info|FluentMigrator.Runner.MigrationRunner|AlterTable QualityProfiles
+2024-12-14 01:14:12.5|Info|FluentMigrator.Runner.MigrationRunner|=> 4E-07s
+2024-12-14 01:14:12.5|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn QualityProfiles Items String
+2024-12-14 01:14:12.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "QualityProfiles" ADD COLUMN "Items" TEXT
+2024-12-14 01:14:12.5|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0002765s
+2024-12-14 01:14:12.5|Info|FluentMigrator.Runner.MigrationRunner|PerformDBOperation
+2024-12-14 01:14:12.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Performing DB Operation
+2024-12-14 01:14:12.5|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0014841s
+2024-12-14 01:14:12.5|Info|FluentMigrator.Runner.MigrationRunner|PerformDBOperation
+2024-12-14 01:14:12.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Performing DB Operation
+2024-12-14 01:14:12.5|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0009071s
+2024-12-14 01:14:12.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (36, '2024-12-14T01:14:12', 'update_with_quality_converters')
+2024-12-14 01:14:12.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:12.5|Info|FluentMigrator.Runner.MigrationRunner|36: update_with_quality_converters migrated
+2024-12-14 01:14:12.5|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0089536s
+2024-12-14 01:14:12.5|Info|FluentMigrator.Runner.MigrationRunner|37: add_configurable_qualities migrating
+2024-12-14 01:14:12.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:12.5|Info|add_configurable_qualities|Starting migration of Main DB to 37
+2024-12-14 01:14:12.5|Info|FluentMigrator.Runner.MigrationRunner|DeleteColumn QualityProfiles Allowed
+2024-12-14 01:14:12.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "QualityProfiles_temp" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "Name" TEXT NOT NULL, "Cutoff" INTEGER NOT NULL, "Items" TEXT)
+2024-12-14 01:14:12.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "QualityProfiles_temp" ("Id", "Name", "Cutoff", "Items") SELECT "Id", "Name", "Cutoff", "Items" FROM "QualityProfiles"
+2024-12-14 01:14:12.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP TABLE "QualityProfiles"
+2024-12-14 01:14:12.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "QualityProfiles_temp" RENAME TO "QualityProfiles"
+2024-12-14 01:14:12.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_QualityProfiles_Name" ON "QualityProfiles" ("Name" ASC)
+2024-12-14 01:14:12.5|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0018426s
+2024-12-14 01:14:12.5|Info|FluentMigrator.Runner.MigrationRunner|AlterColumn QualityProfiles Items String
+2024-12-14 01:14:12.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "QualityProfiles_temp" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "Name" TEXT NOT NULL, "Cutoff" INTEGER NOT NULL, "Items" TEXT NOT NULL)
+2024-12-14 01:14:12.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "QualityProfiles_temp" ("Id", "Name", "Cutoff", "Items") SELECT "Id", "Name", "Cutoff", "Items" FROM "QualityProfiles"
+2024-12-14 01:14:12.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP TABLE "QualityProfiles"
+2024-12-14 01:14:12.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "QualityProfiles_temp" RENAME TO "QualityProfiles"
+2024-12-14 01:14:12.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_QualityProfiles_Name" ON "QualityProfiles" ("Name" ASC)
+2024-12-14 01:14:12.5|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0018226s
+2024-12-14 01:14:12.5|Info|FluentMigrator.Runner.MigrationRunner|CreateTable QualityDefinitions
+2024-12-14 01:14:12.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "QualityDefinitions" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "Quality" INTEGER NOT NULL, "Title" TEXT NOT NULL, "Weight" INTEGER NOT NULL, "MinSize" INTEGER NOT NULL, "MaxSize" INTEGER NOT NULL)
+2024-12-14 01:14:12.5|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0002082s
+2024-12-14 01:14:12.5|Info|FluentMigrator.Runner.MigrationRunner|CreateIndex QualityDefinitions (Quality)
+2024-12-14 01:14:12.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_QualityDefinitions_Quality" ON "QualityDefinitions" ("Quality" ASC)
+2024-12-14 01:14:12.5|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001651s
+2024-12-14 01:14:12.5|Info|FluentMigrator.Runner.MigrationRunner|CreateIndex QualityDefinitions (Title)
+2024-12-14 01:14:12.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_QualityDefinitions_Title" ON "QualityDefinitions" ("Title" ASC)
+2024-12-14 01:14:12.5|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001554s
+2024-12-14 01:14:12.5|Info|FluentMigrator.Runner.MigrationRunner|CreateIndex QualityDefinitions (Weight)
+2024-12-14 01:14:12.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_QualityDefinitions_Weight" ON "QualityDefinitions" ("Weight" ASC)
+2024-12-14 01:14:12.5|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001557s
+2024-12-14 01:14:12.5|Info|FluentMigrator.Runner.MigrationRunner|PerformDBOperation
+2024-12-14 01:14:12.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Performing DB Operation
+2024-12-14 01:14:12.5|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0006314s
+2024-12-14 01:14:12.5|Info|FluentMigrator.Runner.MigrationRunner|DeleteTable QualitySizes
+2024-12-14 01:14:12.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP TABLE "QualitySizes"
+2024-12-14 01:14:12.5|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0002499s
+2024-12-14 01:14:12.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (37, '2024-12-14T01:14:12', 'add_configurable_qualities')
+2024-12-14 01:14:12.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:12.5|Info|FluentMigrator.Runner.MigrationRunner|37: add_configurable_qualities migrated
+2024-12-14 01:14:12.5|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0077294s
+2024-12-14 01:14:12.5|Info|FluentMigrator.Runner.MigrationRunner|38: add_on_upgrade_to_notifications migrating
+2024-12-14 01:14:12.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:12.5|Info|add_on_upgrade_to_notifications|Starting migration of Main DB to 38
+2024-12-14 01:14:12.5|Info|FluentMigrator.Runner.MigrationRunner|AlterTable Notifications
+2024-12-14 01:14:12.5|Info|FluentMigrator.Runner.MigrationRunner|=> 6E-07s
+2024-12-14 01:14:12.5|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn Notifications OnUpgrade Boolean
+2024-12-14 01:14:12.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Notifications" ADD COLUMN "OnUpgrade" INTEGER
+2024-12-14 01:14:12.5|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0002924s
+2024-12-14 01:14:12.5|Info|FluentMigrator.Runner.MigrationRunner|ExecuteSqlStatement UPDATE "Notifications" SET "OnUpgrade" = "OnDownload"
+2024-12-14 01:14:12.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|UPDATE "Notifications" SET "OnUpgrade" = "OnDownload"
+2024-12-14 01:14:12.5|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001117s
+2024-12-14 01:14:12.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (38, '2024-12-14T01:14:12', 'add_on_upgrade_to_notifications')
+2024-12-14 01:14:12.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:12.5|Info|FluentMigrator.Runner.MigrationRunner|38: add_on_upgrade_to_notifications migrated
+2024-12-14 01:14:12.5|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0107127s
+2024-12-14 01:14:12.5|Info|FluentMigrator.Runner.MigrationRunner|39: add_metadata_tables migrating
+2024-12-14 01:14:12.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:12.5|Info|add_metadata_tables|Starting migration of Main DB to 39
+2024-12-14 01:14:12.5|Info|FluentMigrator.Runner.MigrationRunner|CreateTable Metadata
+2024-12-14 01:14:12.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "Metadata" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "Enable" INTEGER NOT NULL, "Name" TEXT NOT NULL, "Implementation" TEXT NOT NULL, "Settings" TEXT NOT NULL, "ConfigContract" TEXT NOT NULL)
+2024-12-14 01:14:12.5|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0002108s
+2024-12-14 01:14:12.5|Info|FluentMigrator.Runner.MigrationRunner|CreateTable MetadataFiles
+2024-12-14 01:14:12.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "MetadataFiles" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "SeriesId" INTEGER NOT NULL, "Consumer" TEXT NOT NULL, "Type" INTEGER NOT NULL, "RelativePath" TEXT NOT NULL, "LastUpdated" DATETIME NOT NULL, "SeasonNumber" INTEGER, "EpisodeFileId" INTEGER)
+2024-12-14 01:14:12.5|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0002326s
+2024-12-14 01:14:12.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (39, '2024-12-14T01:14:12', 'add_metadata_tables')
+2024-12-14 01:14:12.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:12.5|Info|FluentMigrator.Runner.MigrationRunner|39: add_metadata_tables migrated
+2024-12-14 01:14:12.5|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0097948s
+2024-12-14 01:14:12.5|Info|FluentMigrator.Runner.MigrationRunner|40: add_metadata_to_episodes_and_series migrating
+2024-12-14 01:14:12.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:12.5|Info|add_metadata_to_episodes_and_series|Starting migration of Main DB to 40
+2024-12-14 01:14:12.5|Info|FluentMigrator.Runner.MigrationRunner|AlterTable Series
+2024-12-14 01:14:12.5|Info|FluentMigrator.Runner.MigrationRunner|=> 4E-07s
+2024-12-14 01:14:12.5|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn Series Actors String
+2024-12-14 01:14:12.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Series" ADD COLUMN "Actors" TEXT
+2024-12-14 01:14:12.5|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0003306s
+2024-12-14 01:14:12.5|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn Series Ratings String
+2024-12-14 01:14:12.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Series" ADD COLUMN "Ratings" TEXT
+2024-12-14 01:14:12.5|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0002876s
+2024-12-14 01:14:12.5|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn Series Genres String
+2024-12-14 01:14:12.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Series" ADD COLUMN "Genres" TEXT
+2024-12-14 01:14:12.5|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0002951s
+2024-12-14 01:14:12.5|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn Series Certification String
+2024-12-14 01:14:12.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Series" ADD COLUMN "Certification" TEXT
+2024-12-14 01:14:12.5|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0002954s
+2024-12-14 01:14:12.5|Info|FluentMigrator.Runner.MigrationRunner|AlterTable Episodes
+2024-12-14 01:14:12.5|Info|FluentMigrator.Runner.MigrationRunner|=> 4E-07s
+2024-12-14 01:14:12.5|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn Episodes Ratings String
+2024-12-14 01:14:12.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Episodes" ADD COLUMN "Ratings" TEXT
+2024-12-14 01:14:12.5|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0002769s
+2024-12-14 01:14:12.5|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn Episodes Images String
+2024-12-14 01:14:12.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Episodes" ADD COLUMN "Images" TEXT
+2024-12-14 01:14:12.5|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0002862s
+2024-12-14 01:14:12.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (40, '2024-12-14T01:14:12', 'add_metadata_to_episodes_and_series')
+2024-12-14 01:14:12.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:12.5|Info|FluentMigrator.Runner.MigrationRunner|40: add_metadata_to_episodes_and_series migrated
+2024-12-14 01:14:12.5|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0087725s
+2024-12-14 01:14:12.5|Info|FluentMigrator.Runner.MigrationRunner|41: fix_xbmc_season_images_metadata migrating
+2024-12-14 01:14:12.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:12.5|Info|fix_xbmc_season_images_metadata|Starting migration of Main DB to 41
+2024-12-14 01:14:12.5|Info|FluentMigrator.Runner.MigrationRunner|ExecuteSqlStatement UPDATE "MetadataFiles" SET "Type" = 4 WHERE "Consumer" = 'XbmcMetadata' AND "SeasonNumber" IS NOT NULL
+2024-12-14 01:14:12.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|UPDATE "MetadataFiles" SET "Type" = 4 WHERE "Consumer" = 'XbmcMetadata' AND "SeasonNumber" IS NOT NULL
+2024-12-14 01:14:12.5|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001319s
+2024-12-14 01:14:12.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (41, '2024-12-14T01:14:12', 'fix_xbmc_season_images_metadata')
+2024-12-14 01:14:12.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:12.5|Info|FluentMigrator.Runner.MigrationRunner|41: fix_xbmc_season_images_metadata migrated
+2024-12-14 01:14:12.5|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0114547s
+2024-12-14 01:14:12.5|Info|FluentMigrator.Runner.MigrationRunner|42: add_download_clients_table migrating
+2024-12-14 01:14:12.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:12.5|Info|add_download_clients_table|Starting migration of Main DB to 42
+2024-12-14 01:14:12.5|Info|FluentMigrator.Runner.MigrationRunner|CreateTable DownloadClients
+2024-12-14 01:14:12.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "DownloadClients" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "Enable" INTEGER NOT NULL, "Name" TEXT NOT NULL, "Implementation" TEXT NOT NULL, "Settings" TEXT NOT NULL, "ConfigContract" TEXT NOT NULL, "Protocol" INTEGER NOT NULL)
+2024-12-14 01:14:12.5|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0005595s
+2024-12-14 01:14:12.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (42, '2024-12-14T01:14:12', 'add_download_clients_table')
+2024-12-14 01:14:12.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:12.6|Info|FluentMigrator.Runner.MigrationRunner|42: add_download_clients_table migrated
+2024-12-14 01:14:12.6|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0113471s
+2024-12-14 01:14:12.6|Info|FluentMigrator.Runner.MigrationRunner|43: convert_config_to_download_clients migrating
+2024-12-14 01:14:12.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:12.6|Info|convert_config_to_download_clients|Starting migration of Main DB to 43
+2024-12-14 01:14:12.6|Info|FluentMigrator.Runner.MigrationRunner|PerformDBOperation
+2024-12-14 01:14:12.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Performing DB Operation
+2024-12-14 01:14:12.6|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0053143s
+2024-12-14 01:14:12.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (43, '2024-12-14T01:14:12', 'convert_config_to_download_clients')
+2024-12-14 01:14:12.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:12.6|Info|FluentMigrator.Runner.MigrationRunner|43: convert_config_to_download_clients migrated
+2024-12-14 01:14:12.6|Info|FluentMigrator.Runner.MigrationRunner|=> 0.017164s
+2024-12-14 01:14:12.6|Info|FluentMigrator.Runner.MigrationRunner|44: fix_xbmc_episode_metadata migrating
+2024-12-14 01:14:12.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:12.6|Info|fix_xbmc_episode_metadata|Starting migration of Main DB to 44
+2024-12-14 01:14:12.6|Info|FluentMigrator.Runner.MigrationRunner|ExecuteSqlStatement UPDATE "MetadataFiles" SET "Type" = 2 WHERE "Consumer" = 'XbmcMetadata' AND "EpisodeFileId" IS NOT NULL AND "Type" = 4 AND "RelativePath" LIKE '%.nfo'
+2024-12-14 01:14:12.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|UPDATE "MetadataFiles" SET "Type" = 2 WHERE "Consumer" = 'XbmcMetadata' AND "EpisodeFileId" IS NOT NULL AND "Type" = 4 AND "RelativePath" LIKE '%.nfo'
+2024-12-14 01:14:12.6|Info|FluentMigrator.Runner.MigrationRunner|=> 0.00028s
+2024-12-14 01:14:12.6|Info|FluentMigrator.Runner.MigrationRunner|ExecuteSqlStatement UPDATE "MetadataFiles" SET "Type" = 5 WHERE "Consumer" = 'XbmcMetadata' AND "EpisodeFileId" IS NOT NULL AND "Type" = 4
+2024-12-14 01:14:12.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|UPDATE "MetadataFiles" SET "Type" = 5 WHERE "Consumer" = 'XbmcMetadata' AND "EpisodeFileId" IS NOT NULL AND "Type" = 4
+2024-12-14 01:14:12.6|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0002497s
+2024-12-14 01:14:12.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (44, '2024-12-14T01:14:12', 'fix_xbmc_episode_metadata')
+2024-12-14 01:14:12.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:12.6|Info|FluentMigrator.Runner.MigrationRunner|44: fix_xbmc_episode_metadata migrated
+2024-12-14 01:14:12.6|Info|FluentMigrator.Runner.MigrationRunner|=> 0.010619s
+2024-12-14 01:14:12.6|Info|FluentMigrator.Runner.MigrationRunner|45: add_indexes migrating
+2024-12-14 01:14:12.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:12.6|Info|add_indexes|Starting migration of Main DB to 45
+2024-12-14 01:14:12.6|Info|FluentMigrator.Runner.MigrationRunner|CreateIndex Blacklist (SeriesId)
+2024-12-14 01:14:12.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE INDEX "IX_Blacklist_SeriesId" ON "Blacklist" ("SeriesId" ASC)
+2024-12-14 01:14:12.6|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0002273s
+2024-12-14 01:14:12.6|Info|FluentMigrator.Runner.MigrationRunner|CreateIndex EpisodeFiles (SeriesId)
+2024-12-14 01:14:12.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE INDEX "IX_EpisodeFiles_SeriesId" ON "EpisodeFiles" ("SeriesId" ASC)
+2024-12-14 01:14:12.6|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0002159s
+2024-12-14 01:14:12.6|Info|FluentMigrator.Runner.MigrationRunner|CreateIndex Episodes (EpisodeFileId)
+2024-12-14 01:14:12.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE INDEX "IX_Episodes_EpisodeFileId" ON "Episodes" ("EpisodeFileId" ASC)
+2024-12-14 01:14:12.6|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0002784s
+2024-12-14 01:14:12.6|Info|FluentMigrator.Runner.MigrationRunner|CreateIndex Episodes (SeriesId)
+2024-12-14 01:14:12.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE INDEX "IX_Episodes_SeriesId" ON "Episodes" ("SeriesId" ASC)
+2024-12-14 01:14:12.6|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0002836s
+2024-12-14 01:14:12.6|Info|FluentMigrator.Runner.MigrationRunner|CreateIndex History (EpisodeId)
+2024-12-14 01:14:12.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE INDEX "IX_History_EpisodeId" ON "History" ("EpisodeId" ASC)
+2024-12-14 01:14:12.6|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001904s
+2024-12-14 01:14:12.6|Info|FluentMigrator.Runner.MigrationRunner|CreateIndex History (Date)
+2024-12-14 01:14:12.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE INDEX "IX_History_Date" ON "History" ("Date" ASC)
+2024-12-14 01:14:12.6|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0002232s
+2024-12-14 01:14:12.6|Info|FluentMigrator.Runner.MigrationRunner|CreateIndex Series (Path)
+2024-12-14 01:14:12.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE INDEX "IX_Series_Path" ON "Series" ("Path" ASC)
+2024-12-14 01:14:12.6|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0002882s
+2024-12-14 01:14:12.6|Info|FluentMigrator.Runner.MigrationRunner|CreateIndex Series (CleanTitle)
+2024-12-14 01:14:12.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE INDEX "IX_Series_CleanTitle" ON "Series" ("CleanTitle" ASC)
+2024-12-14 01:14:12.6|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0003342s
+2024-12-14 01:14:12.6|Info|FluentMigrator.Runner.MigrationRunner|CreateIndex Series (TvRageId)
+2024-12-14 01:14:12.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE INDEX "IX_Series_TvRageId" ON "Series" ("TvRageId" ASC)
+2024-12-14 01:14:12.6|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0003232s
+2024-12-14 01:14:12.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (45, '2024-12-14T01:14:12', 'add_indexes')
+2024-12-14 01:14:12.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:12.6|Info|FluentMigrator.Runner.MigrationRunner|45: add_indexes migrated
+2024-12-14 01:14:12.6|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0074671s
+2024-12-14 01:14:12.6|Info|FluentMigrator.Runner.MigrationRunner|46: fix_nzb_su_url migrating
+2024-12-14 01:14:12.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:12.6|Info|fix_nzb_su_url|Starting migration of Main DB to 46
+2024-12-14 01:14:12.6|Info|FluentMigrator.Runner.MigrationRunner|ExecuteSqlStatement UPDATE "Indexers" SET "Settings" = replace("Settings", '//nzb.su', '//api.nzb.su')WHERE "Implementation" = 'Newznab'AND "Settings" LIKE '%//nzb.su%'
+2024-12-14 01:14:12.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|UPDATE "Indexers" SET "Settings" = replace("Settings", '//nzb.su', '//api.nzb.su')WHERE "Implementation" = 'Newznab'AND "Settings" LIKE '%//nzb.su%'
+2024-12-14 01:14:12.6|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0003201s
+2024-12-14 01:14:12.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (46, '2024-12-14T01:14:12', 'fix_nzb_su_url')
+2024-12-14 01:14:12.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:12.6|Info|FluentMigrator.Runner.MigrationRunner|46: fix_nzb_su_url migrated
+2024-12-14 01:14:12.6|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0110455s
+2024-12-14 01:14:12.6|Info|FluentMigrator.Runner.MigrationRunner|47: add_temporary_blacklist_columns migrating
+2024-12-14 01:14:12.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:12.6|Info|add_temporary_blacklist_columns|Starting migration of Main DB to 47
+2024-12-14 01:14:12.6|Info|FluentMigrator.Runner.MigrationRunner|AlterTable Blacklist
+2024-12-14 01:14:12.6|Info|FluentMigrator.Runner.MigrationRunner|=> 1.5E-06s
+2024-12-14 01:14:12.6|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn Blacklist PublishedDate DateTime
+2024-12-14 01:14:12.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Blacklist" ADD COLUMN "PublishedDate" DATETIME
+2024-12-14 01:14:12.6|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0008549s
+2024-12-14 01:14:12.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (47, '2024-12-14T01:14:12', 'add_temporary_blacklist_columns')
+2024-12-14 01:14:12.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:12.6|Info|FluentMigrator.Runner.MigrationRunner|47: add_temporary_blacklist_columns migrated
+2024-12-14 01:14:12.6|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0108729s
+2024-12-14 01:14:12.6|Info|FluentMigrator.Runner.MigrationRunner|48: add_title_to_scenemappings migrating
+2024-12-14 01:14:12.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:12.6|Info|add_title_to_scenemappings|Starting migration of Main DB to 48
+2024-12-14 01:14:12.6|Info|FluentMigrator.Runner.MigrationRunner|AlterTable SceneMappings
+2024-12-14 01:14:12.6|Info|FluentMigrator.Runner.MigrationRunner|=> 8E-07s
+2024-12-14 01:14:12.6|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn SceneMappings Title String
+2024-12-14 01:14:12.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "SceneMappings" ADD COLUMN "Title" TEXT
+2024-12-14 01:14:12.6|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0008053s
+2024-12-14 01:14:12.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (48, '2024-12-14T01:14:12', 'add_title_to_scenemappings')
+2024-12-14 01:14:12.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:12.6|Info|FluentMigrator.Runner.MigrationRunner|48: add_title_to_scenemappings migrated
+2024-12-14 01:14:12.6|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0108957s
+2024-12-14 01:14:12.6|Info|FluentMigrator.Runner.MigrationRunner|49: fix_dognzb_url migrating
+2024-12-14 01:14:12.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:12.6|Info|fix_dognzb_url|Starting migration of Main DB to 49
+2024-12-14 01:14:12.6|Info|FluentMigrator.Runner.MigrationRunner|ExecuteSqlStatement UPDATE "Indexers" SET "Settings" = replace("Settings", '//dognzb.cr', '//api.dognzb.cr')WHERE "Implementation" = 'Newznab'AND "Settings" LIKE '%//dognzb.cr%'
+2024-12-14 01:14:12.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|UPDATE "Indexers" SET "Settings" = replace("Settings", '//dognzb.cr', '//api.dognzb.cr')WHERE "Implementation" = 'Newznab'AND "Settings" LIKE '%//dognzb.cr%'
+2024-12-14 01:14:12.6|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0003432s
+2024-12-14 01:14:12.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (49, '2024-12-14T01:14:12', 'fix_dognzb_url')
+2024-12-14 01:14:12.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:12.6|Info|FluentMigrator.Runner.MigrationRunner|49: fix_dognzb_url migrated
+2024-12-14 01:14:12.6|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0111302s
+2024-12-14 01:14:12.6|Info|FluentMigrator.Runner.MigrationRunner|50: add_hash_to_metadata_files migrating
+2024-12-14 01:14:12.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:12.6|Info|add_hash_to_metadata_files|Starting migration of Main DB to 50
+2024-12-14 01:14:12.6|Info|FluentMigrator.Runner.MigrationRunner|AlterTable MetadataFiles
+2024-12-14 01:14:12.6|Info|FluentMigrator.Runner.MigrationRunner|=> 1E-06s
+2024-12-14 01:14:12.6|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn MetadataFiles Hash String
+2024-12-14 01:14:12.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "MetadataFiles" ADD COLUMN "Hash" TEXT
+2024-12-14 01:14:12.6|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0006403s
+2024-12-14 01:14:12.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (50, '2024-12-14T01:14:12', 'add_hash_to_metadata_files')
+2024-12-14 01:14:12.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:12.7|Info|FluentMigrator.Runner.MigrationRunner|50: add_hash_to_metadata_files migrated
+2024-12-14 01:14:12.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.010754s
+2024-12-14 01:14:12.7|Info|FluentMigrator.Runner.MigrationRunner|51: download_client_import migrating
+2024-12-14 01:14:12.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:12.7|Info|download_client_import|Starting migration of Main DB to 51
+2024-12-14 01:14:12.7|Info|FluentMigrator.Runner.MigrationRunner|PerformDBOperation
+2024-12-14 01:14:12.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Performing DB Operation
+2024-12-14 01:14:12.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0006485s
+2024-12-14 01:14:12.7|Info|FluentMigrator.Runner.MigrationRunner|PerformDBOperation
+2024-12-14 01:14:12.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Performing DB Operation
+2024-12-14 01:14:12.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0038926s
+2024-12-14 01:14:12.7|Info|FluentMigrator.Runner.MigrationRunner|PerformDBOperation
+2024-12-14 01:14:12.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Performing DB Operation
+2024-12-14 01:14:12.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0061773s
+2024-12-14 01:14:12.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (51, '2024-12-14T01:14:12', 'download_client_import')
+2024-12-14 01:14:12.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:12.7|Info|FluentMigrator.Runner.MigrationRunner|51: download_client_import migrated
+2024-12-14 01:14:12.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0128157s
+2024-12-14 01:14:12.7|Info|FluentMigrator.Runner.MigrationRunner|52: add_columns_for_anime migrating
+2024-12-14 01:14:12.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:12.7|Info|add_columns_for_anime|Starting migration of Main DB to 52
+2024-12-14 01:14:12.7|Info|FluentMigrator.Runner.MigrationRunner|AlterTable SceneMappings
+2024-12-14 01:14:12.7|Info|FluentMigrator.Runner.MigrationRunner|=> 1.4E-06s
+2024-12-14 01:14:12.7|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn SceneMappings Type String
+2024-12-14 01:14:12.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "SceneMappings" ADD COLUMN "Type" TEXT
+2024-12-14 01:14:12.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0007885s
+2024-12-14 01:14:12.7|Info|FluentMigrator.Runner.MigrationRunner|ExecuteSqlStatement DELETE FROM "SceneMappings"
+2024-12-14 01:14:12.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DELETE FROM "SceneMappings"
+2024-12-14 01:14:12.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001318s
+2024-12-14 01:14:12.7|Info|FluentMigrator.Runner.MigrationRunner|AlterTable NamingConfig
+2024-12-14 01:14:12.7|Info|FluentMigrator.Runner.MigrationRunner|=> 7E-07s
+2024-12-14 01:14:12.7|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn NamingConfig AnimeEpisodeFormat String
+2024-12-14 01:14:12.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "NamingConfig" ADD COLUMN "AnimeEpisodeFormat" TEXT
+2024-12-14 01:14:12.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0004017s
+2024-12-14 01:14:12.7|Info|FluentMigrator.Runner.MigrationRunner|ExecuteSqlStatement UPDATE "NamingConfig" SET "AnimeEpisodeFormat" = "StandardEpisodeFormat"
+2024-12-14 01:14:12.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|UPDATE "NamingConfig" SET "AnimeEpisodeFormat" = "StandardEpisodeFormat"
+2024-12-14 01:14:12.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0002532s
+2024-12-14 01:14:12.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (52, '2024-12-14T01:14:12', 'add_columns_for_anime')
+2024-12-14 01:14:12.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:12.7|Info|FluentMigrator.Runner.MigrationRunner|52: add_columns_for_anime migrated
+2024-12-14 01:14:12.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0072571s
+2024-12-14 01:14:12.7|Info|FluentMigrator.Runner.MigrationRunner|53: add_series_sorttitle migrating
+2024-12-14 01:14:12.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:12.7|Info|add_series_sorttitle|Starting migration of Main DB to 53
+2024-12-14 01:14:12.7|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn Series SortTitle String
+2024-12-14 01:14:12.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Series" ADD COLUMN "SortTitle" TEXT
+2024-12-14 01:14:12.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0006655s
+2024-12-14 01:14:12.7|Info|FluentMigrator.Runner.MigrationRunner|PerformDBOperation
+2024-12-14 01:14:12.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Performing DB Operation
+2024-12-14 01:14:12.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0009129s
+2024-12-14 01:14:12.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (53, '2024-12-14T01:14:12', 'add_series_sorttitle')
+2024-12-14 01:14:12.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:12.7|Info|FluentMigrator.Runner.MigrationRunner|53: add_series_sorttitle migrated
+2024-12-14 01:14:12.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0072922s
+2024-12-14 01:14:12.7|Info|FluentMigrator.Runner.MigrationRunner|54: rename_profiles migrating
+2024-12-14 01:14:12.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:12.7|Info|rename_profiles|Starting migration of Main DB to 54
+2024-12-14 01:14:12.7|Info|FluentMigrator.Runner.MigrationRunner|RenameTable QualityProfiles Profiles
+2024-12-14 01:14:12.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "QualityProfiles" RENAME TO "Profiles"
+2024-12-14 01:14:12.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0013389s
+2024-12-14 01:14:12.7|Info|FluentMigrator.Runner.MigrationRunner|AlterTable Profiles
+2024-12-14 01:14:12.7|Info|FluentMigrator.Runner.MigrationRunner|=> 7E-07s
+2024-12-14 01:14:12.7|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn Profiles Language Int32
+2024-12-14 01:14:12.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Profiles" ADD COLUMN "Language" INTEGER
+2024-12-14 01:14:12.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0005985s
+2024-12-14 01:14:12.7|Info|FluentMigrator.Runner.MigrationRunner|AlterTable Profiles
+2024-12-14 01:14:12.7|Info|FluentMigrator.Runner.MigrationRunner|=> 7E-07s
+2024-12-14 01:14:12.7|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn Profiles GrabDelay Int32
+2024-12-14 01:14:12.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Profiles" ADD COLUMN "GrabDelay" INTEGER
+2024-12-14 01:14:12.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0005848s
+2024-12-14 01:14:12.7|Info|FluentMigrator.Runner.MigrationRunner|AlterTable Profiles
+2024-12-14 01:14:12.7|Info|FluentMigrator.Runner.MigrationRunner|=> 7E-07s
+2024-12-14 01:14:12.7|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn Profiles GrabDelayMode Int32
+2024-12-14 01:14:12.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Profiles" ADD COLUMN "GrabDelayMode" INTEGER
+2024-12-14 01:14:12.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0004965s
+2024-12-14 01:14:12.7|Info|FluentMigrator.Runner.MigrationRunner|UpdateData
+2024-12-14 01:14:12.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|UPDATE "Profiles" SET "Language" = 1, "GrabDelay" = 0, "GrabDelayMode" = 0 WHERE 1 = 1
+2024-12-14 01:14:12.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.000195s
+2024-12-14 01:14:12.7|Info|FluentMigrator.Runner.MigrationRunner|AlterTable Series
+2024-12-14 01:14:12.7|Info|FluentMigrator.Runner.MigrationRunner|=> 6E-07s
+2024-12-14 01:14:12.7|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn Series ProfileId Int32
+2024-12-14 01:14:12.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Series" ADD COLUMN "ProfileId" INTEGER
+2024-12-14 01:14:12.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0004768s
+2024-12-14 01:14:12.7|Info|FluentMigrator.Runner.MigrationRunner|ExecuteSqlStatement UPDATE "Series" SET "ProfileId" = "QualityProfileId"
+2024-12-14 01:14:12.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|UPDATE "Series" SET "ProfileId" = "QualityProfileId"
+2024-12-14 01:14:12.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001673s
+2024-12-14 01:14:12.7|Info|FluentMigrator.Runner.MigrationRunner|CreateTable PendingReleases
+2024-12-14 01:14:12.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "PendingReleases" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "SeriesId" INTEGER NOT NULL, "Title" TEXT NOT NULL, "Added" DATETIME NOT NULL, "ParsedEpisodeInfo" TEXT NOT NULL, "Release" TEXT NOT NULL)
+2024-12-14 01:14:12.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0004215s
+2024-12-14 01:14:12.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (54, '2024-12-14T01:14:12', 'rename_profiles')
+2024-12-14 01:14:12.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:12.7|Info|FluentMigrator.Runner.MigrationRunner|54: rename_profiles migrated
+2024-12-14 01:14:12.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.00894s
+2024-12-14 01:14:12.7|Info|FluentMigrator.Runner.MigrationRunner|55: drop_old_profile_columns migrating
+2024-12-14 01:14:12.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:12.7|Info|drop_old_profile_columns|Starting migration of Main DB to 55
+2024-12-14 01:14:12.7|Info|FluentMigrator.Runner.MigrationRunner|DeleteColumn Series QualityProfileId
+2024-12-14 01:14:12.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "Series_temp" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "TvdbId" INTEGER NOT NULL, "TvRageId" INTEGER NOT NULL, "ImdbId" TEXT, "Title" TEXT NOT NULL, "TitleSlug" TEXT, "CleanTitle" TEXT NOT NULL, "Status" INTEGER NOT NULL, "Overview" TEXT, "AirTime" TEXT, "Images" TEXT NOT NULL, "Path" TEXT NOT NULL, "Monitored" INTEGER NOT NULL, "SeasonFolder" INTEGER NOT NULL, "LastInfoSync" DATETIME, "LastDiskSync" DATETIME, "Runtime" INTEGER NOT NULL, "SeriesType" INTEGER NOT NULL, "Network" TEXT, "UseSceneNumbering" INTEGER NOT NULL, "FirstAired" DATETIME, "NextAiring" DATETIME, "Year" INTEGER, "Seasons" TEXT, "Actors" TEXT, "Ratings" TEXT, "Genres" TEXT, "Certification" TEXT, "SortTitle" TEXT, "ProfileId" INTEGER)
+2024-12-14 01:14:12.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "Series_temp" ("Id", "TvdbId", "TvRageId", "ImdbId", "Title", "TitleSlug", "CleanTitle", "Status", "Overview", "AirTime", "Images", "Path", "Monitored", "SeasonFolder", "LastInfoSync", "LastDiskSync", "Runtime", "SeriesType", "Network", "UseSceneNumbering", "FirstAired", "NextAiring", "Year", "Seasons", "Actors", "Ratings", "Genres", "Certification", "SortTitle", "ProfileId") SELECT "Id", "TvdbId", "TvRageId", "ImdbId", "Title", "TitleSlug", "CleanTitle", "Status", "Overview", "AirTime", "Images", "Path", "Monitored", "SeasonFolder", "LastInfoSync", "LastDiskSync", "Runtime", "SeriesType", "Network", "UseSceneNumbering", "FirstAired", "NextAiring", "Year", "Seasons", "Actors", "Ratings", "Genres", "Certification", "SortTitle", "ProfileId" FROM "Series"
+2024-12-14 01:14:12.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP TABLE "Series"
+2024-12-14 01:14:12.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Series_temp" RENAME TO "Series"
+2024-12-14 01:14:12.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_Series_TvdbId" ON "Series" ("TvdbId" ASC)
+2024-12-14 01:14:12.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_Series_TitleSlug" ON "Series" ("TitleSlug" ASC)
+2024-12-14 01:14:12.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE INDEX "IX_Series_Path" ON "Series" ("Path" ASC)
+2024-12-14 01:14:12.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE INDEX "IX_Series_CleanTitle" ON "Series" ("CleanTitle" ASC)
+2024-12-14 01:14:12.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE INDEX "IX_Series_TvRageId" ON "Series" ("TvRageId" ASC)
+2024-12-14 01:14:12.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0067441s
+2024-12-14 01:14:12.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (55, '2024-12-14T01:14:12', 'drop_old_profile_columns')
+2024-12-14 01:14:12.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:12.7|Info|FluentMigrator.Runner.MigrationRunner|55: drop_old_profile_columns migrated
+2024-12-14 01:14:12.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0178336s
+2024-12-14 01:14:12.7|Info|FluentMigrator.Runner.MigrationRunner|56: add_mediainfo_to_episodefile migrating
+2024-12-14 01:14:12.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:12.7|Info|add_mediainfo_to_episodefile|Starting migration of Main DB to 56
+2024-12-14 01:14:12.7|Info|FluentMigrator.Runner.MigrationRunner|AlterTable EpisodeFiles
+2024-12-14 01:14:12.7|Info|FluentMigrator.Runner.MigrationRunner|=> 9E-07s
+2024-12-14 01:14:12.7|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn EpisodeFiles MediaInfo String
+2024-12-14 01:14:12.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "EpisodeFiles" ADD COLUMN "MediaInfo" TEXT
+2024-12-14 01:14:12.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0008082s
+2024-12-14 01:14:12.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (56, '2024-12-14T01:14:12', 'add_mediainfo_to_episodefile')
+2024-12-14 01:14:12.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:12.7|Info|FluentMigrator.Runner.MigrationRunner|56: add_mediainfo_to_episodefile migrated
+2024-12-14 01:14:12.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0107577s
+2024-12-14 01:14:12.7|Info|FluentMigrator.Runner.MigrationRunner|57: convert_episode_file_path_to_relative migrating
+2024-12-14 01:14:12.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:12.7|Info|convert_episode_file_path_to_relative|Starting migration of Main DB to 57
+2024-12-14 01:14:12.7|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn EpisodeFiles RelativePath String
+2024-12-14 01:14:12.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "EpisodeFiles" ADD COLUMN "RelativePath" TEXT
+2024-12-14 01:14:12.8|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0006514s
+2024-12-14 01:14:12.8|Info|FluentMigrator.Runner.MigrationRunner|PerformDBOperation
+2024-12-14 01:14:12.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Performing DB Operation
+2024-12-14 01:14:12.8|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0009892s
+2024-12-14 01:14:12.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (57, '2024-12-14T01:14:12', 'convert_episode_file_path_to_relative')
+2024-12-14 01:14:12.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:12.8|Info|FluentMigrator.Runner.MigrationRunner|57: convert_episode_file_path_to_relative migrated
+2024-12-14 01:14:12.8|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0105206s
+2024-12-14 01:14:12.8|Info|FluentMigrator.Runner.MigrationRunner|58: drop_episode_file_path migrating
+2024-12-14 01:14:12.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:12.8|Info|drop_episode_file_path|Starting migration of Main DB to 58
+2024-12-14 01:14:12.8|Info|FluentMigrator.Runner.MigrationRunner|DeleteColumn EpisodeFiles Path
+2024-12-14 01:14:12.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "EpisodeFiles_temp" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "SeriesId" INTEGER NOT NULL, "Quality" TEXT NOT NULL, "Size" INTEGER NOT NULL, "DateAdded" DATETIME NOT NULL, "SeasonNumber" INTEGER NOT NULL, "SceneName" TEXT, "ReleaseGroup" TEXT, "MediaInfo" TEXT, "RelativePath" TEXT)
+2024-12-14 01:14:12.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "EpisodeFiles_temp" ("Id", "SeriesId", "Quality", "Size", "DateAdded", "SeasonNumber", "SceneName", "ReleaseGroup", "MediaInfo", "RelativePath") SELECT "Id", "SeriesId", "Quality", "Size", "DateAdded", "SeasonNumber", "SceneName", "ReleaseGroup", "MediaInfo", "RelativePath" FROM "EpisodeFiles"
+2024-12-14 01:14:12.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP TABLE "EpisodeFiles"
+2024-12-14 01:14:12.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "EpisodeFiles_temp" RENAME TO "EpisodeFiles"
+2024-12-14 01:14:12.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE INDEX "IX_EpisodeFiles_SeriesId" ON "EpisodeFiles" ("SeriesId" ASC)
+2024-12-14 01:14:12.8|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0041699s
+2024-12-14 01:14:12.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (58, '2024-12-14T01:14:12', 'drop_episode_file_path')
+2024-12-14 01:14:12.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:12.8|Info|FluentMigrator.Runner.MigrationRunner|58: drop_episode_file_path migrated
+2024-12-14 01:14:12.8|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0114659s
+2024-12-14 01:14:12.8|Info|FluentMigrator.Runner.MigrationRunner|59: add_enable_options_to_indexers migrating
+2024-12-14 01:14:12.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:12.8|Info|add_enable_options_to_indexers|Starting migration of Main DB to 59
+2024-12-14 01:14:12.8|Info|FluentMigrator.Runner.MigrationRunner|AlterTable Indexers
+2024-12-14 01:14:12.8|Info|FluentMigrator.Runner.MigrationRunner|=> 1.4E-06s
+2024-12-14 01:14:12.8|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn Indexers EnableRss Boolean
+2024-12-14 01:14:12.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Indexers" ADD COLUMN "EnableRss" INTEGER
+2024-12-14 01:14:12.8|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0005122s
+2024-12-14 01:14:12.8|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn Indexers EnableSearch Boolean
+2024-12-14 01:14:12.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Indexers" ADD COLUMN "EnableSearch" INTEGER
+2024-12-14 01:14:12.8|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0004962s
+2024-12-14 01:14:12.8|Info|FluentMigrator.Runner.MigrationRunner|ExecuteSqlStatement UPDATE "Indexers" SET "EnableRss" = "Enable", "EnableSearch" = "Enable"
+2024-12-14 01:14:12.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|UPDATE "Indexers" SET "EnableRss" = "Enable", "EnableSearch" = "Enable"
+2024-12-14 01:14:12.8|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0002015s
+2024-12-14 01:14:12.8|Info|FluentMigrator.Runner.MigrationRunner|UpdateData
+2024-12-14 01:14:12.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|UPDATE "Indexers" SET "EnableSearch" = 0 WHERE "Implementation" = 'Wombles'
+2024-12-14 01:14:12.8|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001516s
+2024-12-14 01:14:12.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (59, '2024-12-14T01:14:12', 'add_enable_options_to_indexers')
+2024-12-14 01:14:12.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:12.8|Info|FluentMigrator.Runner.MigrationRunner|59: add_enable_options_to_indexers migrated
+2024-12-14 01:14:12.8|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0119229s
+2024-12-14 01:14:12.8|Info|FluentMigrator.Runner.MigrationRunner|60: remove_enable_from_indexers migrating
+2024-12-14 01:14:12.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:12.8|Info|remove_enable_from_indexers|Starting migration of Main DB to 60
+2024-12-14 01:14:12.8|Info|FluentMigrator.Runner.MigrationRunner|DeleteColumn Indexers Enable
+2024-12-14 01:14:12.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "Indexers_temp" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "Name" TEXT NOT NULL, "Implementation" TEXT NOT NULL, "Settings" TEXT, "ConfigContract" TEXT, "EnableRss" INTEGER, "EnableSearch" INTEGER)
+2024-12-14 01:14:12.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "Indexers_temp" ("Id", "Name", "Implementation", "Settings", "ConfigContract", "EnableRss", "EnableSearch") SELECT "Id", "Name", "Implementation", "Settings", "ConfigContract", "EnableRss", "EnableSearch" FROM "Indexers"
+2024-12-14 01:14:12.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP TABLE "Indexers"
+2024-12-14 01:14:12.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Indexers_temp" RENAME TO "Indexers"
+2024-12-14 01:14:12.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_Indexers_Name" ON "Indexers" ("Name" ASC)
+2024-12-14 01:14:12.8|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0033715s
+2024-12-14 01:14:12.8|Info|FluentMigrator.Runner.MigrationRunner|DeleteColumn DownloadClients Protocol
+2024-12-14 01:14:12.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "DownloadClients_temp" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "Enable" INTEGER NOT NULL, "Name" TEXT NOT NULL, "Implementation" TEXT NOT NULL, "Settings" TEXT NOT NULL, "ConfigContract" TEXT NOT NULL)
+2024-12-14 01:14:12.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "DownloadClients_temp" ("Id", "Enable", "Name", "Implementation", "Settings", "ConfigContract") SELECT "Id", "Enable", "Name", "Implementation", "Settings", "ConfigContract" FROM "DownloadClients"
+2024-12-14 01:14:12.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP TABLE "DownloadClients"
+2024-12-14 01:14:12.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "DownloadClients_temp" RENAME TO "DownloadClients"
+2024-12-14 01:14:12.8|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0026966s
+2024-12-14 01:14:12.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (60, '2024-12-14T01:14:12', 'remove_enable_from_indexers')
+2024-12-14 01:14:12.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:12.8|Info|FluentMigrator.Runner.MigrationRunner|60: remove_enable_from_indexers migrated
+2024-12-14 01:14:12.8|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0141949s
+2024-12-14 01:14:12.8|Info|FluentMigrator.Runner.MigrationRunner|61: clear_bad_scene_names migrating
+2024-12-14 01:14:12.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:12.8|Info|clear_bad_scene_names|Starting migration of Main DB to 61
+2024-12-14 01:14:12.8|Info|FluentMigrator.Runner.MigrationRunner|ExecuteSqlStatement UPDATE "EpisodeFiles" SET "ReleaseGroup" = NULL , "SceneName" = NULL WHERE "ReleaseGroup" IS NULL OR "SceneName" IS NULL OR "ReleaseGroup" = 'DRONE' OR LENGTH("SceneName") <10 OR LENGTH("ReleaseGroup") > 20 OR "SceneName" NOT LIKE '%.%'
+2024-12-14 01:14:12.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|UPDATE "EpisodeFiles" SET "ReleaseGroup" = NULL , "SceneName" = NULL WHERE "ReleaseGroup" IS NULL OR "SceneName" IS NULL OR "ReleaseGroup" = 'DRONE' OR LENGTH("SceneName") <10 OR LENGTH("ReleaseGroup") > 20 OR "SceneName" NOT LIKE '%.%'
+2024-12-14 01:14:12.8|Info|FluentMigrator.Runner.MigrationRunner|=> 0.000271s
+2024-12-14 01:14:12.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (61, '2024-12-14T01:14:12', 'clear_bad_scene_names')
+2024-12-14 01:14:12.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:12.8|Info|FluentMigrator.Runner.MigrationRunner|61: clear_bad_scene_names migrated
+2024-12-14 01:14:12.8|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0095216s
+2024-12-14 01:14:12.8|Info|FluentMigrator.Runner.MigrationRunner|62: convert_quality_models migrating
+2024-12-14 01:14:12.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:12.8|Info|convert_quality_models|Starting migration of Main DB to 62
+2024-12-14 01:14:12.8|Info|FluentMigrator.Runner.MigrationRunner|PerformDBOperation
+2024-12-14 01:14:12.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Performing DB Operation
+2024-12-14 01:14:12.8|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0014676s
+2024-12-14 01:14:12.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (62, '2024-12-14T01:14:12', 'convert_quality_models')
+2024-12-14 01:14:12.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:12.8|Info|FluentMigrator.Runner.MigrationRunner|62: convert_quality_models migrated
+2024-12-14 01:14:12.8|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0112474s
+2024-12-14 01:14:12.8|Info|FluentMigrator.Runner.MigrationRunner|63: add_remotepathmappings migrating
+2024-12-14 01:14:12.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:12.8|Info|add_remotepathmappings|Starting migration of Main DB to 63
+2024-12-14 01:14:12.8|Info|FluentMigrator.Runner.MigrationRunner|CreateTable RemotePathMappings
+2024-12-14 01:14:12.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "RemotePathMappings" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "Host" TEXT NOT NULL, "RemotePath" TEXT NOT NULL, "LocalPath" TEXT NOT NULL)
+2024-12-14 01:14:12.8|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0003636s
+2024-12-14 01:14:12.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (63, '2024-12-14T01:14:12', 'add_remotepathmappings')
+2024-12-14 01:14:12.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:12.8|Info|FluentMigrator.Runner.MigrationRunner|63: add_remotepathmappings migrated
+2024-12-14 01:14:12.8|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0060865s
+2024-12-14 01:14:12.8|Info|FluentMigrator.Runner.MigrationRunner|64: remove_method_from_logs migrating
+2024-12-14 01:14:12.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:12.8|Info|remove_method_from_logs|Starting migration of Main DB to 64
+2024-12-14 01:14:12.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (64, '2024-12-14T01:14:12', 'remove_method_from_logs')
+2024-12-14 01:14:12.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:12.9|Info|FluentMigrator.Runner.MigrationRunner|64: remove_method_from_logs migrated
+2024-12-14 01:14:12.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0059458s
+2024-12-14 01:14:12.9|Info|FluentMigrator.Runner.MigrationRunner|65: make_scene_numbering_nullable migrating
+2024-12-14 01:14:12.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:12.9|Info|make_scene_numbering_nullable|Starting migration of Main DB to 65
+2024-12-14 01:14:12.9|Info|FluentMigrator.Runner.MigrationRunner|UpdateData
+2024-12-14 01:14:12.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|UPDATE "Episodes" SET "AbsoluteEpisodeNumber" = NULL WHERE "AbsoluteEpisodeNumber" = 0
+2024-12-14 01:14:12.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001708s
+2024-12-14 01:14:12.9|Info|FluentMigrator.Runner.MigrationRunner|UpdateData
+2024-12-14 01:14:12.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|UPDATE "Episodes" SET "SceneAbsoluteEpisodeNumber" = NULL WHERE "SceneAbsoluteEpisodeNumber" = 0
+2024-12-14 01:14:12.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001567s
+2024-12-14 01:14:12.9|Info|FluentMigrator.Runner.MigrationRunner|UpdateData
+2024-12-14 01:14:12.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|UPDATE "Episodes" SET "SceneSeasonNumber" = NULL, "SceneEpisodeNumber" = NULL WHERE "SceneSeasonNumber" = 0 AND "SceneEpisodeNumber" = 0
+2024-12-14 01:14:12.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.000222s
+2024-12-14 01:14:12.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (65, '2024-12-14T01:14:12', 'make_scene_numbering_nullable')
+2024-12-14 01:14:12.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:12.9|Info|FluentMigrator.Runner.MigrationRunner|65: make_scene_numbering_nullable migrated
+2024-12-14 01:14:12.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.006211s
+2024-12-14 01:14:12.9|Info|FluentMigrator.Runner.MigrationRunner|66: add_tags migrating
+2024-12-14 01:14:12.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:12.9|Info|add_tags|Starting migration of Main DB to 66
+2024-12-14 01:14:12.9|Info|FluentMigrator.Runner.MigrationRunner|CreateTable Tags
+2024-12-14 01:14:12.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "Tags" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "Label" TEXT NOT NULL)
+2024-12-14 01:14:12.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0003081s
+2024-12-14 01:14:12.9|Info|FluentMigrator.Runner.MigrationRunner|AlterTable Series
+2024-12-14 01:14:12.9|Info|FluentMigrator.Runner.MigrationRunner|=> 9E-07s
+2024-12-14 01:14:12.9|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn Series Tags String
+2024-12-14 01:14:12.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Series" ADD COLUMN "Tags" TEXT
+2024-12-14 01:14:12.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0005202s
+2024-12-14 01:14:12.9|Info|FluentMigrator.Runner.MigrationRunner|AlterTable Notifications
+2024-12-14 01:14:12.9|Info|FluentMigrator.Runner.MigrationRunner|=> 7E-07s
+2024-12-14 01:14:12.9|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn Notifications Tags String
+2024-12-14 01:14:12.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Notifications" ADD COLUMN "Tags" TEXT
+2024-12-14 01:14:12.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0004807s
+2024-12-14 01:14:12.9|Info|FluentMigrator.Runner.MigrationRunner|UpdateData
+2024-12-14 01:14:12.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|UPDATE "Series" SET "Tags" = '[]' WHERE 1 = 1
+2024-12-14 01:14:12.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001743s
+2024-12-14 01:14:12.9|Info|FluentMigrator.Runner.MigrationRunner|UpdateData
+2024-12-14 01:14:12.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|UPDATE "Notifications" SET "Tags" = '[]' WHERE 1 = 1
+2024-12-14 01:14:12.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001703s
+2024-12-14 01:14:12.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (66, '2024-12-14T01:14:12', 'add_tags')
+2024-12-14 01:14:12.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:12.9|Info|FluentMigrator.Runner.MigrationRunner|66: add_tags migrated
+2024-12-14 01:14:12.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0058989s
+2024-12-14 01:14:12.9|Info|FluentMigrator.Runner.MigrationRunner|67: add_added_to_series migrating
+2024-12-14 01:14:12.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:12.9|Info|add_added_to_series|Starting migration of Main DB to 67
+2024-12-14 01:14:12.9|Info|FluentMigrator.Runner.MigrationRunner|AlterTable Series
+2024-12-14 01:14:12.9|Info|FluentMigrator.Runner.MigrationRunner|=> 5E-07s
+2024-12-14 01:14:12.9|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn Series Added DateTime
+2024-12-14 01:14:12.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Series" ADD COLUMN "Added" DATETIME
+2024-12-14 01:14:12.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0004069s
+2024-12-14 01:14:12.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (67, '2024-12-14T01:14:12', 'add_added_to_series')
+2024-12-14 01:14:12.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:12.9|Info|FluentMigrator.Runner.MigrationRunner|67: add_added_to_series migrated
+2024-12-14 01:14:12.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0061956s
+2024-12-14 01:14:12.9|Info|FluentMigrator.Runner.MigrationRunner|68: add_release_restrictions migrating
+2024-12-14 01:14:12.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:12.9|Info|add_release_restrictions|Starting migration of Main DB to 68
+2024-12-14 01:14:12.9|Info|FluentMigrator.Runner.MigrationRunner|CreateTable Restrictions
+2024-12-14 01:14:12.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "Restrictions" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "Required" TEXT, "Preferred" TEXT, "Ignored" TEXT, "Tags" TEXT NOT NULL)
+2024-12-14 01:14:12.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0004243s
+2024-12-14 01:14:12.9|Info|FluentMigrator.Runner.MigrationRunner|PerformDBOperation
+2024-12-14 01:14:12.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Performing DB Operation
+2024-12-14 01:14:12.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0007405s
+2024-12-14 01:14:12.9|Info|FluentMigrator.Runner.MigrationRunner|FluentMigrator.Expressions.DeleteDataExpression
+2024-12-14 01:14:12.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DELETE FROM "Config" WHERE "Key" = 'releaserestrictions'
+2024-12-14 01:14:12.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0002334s
+2024-12-14 01:14:12.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (68, '2024-12-14T01:14:12', 'add_release_restrictions')
+2024-12-14 01:14:12.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:12.9|Info|FluentMigrator.Runner.MigrationRunner|68: add_release_restrictions migrated
+2024-12-14 01:14:12.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0068399s
+2024-12-14 01:14:12.9|Info|FluentMigrator.Runner.MigrationRunner|69: quality_proper migrating
+2024-12-14 01:14:12.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:12.9|Info|quality_proper|Starting migration of Main DB to 69
+2024-12-14 01:14:12.9|Info|FluentMigrator.Runner.MigrationRunner|PerformDBOperation
+2024-12-14 01:14:12.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Performing DB Operation
+2024-12-14 01:14:12.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.000588s
+2024-12-14 01:14:12.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (69, '2024-12-14T01:14:12', 'quality_proper')
+2024-12-14 01:14:12.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:12.9|Info|FluentMigrator.Runner.MigrationRunner|69: quality_proper migrated
+2024-12-14 01:14:12.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0071523s
+2024-12-14 01:14:12.9|Info|FluentMigrator.Runner.MigrationRunner|70: delay_profile migrating
+2024-12-14 01:14:12.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:12.9|Info|delay_profile|Starting migration of Main DB to 70
+2024-12-14 01:14:12.9|Info|FluentMigrator.Runner.MigrationRunner|CreateTable DelayProfiles
+2024-12-14 01:14:12.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "DelayProfiles" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "EnableUsenet" INTEGER NOT NULL, "EnableTorrent" INTEGER NOT NULL, "PreferredProtocol" INTEGER NOT NULL, "UsenetDelay" INTEGER NOT NULL, "TorrentDelay" INTEGER NOT NULL, "Order" INTEGER NOT NULL, "Tags" TEXT NOT NULL)
+2024-12-14 01:14:12.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0005509s
+2024-12-14 01:14:12.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "DelayProfiles" ("EnableUsenet", "EnableTorrent", "PreferredProtocol", "UsenetDelay", "TorrentDelay", "Order", "Tags") VALUES (1, 1, 1, 0, 0, 2147483647, '[]')
+2024-12-14 01:14:12.9|Info|FluentMigrator.Runner.MigrationRunner|PerformDBOperation
+2024-12-14 01:14:12.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Performing DB Operation
+2024-12-14 01:14:12.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0083827s
+2024-12-14 01:14:12.9|Info|FluentMigrator.Runner.MigrationRunner|DeleteColumn Profiles GrabDelay
+2024-12-14 01:14:12.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "Profiles_temp" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "Name" TEXT NOT NULL, "Cutoff" INTEGER NOT NULL, "Items" TEXT NOT NULL, "Language" INTEGER, "GrabDelayMode" INTEGER)
+2024-12-14 01:14:12.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "Profiles_temp" ("Id", "Name", "Cutoff", "Items", "Language", "GrabDelayMode") SELECT "Id", "Name", "Cutoff", "Items", "Language", "GrabDelayMode" FROM "Profiles"
+2024-12-14 01:14:12.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP TABLE "Profiles"
+2024-12-14 01:14:12.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Profiles_temp" RENAME TO "Profiles"
+2024-12-14 01:14:12.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_QualityProfiles_Name" ON "Profiles" ("Name" ASC)
+2024-12-14 01:14:12.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0036306s
+2024-12-14 01:14:12.9|Info|FluentMigrator.Runner.MigrationRunner|DeleteColumn Profiles GrabDelayMode
+2024-12-14 01:14:12.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "Profiles_temp" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "Name" TEXT NOT NULL, "Cutoff" INTEGER NOT NULL, "Items" TEXT NOT NULL, "Language" INTEGER)
+2024-12-14 01:14:12.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "Profiles_temp" ("Id", "Name", "Cutoff", "Items", "Language") SELECT "Id", "Name", "Cutoff", "Items", "Language" FROM "Profiles"
+2024-12-14 01:14:12.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP TABLE "Profiles"
+2024-12-14 01:14:12.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Profiles_temp" RENAME TO "Profiles"
+2024-12-14 01:14:12.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_QualityProfiles_Name" ON "Profiles" ("Name" ASC)
+2024-12-14 01:14:12.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0036924s
+2024-12-14 01:14:12.9|Info|FluentMigrator.Runner.MigrationRunner|-> 1 Insert operations completed in 00:00:00.0004204 taking an average of 00:00:00.0004204
+2024-12-14 01:14:12.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (70, '2024-12-14T01:14:12', 'delay_profile')
+2024-12-14 01:14:12.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:12.9|Info|FluentMigrator.Runner.MigrationRunner|70: delay_profile migrated
+2024-12-14 01:14:12.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0107006s
+2024-12-14 01:14:12.9|Info|FluentMigrator.Runner.MigrationRunner|71: unknown_quality_in_profile migrating
+2024-12-14 01:14:12.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:12.9|Info|unknown_quality_in_profile|Starting migration of Main DB to 71
+2024-12-14 01:14:12.9|Info|FluentMigrator.Runner.MigrationRunner|DeleteColumn QualityDefinitions Weight
+2024-12-14 01:14:12.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "QualityDefinitions_temp" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "Quality" INTEGER NOT NULL, "Title" TEXT NOT NULL, "MinSize" INTEGER NOT NULL, "MaxSize" INTEGER NOT NULL)
+2024-12-14 01:14:12.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "QualityDefinitions_temp" ("Id", "Quality", "Title", "MinSize", "MaxSize") SELECT "Id", "Quality", "Title", "MinSize", "MaxSize" FROM "QualityDefinitions"
+2024-12-14 01:14:12.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP TABLE "QualityDefinitions"
+2024-12-14 01:14:12.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "QualityDefinitions_temp" RENAME TO "QualityDefinitions"
+2024-12-14 01:14:12.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_QualityDefinitions_Quality" ON "QualityDefinitions" ("Quality" ASC)
+2024-12-14 01:14:12.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_QualityDefinitions_Title" ON "QualityDefinitions" ("Title" ASC)
+2024-12-14 01:14:12.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0026588s
+2024-12-14 01:14:12.9|Info|FluentMigrator.Runner.MigrationRunner|PerformDBOperation
+2024-12-14 01:14:12.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Performing DB Operation
+2024-12-14 01:14:12.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.001709s
+2024-12-14 01:14:12.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (71, '2024-12-14T01:14:12', 'unknown_quality_in_profile')
+2024-12-14 01:14:12.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:12.9|Info|FluentMigrator.Runner.MigrationRunner|71: unknown_quality_in_profile migrated
+2024-12-14 01:14:12.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0081361s
+2024-12-14 01:14:12.9|Info|FluentMigrator.Runner.MigrationRunner|72: history_downloadId migrating
+2024-12-14 01:14:12.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:12.9|Info|history_downloadId|Starting migration of Main DB to 72
+2024-12-14 01:14:12.9|Info|FluentMigrator.Runner.MigrationRunner|AlterTable History
+2024-12-14 01:14:12.9|Info|FluentMigrator.Runner.MigrationRunner|=> 6E-07s
+2024-12-14 01:14:12.9|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn History DownloadId String
+2024-12-14 01:14:12.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "History" ADD COLUMN "DownloadId" TEXT
+2024-12-14 01:14:12.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0003374s
+2024-12-14 01:14:12.9|Info|FluentMigrator.Runner.MigrationRunner|CreateIndex History (DownloadId)
+2024-12-14 01:14:12.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE INDEX "IX_History_DownloadId" ON "History" ("DownloadId" ASC)
+2024-12-14 01:14:12.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001605s
+2024-12-14 01:14:12.9|Info|FluentMigrator.Runner.MigrationRunner|PerformDBOperation
+2024-12-14 01:14:12.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Performing DB Operation
+2024-12-14 01:14:12.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0007442s
+2024-12-14 01:14:12.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (72, '2024-12-14T01:14:12', 'history_downloadId')
+2024-12-14 01:14:12.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.0|Info|FluentMigrator.Runner.MigrationRunner|72: history_downloadId migrated
+2024-12-14 01:14:13.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0071095s
+2024-12-14 01:14:13.0|Info|FluentMigrator.Runner.MigrationRunner|73: clear_ratings migrating
+2024-12-14 01:14:13.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.0|Info|clear_ratings|Starting migration of Main DB to 73
+2024-12-14 01:14:13.0|Info|FluentMigrator.Runner.MigrationRunner|UpdateData
+2024-12-14 01:14:13.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|UPDATE "Series" SET "Ratings" = '{}' WHERE 1 = 1
+2024-12-14 01:14:13.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001082s
+2024-12-14 01:14:13.0|Info|FluentMigrator.Runner.MigrationRunner|UpdateData
+2024-12-14 01:14:13.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|UPDATE "Episodes" SET "Ratings" = '{}' WHERE 1 = 1
+2024-12-14 01:14:13.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001021s
+2024-12-14 01:14:13.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (73, '2024-12-14T01:14:13', 'clear_ratings')
+2024-12-14 01:14:13.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.0|Info|FluentMigrator.Runner.MigrationRunner|73: clear_ratings migrated
+2024-12-14 01:14:13.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0063627s
+2024-12-14 01:14:13.0|Info|FluentMigrator.Runner.MigrationRunner|74: disable_eztv migrating
+2024-12-14 01:14:13.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.0|Info|disable_eztv|Starting migration of Main DB to 74
+2024-12-14 01:14:13.0|Info|FluentMigrator.Runner.MigrationRunner|ExecuteSqlStatement UPDATE "Indexers" SET "EnableRss" = false, "EnableSearch" = false WHERE "Implementation" = 'Eztv' AND "Settings" LIKE '%ezrss.it%'
+2024-12-14 01:14:13.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|UPDATE "Indexers" SET "EnableRss" = false, "EnableSearch" = false WHERE "Implementation" = 'Eztv' AND "Settings" LIKE '%ezrss.it%'
+2024-12-14 01:14:13.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0002017s
+2024-12-14 01:14:13.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (74, '2024-12-14T01:14:13', 'disable_eztv')
+2024-12-14 01:14:13.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.0|Info|FluentMigrator.Runner.MigrationRunner|74: disable_eztv migrated
+2024-12-14 01:14:13.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0065493s
+2024-12-14 01:14:13.0|Info|FluentMigrator.Runner.MigrationRunner|75: force_lib_update migrating
+2024-12-14 01:14:13.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.0|Info|force_lib_update|Starting migration of Main DB to 75
+2024-12-14 01:14:13.0|Info|FluentMigrator.Runner.MigrationRunner|UpdateData
+2024-12-14 01:14:13.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|UPDATE "ScheduledTasks" SET "LastExecution" = '2014-01-01 00:00:00' WHERE "TypeName" = 'NzbDrone.Core.Tv.Commands.RefreshSeriesCommand'
+2024-12-14 01:14:13.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001397s
+2024-12-14 01:14:13.0|Info|FluentMigrator.Runner.MigrationRunner|UpdateData
+2024-12-14 01:14:13.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|UPDATE "Series" SET "LastInfoSync" = '2014-01-01 00:00:00' WHERE 1 = 1
+2024-12-14 01:14:13.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001139s
+2024-12-14 01:14:13.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (75, '2024-12-14T01:14:13', 'force_lib_update')
+2024-12-14 01:14:13.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.0|Info|FluentMigrator.Runner.MigrationRunner|75: force_lib_update migrated
+2024-12-14 01:14:13.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.006623s
+2024-12-14 01:14:13.0|Info|FluentMigrator.Runner.MigrationRunner|76: add_users_table migrating
+2024-12-14 01:14:13.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.0|Info|add_users_table|Starting migration of Main DB to 76
+2024-12-14 01:14:13.0|Info|FluentMigrator.Runner.MigrationRunner|CreateTable Users
+2024-12-14 01:14:13.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "Users" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "Identifier" TEXT NOT NULL, "Username" TEXT NOT NULL, "Password" TEXT NOT NULL)
+2024-12-14 01:14:13.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0002149s
+2024-12-14 01:14:13.0|Info|FluentMigrator.Runner.MigrationRunner|CreateIndex Users (Identifier)
+2024-12-14 01:14:13.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_Users_Identifier" ON "Users" ("Identifier" ASC)
+2024-12-14 01:14:13.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001503s
+2024-12-14 01:14:13.0|Info|FluentMigrator.Runner.MigrationRunner|CreateIndex Users (Username)
+2024-12-14 01:14:13.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_Users_Username" ON "Users" ("Username" ASC)
+2024-12-14 01:14:13.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001475s
+2024-12-14 01:14:13.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (76, '2024-12-14T01:14:13', 'add_users_table')
+2024-12-14 01:14:13.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.0|Info|FluentMigrator.Runner.MigrationRunner|76: add_users_table migrated
+2024-12-14 01:14:13.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0064958s
+2024-12-14 01:14:13.0|Info|FluentMigrator.Runner.MigrationRunner|77: add_add_options_to_series migrating
+2024-12-14 01:14:13.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.0|Info|add_add_options_to_series|Starting migration of Main DB to 77
+2024-12-14 01:14:13.0|Info|FluentMigrator.Runner.MigrationRunner|AlterTable Series
+2024-12-14 01:14:13.0|Info|FluentMigrator.Runner.MigrationRunner|=> 8E-07s
+2024-12-14 01:14:13.0|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn Series AddOptions String
+2024-12-14 01:14:13.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Series" ADD COLUMN "AddOptions" TEXT
+2024-12-14 01:14:13.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0003335s
+2024-12-14 01:14:13.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (77, '2024-12-14T01:14:13', 'add_add_options_to_series')
+2024-12-14 01:14:13.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.0|Info|FluentMigrator.Runner.MigrationRunner|77: add_add_options_to_series migrated
+2024-12-14 01:14:13.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0066045s
+2024-12-14 01:14:13.0|Info|FluentMigrator.Runner.MigrationRunner|78: add_commands_table migrating
+2024-12-14 01:14:13.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.0|Info|add_commands_table|Starting migration of Main DB to 78
+2024-12-14 01:14:13.0|Info|FluentMigrator.Runner.MigrationRunner|CreateTable Commands
+2024-12-14 01:14:13.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "Commands" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "Name" TEXT NOT NULL, "Body" TEXT NOT NULL, "Priority" INTEGER NOT NULL, "Status" INTEGER NOT NULL, "QueuedAt" DATETIME NOT NULL, "StartedAt" DATETIME, "EndedAt" DATETIME, "Duration" TEXT, "Exception" TEXT, "Trigger" INTEGER NOT NULL)
+2024-12-14 01:14:13.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0003804s
+2024-12-14 01:14:13.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (78, '2024-12-14T01:14:13', 'add_commands_table')
+2024-12-14 01:14:13.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.0|Info|FluentMigrator.Runner.MigrationRunner|78: add_commands_table migrated
+2024-12-14 01:14:13.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0067509s
+2024-12-14 01:14:13.0|Info|FluentMigrator.Runner.MigrationRunner|79: dedupe_tags migrating
+2024-12-14 01:14:13.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.0|Info|dedupe_tags|Starting migration of Main DB to 79
+2024-12-14 01:14:13.0|Info|FluentMigrator.Runner.MigrationRunner|PerformDBOperation
+2024-12-14 01:14:13.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Performing DB Operation
+2024-12-14 01:14:13.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0469505s
+2024-12-14 01:14:13.0|Info|FluentMigrator.Runner.MigrationRunner|AlterTable Tags
+2024-12-14 01:14:13.0|Info|FluentMigrator.Runner.MigrationRunner|=> 1.8E-06s
+2024-12-14 01:14:13.0|Info|FluentMigrator.Runner.MigrationRunner|AlterColumn Tags Label String
+2024-12-14 01:14:13.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "Tags_temp" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "Label" TEXT NOT NULL)
+2024-12-14 01:14:13.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "Tags_temp" ("Id", "Label") SELECT "Id", "Label" FROM "Tags"
+2024-12-14 01:14:13.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP TABLE "Tags"
+2024-12-14 01:14:13.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Tags_temp" RENAME TO "Tags"
+2024-12-14 01:14:13.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0023569s
+2024-12-14 01:14:13.0|Info|FluentMigrator.Runner.MigrationRunner|CreateIndex Tags (Label)
+2024-12-14 01:14:13.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_Tags_Label" ON "Tags" ("Label" ASC)
+2024-12-14 01:14:13.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.000177s
+2024-12-14 01:14:13.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (79, '2024-12-14T01:14:13', 'dedupe_tags')
+2024-12-14 01:14:13.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|79: dedupe_tags migrated
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0066154s
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|81: move_dot_prefix_to_transmission_category migrating
+2024-12-14 01:14:13.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.1|Info|move_dot_prefix_to_transmission_category|Starting migration of Main DB to 81
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|PerformDBOperation
+2024-12-14 01:14:13.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Performing DB Operation
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0009141s
+2024-12-14 01:14:13.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (81, '2024-12-14T01:14:13', 'move_dot_prefix_to_transmission_category')
+2024-12-14 01:14:13.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|81: move_dot_prefix_to_transmission_category migrated
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0073623s
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|82: add_fanzub_settings migrating
+2024-12-14 01:14:13.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.1|Info|add_fanzub_settings|Starting migration of Main DB to 82
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|UpdateData
+2024-12-14 01:14:13.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|UPDATE "Indexers" SET "ConfigContract" = 'FanzubSettings' WHERE "Implementation" = 'Fanzub' AND "ConfigContract" = 'NullConfig'
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001623s
+2024-12-14 01:14:13.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (82, '2024-12-14T01:14:13', 'add_fanzub_settings')
+2024-12-14 01:14:13.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|82: add_fanzub_settings migrated
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0065307s
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|83: additonal_blacklist_columns migrating
+2024-12-14 01:14:13.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.1|Info|additonal_blacklist_columns|Starting migration of Main DB to 83
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|AlterTable Blacklist
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|=> 7E-07s
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn Blacklist Size Int64
+2024-12-14 01:14:13.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Blacklist" ADD COLUMN "Size" INTEGER
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0004116s
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|AlterTable Blacklist
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|=> 5E-07s
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn Blacklist Protocol Int32
+2024-12-14 01:14:13.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Blacklist" ADD COLUMN "Protocol" INTEGER
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0003233s
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|AlterTable Blacklist
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|=> 4E-07s
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn Blacklist Indexer String
+2024-12-14 01:14:13.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Blacklist" ADD COLUMN "Indexer" TEXT
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0003519s
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|AlterTable Blacklist
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|=> 4E-07s
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn Blacklist Message String
+2024-12-14 01:14:13.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Blacklist" ADD COLUMN "Message" TEXT
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.000345s
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|AlterTable Blacklist
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|=> 5E-07s
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn Blacklist TorrentInfoHash String
+2024-12-14 01:14:13.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Blacklist" ADD COLUMN "TorrentInfoHash" TEXT
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0003356s
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|UpdateData
+2024-12-14 01:14:13.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|UPDATE "Blacklist" SET "Protocol" = 1 WHERE 1 = 1
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001263s
+2024-12-14 01:14:13.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (83, '2024-12-14T01:14:13', 'additonal_blacklist_columns')
+2024-12-14 01:14:13.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|83: additonal_blacklist_columns migrated
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0065083s
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|84: update_quality_minmax_size migrating
+2024-12-14 01:14:13.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.1|Info|update_quality_minmax_size|Starting migration of Main DB to 84
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|AlterTable QualityDefinitions
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|=> 6E-07s
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|AlterColumn QualityDefinitions MinSize Double
+2024-12-14 01:14:13.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "QualityDefinitions_temp" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "Quality" INTEGER NOT NULL, "Title" TEXT NOT NULL, "MinSize" NUMERIC, "MaxSize" INTEGER NOT NULL)
+2024-12-14 01:14:13.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "QualityDefinitions_temp" ("Id", "Quality", "Title", "MinSize", "MaxSize") SELECT "Id", "Quality", "Title", "MinSize", "MaxSize" FROM "QualityDefinitions"
+2024-12-14 01:14:13.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP TABLE "QualityDefinitions"
+2024-12-14 01:14:13.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "QualityDefinitions_temp" RENAME TO "QualityDefinitions"
+2024-12-14 01:14:13.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_QualityDefinitions_Quality" ON "QualityDefinitions" ("Quality" ASC)
+2024-12-14 01:14:13.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_QualityDefinitions_Title" ON "QualityDefinitions" ("Title" ASC)
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0030281s
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|AlterTable QualityDefinitions
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|=> 5E-07s
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|AlterColumn QualityDefinitions MaxSize Double
+2024-12-14 01:14:13.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "QualityDefinitions_temp" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "Quality" INTEGER NOT NULL, "Title" TEXT NOT NULL, "MinSize" NUMERIC, "MaxSize" NUMERIC)
+2024-12-14 01:14:13.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "QualityDefinitions_temp" ("Id", "Quality", "Title", "MinSize", "MaxSize") SELECT "Id", "Quality", "Title", "MinSize", "MaxSize" FROM "QualityDefinitions"
+2024-12-14 01:14:13.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP TABLE "QualityDefinitions"
+2024-12-14 01:14:13.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "QualityDefinitions_temp" RENAME TO "QualityDefinitions"
+2024-12-14 01:14:13.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_QualityDefinitions_Quality" ON "QualityDefinitions" ("Quality" ASC)
+2024-12-14 01:14:13.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_QualityDefinitions_Title" ON "QualityDefinitions" ("Title" ASC)
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0030964s
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|ExecuteSqlStatement UPDATE "QualityDefinitions" SET "MaxSize" = NULL WHERE "Quality" = 10 OR "MaxSize" = 0
+2024-12-14 01:14:13.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|UPDATE "QualityDefinitions" SET "MaxSize" = NULL WHERE "Quality" = 10 OR "MaxSize" = 0
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001383s
+2024-12-14 01:14:13.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (84, '2024-12-14T01:14:13', 'update_quality_minmax_size')
+2024-12-14 01:14:13.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|84: update_quality_minmax_size migrated
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0065012s
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|85: expand_transmission_urlbase migrating
+2024-12-14 01:14:13.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.1|Info|expand_transmission_urlbase|Starting migration of Main DB to 85
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|PerformDBOperation
+2024-12-14 01:14:13.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Performing DB Operation
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0009373s
+2024-12-14 01:14:13.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (85, '2024-12-14T01:14:13', 'expand_transmission_urlbase')
+2024-12-14 01:14:13.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|85: expand_transmission_urlbase migrated
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0072823s
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|86: pushbullet_device_ids migrating
+2024-12-14 01:14:13.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.1|Info|pushbullet_device_ids|Starting migration of Main DB to 86
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|PerformDBOperation
+2024-12-14 01:14:13.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Performing DB Operation
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.000792s
+2024-12-14 01:14:13.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (86, '2024-12-14T01:14:13', 'pushbullet_device_ids')
+2024-12-14 01:14:13.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|86: pushbullet_device_ids migrated
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0072334s
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|87: remove_eztv migrating
+2024-12-14 01:14:13.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.1|Info|remove_eztv|Starting migration of Main DB to 87
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|FluentMigrator.Expressions.DeleteDataExpression
+2024-12-14 01:14:13.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DELETE FROM "Indexers" WHERE "Implementation" = 'Eztv'
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001319s
+2024-12-14 01:14:13.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (87, '2024-12-14T01:14:13', 'remove_eztv')
+2024-12-14 01:14:13.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|87: remove_eztv migrated
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0064491s
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|88: pushbullet_devices_channels_list migrating
+2024-12-14 01:14:13.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.1|Info|pushbullet_devices_channels_list|Starting migration of Main DB to 88
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|PerformDBOperation
+2024-12-14 01:14:13.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Performing DB Operation
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0009374s
+2024-12-14 01:14:13.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (88, '2024-12-14T01:14:13', 'pushbullet_devices_channels_list')
+2024-12-14 01:14:13.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|88: pushbullet_devices_channels_list migrated
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0072749s
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|89: add_on_rename_to_notifcations migrating
+2024-12-14 01:14:13.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.1|Info|add_on_rename_to_notifcations|Starting migration of Main DB to 89
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|AlterTable Notifications
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|=> 7E-07s
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn Notifications OnRename Boolean
+2024-12-14 01:14:13.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Notifications" ADD COLUMN "OnRename" INTEGER
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0004143s
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|ExecuteSqlStatement UPDATE "Notifications" SET "OnRename" = "OnDownload" WHERE "Implementation" IN ('PlexServer', 'Xbmc', 'MediaBrowser')
+2024-12-14 01:14:13.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|UPDATE "Notifications" SET "OnRename" = "OnDownload" WHERE "Implementation" IN ('PlexServer', 'Xbmc', 'MediaBrowser')
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.000165s
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|ExecuteSqlStatement UPDATE "Notifications" SET "OnRename" = false WHERE "Implementation" NOT IN ('PlexServer', 'Xbmc', 'MediaBrowser')
+2024-12-14 01:14:13.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|UPDATE "Notifications" SET "OnRename" = false WHERE "Implementation" NOT IN ('PlexServer', 'Xbmc', 'MediaBrowser')
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001541s
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|AlterTable Notifications
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|=> 4E-07s
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|AlterColumn Notifications OnRename Boolean
+2024-12-14 01:14:13.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "Notifications_temp" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "Name" TEXT NOT NULL, "OnGrab" INTEGER NOT NULL, "OnDownload" INTEGER NOT NULL, "Settings" TEXT NOT NULL, "Implementation" TEXT NOT NULL, "ConfigContract" TEXT, "OnUpgrade" INTEGER, "Tags" TEXT, "OnRename" INTEGER NOT NULL)
+2024-12-14 01:14:13.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "Notifications_temp" ("Id", "Name", "OnGrab", "OnDownload", "Settings", "Implementation", "ConfigContract", "OnUpgrade", "Tags", "OnRename") SELECT "Id", "Name", "OnGrab", "OnDownload", "Settings", "Implementation", "ConfigContract", "OnUpgrade", "Tags", "OnRename" FROM "Notifications"
+2024-12-14 01:14:13.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP TABLE "Notifications"
+2024-12-14 01:14:13.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Notifications_temp" RENAME TO "Notifications"
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0050023s
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|UpdateData
+2024-12-14 01:14:13.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|UPDATE "Notifications" SET "OnGrab" = 0 WHERE "Implementation" = 'PlexServer'
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001568s
+2024-12-14 01:14:13.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (89, '2024-12-14T01:14:13', 'add_on_rename_to_notifcations')
+2024-12-14 01:14:13.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|89: add_on_rename_to_notifcations migrated
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0065255s
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|90: update_kickass_url migrating
+2024-12-14 01:14:13.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.1|Info|update_kickass_url|Starting migration of Main DB to 90
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|ExecuteSqlStatement UPDATE "Indexers" SET "Settings" = Replace("Settings", 'kickass.so', 'kat.cr') WHERE "Implementation" = 'KickassTorrents';UPDATE "Indexers" SET "Settings" = Replace("Settings", 'kickass.to', 'kat.cr') WHERE "Implementation" = 'KickassTorrents';UPDATE "Indexers" SET "Settings" = Replace("Settings", 'http://', 'https://') WHERE "Implementation" = 'KickassTorrents';
+2024-12-14 01:14:13.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|UPDATE "Indexers" SET "Settings" = Replace("Settings", 'kickass.so', 'kat.cr') WHERE "Implementation" = 'KickassTorrents';UPDATE "Indexers" SET "Settings" = Replace("Settings", 'kickass.to', 'kat.cr') WHERE "Implementation" = 'KickassTorrents';UPDATE "Indexers" SET "Settings" = Replace("Settings", 'http://', 'https://') WHERE "Implementation" = 'KickassTorrents';
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0002456s
+2024-12-14 01:14:13.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (90, '2024-12-14T01:14:13', 'update_kickass_url')
+2024-12-14 01:14:13.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|90: update_kickass_url migrated
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0066186s
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|91: added_indexerstatus migrating
+2024-12-14 01:14:13.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.1|Info|added_indexerstatus|Starting migration of Main DB to 91
+2024-12-14 01:14:13.1|Info|FluentMigrator.Runner.MigrationRunner|CreateTable IndexerStatus
+2024-12-14 01:14:13.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "IndexerStatus" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "IndexerId" INTEGER NOT NULL, "InitialFailure" DATETIME, "MostRecentFailure" DATETIME, "EscalationLevel" INTEGER NOT NULL, "DisabledTill" DATETIME, "LastRssSyncReleaseInfo" TEXT)
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0002819s
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|CreateIndex IndexerStatus (IndexerId)
+2024-12-14 01:14:13.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_IndexerStatus_IndexerId" ON "IndexerStatus" ("IndexerId" ASC)
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0002198s
+2024-12-14 01:14:13.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (91, '2024-12-14T01:14:13', 'added_indexerstatus')
+2024-12-14 01:14:13.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|91: added_indexerstatus migrated
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0066431s
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|92: add_unverifiedscenenumbering migrating
+2024-12-14 01:14:13.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.2|Info|add_unverifiedscenenumbering|Starting migration of Main DB to 92
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|AlterTable Episodes
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|=> 8E-07s
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn Episodes UnverifiedSceneNumbering Boolean
+2024-12-14 01:14:13.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Episodes" ADD COLUMN "UnverifiedSceneNumbering" INTEGER NOT NULL DEFAULT 0
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0004229s
+2024-12-14 01:14:13.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (92, '2024-12-14T01:14:13', 'add_unverifiedscenenumbering')
+2024-12-14 01:14:13.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|92: add_unverifiedscenenumbering migrated
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0068914s
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|93: naming_config_replace_illegal_characters migrating
+2024-12-14 01:14:13.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.2|Info|naming_config_replace_illegal_characters|Starting migration of Main DB to 93
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|AlterTable NamingConfig
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|=> 4E-07s
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn NamingConfig ReplaceIllegalCharacters Boolean
+2024-12-14 01:14:13.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "NamingConfig" ADD COLUMN "ReplaceIllegalCharacters" INTEGER NOT NULL DEFAULT 1
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0003603s
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|UpdateData
+2024-12-14 01:14:13.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|UPDATE "NamingConfig" SET "ReplaceIllegalCharacters" = 1 WHERE 1 = 1
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001252s
+2024-12-14 01:14:13.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (93, '2024-12-14T01:14:13', 'naming_config_replace_illegal_characters')
+2024-12-14 01:14:13.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|93: naming_config_replace_illegal_characters migrated
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0064147s
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|94: add_tvmazeid migrating
+2024-12-14 01:14:13.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.2|Info|add_tvmazeid|Starting migration of Main DB to 94
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|AlterTable Series
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|=> 7E-07s
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn Series TvMazeId Int32
+2024-12-14 01:14:13.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Series" ADD COLUMN "TvMazeId" INTEGER NOT NULL DEFAULT 0
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0004569s
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|CreateIndex Series (TvMazeId)
+2024-12-14 01:14:13.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE INDEX "IX_Series_TvMazeId" ON "Series" ("TvMazeId" ASC)
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001759s
+2024-12-14 01:14:13.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (94, '2024-12-14T01:14:13', 'add_tvmazeid')
+2024-12-14 01:14:13.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|94: add_tvmazeid migrated
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0065678s
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|95: add_additional_episodes_index migrating
+2024-12-14 01:14:13.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.2|Info|add_additional_episodes_index|Starting migration of Main DB to 95
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|CreateIndex Episodes (SeriesId, SeasonNumber, EpisodeNumber)
+2024-12-14 01:14:13.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE INDEX "IX_Episodes_SeriesId_SeasonNumber_EpisodeNumber" ON "Episodes" ("SeriesId" ASC, "SeasonNumber" ASC, "EpisodeNumber" ASC)
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001944s
+2024-12-14 01:14:13.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (95, '2024-12-14T01:14:13', 'add_additional_episodes_index')
+2024-12-14 01:14:13.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|95: add_additional_episodes_index migrated
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0065442s
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|96: disable_kickass migrating
+2024-12-14 01:14:13.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.2|Info|disable_kickass|Starting migration of Main DB to 96
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|ExecuteSqlStatement UPDATE "Indexers" SET "EnableRss" = false, "EnableSearch" = false, "Settings" = Replace("Settings", 'https://kat.cr', '') WHERE "Implementation" = 'KickassTorrents' AND "Settings" LIKE '%kat.cr%';
+2024-12-14 01:14:13.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|UPDATE "Indexers" SET "EnableRss" = false, "EnableSearch" = false, "Settings" = Replace("Settings", 'https://kat.cr', '') WHERE "Implementation" = 'KickassTorrents' AND "Settings" LIKE '%kat.cr%';
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001894s
+2024-12-14 01:14:13.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (96, '2024-12-14T01:14:13', 'disable_kickass')
+2024-12-14 01:14:13.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|96: disable_kickass migrated
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0064919s
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|97: add_reason_to_pending_releases migrating
+2024-12-14 01:14:13.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.2|Info|add_reason_to_pending_releases|Starting migration of Main DB to 97
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|AlterTable PendingReleases
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|=> 5E-07s
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn PendingReleases Reason Int32
+2024-12-14 01:14:13.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "PendingReleases" ADD COLUMN "Reason" INTEGER NOT NULL DEFAULT 0
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.000423s
+2024-12-14 01:14:13.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (97, '2024-12-14T01:14:13', 'add_reason_to_pending_releases')
+2024-12-14 01:14:13.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|97: add_reason_to_pending_releases migrated
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0069874s
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|98: remove_titans_of_tv migrating
+2024-12-14 01:14:13.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.2|Info|remove_titans_of_tv|Starting migration of Main DB to 98
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|FluentMigrator.Expressions.DeleteDataExpression
+2024-12-14 01:14:13.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DELETE FROM "Indexers" WHERE "Implementation" = 'TitansOfTv'
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001318s
+2024-12-14 01:14:13.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (98, '2024-12-14T01:14:13', 'remove_titans_of_tv')
+2024-12-14 01:14:13.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|98: remove_titans_of_tv migrated
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0064461s
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|99: extra_and_subtitle_files migrating
+2024-12-14 01:14:13.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.2|Info|extra_and_subtitle_files|Starting migration of Main DB to 99
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|CreateTable ExtraFiles
+2024-12-14 01:14:13.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "ExtraFiles" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "SeriesId" INTEGER NOT NULL, "SeasonNumber" INTEGER NOT NULL, "EpisodeFileId" INTEGER NOT NULL, "RelativePath" TEXT NOT NULL, "Extension" TEXT NOT NULL, "Added" DATETIME NOT NULL, "LastUpdated" DATETIME NOT NULL)
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0003583s
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|CreateTable SubtitleFiles
+2024-12-14 01:14:13.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "SubtitleFiles" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "SeriesId" INTEGER NOT NULL, "SeasonNumber" INTEGER NOT NULL, "EpisodeFileId" INTEGER NOT NULL, "RelativePath" TEXT NOT NULL, "Extension" TEXT NOT NULL, "Added" DATETIME NOT NULL, "LastUpdated" DATETIME NOT NULL, "Language" INTEGER NOT NULL)
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.000371s
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|AlterTable MetadataFiles
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|=> 6E-07s
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn MetadataFiles Added DateTime
+2024-12-14 01:14:13.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "MetadataFiles" ADD COLUMN "Added" DATETIME
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.00047s
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn MetadataFiles Extension String
+2024-12-14 01:14:13.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "MetadataFiles" ADD COLUMN "Extension" TEXT
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0004408s
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|ExecuteSqlStatement DELETE FROM "MetadataFiles" WHERE "RelativePath" NOT LIKE '%.%'
+2024-12-14 01:14:13.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DELETE FROM "MetadataFiles" WHERE "RelativePath" NOT LIKE '%.%'
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001543s
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|PerformDBOperation
+2024-12-14 01:14:13.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Performing DB Operation
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0008928s
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|AlterTable MetadataFiles
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|=> 6E-07s
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|AlterColumn MetadataFiles Extension String
+2024-12-14 01:14:13.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "MetadataFiles_temp" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "SeriesId" INTEGER NOT NULL, "Consumer" TEXT NOT NULL, "Type" INTEGER NOT NULL, "RelativePath" TEXT NOT NULL, "LastUpdated" DATETIME NOT NULL, "SeasonNumber" INTEGER, "EpisodeFileId" INTEGER, "Hash" TEXT, "Added" DATETIME, "Extension" TEXT NOT NULL)
+2024-12-14 01:14:13.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "MetadataFiles_temp" ("Id", "SeriesId", "Consumer", "Type", "RelativePath", "LastUpdated", "SeasonNumber", "EpisodeFileId", "Hash", "Added", "Extension") SELECT "Id", "SeriesId", "Consumer", "Type", "RelativePath", "LastUpdated", "SeasonNumber", "EpisodeFileId", "Hash", "Added", "Extension" FROM "MetadataFiles"
+2024-12-14 01:14:13.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP TABLE "MetadataFiles"
+2024-12-14 01:14:13.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "MetadataFiles_temp" RENAME TO "MetadataFiles"
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.003231s
+2024-12-14 01:14:13.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (99, '2024-12-14T01:14:13', 'extra_and_subtitle_files')
+2024-12-14 01:14:13.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|99: extra_and_subtitle_files migrated
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0099429s
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|100: add_scene_season_number migrating
+2024-12-14 01:14:13.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.2|Info|add_scene_season_number|Starting migration of Main DB to 100
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|AlterTable SceneMappings
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|=> 7E-07s
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|AlterColumn SceneMappings SeasonNumber Int32
+2024-12-14 01:14:13.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "SceneMappings_temp" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "TvdbId" INTEGER NOT NULL, "SeasonNumber" INTEGER, "SearchTerm" TEXT NOT NULL, "ParseTerm" TEXT NOT NULL, "Title" TEXT, "Type" TEXT)
+2024-12-14 01:14:13.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "SceneMappings_temp" ("Id", "TvdbId", "SeasonNumber", "SearchTerm", "ParseTerm", "Title", "Type") SELECT "Id", "TvdbId", "SeasonNumber", "SearchTerm", "ParseTerm", "Title", "Type" FROM "SceneMappings"
+2024-12-14 01:14:13.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP TABLE "SceneMappings"
+2024-12-14 01:14:13.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "SceneMappings_temp" RENAME TO "SceneMappings"
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0030452s
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|AlterTable SceneMappings
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|=> 6E-07s
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn SceneMappings SceneSeasonNumber Int32
+2024-12-14 01:14:13.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "SceneMappings" ADD COLUMN "SceneSeasonNumber" INTEGER
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0004433s
+2024-12-14 01:14:13.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (100, '2024-12-14T01:14:13', 'add_scene_season_number')
+2024-12-14 01:14:13.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|100: add_scene_season_number migrated
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0073017s
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|101: add_ultrahd_quality_in_profiles migrating
+2024-12-14 01:14:13.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.2|Info|add_ultrahd_quality_in_profiles|Starting migration of Main DB to 101
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|PerformDBOperation
+2024-12-14 01:14:13.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Performing DB Operation
+2024-12-14 01:14:13.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0009451s
+2024-12-14 01:14:13.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (101, '2024-12-14T01:14:13', 'add_ultrahd_quality_in_profiles')
+2024-12-14 01:14:13.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.3|Info|FluentMigrator.Runner.MigrationRunner|101: add_ultrahd_quality_in_profiles migrated
+2024-12-14 01:14:13.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0106607s
+2024-12-14 01:14:13.3|Info|FluentMigrator.Runner.MigrationRunner|102: add_language_to_episodeFiles_history_and_blacklist migrating
+2024-12-14 01:14:13.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.3|Info|add_language_to_episodeFiles_history_and_blacklist|Starting migration of Main DB to 102
+2024-12-14 01:14:13.3|Info|FluentMigrator.Runner.MigrationRunner|AlterTable EpisodeFiles
+2024-12-14 01:14:13.3|Info|FluentMigrator.Runner.MigrationRunner|=> 1E-06s
+2024-12-14 01:14:13.3|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn EpisodeFiles Language Int32
+2024-12-14 01:14:13.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "EpisodeFiles" ADD COLUMN "Language" INTEGER NOT NULL DEFAULT 0
+2024-12-14 01:14:13.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0005375s
+2024-12-14 01:14:13.3|Info|FluentMigrator.Runner.MigrationRunner|AlterTable History
+2024-12-14 01:14:13.3|Info|FluentMigrator.Runner.MigrationRunner|=> 6E-07s
+2024-12-14 01:14:13.3|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn History Language Int32
+2024-12-14 01:14:13.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "History" ADD COLUMN "Language" INTEGER NOT NULL DEFAULT 0
+2024-12-14 01:14:13.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.000409s
+2024-12-14 01:14:13.3|Info|FluentMigrator.Runner.MigrationRunner|AlterTable Blacklist
+2024-12-14 01:14:13.3|Info|FluentMigrator.Runner.MigrationRunner|=> 6E-07s
+2024-12-14 01:14:13.3|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn Blacklist Language Int32
+2024-12-14 01:14:13.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Blacklist" ADD COLUMN "Language" INTEGER NOT NULL DEFAULT 0
+2024-12-14 01:14:13.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0004091s
+2024-12-14 01:14:13.3|Info|FluentMigrator.Runner.MigrationRunner|PerformDBOperation
+2024-12-14 01:14:13.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Performing DB Operation
+2024-12-14 01:14:13.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0039095s
+2024-12-14 01:14:13.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (102, '2024-12-14T01:14:13', 'add_language_to_episodeFiles_history_and_blacklist')
+2024-12-14 01:14:13.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.3|Info|FluentMigrator.Runner.MigrationRunner|102: add_language_to_episodeFiles_history_and_blacklist migrated
+2024-12-14 01:14:13.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.01344s
+2024-12-14 01:14:13.3|Info|FluentMigrator.Runner.MigrationRunner|103: fix_metadata_file_extensions migrating
+2024-12-14 01:14:13.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.3|Info|fix_metadata_file_extensions|Starting migration of Main DB to 103
+2024-12-14 01:14:13.3|Info|FluentMigrator.Runner.MigrationRunner|PerformDBOperation
+2024-12-14 01:14:13.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Performing DB Operation
+2024-12-14 01:14:13.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0007562s
+2024-12-14 01:14:13.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (103, '2024-12-14T01:14:13', 'fix_metadata_file_extensions')
+2024-12-14 01:14:13.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.3|Info|FluentMigrator.Runner.MigrationRunner|103: fix_metadata_file_extensions migrated
+2024-12-14 01:14:13.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0073108s
+2024-12-14 01:14:13.3|Info|FluentMigrator.Runner.MigrationRunner|104: remove_kickass migrating
+2024-12-14 01:14:13.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.3|Info|remove_kickass|Starting migration of Main DB to 104
+2024-12-14 01:14:13.3|Info|FluentMigrator.Runner.MigrationRunner|FluentMigrator.Expressions.DeleteDataExpression
+2024-12-14 01:14:13.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DELETE FROM "Indexers" WHERE "Implementation" = 'KickassTorrents'
+2024-12-14 01:14:13.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001839s
+2024-12-14 01:14:13.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (104, '2024-12-14T01:14:13', 'remove_kickass')
+2024-12-14 01:14:13.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.3|Info|FluentMigrator.Runner.MigrationRunner|104: remove_kickass migrated
+2024-12-14 01:14:13.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0110036s
+2024-12-14 01:14:13.3|Info|FluentMigrator.Runner.MigrationRunner|105: rename_torrent_downloadstation migrating
+2024-12-14 01:14:13.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.3|Info|rename_torrent_downloadstation|Starting migration of Main DB to 105
+2024-12-14 01:14:13.3|Info|FluentMigrator.Runner.MigrationRunner|UpdateData
+2024-12-14 01:14:13.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|UPDATE "DownloadClients" SET "Implementation" = 'TorrentDownloadStation' WHERE "Implementation" = 'DownloadStation'
+2024-12-14 01:14:13.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0002481s
+2024-12-14 01:14:13.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (105, '2024-12-14T01:14:13', 'rename_torrent_downloadstation')
+2024-12-14 01:14:13.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.3|Info|FluentMigrator.Runner.MigrationRunner|105: rename_torrent_downloadstation migrated
+2024-12-14 01:14:13.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0109381s
+2024-12-14 01:14:13.3|Info|FluentMigrator.Runner.MigrationRunner|106: update_btn_url migrating
+2024-12-14 01:14:13.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.3|Info|update_btn_url|Starting migration of Main DB to 106
+2024-12-14 01:14:13.3|Info|FluentMigrator.Runner.MigrationRunner|ExecuteSqlStatement UPDATE "Indexers" SET "Settings" = Replace("Settings", 'api.btnapps.net', 'api.broadcasthe.net') WHERE "Implementation" = 'BroadcastheNet';
+2024-12-14 01:14:13.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|UPDATE "Indexers" SET "Settings" = Replace("Settings", 'api.btnapps.net', 'api.broadcasthe.net') WHERE "Implementation" = 'BroadcastheNet';
+2024-12-14 01:14:13.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0002078s
+2024-12-14 01:14:13.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (106, '2024-12-14T01:14:13', 'update_btn_url')
+2024-12-14 01:14:13.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.3|Info|FluentMigrator.Runner.MigrationRunner|106: update_btn_url migrated
+2024-12-14 01:14:13.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0107636s
+2024-12-14 01:14:13.3|Info|FluentMigrator.Runner.MigrationRunner|107: remove_wombles migrating
+2024-12-14 01:14:13.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.3|Info|remove_wombles|Starting migration of Main DB to 107
+2024-12-14 01:14:13.3|Info|FluentMigrator.Runner.MigrationRunner|FluentMigrator.Expressions.DeleteDataExpression
+2024-12-14 01:14:13.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DELETE FROM "Indexers" WHERE "Implementation" = 'Wombles'
+2024-12-14 01:14:13.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001503s
+2024-12-14 01:14:13.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (107, '2024-12-14T01:14:13', 'remove_wombles')
+2024-12-14 01:14:13.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.3|Info|FluentMigrator.Runner.MigrationRunner|107: remove_wombles migrated
+2024-12-14 01:14:13.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0110186s
+2024-12-14 01:14:13.3|Info|FluentMigrator.Runner.MigrationRunner|108: fix_extra_file_extension migrating
+2024-12-14 01:14:13.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.3|Info|fix_extra_file_extension|Starting migration of Main DB to 108
+2024-12-14 01:14:13.3|Info|FluentMigrator.Runner.MigrationRunner|ExecuteSqlStatement DELETE FROM "ExtraFiles" WHERE TRIM("Extension") = ''
+2024-12-14 01:14:13.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DELETE FROM "ExtraFiles" WHERE TRIM("Extension") = ''
+2024-12-14 01:14:13.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001424s
+2024-12-14 01:14:13.3|Info|FluentMigrator.Runner.MigrationRunner|PerformDBOperation
+2024-12-14 01:14:13.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Performing DB Operation
+2024-12-14 01:14:13.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0008542s
+2024-12-14 01:14:13.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (108, '2024-12-14T01:14:13', 'fix_extra_file_extension')
+2024-12-14 01:14:13.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.3|Info|FluentMigrator.Runner.MigrationRunner|108: fix_extra_file_extension migrated
+2024-12-14 01:14:13.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0073282s
+2024-12-14 01:14:13.3|Info|FluentMigrator.Runner.MigrationRunner|109: import_extra_files migrating
+2024-12-14 01:14:13.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.3|Info|import_extra_files|Starting migration of Main DB to 109
+2024-12-14 01:14:13.3|Info|FluentMigrator.Runner.MigrationRunner|PerformDBOperation
+2024-12-14 01:14:13.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Performing DB Operation
+2024-12-14 01:14:13.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0005287s
+2024-12-14 01:14:13.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (109, '2024-12-14T01:14:13', 'import_extra_files')
+2024-12-14 01:14:13.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.3|Info|FluentMigrator.Runner.MigrationRunner|109: import_extra_files migrated
+2024-12-14 01:14:13.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0069735s
+2024-12-14 01:14:13.3|Info|FluentMigrator.Runner.MigrationRunner|110: fix_extra_files_config migrating
+2024-12-14 01:14:13.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.3|Info|fix_extra_files_config|Starting migration of Main DB to 110
+2024-12-14 01:14:13.3|Info|FluentMigrator.Runner.MigrationRunner|PerformDBOperation
+2024-12-14 01:14:13.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Performing DB Operation
+2024-12-14 01:14:13.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0003284s
+2024-12-14 01:14:13.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (110, '2024-12-14T01:14:13', 'fix_extra_files_config')
+2024-12-14 01:14:13.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.3|Info|FluentMigrator.Runner.MigrationRunner|110: fix_extra_files_config migrated
+2024-12-14 01:14:13.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.006611s
+2024-12-14 01:14:13.3|Info|FluentMigrator.Runner.MigrationRunner|111: create_language_profiles migrating
+2024-12-14 01:14:13.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.3|Info|create_language_profiles|Starting migration of Main DB to 111
+2024-12-14 01:14:13.3|Info|FluentMigrator.Runner.MigrationRunner|CreateTable LanguageProfiles
+2024-12-14 01:14:13.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "LanguageProfiles" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "Name" TEXT NOT NULL, "Languages" TEXT NOT NULL, "Cutoff" INTEGER NOT NULL)
+2024-12-14 01:14:13.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0002849s
+2024-12-14 01:14:13.3|Info|FluentMigrator.Runner.MigrationRunner|CreateIndex LanguageProfiles (Name)
+2024-12-14 01:14:13.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_LanguageProfiles_Name" ON "LanguageProfiles" ("Name" ASC)
+2024-12-14 01:14:13.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001782s
+2024-12-14 01:14:13.3|Info|FluentMigrator.Runner.MigrationRunner|AlterTable Series
+2024-12-14 01:14:13.3|Info|FluentMigrator.Runner.MigrationRunner|=> 7E-07s
+2024-12-14 01:14:13.3|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn Series LanguageProfileId Int32
+2024-12-14 01:14:13.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Series" ADD COLUMN "LanguageProfileId" INTEGER NOT NULL DEFAULT 1
+2024-12-14 01:14:13.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0005448s
+2024-12-14 01:14:13.4|Info|FluentMigrator.Runner.MigrationRunner|PerformDBOperation
+2024-12-14 01:14:13.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Performing DB Operation
+2024-12-14 01:14:13.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0053466s
+2024-12-14 01:14:13.4|Info|FluentMigrator.Runner.MigrationRunner|DeleteColumn Profiles Language
+2024-12-14 01:14:13.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "Profiles_temp" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "Name" TEXT NOT NULL, "Cutoff" INTEGER NOT NULL, "Items" TEXT NOT NULL)
+2024-12-14 01:14:13.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "Profiles_temp" ("Id", "Name", "Cutoff", "Items") SELECT "Id", "Name", "Cutoff", "Items" FROM "Profiles"
+2024-12-14 01:14:13.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP TABLE "Profiles"
+2024-12-14 01:14:13.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Profiles_temp" RENAME TO "Profiles"
+2024-12-14 01:14:13.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_QualityProfiles_Name" ON "Profiles" ("Name" ASC)
+2024-12-14 01:14:13.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0028111s
+2024-12-14 01:14:13.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (111, '2024-12-14T01:14:13', 'create_language_profiles')
+2024-12-14 01:14:13.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.4|Info|FluentMigrator.Runner.MigrationRunner|111: create_language_profiles migrated
+2024-12-14 01:14:13.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0092878s
+2024-12-14 01:14:13.4|Info|FluentMigrator.Runner.MigrationRunner|112: added_regex_to_scenemapping migrating
+2024-12-14 01:14:13.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.4|Info|added_regex_to_scenemapping|Starting migration of Main DB to 112
+2024-12-14 01:14:13.4|Info|FluentMigrator.Runner.MigrationRunner|AlterTable SceneMappings
+2024-12-14 01:14:13.4|Info|FluentMigrator.Runner.MigrationRunner|=> 6E-07s
+2024-12-14 01:14:13.4|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn SceneMappings FilterRegex String
+2024-12-14 01:14:13.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "SceneMappings" ADD COLUMN "FilterRegex" TEXT
+2024-12-14 01:14:13.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0004042s
+2024-12-14 01:14:13.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (112, '2024-12-14T01:14:13', 'added_regex_to_scenemapping')
+2024-12-14 01:14:13.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.4|Info|FluentMigrator.Runner.MigrationRunner|112: added_regex_to_scenemapping migrated
+2024-12-14 01:14:13.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0067291s
+2024-12-14 01:14:13.4|Info|FluentMigrator.Runner.MigrationRunner|113: consolidate_indexer_baseurl migrating
+2024-12-14 01:14:13.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.4|Info|consolidate_indexer_baseurl|Starting migration of Main DB to 113
+2024-12-14 01:14:13.4|Info|FluentMigrator.Runner.MigrationRunner|PerformDBOperation
+2024-12-14 01:14:13.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Performing DB Operation
+2024-12-14 01:14:13.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0009133s
+2024-12-14 01:14:13.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (113, '2024-12-14T01:14:13', 'consolidate_indexer_baseurl')
+2024-12-14 01:14:13.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.4|Info|FluentMigrator.Runner.MigrationRunner|113: consolidate_indexer_baseurl migrated
+2024-12-14 01:14:13.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0072336s
+2024-12-14 01:14:13.4|Info|FluentMigrator.Runner.MigrationRunner|114: rename_indexer_status_id migrating
+2024-12-14 01:14:13.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.4|Info|rename_indexer_status_id|Starting migration of Main DB to 114
+2024-12-14 01:14:13.4|Info|FluentMigrator.Runner.MigrationRunner|RenameColumn IndexerStatus IndexerId to ProviderId
+2024-12-14 01:14:13.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "IndexerStatus_temp" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "ProviderId" INTEGER NOT NULL, "InitialFailure" DATETIME, "MostRecentFailure" DATETIME, "EscalationLevel" INTEGER NOT NULL, "DisabledTill" DATETIME, "LastRssSyncReleaseInfo" TEXT)
+2024-12-14 01:14:13.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "IndexerStatus_temp" ("Id", "ProviderId", "InitialFailure", "MostRecentFailure", "EscalationLevel", "DisabledTill", "LastRssSyncReleaseInfo") SELECT "Id", "IndexerId", "InitialFailure", "MostRecentFailure", "EscalationLevel", "DisabledTill", "LastRssSyncReleaseInfo" FROM "IndexerStatus"
+2024-12-14 01:14:13.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP TABLE "IndexerStatus"
+2024-12-14 01:14:13.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "IndexerStatus_temp" RENAME TO "IndexerStatus"
+2024-12-14 01:14:13.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_IndexerStatus_ProviderId" ON "IndexerStatus" ("ProviderId" ASC)
+2024-12-14 01:14:13.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0060939s
+2024-12-14 01:14:13.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (114, '2024-12-14T01:14:13', 'rename_indexer_status_id')
+2024-12-14 01:14:13.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.4|Info|FluentMigrator.Runner.MigrationRunner|114: rename_indexer_status_id migrated
+2024-12-14 01:14:13.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0125176s
+2024-12-14 01:14:13.4|Info|FluentMigrator.Runner.MigrationRunner|115: add_downloadclient_status migrating
+2024-12-14 01:14:13.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.4|Info|add_downloadclient_status|Starting migration of Main DB to 115
+2024-12-14 01:14:13.4|Info|FluentMigrator.Runner.MigrationRunner|CreateTable DownloadClientStatus
+2024-12-14 01:14:13.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "DownloadClientStatus" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "ProviderId" INTEGER NOT NULL, "InitialFailure" DATETIME, "MostRecentFailure" DATETIME, "EscalationLevel" INTEGER NOT NULL, "DisabledTill" DATETIME)
+2024-12-14 01:14:13.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0002477s
+2024-12-14 01:14:13.4|Info|FluentMigrator.Runner.MigrationRunner|CreateIndex DownloadClientStatus (ProviderId)
+2024-12-14 01:14:13.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_DownloadClientStatus_ProviderId" ON "DownloadClientStatus" ("ProviderId" ASC)
+2024-12-14 01:14:13.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001642s
+2024-12-14 01:14:13.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (115, '2024-12-14T01:14:13', 'add_downloadclient_status')
+2024-12-14 01:14:13.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.4|Info|FluentMigrator.Runner.MigrationRunner|115: add_downloadclient_status migrated
+2024-12-14 01:14:13.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0064733s
+2024-12-14 01:14:13.4|Info|FluentMigrator.Runner.MigrationRunner|116: disable_nyaa migrating
+2024-12-14 01:14:13.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.4|Info|disable_nyaa|Starting migration of Main DB to 116
+2024-12-14 01:14:13.4|Info|FluentMigrator.Runner.MigrationRunner|ExecuteSqlStatement UPDATE "Indexers" SET "EnableRss" = false, "EnableSearch" = false, "Settings" = Replace("Settings", 'https://nyaa.se', '') WHERE "Implementation" = 'Nyaa' AND "Settings" LIKE '%nyaa.se%';
+2024-12-14 01:14:13.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|UPDATE "Indexers" SET "EnableRss" = false, "EnableSearch" = false, "Settings" = Replace("Settings", 'https://nyaa.se', '') WHERE "Implementation" = 'Nyaa' AND "Settings" LIKE '%nyaa.se%';
+2024-12-14 01:14:13.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.000231s
+2024-12-14 01:14:13.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (116, '2024-12-14T01:14:13', 'disable_nyaa')
+2024-12-14 01:14:13.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.4|Info|FluentMigrator.Runner.MigrationRunner|116: disable_nyaa migrated
+2024-12-14 01:14:13.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0066993s
+2024-12-14 01:14:13.4|Info|FluentMigrator.Runner.MigrationRunner|117: add_webrip_and_br480_qualites_in_profile migrating
+2024-12-14 01:14:13.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.4|Info|add_webrip_and_br480_qualites_in_profile|Starting migration of Main DB to 117
+2024-12-14 01:14:13.4|Info|FluentMigrator.Runner.MigrationRunner|PerformDBOperation
+2024-12-14 01:14:13.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Performing DB Operation
+2024-12-14 01:14:13.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0031708s
+2024-12-14 01:14:13.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (117, '2024-12-14T01:14:13', 'add_webrip_and_br480_qualites_in_profile')
+2024-12-14 01:14:13.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.4|Info|FluentMigrator.Runner.MigrationRunner|117: add_webrip_and_br480_qualites_in_profile migrated
+2024-12-14 01:14:13.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0096537s
+2024-12-14 01:14:13.4|Info|FluentMigrator.Runner.MigrationRunner|118: add_history_eventType_index migrating
+2024-12-14 01:14:13.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.4|Info|add_history_eventType_index|Starting migration of Main DB to 118
+2024-12-14 01:14:13.4|Info|FluentMigrator.Runner.MigrationRunner|CreateIndex History (EventType)
+2024-12-14 01:14:13.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE INDEX "IX_History_EventType" ON "History" ("EventType" ASC)
+2024-12-14 01:14:13.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0002206s
+2024-12-14 01:14:13.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (118, '2024-12-14T01:14:13', 'add_history_eventType_index')
+2024-12-14 01:14:13.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.4|Info|FluentMigrator.Runner.MigrationRunner|118: add_history_eventType_index migrated
+2024-12-14 01:14:13.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0066928s
+2024-12-14 01:14:13.4|Info|FluentMigrator.Runner.MigrationRunner|119: separate_automatic_and_interactive_searches migrating
+2024-12-14 01:14:13.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.4|Info|separate_automatic_and_interactive_searches|Starting migration of Main DB to 119
+2024-12-14 01:14:13.4|Info|FluentMigrator.Runner.MigrationRunner|RenameColumn Indexers EnableSearch to EnableAutomaticSearch
+2024-12-14 01:14:13.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "Indexers_temp" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "Name" TEXT NOT NULL, "Implementation" TEXT NOT NULL, "Settings" TEXT, "ConfigContract" TEXT, "EnableRss" INTEGER, "EnableAutomaticSearch" INTEGER)
+2024-12-14 01:14:13.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "Indexers_temp" ("Id", "Name", "Implementation", "Settings", "ConfigContract", "EnableRss", "EnableAutomaticSearch") SELECT "Id", "Name", "Implementation", "Settings", "ConfigContract", "EnableRss", "EnableSearch" FROM "Indexers"
+2024-12-14 01:14:13.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP TABLE "Indexers"
+2024-12-14 01:14:13.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Indexers_temp" RENAME TO "Indexers"
+2024-12-14 01:14:13.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_Indexers_Name" ON "Indexers" ("Name" ASC)
+2024-12-14 01:14:13.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.003285s
+2024-12-14 01:14:13.4|Info|FluentMigrator.Runner.MigrationRunner|AlterTable Indexers
+2024-12-14 01:14:13.4|Info|FluentMigrator.Runner.MigrationRunner|=> 6E-07s
+2024-12-14 01:14:13.4|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn Indexers EnableInteractiveSearch Boolean
+2024-12-14 01:14:13.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Indexers" ADD COLUMN "EnableInteractiveSearch" INTEGER
+2024-12-14 01:14:13.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0004031s
+2024-12-14 01:14:13.4|Info|FluentMigrator.Runner.MigrationRunner|ExecuteSqlStatement UPDATE "Indexers" SET "EnableInteractiveSearch" = "EnableAutomaticSearch"
+2024-12-14 01:14:13.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|UPDATE "Indexers" SET "EnableInteractiveSearch" = "EnableAutomaticSearch"
+2024-12-14 01:14:13.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001323s
+2024-12-14 01:14:13.4|Info|FluentMigrator.Runner.MigrationRunner|AlterTable Indexers
+2024-12-14 01:14:13.4|Info|FluentMigrator.Runner.MigrationRunner|=> 4E-07s
+2024-12-14 01:14:13.4|Info|FluentMigrator.Runner.MigrationRunner|AlterColumn Indexers EnableInteractiveSearch Boolean
+2024-12-14 01:14:13.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "Indexers_temp" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "Name" TEXT NOT NULL, "Implementation" TEXT NOT NULL, "Settings" TEXT, "ConfigContract" TEXT, "EnableRss" INTEGER, "EnableAutomaticSearch" INTEGER, "EnableInteractiveSearch" INTEGER NOT NULL)
+2024-12-14 01:14:13.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "Indexers_temp" ("Id", "Name", "Implementation", "Settings", "ConfigContract", "EnableRss", "EnableAutomaticSearch", "EnableInteractiveSearch") SELECT "Id", "Name", "Implementation", "Settings", "ConfigContract", "EnableRss", "EnableAutomaticSearch", "EnableInteractiveSearch" FROM "Indexers"
+2024-12-14 01:14:13.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP TABLE "Indexers"
+2024-12-14 01:14:13.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Indexers_temp" RENAME TO "Indexers"
+2024-12-14 01:14:13.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_Indexers_Name" ON "Indexers" ("Name" ASC)
+2024-12-14 01:14:13.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0028801s
+2024-12-14 01:14:13.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (119, '2024-12-14T01:14:13', 'separate_automatic_and_interactive_searches')
+2024-12-14 01:14:13.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.4|Info|FluentMigrator.Runner.MigrationRunner|119: separate_automatic_and_interactive_searches migrated
+2024-12-14 01:14:13.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0092645s
+2024-12-14 01:14:13.4|Info|FluentMigrator.Runner.MigrationRunner|120: update_series_episodes_history_indexes migrating
+2024-12-14 01:14:13.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.4|Info|update_series_episodes_history_indexes|Starting migration of Main DB to 120
+2024-12-14 01:14:13.4|Info|FluentMigrator.Runner.MigrationRunner|CreateIndex Episodes (SeriesId, AirDate)
+2024-12-14 01:14:13.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE INDEX "IX_Episodes_SeriesId_AirDate" ON "Episodes" ("SeriesId" ASC, "AirDate" ASC)
+2024-12-14 01:14:13.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001795s
+2024-12-14 01:14:13.4|Info|FluentMigrator.Runner.MigrationRunner|DeleteIndex History (EpisodeId)
+2024-12-14 01:14:13.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP INDEX "IX_History_EpisodeId"
+2024-12-14 01:14:13.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.000185s
+2024-12-14 01:14:13.4|Info|FluentMigrator.Runner.MigrationRunner|CreateIndex History (EpisodeId, Date)
+2024-12-14 01:14:13.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE INDEX "IX_History_EpisodeId_Date" ON "History" ("EpisodeId" ASC, "Date" DESC)
+2024-12-14 01:14:13.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0002575s
+2024-12-14 01:14:13.4|Info|FluentMigrator.Runner.MigrationRunner|DeleteIndex History (DownloadId)
+2024-12-14 01:14:13.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP INDEX "IX_History_DownloadId"
+2024-12-14 01:14:13.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0002941s
+2024-12-14 01:14:13.4|Info|FluentMigrator.Runner.MigrationRunner|CreateIndex History (DownloadId, Date)
+2024-12-14 01:14:13.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE INDEX "IX_History_DownloadId_Date" ON "History" ("DownloadId" ASC, "Date" DESC)
+2024-12-14 01:14:13.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0003106s
+2024-12-14 01:14:13.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (120, '2024-12-14T01:14:13', 'update_series_episodes_history_indexes')
+2024-12-14 01:14:13.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.5|Info|FluentMigrator.Runner.MigrationRunner|120: update_series_episodes_history_indexes migrated
+2024-12-14 01:14:13.5|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0069955s
+2024-12-14 01:14:13.5|Info|FluentMigrator.Runner.MigrationRunner|121: update_animetosho_url migrating
+2024-12-14 01:14:13.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.5|Info|update_animetosho_url|Starting migration of Main DB to 121
+2024-12-14 01:14:13.5|Info|FluentMigrator.Runner.MigrationRunner|ExecuteSqlStatement UPDATE "Indexers" SET "Settings" = Replace(Replace("Settings", '//animetosho.org', '//feed.animetosho.org'), '/feed/nabapi', '/nabapi') WHERE ("Implementation" = 'Newznab' OR "Implementation" = 'Torznab') AND "Settings" LIKE '%animetosho%';
+2024-12-14 01:14:13.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|UPDATE "Indexers" SET "Settings" = Replace(Replace("Settings", '//animetosho.org', '//feed.animetosho.org'), '/feed/nabapi', '/nabapi') WHERE ("Implementation" = 'Newznab' OR "Implementation" = 'Torznab') AND "Settings" LIKE '%animetosho%';
+2024-12-14 01:14:13.5|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0002568s
+2024-12-14 01:14:13.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (121, '2024-12-14T01:14:13', 'update_animetosho_url')
+2024-12-14 01:14:13.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.5|Info|FluentMigrator.Runner.MigrationRunner|121: update_animetosho_url migrated
+2024-12-14 01:14:13.5|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0066427s
+2024-12-14 01:14:13.5|Info|FluentMigrator.Runner.MigrationRunner|122: add_remux_qualities_in_profile migrating
+2024-12-14 01:14:13.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.5|Info|add_remux_qualities_in_profile|Starting migration of Main DB to 122
+2024-12-14 01:14:13.5|Info|FluentMigrator.Runner.MigrationRunner|PerformDBOperation
+2024-12-14 01:14:13.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Performing DB Operation
+2024-12-14 01:14:13.5|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0020842s
+2024-12-14 01:14:13.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (122, '2024-12-14T01:14:13', 'add_remux_qualities_in_profile')
+2024-12-14 01:14:13.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.5|Info|FluentMigrator.Runner.MigrationRunner|122: add_remux_qualities_in_profile migrated
+2024-12-14 01:14:13.5|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0083927s
+2024-12-14 01:14:13.5|Info|FluentMigrator.Runner.MigrationRunner|123: add_history_seriesId_index migrating
+2024-12-14 01:14:13.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.5|Info|add_history_seriesId_index|Starting migration of Main DB to 123
+2024-12-14 01:14:13.5|Info|FluentMigrator.Runner.MigrationRunner|CreateIndex History (SeriesId)
+2024-12-14 01:14:13.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE INDEX "IX_History_SeriesId" ON "History" ("SeriesId" ASC)
+2024-12-14 01:14:13.5|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001989s
+2024-12-14 01:14:13.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (123, '2024-12-14T01:14:13', 'add_history_seriesId_index')
+2024-12-14 01:14:13.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.5|Info|FluentMigrator.Runner.MigrationRunner|123: add_history_seriesId_index migrated
+2024-12-14 01:14:13.5|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0067262s
+2024-12-14 01:14:13.5|Info|FluentMigrator.Runner.MigrationRunner|124: remove_media_browser_metadata migrating
+2024-12-14 01:14:13.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.5|Info|remove_media_browser_metadata|Starting migration of Main DB to 124
+2024-12-14 01:14:13.5|Info|FluentMigrator.Runner.MigrationRunner|FluentMigrator.Expressions.DeleteDataExpression
+2024-12-14 01:14:13.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DELETE FROM "Metadata" WHERE "Implementation" = 'MediaBrowserMetadata'
+2024-12-14 01:14:13.5|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001777s
+2024-12-14 01:14:13.5|Info|FluentMigrator.Runner.MigrationRunner|FluentMigrator.Expressions.DeleteDataExpression
+2024-12-14 01:14:13.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DELETE FROM "MetadataFiles" WHERE "Consumer" = 'MediaBrowserMetadata'
+2024-12-14 01:14:13.5|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001127s
+2024-12-14 01:14:13.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (124, '2024-12-14T01:14:13', 'remove_media_browser_metadata')
+2024-12-14 01:14:13.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.5|Info|FluentMigrator.Runner.MigrationRunner|124: remove_media_browser_metadata migrated
+2024-12-14 01:14:13.5|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0063716s
+2024-12-14 01:14:13.5|Info|FluentMigrator.Runner.MigrationRunner|125: remove_notify_my_android_and_pushalot_notifications migrating
+2024-12-14 01:14:13.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.5|Info|remove_notify_my_android_and_pushalot_notifications|Starting migration of Main DB to 125
+2024-12-14 01:14:13.5|Info|FluentMigrator.Runner.MigrationRunner|FluentMigrator.Expressions.DeleteDataExpression
+2024-12-14 01:14:13.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DELETE FROM "Notifications" WHERE "Implementation" = 'NotifyMyAndroid'
+2024-12-14 01:14:13.5|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0002103s
+2024-12-14 01:14:13.5|Info|FluentMigrator.Runner.MigrationRunner|FluentMigrator.Expressions.DeleteDataExpression
+2024-12-14 01:14:13.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DELETE FROM "Notifications" WHERE "Implementation" = 'Pushalot'
+2024-12-14 01:14:13.5|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001131s
+2024-12-14 01:14:13.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (125, '2024-12-14T01:14:13', 'remove_notify_my_android_and_pushalot_notifications')
+2024-12-14 01:14:13.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.5|Info|FluentMigrator.Runner.MigrationRunner|125: remove_notify_my_android_and_pushalot_notifications migrated
+2024-12-14 01:14:13.5|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0064983s
+2024-12-14 01:14:13.5|Info|FluentMigrator.Runner.MigrationRunner|126: add_custom_filters migrating
+2024-12-14 01:14:13.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.5|Info|add_custom_filters|Starting migration of Main DB to 126
+2024-12-14 01:14:13.5|Info|FluentMigrator.Runner.MigrationRunner|CreateTable CustomFilters
+2024-12-14 01:14:13.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "CustomFilters" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "Type" TEXT NOT NULL, "Label" TEXT NOT NULL, "Filters" TEXT NOT NULL)
+2024-12-14 01:14:13.5|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0003596s
+2024-12-14 01:14:13.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (126, '2024-12-14T01:14:13', 'add_custom_filters')
+2024-12-14 01:14:13.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.5|Info|FluentMigrator.Runner.MigrationRunner|126: add_custom_filters migrated
+2024-12-14 01:14:13.5|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0071163s
+2024-12-14 01:14:13.5|Info|FluentMigrator.Runner.MigrationRunner|127: rename_restrictions_to_release_profiles migrating
+2024-12-14 01:14:13.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.5|Info|rename_restrictions_to_release_profiles|Starting migration of Main DB to 127
+2024-12-14 01:14:13.5|Info|FluentMigrator.Runner.MigrationRunner|RenameTable Restrictions ReleaseProfiles
+2024-12-14 01:14:13.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Restrictions" RENAME TO "ReleaseProfiles"
+2024-12-14 01:14:13.5|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0019595s
+2024-12-14 01:14:13.5|Info|FluentMigrator.Runner.MigrationRunner|AlterTable ReleaseProfiles
+2024-12-14 01:14:13.5|Info|FluentMigrator.Runner.MigrationRunner|=> 1.3E-06s
+2024-12-14 01:14:13.5|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn ReleaseProfiles IncludePreferredWhenRenaming Boolean
+2024-12-14 01:14:13.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "ReleaseProfiles" ADD COLUMN "IncludePreferredWhenRenaming" INTEGER NOT NULL DEFAULT 1
+2024-12-14 01:14:13.5|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0009847s
+2024-12-14 01:14:13.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (127, '2024-12-14T01:14:13', 'rename_restrictions_to_release_profiles')
+2024-12-14 01:14:13.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.5|Info|FluentMigrator.Runner.MigrationRunner|127: rename_restrictions_to_release_profiles migrated
+2024-12-14 01:14:13.5|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0076925s
+2024-12-14 01:14:13.5|Info|FluentMigrator.Runner.MigrationRunner|128: rename_quality_profiles_add_upgrade_allowed migrating
+2024-12-14 01:14:13.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.5|Info|rename_quality_profiles_add_upgrade_allowed|Starting migration of Main DB to 128
+2024-12-14 01:14:13.5|Info|FluentMigrator.Runner.MigrationRunner|RenameTable Profiles QualityProfiles
+2024-12-14 01:14:13.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Profiles" RENAME TO "QualityProfiles"
+2024-12-14 01:14:13.5|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0011994s
+2024-12-14 01:14:13.5|Info|FluentMigrator.Runner.MigrationRunner|AlterTable QualityProfiles
+2024-12-14 01:14:13.5|Info|FluentMigrator.Runner.MigrationRunner|=> 5E-07s
+2024-12-14 01:14:13.5|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn QualityProfiles UpgradeAllowed Boolean
+2024-12-14 01:14:13.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "QualityProfiles" ADD COLUMN "UpgradeAllowed" INTEGER
+2024-12-14 01:14:13.5|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0003984s
+2024-12-14 01:14:13.5|Info|FluentMigrator.Runner.MigrationRunner|AlterTable LanguageProfiles
+2024-12-14 01:14:13.5|Info|FluentMigrator.Runner.MigrationRunner|=> 4E-07s
+2024-12-14 01:14:13.5|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn LanguageProfiles UpgradeAllowed Boolean
+2024-12-14 01:14:13.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "LanguageProfiles" ADD COLUMN "UpgradeAllowed" INTEGER
+2024-12-14 01:14:13.5|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0004158s
+2024-12-14 01:14:13.5|Info|FluentMigrator.Runner.MigrationRunner|UpdateData
+2024-12-14 01:14:13.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|UPDATE "QualityProfiles" SET "UpgradeAllowed" = 1 WHERE 1 = 1
+2024-12-14 01:14:13.5|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001402s
+2024-12-14 01:14:13.5|Info|FluentMigrator.Runner.MigrationRunner|UpdateData
+2024-12-14 01:14:13.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|UPDATE "LanguageProfiles" SET "UpgradeAllowed" = 1 WHERE 1 = 1
+2024-12-14 01:14:13.5|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001328s
+2024-12-14 01:14:13.5|Info|FluentMigrator.Runner.MigrationRunner|RenameColumn Series ProfileId to QualityProfileId
+2024-12-14 01:14:13.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "Series_temp" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "TvdbId" INTEGER NOT NULL, "TvRageId" INTEGER NOT NULL, "ImdbId" TEXT, "Title" TEXT NOT NULL, "TitleSlug" TEXT, "CleanTitle" TEXT NOT NULL, "Status" INTEGER NOT NULL, "Overview" TEXT, "AirTime" TEXT, "Images" TEXT NOT NULL, "Path" TEXT NOT NULL, "Monitored" INTEGER NOT NULL, "SeasonFolder" INTEGER NOT NULL, "LastInfoSync" DATETIME, "LastDiskSync" DATETIME, "Runtime" INTEGER NOT NULL, "SeriesType" INTEGER NOT NULL, "Network" TEXT, "UseSceneNumbering" INTEGER NOT NULL, "FirstAired" DATETIME, "NextAiring" DATETIME, "Year" INTEGER, "Seasons" TEXT, "Actors" TEXT, "Ratings" TEXT, "Genres" TEXT, "Certification" TEXT, "SortTitle" TEXT, "QualityProfileId" INTEGER, "Tags" TEXT, "Added" DATETIME, "AddOptions" TEXT, "TvMazeId" INTEGER NOT NULL, "LanguageProfileId" INTEGER NOT NULL)
+2024-12-14 01:14:13.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "Series_temp" ("Id", "TvdbId", "TvRageId", "ImdbId", "Title", "TitleSlug", "CleanTitle", "Status", "Overview", "AirTime", "Images", "Path", "Monitored", "SeasonFolder", "LastInfoSync", "LastDiskSync", "Runtime", "SeriesType", "Network", "UseSceneNumbering", "FirstAired", "NextAiring", "Year", "Seasons", "Actors", "Ratings", "Genres", "Certification", "SortTitle", "QualityProfileId", "Tags", "Added", "AddOptions", "TvMazeId", "LanguageProfileId") SELECT "Id", "TvdbId", "TvRageId", "ImdbId", "Title", "TitleSlug", "CleanTitle", "Status", "Overview", "AirTime", "Images", "Path", "Monitored", "SeasonFolder", "LastInfoSync", "LastDiskSync", "Runtime", "SeriesType", "Network", "UseSceneNumbering", "FirstAired", "NextAiring", "Year", "Seasons", "Actors", "Ratings", "Genres", "Certification", "SortTitle", "ProfileId", "Tags", "Added", "AddOptions", "TvMazeId", "LanguageProfileId" FROM "Series"
+2024-12-14 01:14:13.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP TABLE "Series"
+2024-12-14 01:14:13.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Series_temp" RENAME TO "Series"
+2024-12-14 01:14:13.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_Series_TvdbId" ON "Series" ("TvdbId" ASC)
+2024-12-14 01:14:13.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_Series_TitleSlug" ON "Series" ("TitleSlug" ASC)
+2024-12-14 01:14:13.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE INDEX "IX_Series_Path" ON "Series" ("Path" ASC)
+2024-12-14 01:14:13.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE INDEX "IX_Series_CleanTitle" ON "Series" ("CleanTitle" ASC)
+2024-12-14 01:14:13.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE INDEX "IX_Series_TvRageId" ON "Series" ("TvRageId" ASC)
+2024-12-14 01:14:13.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE INDEX "IX_Series_TvMazeId" ON "Series" ("TvMazeId" ASC)
+2024-12-14 01:14:13.5|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0048437s
+2024-12-14 01:14:13.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (128, '2024-12-14T01:14:13', 'rename_quality_profiles_add_upgrade_allowed')
+2024-12-14 01:14:13.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.5|Info|FluentMigrator.Runner.MigrationRunner|128: rename_quality_profiles_add_upgrade_allowed migrated
+2024-12-14 01:14:13.5|Info|FluentMigrator.Runner.MigrationRunner|=> 0.011407s
+2024-12-14 01:14:13.5|Info|FluentMigrator.Runner.MigrationRunner|129: add_relative_original_path_to_episode_file migrating
+2024-12-14 01:14:13.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.5|Info|add_relative_original_path_to_episode_file|Starting migration of Main DB to 129
+2024-12-14 01:14:13.5|Info|FluentMigrator.Runner.MigrationRunner|AlterTable EpisodeFiles
+2024-12-14 01:14:13.5|Info|FluentMigrator.Runner.MigrationRunner|=> 1E-06s
+2024-12-14 01:14:13.5|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn EpisodeFiles OriginalFilePath String
+2024-12-14 01:14:13.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "EpisodeFiles" ADD COLUMN "OriginalFilePath" TEXT
+2024-12-14 01:14:13.5|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0005286s
+2024-12-14 01:14:13.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (129, '2024-12-14T01:14:13', 'add_relative_original_path_to_episode_file')
+2024-12-14 01:14:13.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.5|Info|FluentMigrator.Runner.MigrationRunner|129: add_relative_original_path_to_episode_file migrated
+2024-12-14 01:14:13.5|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0068721s
+2024-12-14 01:14:13.5|Info|FluentMigrator.Runner.MigrationRunner|130: episode_last_searched_time migrating
+2024-12-14 01:14:13.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.5|Info|episode_last_searched_time|Starting migration of Main DB to 130
+2024-12-14 01:14:13.5|Info|FluentMigrator.Runner.MigrationRunner|AlterTable Episodes
+2024-12-14 01:14:13.5|Info|FluentMigrator.Runner.MigrationRunner|=> 8E-07s
+2024-12-14 01:14:13.5|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn Episodes LastSearchTime DateTime
+2024-12-14 01:14:13.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Episodes" ADD COLUMN "LastSearchTime" DATETIME
+2024-12-14 01:14:13.5|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0006942s
+2024-12-14 01:14:13.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (130, '2024-12-14T01:14:13', 'episode_last_searched_time')
+2024-12-14 01:14:13.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.5|Info|FluentMigrator.Runner.MigrationRunner|130: episode_last_searched_time migrated
+2024-12-14 01:14:13.5|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0072972s
+2024-12-14 01:14:13.5|Info|FluentMigrator.Runner.MigrationRunner|131: download_propers_config migrating
+2024-12-14 01:14:13.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.5|Info|download_propers_config|Starting migration of Main DB to 131
+2024-12-14 01:14:13.5|Info|FluentMigrator.Runner.MigrationRunner|PerformDBOperation
+2024-12-14 01:14:13.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Performing DB Operation
+2024-12-14 01:14:13.5|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0006858s
+2024-12-14 01:14:13.5|Info|FluentMigrator.Runner.MigrationRunner|ExecuteSqlStatement DELETE FROM "Config" WHERE "Key" = 'autodownloadpropers'
+2024-12-14 01:14:13.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DELETE FROM "Config" WHERE "Key" = 'autodownloadpropers'
+2024-12-14 01:14:13.5|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0002272s
+2024-12-14 01:14:13.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (131, '2024-12-14T01:14:13', 'download_propers_config')
+2024-12-14 01:14:13.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.6|Info|FluentMigrator.Runner.MigrationRunner|131: download_propers_config migrated
+2024-12-14 01:14:13.6|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0068736s
+2024-12-14 01:14:13.6|Info|FluentMigrator.Runner.MigrationRunner|132: add_download_client_priority migrating
+2024-12-14 01:14:13.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.6|Info|add_download_client_priority|Starting migration of Main DB to 132
+2024-12-14 01:14:13.6|Info|FluentMigrator.Runner.MigrationRunner|AlterTable DownloadClients
+2024-12-14 01:14:13.6|Info|FluentMigrator.Runner.MigrationRunner|=> 9E-07s
+2024-12-14 01:14:13.6|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn DownloadClients Priority Int32
+2024-12-14 01:14:13.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "DownloadClients" ADD COLUMN "Priority" INTEGER NOT NULL DEFAULT 1
+2024-12-14 01:14:13.6|Info|FluentMigrator.Runner.MigrationRunner|=> 0.00088s
+2024-12-14 01:14:13.6|Info|FluentMigrator.Runner.MigrationRunner|PerformDBOperation
+2024-12-14 01:14:13.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Performing DB Operation
+2024-12-14 01:14:13.6|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0173402s
+2024-12-14 01:14:13.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (132, '2024-12-14T01:14:13', 'add_download_client_priority')
+2024-12-14 01:14:13.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.6|Info|FluentMigrator.Runner.MigrationRunner|132: add_download_client_priority migrated
+2024-12-14 01:14:13.6|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0238416s
+2024-12-14 01:14:13.6|Info|FluentMigrator.Runner.MigrationRunner|134: add_specials_folder_format migrating
+2024-12-14 01:14:13.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.6|Info|add_specials_folder_format|Starting migration of Main DB to 134
+2024-12-14 01:14:13.6|Info|FluentMigrator.Runner.MigrationRunner|AlterTable NamingConfig
+2024-12-14 01:14:13.6|Info|FluentMigrator.Runner.MigrationRunner|=> 7E-07s
+2024-12-14 01:14:13.6|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn NamingConfig SpecialsFolderFormat String
+2024-12-14 01:14:13.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "NamingConfig" ADD COLUMN "SpecialsFolderFormat" TEXT
+2024-12-14 01:14:13.6|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0004654s
+2024-12-14 01:14:13.6|Info|FluentMigrator.Runner.MigrationRunner|UpdateData
+2024-12-14 01:14:13.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|UPDATE "NamingConfig" SET "SpecialsFolderFormat" = 'Specials' WHERE 1 = 1
+2024-12-14 01:14:13.6|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001357s
+2024-12-14 01:14:13.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (134, '2024-12-14T01:14:13', 'add_specials_folder_format')
+2024-12-14 01:14:13.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.6|Info|FluentMigrator.Runner.MigrationRunner|134: add_specials_folder_format migrated
+2024-12-14 01:14:13.6|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0064556s
+2024-12-14 01:14:13.6|Info|FluentMigrator.Runner.MigrationRunner|135: health_issue_notification migrating
+2024-12-14 01:14:13.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.6|Info|health_issue_notification|Starting migration of Main DB to 135
+2024-12-14 01:14:13.6|Info|FluentMigrator.Runner.MigrationRunner|AlterTable Notifications
+2024-12-14 01:14:13.6|Info|FluentMigrator.Runner.MigrationRunner|=> 6E-07s
+2024-12-14 01:14:13.6|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn Notifications OnHealthIssue Boolean
+2024-12-14 01:14:13.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Notifications" ADD COLUMN "OnHealthIssue" INTEGER NOT NULL DEFAULT 0
+2024-12-14 01:14:13.6|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0004522s
+2024-12-14 01:14:13.6|Info|FluentMigrator.Runner.MigrationRunner|AlterTable Notifications
+2024-12-14 01:14:13.6|Info|FluentMigrator.Runner.MigrationRunner|=> 5E-07s
+2024-12-14 01:14:13.6|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn Notifications IncludeHealthWarnings Boolean
+2024-12-14 01:14:13.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Notifications" ADD COLUMN "IncludeHealthWarnings" INTEGER NOT NULL DEFAULT 0
+2024-12-14 01:14:13.6|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0004279s
+2024-12-14 01:14:13.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (135, '2024-12-14T01:14:13', 'health_issue_notification')
+2024-12-14 01:14:13.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.6|Info|FluentMigrator.Runner.MigrationRunner|135: health_issue_notification migrated
+2024-12-14 01:14:13.6|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0067463s
+2024-12-14 01:14:13.6|Info|FluentMigrator.Runner.MigrationRunner|136: add_indexer_and_enabled_to_release_profiles migrating
+2024-12-14 01:14:13.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.6|Info|add_indexer_and_enabled_to_release_profiles|Starting migration of Main DB to 136
+2024-12-14 01:14:13.6|Info|FluentMigrator.Runner.MigrationRunner|AlterTable ReleaseProfiles
+2024-12-14 01:14:13.6|Info|FluentMigrator.Runner.MigrationRunner|=> 4E-07s
+2024-12-14 01:14:13.6|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn ReleaseProfiles Enabled Boolean
+2024-12-14 01:14:13.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "ReleaseProfiles" ADD COLUMN "Enabled" INTEGER NOT NULL DEFAULT 1
+2024-12-14 01:14:13.6|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0003845s
+2024-12-14 01:14:13.6|Info|FluentMigrator.Runner.MigrationRunner|AlterTable ReleaseProfiles
+2024-12-14 01:14:13.6|Info|FluentMigrator.Runner.MigrationRunner|=> 4E-07s
+2024-12-14 01:14:13.6|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn ReleaseProfiles IndexerId Int32
+2024-12-14 01:14:13.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "ReleaseProfiles" ADD COLUMN "IndexerId" INTEGER NOT NULL DEFAULT 0
+2024-12-14 01:14:13.6|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0003751s
+2024-12-14 01:14:13.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (136, '2024-12-14T01:14:13', 'add_indexer_and_enabled_to_release_profiles')
+2024-12-14 01:14:13.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.6|Info|FluentMigrator.Runner.MigrationRunner|136: add_indexer_and_enabled_to_release_profiles migrated
+2024-12-14 01:14:13.6|Info|FluentMigrator.Runner.MigrationRunner|=> 0.006758s
+2024-12-14 01:14:13.6|Info|FluentMigrator.Runner.MigrationRunner|137: add_airedbefore_to_episodes migrating
+2024-12-14 01:14:13.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.6|Info|add_airedbefore_to_episodes|Starting migration of Main DB to 137
+2024-12-14 01:14:13.6|Info|FluentMigrator.Runner.MigrationRunner|AlterTable Episodes
+2024-12-14 01:14:13.6|Info|FluentMigrator.Runner.MigrationRunner|=> 6E-07s
+2024-12-14 01:14:13.6|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn Episodes AiredAfterSeasonNumber Int32
+2024-12-14 01:14:13.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Episodes" ADD COLUMN "AiredAfterSeasonNumber" INTEGER
+2024-12-14 01:14:13.6|Info|FluentMigrator.Runner.MigrationRunner|=> 0.000471s
+2024-12-14 01:14:13.6|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn Episodes AiredBeforeSeasonNumber Int32
+2024-12-14 01:14:13.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Episodes" ADD COLUMN "AiredBeforeSeasonNumber" INTEGER
+2024-12-14 01:14:13.6|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0003806s
+2024-12-14 01:14:13.6|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn Episodes AiredBeforeEpisodeNumber Int32
+2024-12-14 01:14:13.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Episodes" ADD COLUMN "AiredBeforeEpisodeNumber" INTEGER
+2024-12-14 01:14:13.6|Info|FluentMigrator.Runner.MigrationRunner|=> 0.000392s
+2024-12-14 01:14:13.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (137, '2024-12-14T01:14:13', 'add_airedbefore_to_episodes')
+2024-12-14 01:14:13.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.6|Info|FluentMigrator.Runner.MigrationRunner|137: add_airedbefore_to_episodes migrated
+2024-12-14 01:14:13.6|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0067482s
+2024-12-14 01:14:13.6|Info|FluentMigrator.Runner.MigrationRunner|138: remove_bitmetv migrating
+2024-12-14 01:14:13.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.6|Info|remove_bitmetv|Starting migration of Main DB to 138
+2024-12-14 01:14:13.6|Info|FluentMigrator.Runner.MigrationRunner|FluentMigrator.Expressions.DeleteDataExpression
+2024-12-14 01:14:13.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DELETE FROM "Indexers" WHERE "Implementation" = 'BitMeTv'
+2024-12-14 01:14:13.6|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001882s
+2024-12-14 01:14:13.6|Info|FluentMigrator.Runner.MigrationRunner|ExecuteSqlStatement UPDATE "Indexers" SET "EnableRss" = false, "EnableAutomaticSearch" = false, "EnableInteractiveSearch" = false WHERE "Implementation" = 'Newznab' AND "Settings" LIKE '%usenet-crawler.com%'
+2024-12-14 01:14:13.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|UPDATE "Indexers" SET "EnableRss" = false, "EnableAutomaticSearch" = false, "EnableInteractiveSearch" = false WHERE "Implementation" = 'Newznab' AND "Settings" LIKE '%usenet-crawler.com%'
+2024-12-14 01:14:13.6|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001839s
+2024-12-14 01:14:13.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (138, '2024-12-14T01:14:13', 'remove_bitmetv')
+2024-12-14 01:14:13.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.6|Info|FluentMigrator.Runner.MigrationRunner|138: remove_bitmetv migrated
+2024-12-14 01:14:13.6|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0065699s
+2024-12-14 01:14:13.6|Info|FluentMigrator.Runner.MigrationRunner|139: add_download_history migrating
+2024-12-14 01:14:13.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.6|Info|add_download_history|Starting migration of Main DB to 139
+2024-12-14 01:14:13.6|Info|FluentMigrator.Runner.MigrationRunner|CreateTable DownloadHistory
+2024-12-14 01:14:13.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "DownloadHistory" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "EventType" INTEGER NOT NULL, "SeriesId" INTEGER NOT NULL, "DownloadId" TEXT NOT NULL, "SourceTitle" TEXT NOT NULL, "Date" DATETIME NOT NULL, "Protocol" INTEGER, "IndexerId" INTEGER, "DownloadClientId" INTEGER, "Release" TEXT, "Data" TEXT)
+2024-12-14 01:14:13.6|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0002995s
+2024-12-14 01:14:13.6|Info|FluentMigrator.Runner.MigrationRunner|CreateIndex DownloadHistory (EventType)
+2024-12-14 01:14:13.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE INDEX "IX_DownloadHistory_EventType" ON "DownloadHistory" ("EventType" ASC)
+2024-12-14 01:14:13.6|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001976s
+2024-12-14 01:14:13.6|Info|FluentMigrator.Runner.MigrationRunner|CreateIndex DownloadHistory (SeriesId)
+2024-12-14 01:14:13.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE INDEX "IX_DownloadHistory_SeriesId" ON "DownloadHistory" ("SeriesId" ASC)
+2024-12-14 01:14:13.6|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001846s
+2024-12-14 01:14:13.6|Info|FluentMigrator.Runner.MigrationRunner|CreateIndex DownloadHistory (DownloadId)
+2024-12-14 01:14:13.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE INDEX "IX_DownloadHistory_DownloadId" ON "DownloadHistory" ("DownloadId" ASC)
+2024-12-14 01:14:13.6|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001845s
+2024-12-14 01:14:13.6|Info|FluentMigrator.Runner.MigrationRunner|PerformDBOperation
+2024-12-14 01:14:13.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Performing DB Operation
+2024-12-14 01:14:13.6|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0012542s
+2024-12-14 01:14:13.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (139, '2024-12-14T01:14:13', 'add_download_history')
+2024-12-14 01:14:13.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.6|Info|FluentMigrator.Runner.MigrationRunner|139: add_download_history migrated
+2024-12-14 01:14:13.6|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0076576s
+2024-12-14 01:14:13.6|Info|FluentMigrator.Runner.MigrationRunner|140: remove_chown_and_folderchmod_config_v2 migrating
+2024-12-14 01:14:13.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.6|Info|remove_chown_and_folderchmod_config_v2|Starting migration of Main DB to 140
+2024-12-14 01:14:13.6|Info|FluentMigrator.Runner.MigrationRunner|ExecuteSqlStatement DELETE FROM "Config" WHERE "Key" IN ('folderchmod', 'chownuser')
+2024-12-14 01:14:13.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DELETE FROM "Config" WHERE "Key" IN ('folderchmod', 'chownuser')
+2024-12-14 01:14:13.6|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0002682s
+2024-12-14 01:14:13.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (140, '2024-12-14T01:14:13', 'remove_chown_and_folderchmod_config_v2')
+2024-12-14 01:14:13.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.6|Info|FluentMigrator.Runner.MigrationRunner|140: remove_chown_and_folderchmod_config_v2 migrated
+2024-12-14 01:14:13.6|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0068327s
+2024-12-14 01:14:13.6|Info|FluentMigrator.Runner.MigrationRunner|141: add_update_history migrating
+2024-12-14 01:14:13.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.6|Info|add_update_history|Starting migration of Main DB to 141
+2024-12-14 01:14:13.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (141, '2024-12-14T01:14:13', 'add_update_history')
+2024-12-14 01:14:13.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.6|Info|FluentMigrator.Runner.MigrationRunner|141: add_update_history migrated
+2024-12-14 01:14:13.6|Info|FluentMigrator.Runner.MigrationRunner|=> 0.006673s
+2024-12-14 01:14:13.6|Info|FluentMigrator.Runner.MigrationRunner|142: import_lists migrating
+2024-12-14 01:14:13.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.6|Info|import_lists|Starting migration of Main DB to 142
+2024-12-14 01:14:13.6|Info|FluentMigrator.Runner.MigrationRunner|CreateTable ImportLists
+2024-12-14 01:14:13.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "ImportLists" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "Name" TEXT NOT NULL, "Implementation" TEXT NOT NULL, "Settings" TEXT, "ConfigContract" TEXT, "EnableAutomaticAdd" INTEGER, "RootFolderPath" TEXT NOT NULL, "ShouldMonitor" INTEGER NOT NULL, "QualityProfileId" INTEGER NOT NULL, "LanguageProfileId" INTEGER NOT NULL, "Tags" TEXT)
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0003255s
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|CreateIndex ImportLists (Name)
+2024-12-14 01:14:13.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_ImportLists_Name" ON "ImportLists" ("Name" ASC)
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001945s
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|CreateTable ImportListStatus
+2024-12-14 01:14:13.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "ImportListStatus" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "ProviderId" INTEGER NOT NULL, "InitialFailure" DATETIME, "MostRecentFailure" DATETIME, "EscalationLevel" INTEGER NOT NULL, "DisabledTill" DATETIME, "LastSyncListInfo" TEXT)
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0002852s
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|CreateIndex ImportListStatus (ProviderId)
+2024-12-14 01:14:13.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_ImportListStatus_ProviderId" ON "ImportListStatus" ("ProviderId" ASC)
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0002034s
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|CreateTable ImportListExclusions
+2024-12-14 01:14:13.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "ImportListExclusions" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "TvdbId" TEXT NOT NULL, "Title" TEXT NOT NULL)
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0002052s
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|CreateIndex ImportListExclusions (TvdbId)
+2024-12-14 01:14:13.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_ImportListExclusions_TvdbId" ON "ImportListExclusions" ("TvdbId" ASC)
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001939s
+2024-12-14 01:14:13.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (142, '2024-12-14T01:14:13', 'import_lists')
+2024-12-14 01:14:13.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|142: import_lists migrated
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0065922s
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|143: add_priority_to_indexers migrating
+2024-12-14 01:14:13.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.7|Info|add_priority_to_indexers|Starting migration of Main DB to 143
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|AlterTable Indexers
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|=> 9E-07s
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn Indexers Priority Int32
+2024-12-14 01:14:13.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Indexers" ADD COLUMN "Priority" INTEGER NOT NULL DEFAULT 25
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0005131s
+2024-12-14 01:14:13.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (143, '2024-12-14T01:14:13', 'add_priority_to_indexers')
+2024-12-14 01:14:13.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|143: add_priority_to_indexers migrated
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0068325s
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|144: import_lists_series_type_and_season_folder migrating
+2024-12-14 01:14:13.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.7|Info|import_lists_series_type_and_season_folder|Starting migration of Main DB to 144
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|AlterTable ImportLists
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|=> 4E-07s
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn ImportLists SeriesType Int32
+2024-12-14 01:14:13.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "ImportLists" ADD COLUMN "SeriesType" INTEGER NOT NULL DEFAULT 0
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0005003s
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|AlterTable ImportLists
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|=> 4E-07s
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn ImportLists SeasonFolder Boolean
+2024-12-14 01:14:13.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "ImportLists" ADD COLUMN "SeasonFolder" INTEGER NOT NULL DEFAULT 1
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0004607s
+2024-12-14 01:14:13.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (144, '2024-12-14T01:14:13', 'import_lists_series_type_and_season_folder')
+2024-12-14 01:14:13.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|144: import_lists_series_type_and_season_folder migrated
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.006774s
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|145: remove_growl migrating
+2024-12-14 01:14:13.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.7|Info|remove_growl|Starting migration of Main DB to 145
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|FluentMigrator.Expressions.DeleteDataExpression
+2024-12-14 01:14:13.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DELETE FROM "Notifications" WHERE "Implementation" = 'Growl'
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001809s
+2024-12-14 01:14:13.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (145, '2024-12-14T01:14:13', 'remove_growl')
+2024-12-14 01:14:13.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|145: remove_growl migrated
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.006599s
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|146: cleanup_duplicates_updatehistory migrating
+2024-12-14 01:14:13.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.7|Info|cleanup_duplicates_updatehistory|Starting migration of Main DB to 146
+2024-12-14 01:14:13.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (146, '2024-12-14T01:14:13', 'cleanup_duplicates_updatehistory')
+2024-12-14 01:14:13.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|146: cleanup_duplicates_updatehistory migrated
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0065711s
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|147: swap_filechmod_for_folderchmod migrating
+2024-12-14 01:14:13.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.7|Info|swap_filechmod_for_folderchmod|Starting migration of Main DB to 147
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|PerformDBOperation
+2024-12-14 01:14:13.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Performing DB Operation
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0003549s
+2024-12-14 01:14:13.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (147, '2024-12-14T01:14:13', 'swap_filechmod_for_folderchmod')
+2024-12-14 01:14:13.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|147: swap_filechmod_for_folderchmod migrated
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.006641s
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|148: mediainfo_channels migrating
+2024-12-14 01:14:13.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.7|Info|mediainfo_channels|Starting migration of Main DB to 148
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|ExecuteSqlStatement UPDATE "EpisodeFiles" SET "MediaInfo" = Replace("MediaInfo", '"audioChannels"', '"audioChannelsContainer"');
+2024-12-14 01:14:13.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|UPDATE "EpisodeFiles" SET "MediaInfo" = Replace("MediaInfo", '"audioChannels"', '"audioChannelsContainer"');
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001674s
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|ExecuteSqlStatement UPDATE "EpisodeFiles" SET "MediaInfo" = Replace("MediaInfo", '"audioChannelPositionsText"', '"audioChannelPositionsTextContainer"');
+2024-12-14 01:14:13.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|UPDATE "EpisodeFiles" SET "MediaInfo" = Replace("MediaInfo", '"audioChannelPositionsText"', '"audioChannelPositionsTextContainer"');
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001661s
+2024-12-14 01:14:13.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (148, '2024-12-14T01:14:13', 'mediainfo_channels')
+2024-12-14 01:14:13.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|148: mediainfo_channels migrated
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0065325s
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|149: add_on_delete_to_notifications migrating
+2024-12-14 01:14:13.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.7|Info|add_on_delete_to_notifications|Starting migration of Main DB to 149
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|AlterTable Notifications
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|=> 6E-07s
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn Notifications OnSeriesDelete Boolean
+2024-12-14 01:14:13.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Notifications" ADD COLUMN "OnSeriesDelete" INTEGER NOT NULL DEFAULT 0
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0005066s
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|AlterTable Notifications
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|=> 5E-07s
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn Notifications OnEpisodeFileDelete Boolean
+2024-12-14 01:14:13.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Notifications" ADD COLUMN "OnEpisodeFileDelete" INTEGER NOT NULL DEFAULT 0
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0004799s
+2024-12-14 01:14:13.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (149, '2024-12-14T01:14:13', 'add_on_delete_to_notifications')
+2024-12-14 01:14:13.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|149: add_on_delete_to_notifications migrated
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0068168s
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|150: add_scene_mapping_origin migrating
+2024-12-14 01:14:13.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.7|Info|add_scene_mapping_origin|Starting migration of Main DB to 150
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|AlterTable SceneMappings
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|=> 6E-07s
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn SceneMappings SceneOrigin String
+2024-12-14 01:14:13.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "SceneMappings" ADD COLUMN "SceneOrigin" TEXT
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0004921s
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn SceneMappings SearchMode Int32
+2024-12-14 01:14:13.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "SceneMappings" ADD COLUMN "SearchMode" INTEGER
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.00042s
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn SceneMappings Comment String
+2024-12-14 01:14:13.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "SceneMappings" ADD COLUMN "Comment" TEXT
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0004772s
+2024-12-14 01:14:13.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (150, '2024-12-14T01:14:13', 'add_scene_mapping_origin')
+2024-12-14 01:14:13.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|150: add_scene_mapping_origin migrated
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0068565s
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|151: remove_custom_filter_type migrating
+2024-12-14 01:14:13.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.7|Info|remove_custom_filter_type|Starting migration of Main DB to 151
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|UpdateData
+2024-12-14 01:14:13.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|UPDATE "CustomFilters" SET "Type" = 'series' WHERE "Type" = 'seriesIndex'
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.000159s
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|UpdateData
+2024-12-14 01:14:13.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|UPDATE "CustomFilters" SET "Type" = 'series' WHERE "Type" = 'seriesEditor'
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001526s
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|UpdateData
+2024-12-14 01:14:13.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|UPDATE "CustomFilters" SET "Type" = 'series' WHERE "Type" = 'seasonPass'
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001429s
+2024-12-14 01:14:13.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (151, '2024-12-14T01:14:13', 'remove_custom_filter_type')
+2024-12-14 01:14:13.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|151: remove_custom_filter_type migrated
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.006443s
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|152: update_btn_url_to_https migrating
+2024-12-14 01:14:13.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.7|Info|update_btn_url_to_https|Starting migration of Main DB to 152
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|ExecuteSqlStatement UPDATE "Indexers" SET "Settings" = Replace("Settings", 'http://api.broadcasthe.net', 'https://api.broadcasthe.net') WHERE "Implementation" = 'BroadcastheNet';
+2024-12-14 01:14:13.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|UPDATE "Indexers" SET "Settings" = Replace("Settings", 'http://api.broadcasthe.net', 'https://api.broadcasthe.net') WHERE "Implementation" = 'BroadcastheNet';
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001697s
+2024-12-14 01:14:13.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (152, '2024-12-14T01:14:13', 'update_btn_url_to_https')
+2024-12-14 01:14:13.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|152: update_btn_url_to_https migrated
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.00649s
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|153: add_on_episodefiledelete_for_upgrade migrating
+2024-12-14 01:14:13.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.7|Info|add_on_episodefiledelete_for_upgrade|Starting migration of Main DB to 153
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|AlterTable Notifications
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|=> 6E-07s
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn Notifications OnEpisodeFileDeleteForUpgrade Boolean
+2024-12-14 01:14:13.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Notifications" ADD COLUMN "OnEpisodeFileDeleteForUpgrade" INTEGER NOT NULL DEFAULT 1
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0005518s
+2024-12-14 01:14:13.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (153, '2024-12-14T01:14:13', 'add_on_episodefiledelete_for_upgrade')
+2024-12-14 01:14:13.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|153: add_on_episodefiledelete_for_upgrade migrated
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0069686s
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|154: add_name_release_profile migrating
+2024-12-14 01:14:13.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.7|Info|add_name_release_profile|Starting migration of Main DB to 154
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|AlterTable ReleaseProfiles
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|=> 7E-07s
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn ReleaseProfiles Name String
+2024-12-14 01:14:13.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "ReleaseProfiles" ADD COLUMN "Name" TEXT DEFAULT NULL
+2024-12-14 01:14:13.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.000522s
+2024-12-14 01:14:13.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (154, '2024-12-14T01:14:13', 'add_name_release_profile')
+2024-12-14 01:14:13.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.8|Info|FluentMigrator.Runner.MigrationRunner|154: add_name_release_profile migrated
+2024-12-14 01:14:13.8|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0068903s
+2024-12-14 01:14:13.8|Info|FluentMigrator.Runner.MigrationRunner|155: add_arabic_and_hindi_languages migrating
+2024-12-14 01:14:13.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.8|Info|add_arabic_and_hindi_languages|Starting migration of Main DB to 155
+2024-12-14 01:14:13.8|Info|FluentMigrator.Runner.MigrationRunner|PerformDBOperation
+2024-12-14 01:14:13.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Performing DB Operation
+2024-12-14 01:14:13.8|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0025145s
+2024-12-14 01:14:13.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (155, '2024-12-14T01:14:13', 'add_arabic_and_hindi_languages')
+2024-12-14 01:14:13.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.8|Info|FluentMigrator.Runner.MigrationRunner|155: add_arabic_and_hindi_languages migrated
+2024-12-14 01:14:13.8|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0089644s
+2024-12-14 01:14:13.8|Info|FluentMigrator.Runner.MigrationRunner|156: add_bypass_to_delay_profile migrating
+2024-12-14 01:14:13.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.8|Info|add_bypass_to_delay_profile|Starting migration of Main DB to 156
+2024-12-14 01:14:13.8|Info|FluentMigrator.Runner.MigrationRunner|AlterTable DelayProfiles
+2024-12-14 01:14:13.8|Info|FluentMigrator.Runner.MigrationRunner|=> 5E-07s
+2024-12-14 01:14:13.8|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn DelayProfiles BypassIfHighestQuality Boolean
+2024-12-14 01:14:13.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "DelayProfiles" ADD COLUMN "BypassIfHighestQuality" INTEGER NOT NULL DEFAULT 0
+2024-12-14 01:14:13.8|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0004664s
+2024-12-14 01:14:13.8|Info|FluentMigrator.Runner.MigrationRunner|UpdateData
+2024-12-14 01:14:13.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|UPDATE "DelayProfiles" SET "BypassIfHighestQuality" = 1 WHERE 1 = 1
+2024-12-14 01:14:13.8|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001554s
+2024-12-14 01:14:13.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (156, '2024-12-14T01:14:13', 'add_bypass_to_delay_profile')
+2024-12-14 01:14:13.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.8|Info|FluentMigrator.Runner.MigrationRunner|156: add_bypass_to_delay_profile migrated
+2024-12-14 01:14:13.8|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0066129s
+2024-12-14 01:14:13.8|Info|FluentMigrator.Runner.MigrationRunner|157: email_multiple_addresses migrating
+2024-12-14 01:14:13.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.8|Info|email_multiple_addresses|Starting migration of Main DB to 157
+2024-12-14 01:14:13.8|Info|FluentMigrator.Runner.MigrationRunner|PerformDBOperation
+2024-12-14 01:14:13.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Performing DB Operation
+2024-12-14 01:14:13.8|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0014907s
+2024-12-14 01:14:13.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (157, '2024-12-14T01:14:13', 'email_multiple_addresses')
+2024-12-14 01:14:13.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.8|Info|FluentMigrator.Runner.MigrationRunner|157: email_multiple_addresses migrated
+2024-12-14 01:14:13.8|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0078913s
+2024-12-14 01:14:13.8|Info|FluentMigrator.Runner.MigrationRunner|158: cdh_per_downloadclient migrating
+2024-12-14 01:14:13.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.8|Info|cdh_per_downloadclient|Starting migration of Main DB to 158
+2024-12-14 01:14:13.8|Info|FluentMigrator.Runner.MigrationRunner|AlterTable DownloadClients
+2024-12-14 01:14:13.8|Info|FluentMigrator.Runner.MigrationRunner|=> 5E-07s
+2024-12-14 01:14:13.8|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn DownloadClients RemoveCompletedDownloads Boolean
+2024-12-14 01:14:13.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "DownloadClients" ADD COLUMN "RemoveCompletedDownloads" INTEGER NOT NULL DEFAULT 1
+2024-12-14 01:14:13.8|Info|FluentMigrator.Runner.MigrationRunner|=> 0.000551s
+2024-12-14 01:14:13.8|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn DownloadClients RemoveFailedDownloads Boolean
+2024-12-14 01:14:13.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "DownloadClients" ADD COLUMN "RemoveFailedDownloads" INTEGER NOT NULL DEFAULT 1
+2024-12-14 01:14:13.8|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0005279s
+2024-12-14 01:14:13.8|Info|FluentMigrator.Runner.MigrationRunner|PerformDBOperation
+2024-12-14 01:14:13.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Performing DB Operation
+2024-12-14 01:14:13.8|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0140775s
+2024-12-14 01:14:13.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (158, '2024-12-14T01:14:13', 'cdh_per_downloadclient')
+2024-12-14 01:14:13.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.8|Info|FluentMigrator.Runner.MigrationRunner|158: cdh_per_downloadclient migrated
+2024-12-14 01:14:13.8|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0206432s
+2024-12-14 01:14:13.8|Info|FluentMigrator.Runner.MigrationRunner|159: add_indexer_tags migrating
+2024-12-14 01:14:13.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.8|Info|add_indexer_tags|Starting migration of Main DB to 159
+2024-12-14 01:14:13.8|Info|FluentMigrator.Runner.MigrationRunner|AlterTable Indexers
+2024-12-14 01:14:13.8|Info|FluentMigrator.Runner.MigrationRunner|=> 6E-07s
+2024-12-14 01:14:13.8|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn Indexers Tags String
+2024-12-14 01:14:13.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Indexers" ADD COLUMN "Tags" TEXT
+2024-12-14 01:14:13.8|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0005118s
+2024-12-14 01:14:13.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (159, '2024-12-14T01:14:13', 'add_indexer_tags')
+2024-12-14 01:14:13.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.8|Info|FluentMigrator.Runner.MigrationRunner|159: add_indexer_tags migrated
+2024-12-14 01:14:13.8|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0069045s
+2024-12-14 01:14:13.8|Info|FluentMigrator.Runner.MigrationRunner|160: rename_blacklist_to_blocklist migrating
+2024-12-14 01:14:13.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.8|Info|rename_blacklist_to_blocklist|Starting migration of Main DB to 160
+2024-12-14 01:14:13.8|Info|FluentMigrator.Runner.MigrationRunner|RenameTable Blacklist Blocklist
+2024-12-14 01:14:13.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Blacklist" RENAME TO "Blocklist"
+2024-12-14 01:14:13.8|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0017432s
+2024-12-14 01:14:13.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (160, '2024-12-14T01:14:13', 'rename_blacklist_to_blocklist')
+2024-12-14 01:14:13.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.8|Info|FluentMigrator.Runner.MigrationRunner|160: rename_blacklist_to_blocklist migrated
+2024-12-14 01:14:13.8|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0100147s
+2024-12-14 01:14:13.8|Info|FluentMigrator.Runner.MigrationRunner|161: remove_plex_hometheatre migrating
+2024-12-14 01:14:13.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.8|Info|remove_plex_hometheatre|Starting migration of Main DB to 161
+2024-12-14 01:14:13.8|Info|FluentMigrator.Runner.MigrationRunner|FluentMigrator.Expressions.DeleteDataExpression
+2024-12-14 01:14:13.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DELETE FROM "Notifications" WHERE "Implementation" = 'PlexHomeTheater'
+2024-12-14 01:14:13.8|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0003425s
+2024-12-14 01:14:13.8|Info|FluentMigrator.Runner.MigrationRunner|FluentMigrator.Expressions.DeleteDataExpression
+2024-12-14 01:14:13.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DELETE FROM "Notifications" WHERE "Implementation" = 'PlexClient'
+2024-12-14 01:14:13.8|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001694s
+2024-12-14 01:14:13.8|Info|FluentMigrator.Runner.MigrationRunner|PerformDBOperation
+2024-12-14 01:14:13.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Performing DB Operation
+2024-12-14 01:14:13.8|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0037795s
+2024-12-14 01:14:13.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (161, '2024-12-14T01:14:13', 'remove_plex_hometheatre')
+2024-12-14 01:14:13.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.8|Info|FluentMigrator.Runner.MigrationRunner|161: remove_plex_hometheatre migrated
+2024-12-14 01:14:13.8|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0102289s
+2024-12-14 01:14:13.8|Info|FluentMigrator.Runner.MigrationRunner|162: release_profile_to_array migrating
+2024-12-14 01:14:13.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.8|Info|release_profile_to_array|Starting migration of Main DB to 162
+2024-12-14 01:14:13.8|Info|FluentMigrator.Runner.MigrationRunner|PerformDBOperation
+2024-12-14 01:14:13.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Performing DB Operation
+2024-12-14 01:14:13.8|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0011087s
+2024-12-14 01:14:13.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (162, '2024-12-14T01:14:13', 'release_profile_to_array')
+2024-12-14 01:14:13.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.8|Info|FluentMigrator.Runner.MigrationRunner|162: release_profile_to_array migrated
+2024-12-14 01:14:13.8|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0075753s
+2024-12-14 01:14:13.8|Info|FluentMigrator.Runner.MigrationRunner|163: mediainfo_to_ffmpeg migrating
+2024-12-14 01:14:13.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.8|Info|mediainfo_to_ffmpeg|Starting migration of Main DB to 163
+2024-12-14 01:14:13.8|Info|FluentMigrator.Runner.MigrationRunner|PerformDBOperation
+2024-12-14 01:14:13.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Performing DB Operation
+2024-12-14 01:14:13.8|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0013778s
+2024-12-14 01:14:13.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (163, '2024-12-14T01:14:13', 'mediainfo_to_ffmpeg')
+2024-12-14 01:14:13.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.9|Info|FluentMigrator.Runner.MigrationRunner|163: mediainfo_to_ffmpeg migrated
+2024-12-14 01:14:13.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.007736s
+2024-12-14 01:14:13.9|Info|FluentMigrator.Runner.MigrationRunner|164: download_client_per_indexer migrating
+2024-12-14 01:14:13.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.9|Info|download_client_per_indexer|Starting migration of Main DB to 164
+2024-12-14 01:14:13.9|Info|FluentMigrator.Runner.MigrationRunner|AlterTable Indexers
+2024-12-14 01:14:13.9|Info|FluentMigrator.Runner.MigrationRunner|=> 1E-06s
+2024-12-14 01:14:13.9|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn Indexers DownloadClientId Int32
+2024-12-14 01:14:13.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Indexers" ADD COLUMN "DownloadClientId" INTEGER NOT NULL DEFAULT 0
+2024-12-14 01:14:13.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0005925s
+2024-12-14 01:14:13.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (164, '2024-12-14T01:14:13', 'download_client_per_indexer')
+2024-12-14 01:14:13.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.9|Info|FluentMigrator.Runner.MigrationRunner|164: download_client_per_indexer migrated
+2024-12-14 01:14:13.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.007117s
+2024-12-14 01:14:13.9|Info|FluentMigrator.Runner.MigrationRunner|165: add_on_update_to_notifications migrating
+2024-12-14 01:14:13.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.9|Info|add_on_update_to_notifications|Starting migration of Main DB to 165
+2024-12-14 01:14:13.9|Info|FluentMigrator.Runner.MigrationRunner|AlterTable Notifications
+2024-12-14 01:14:13.9|Info|FluentMigrator.Runner.MigrationRunner|=> 7E-07s
+2024-12-14 01:14:13.9|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn Notifications OnApplicationUpdate Boolean
+2024-12-14 01:14:13.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Notifications" ADD COLUMN "OnApplicationUpdate" INTEGER NOT NULL DEFAULT 0
+2024-12-14 01:14:13.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0007365s
+2024-12-14 01:14:13.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (165, '2024-12-14T01:14:13', 'add_on_update_to_notifications')
+2024-12-14 01:14:13.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.9|Info|FluentMigrator.Runner.MigrationRunner|165: add_on_update_to_notifications migrated
+2024-12-14 01:14:13.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0071644s
+2024-12-14 01:14:13.9|Info|FluentMigrator.Runner.MigrationRunner|166: update_series_sort_title migrating
+2024-12-14 01:14:13.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.9|Info|update_series_sort_title|Starting migration of Main DB to 166
+2024-12-14 01:14:13.9|Info|FluentMigrator.Runner.MigrationRunner|PerformDBOperation
+2024-12-14 01:14:13.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Performing DB Operation
+2024-12-14 01:14:13.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0004621s
+2024-12-14 01:14:13.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (166, '2024-12-14T01:14:13', 'update_series_sort_title')
+2024-12-14 01:14:13.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.9|Info|FluentMigrator.Runner.MigrationRunner|166: update_series_sort_title migrated
+2024-12-14 01:14:13.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0096035s
+2024-12-14 01:14:13.9|Info|FluentMigrator.Runner.MigrationRunner|167: add_tvdbid_to_episode migrating
+2024-12-14 01:14:13.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.9|Info|add_tvdbid_to_episode|Starting migration of Main DB to 167
+2024-12-14 01:14:13.9|Info|FluentMigrator.Runner.MigrationRunner|AlterTable Episodes
+2024-12-14 01:14:13.9|Info|FluentMigrator.Runner.MigrationRunner|=> 5E-07s
+2024-12-14 01:14:13.9|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn Episodes TvdbId Int32
+2024-12-14 01:14:13.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Episodes" ADD COLUMN "TvdbId" INTEGER
+2024-12-14 01:14:13.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0005011s
+2024-12-14 01:14:13.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (167, '2024-12-14T01:14:13', 'add_tvdbid_to_episode')
+2024-12-14 01:14:13.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.9|Info|FluentMigrator.Runner.MigrationRunner|167: add_tvdbid_to_episode migrated
+2024-12-14 01:14:13.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0068722s
+2024-12-14 01:14:13.9|Info|FluentMigrator.Runner.MigrationRunner|168: add_additional_info_to_pending_releases migrating
+2024-12-14 01:14:13.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.9|Info|add_additional_info_to_pending_releases|Starting migration of Main DB to 168
+2024-12-14 01:14:13.9|Info|FluentMigrator.Runner.MigrationRunner|AlterTable PendingReleases
+2024-12-14 01:14:13.9|Info|FluentMigrator.Runner.MigrationRunner|=> 5E-07s
+2024-12-14 01:14:13.9|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn PendingReleases AdditionalInfo String
+2024-12-14 01:14:13.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "PendingReleases" ADD COLUMN "AdditionalInfo" TEXT
+2024-12-14 01:14:13.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0004619s
+2024-12-14 01:14:13.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (168, '2024-12-14T01:14:13', 'add_additional_info_to_pending_releases')
+2024-12-14 01:14:13.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.9|Info|FluentMigrator.Runner.MigrationRunner|168: add_additional_info_to_pending_releases migrated
+2024-12-14 01:14:13.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0067294s
+2024-12-14 01:14:13.9|Info|FluentMigrator.Runner.MigrationRunner|169: add_malayalam_and_ukrainian_languages migrating
+2024-12-14 01:14:13.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.9|Info|add_malayalam_and_ukrainian_languages|Starting migration of Main DB to 169
+2024-12-14 01:14:13.9|Info|FluentMigrator.Runner.MigrationRunner|PerformDBOperation
+2024-12-14 01:14:13.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Performing DB Operation
+2024-12-14 01:14:13.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.002201s
+2024-12-14 01:14:13.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (169, '2024-12-14T01:14:13', 'add_malayalam_and_ukrainian_languages')
+2024-12-14 01:14:13.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.9|Info|FluentMigrator.Runner.MigrationRunner|169: add_malayalam_and_ukrainian_languages migrated
+2024-12-14 01:14:13.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0085273s
+2024-12-14 01:14:13.9|Info|FluentMigrator.Runner.MigrationRunner|170: add_language_tags_to_subtitle_files migrating
+2024-12-14 01:14:13.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.9|Info|add_language_tags_to_subtitle_files|Starting migration of Main DB to 170
+2024-12-14 01:14:13.9|Info|FluentMigrator.Runner.MigrationRunner|AlterTable SubtitleFiles
+2024-12-14 01:14:13.9|Info|FluentMigrator.Runner.MigrationRunner|=> 6E-07s
+2024-12-14 01:14:13.9|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn SubtitleFiles LanguageTags String
+2024-12-14 01:14:13.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "SubtitleFiles" ADD COLUMN "LanguageTags" TEXT
+2024-12-14 01:14:13.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.000664s
+2024-12-14 01:14:13.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (170, '2024-12-14T01:14:13', 'add_language_tags_to_subtitle_files')
+2024-12-14 01:14:13.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.9|Info|FluentMigrator.Runner.MigrationRunner|170: add_language_tags_to_subtitle_files migrated
+2024-12-14 01:14:13.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0071684s
+2024-12-14 01:14:13.9|Info|FluentMigrator.Runner.MigrationRunner|171: add_custom_formats migrating
+2024-12-14 01:14:13.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.9|Info|add_custom_formats|Starting migration of Main DB to 171
+2024-12-14 01:14:13.9|Info|FluentMigrator.Runner.MigrationRunner|CreateTable CustomFormats
+2024-12-14 01:14:13.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "CustomFormats" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "Name" TEXT NOT NULL, "Specifications" TEXT NOT NULL DEFAULT '[]', "IncludeCustomFormatWhenRenaming" INTEGER NOT NULL DEFAULT 0)
+2024-12-14 01:14:13.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0003975s
+2024-12-14 01:14:13.9|Info|FluentMigrator.Runner.MigrationRunner|CreateIndex CustomFormats (Name)
+2024-12-14 01:14:13.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_CustomFormats_Name" ON "CustomFormats" ("Name" ASC)
+2024-12-14 01:14:13.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0002414s
+2024-12-14 01:14:13.9|Info|FluentMigrator.Runner.MigrationRunner|AlterTable QualityProfiles
+2024-12-14 01:14:13.9|Info|FluentMigrator.Runner.MigrationRunner|=> 6E-07s
+2024-12-14 01:14:13.9|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn QualityProfiles FormatItems String
+2024-12-14 01:14:13.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "QualityProfiles" ADD COLUMN "FormatItems" TEXT NOT NULL DEFAULT '[]'
+2024-12-14 01:14:13.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0008971s
+2024-12-14 01:14:13.9|Info|FluentMigrator.Runner.MigrationRunner|AlterTable QualityProfiles
+2024-12-14 01:14:13.9|Info|FluentMigrator.Runner.MigrationRunner|=> 6E-07s
+2024-12-14 01:14:13.9|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn QualityProfiles MinFormatScore Int32
+2024-12-14 01:14:13.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "QualityProfiles" ADD COLUMN "MinFormatScore" INTEGER NOT NULL DEFAULT 0
+2024-12-14 01:14:13.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.000795s
+2024-12-14 01:14:13.9|Info|FluentMigrator.Runner.MigrationRunner|AlterTable QualityProfiles
+2024-12-14 01:14:13.9|Info|FluentMigrator.Runner.MigrationRunner|=> 4E-07s
+2024-12-14 01:14:13.9|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn QualityProfiles CutoffFormatScore Int32
+2024-12-14 01:14:13.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "QualityProfiles" ADD COLUMN "CutoffFormatScore" INTEGER NOT NULL DEFAULT 0
+2024-12-14 01:14:13.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0007075s
+2024-12-14 01:14:13.9|Info|FluentMigrator.Runner.MigrationRunner|PerformDBOperation
+2024-12-14 01:14:13.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Performing DB Operation
+2024-12-14 01:14:13.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.005143s
+2024-12-14 01:14:13.9|Info|FluentMigrator.Runner.MigrationRunner|PerformDBOperation
+2024-12-14 01:14:13.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Performing DB Operation
+2024-12-14 01:14:13.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0006341s
+2024-12-14 01:14:13.9|Info|FluentMigrator.Runner.MigrationRunner|DeleteColumn ReleaseProfiles Preferred
+2024-12-14 01:14:13.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "ReleaseProfiles_temp" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "Required" TEXT, "Ignored" TEXT, "Tags" TEXT NOT NULL, "IncludePreferredWhenRenaming" INTEGER NOT NULL, "Enabled" INTEGER NOT NULL, "IndexerId" INTEGER NOT NULL, "Name" TEXT)
+2024-12-14 01:14:13.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "ReleaseProfiles_temp" ("Id", "Required", "Ignored", "Tags", "IncludePreferredWhenRenaming", "Enabled", "IndexerId", "Name") SELECT "Id", "Required", "Ignored", "Tags", "IncludePreferredWhenRenaming", "Enabled", "IndexerId", "Name" FROM "ReleaseProfiles"
+2024-12-14 01:14:13.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP TABLE "ReleaseProfiles"
+2024-12-14 01:14:13.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "ReleaseProfiles_temp" RENAME TO "ReleaseProfiles"
+2024-12-14 01:14:13.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0032889s
+2024-12-14 01:14:13.9|Info|FluentMigrator.Runner.MigrationRunner|DeleteColumn ReleaseProfiles IncludePreferredWhenRenaming
+2024-12-14 01:14:13.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "ReleaseProfiles_temp" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "Required" TEXT, "Ignored" TEXT, "Tags" TEXT NOT NULL, "Enabled" INTEGER NOT NULL, "IndexerId" INTEGER NOT NULL, "Name" TEXT)
+2024-12-14 01:14:13.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "ReleaseProfiles_temp" ("Id", "Required", "Ignored", "Tags", "Enabled", "IndexerId", "Name") SELECT "Id", "Required", "Ignored", "Tags", "Enabled", "IndexerId", "Name" FROM "ReleaseProfiles"
+2024-12-14 01:14:13.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP TABLE "ReleaseProfiles"
+2024-12-14 01:14:13.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "ReleaseProfiles_temp" RENAME TO "ReleaseProfiles"
+2024-12-14 01:14:13.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0031785s
+2024-12-14 01:14:13.9|Info|FluentMigrator.Runner.MigrationRunner|FluentMigrator.Expressions.DeleteDataExpression
+2024-12-14 01:14:13.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DELETE FROM "ReleaseProfiles" WHERE "Required" = '[]' AND "Ignored" = '[]'
+2024-12-14 01:14:13.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.000144s
+2024-12-14 01:14:13.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (171, '2024-12-14T01:14:13', 'add_custom_formats')
+2024-12-14 01:14:13.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.9|Info|FluentMigrator.Runner.MigrationRunner|171: add_custom_formats migrated
+2024-12-14 01:14:13.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0065834s
+2024-12-14 01:14:13.9|Info|FluentMigrator.Runner.MigrationRunner|172: add_SeasonSearchMaximumSingleEpisodeAge_to_indexers migrating
+2024-12-14 01:14:13.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.9|Info|add_SeasonSearchMaximumSingleEpisodeAge_to_indexers|Starting migration of Main DB to 172
+2024-12-14 01:14:13.9|Info|FluentMigrator.Runner.MigrationRunner|AlterTable Indexers
+2024-12-14 01:14:13.9|Info|FluentMigrator.Runner.MigrationRunner|=> 5E-07s
+2024-12-14 01:14:13.9|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn Indexers SeasonSearchMaximumSingleEpisodeAge Int32
+2024-12-14 01:14:13.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Indexers" ADD COLUMN "SeasonSearchMaximumSingleEpisodeAge" INTEGER NOT NULL DEFAULT 0
+2024-12-14 01:14:13.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0006394s
+2024-12-14 01:14:13.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (172, '2024-12-14T01:14:13', 'add_SeasonSearchMaximumSingleEpisodeAge_to_indexers')
+2024-12-14 01:14:13.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:13.9|Info|FluentMigrator.Runner.MigrationRunner|172: add_SeasonSearchMaximumSingleEpisodeAge_to_indexers migrated
+2024-12-14 01:14:13.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0071522s
+2024-12-14 01:14:13.9|Info|FluentMigrator.Runner.MigrationRunner|173: remove_omg migrating
+2024-12-14 01:14:13.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:13.9|Info|remove_omg|Starting migration of Main DB to 173
+2024-12-14 01:14:13.9|Info|FluentMigrator.Runner.MigrationRunner|ExecuteSqlStatement DELETE FROM "Indexers" WHERE "Implementation" = 'Omgwtfnzbs'
+2024-12-14 01:14:13.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DELETE FROM "Indexers" WHERE "Implementation" = 'Omgwtfnzbs'
+2024-12-14 01:14:13.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.000125s
+2024-12-14 01:14:13.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (173, '2024-12-14T01:14:13', 'remove_omg')
+2024-12-14 01:14:13.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|173: remove_omg migrated
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.006379s
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|174: add_salt_to_users migrating
+2024-12-14 01:14:14.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:14.0|Info|add_salt_to_users|Starting migration of Main DB to 174
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|AlterTable Users
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|=> 5E-07s
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn Users Salt String
+2024-12-14 01:14:14.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Users" ADD COLUMN "Salt" TEXT
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0008807s
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn Users Iterations Int32
+2024-12-14 01:14:14.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Users" ADD COLUMN "Iterations" INTEGER
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0008472s
+2024-12-14 01:14:14.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (174, '2024-12-14T01:14:14', 'add_salt_to_users')
+2024-12-14 01:14:14.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|174: add_salt_to_users migrated
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0074121s
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|175: language_profiles_to_custom_formats migrating
+2024-12-14 01:14:14.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:14.0|Info|language_profiles_to_custom_formats|Starting migration of Main DB to 175
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|AlterTable EpisodeFiles
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|=> 6E-07s
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn EpisodeFiles Languages String
+2024-12-14 01:14:14.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "EpisodeFiles" ADD COLUMN "Languages" TEXT NOT NULL DEFAULT '[]'
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0009346s
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|AlterTable History
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|=> 5E-07s
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn History Languages String
+2024-12-14 01:14:14.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "History" ADD COLUMN "Languages" TEXT NOT NULL DEFAULT '[]'
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0009543s
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|AlterTable Blocklist
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|=> 5E-07s
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn Blocklist Languages String
+2024-12-14 01:14:14.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Blocklist" ADD COLUMN "Languages" TEXT NOT NULL DEFAULT '[]'
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0008607s
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|ExecuteSqlStatement UPDATE "EpisodeFiles" SET "Languages" = '[' || "Language" || ']'
+2024-12-14 01:14:14.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|UPDATE "EpisodeFiles" SET "Languages" = '[' || "Language" || ']'
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001721s
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|ExecuteSqlStatement UPDATE "History" SET "Languages" = '[' || "Language" || ']'
+2024-12-14 01:14:14.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|UPDATE "History" SET "Languages" = '[' || "Language" || ']'
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.000155s
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|ExecuteSqlStatement UPDATE "Blocklist" SET "Languages" = '[' || "Language" || ']'
+2024-12-14 01:14:14.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|UPDATE "Blocklist" SET "Languages" = '[' || "Language" || ']'
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001529s
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|DeleteColumn EpisodeFiles Language
+2024-12-14 01:14:14.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "EpisodeFiles_temp" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "SeriesId" INTEGER NOT NULL, "Quality" TEXT NOT NULL, "Size" INTEGER NOT NULL, "DateAdded" DATETIME NOT NULL, "SeasonNumber" INTEGER NOT NULL, "SceneName" TEXT, "ReleaseGroup" TEXT, "MediaInfo" TEXT, "RelativePath" TEXT, "OriginalFilePath" TEXT, "Languages" TEXT NOT NULL)
+2024-12-14 01:14:14.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "EpisodeFiles_temp" ("Id", "SeriesId", "Quality", "Size", "DateAdded", "SeasonNumber", "SceneName", "ReleaseGroup", "MediaInfo", "RelativePath", "OriginalFilePath", "Languages") SELECT "Id", "SeriesId", "Quality", "Size", "DateAdded", "SeasonNumber", "SceneName", "ReleaseGroup", "MediaInfo", "RelativePath", "OriginalFilePath", "Languages" FROM "EpisodeFiles"
+2024-12-14 01:14:14.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP TABLE "EpisodeFiles"
+2024-12-14 01:14:14.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "EpisodeFiles_temp" RENAME TO "EpisodeFiles"
+2024-12-14 01:14:14.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE INDEX "IX_EpisodeFiles_SeriesId" ON "EpisodeFiles" ("SeriesId" ASC)
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.004375s
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|DeleteColumn History Language
+2024-12-14 01:14:14.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "History_temp" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "EpisodeId" INTEGER NOT NULL, "SeriesId" INTEGER NOT NULL, "SourceTitle" TEXT NOT NULL, "Date" DATETIME NOT NULL, "Quality" TEXT NOT NULL, "Data" TEXT NOT NULL, "EventType" INTEGER, "DownloadId" TEXT, "Languages" TEXT NOT NULL)
+2024-12-14 01:14:14.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "History_temp" ("Id", "EpisodeId", "SeriesId", "SourceTitle", "Date", "Quality", "Data", "EventType", "DownloadId", "Languages") SELECT "Id", "EpisodeId", "SeriesId", "SourceTitle", "Date", "Quality", "Data", "EventType", "DownloadId", "Languages" FROM "History"
+2024-12-14 01:14:14.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP TABLE "History"
+2024-12-14 01:14:14.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "History_temp" RENAME TO "History"
+2024-12-14 01:14:14.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE INDEX "IX_History_Date" ON "History" ("Date" ASC)
+2024-12-14 01:14:14.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE INDEX "IX_History_EventType" ON "History" ("EventType" ASC)
+2024-12-14 01:14:14.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE INDEX "IX_History_EpisodeId_Date" ON "History" ("EpisodeId" ASC, "Date" DESC)
+2024-12-14 01:14:14.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE INDEX "IX_History_DownloadId_Date" ON "History" ("DownloadId" ASC, "Date" DESC)
+2024-12-14 01:14:14.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE INDEX "IX_History_SeriesId" ON "History" ("SeriesId" ASC)
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0048717s
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|DeleteColumn Blocklist Language
+2024-12-14 01:14:14.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "Blocklist_temp" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "SeriesId" INTEGER NOT NULL, "EpisodeIds" TEXT NOT NULL, "SourceTitle" TEXT NOT NULL, "Quality" TEXT NOT NULL, "Date" DATETIME NOT NULL, "PublishedDate" DATETIME, "Size" INTEGER, "Protocol" INTEGER, "Indexer" TEXT, "Message" TEXT, "TorrentInfoHash" TEXT, "Languages" TEXT NOT NULL)
+2024-12-14 01:14:14.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "Blocklist_temp" ("Id", "SeriesId", "EpisodeIds", "SourceTitle", "Quality", "Date", "PublishedDate", "Size", "Protocol", "Indexer", "Message", "TorrentInfoHash", "Languages") SELECT "Id", "SeriesId", "EpisodeIds", "SourceTitle", "Quality", "Date", "PublishedDate", "Size", "Protocol", "Indexer", "Message", "TorrentInfoHash", "Languages" FROM "Blocklist"
+2024-12-14 01:14:14.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP TABLE "Blocklist"
+2024-12-14 01:14:14.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Blocklist_temp" RENAME TO "Blocklist"
+2024-12-14 01:14:14.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE INDEX "IX_Blacklist_SeriesId" ON "Blocklist" ("SeriesId" ASC)
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0034594s
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|DeleteColumn Series LanguageProfileId
+2024-12-14 01:14:14.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "Series_temp" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "TvdbId" INTEGER NOT NULL, "TvRageId" INTEGER NOT NULL, "ImdbId" TEXT, "Title" TEXT NOT NULL, "TitleSlug" TEXT, "CleanTitle" TEXT NOT NULL, "Status" INTEGER NOT NULL, "Overview" TEXT, "AirTime" TEXT, "Images" TEXT NOT NULL, "Path" TEXT NOT NULL, "Monitored" INTEGER NOT NULL, "SeasonFolder" INTEGER NOT NULL, "LastInfoSync" DATETIME, "LastDiskSync" DATETIME, "Runtime" INTEGER NOT NULL, "SeriesType" INTEGER NOT NULL, "Network" TEXT, "UseSceneNumbering" INTEGER NOT NULL, "FirstAired" DATETIME, "NextAiring" DATETIME, "Year" INTEGER, "Seasons" TEXT, "Actors" TEXT, "Ratings" TEXT, "Genres" TEXT, "Certification" TEXT, "SortTitle" TEXT, "QualityProfileId" INTEGER, "Tags" TEXT, "Added" DATETIME, "AddOptions" TEXT, "TvMazeId" INTEGER NOT NULL)
+2024-12-14 01:14:14.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "Series_temp" ("Id", "TvdbId", "TvRageId", "ImdbId", "Title", "TitleSlug", "CleanTitle", "Status", "Overview", "AirTime", "Images", "Path", "Monitored", "SeasonFolder", "LastInfoSync", "LastDiskSync", "Runtime", "SeriesType", "Network", "UseSceneNumbering", "FirstAired", "NextAiring", "Year", "Seasons", "Actors", "Ratings", "Genres", "Certification", "SortTitle", "QualityProfileId", "Tags", "Added", "AddOptions", "TvMazeId") SELECT "Id", "TvdbId", "TvRageId", "ImdbId", "Title", "TitleSlug", "CleanTitle", "Status", "Overview", "AirTime", "Images", "Path", "Monitored", "SeasonFolder", "LastInfoSync", "LastDiskSync", "Runtime", "SeriesType", "Network", "UseSceneNumbering", "FirstAired", "NextAiring", "Year", "Seasons", "Actors", "Ratings", "Genres", "Certification", "SortTitle", "QualityProfileId", "Tags", "Added", "AddOptions", "TvMazeId" FROM "Series"
+2024-12-14 01:14:14.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP TABLE "Series"
+2024-12-14 01:14:14.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Series_temp" RENAME TO "Series"
+2024-12-14 01:14:14.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_Series_TvdbId" ON "Series" ("TvdbId" ASC)
+2024-12-14 01:14:14.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_Series_TitleSlug" ON "Series" ("TitleSlug" ASC)
+2024-12-14 01:14:14.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE INDEX "IX_Series_Path" ON "Series" ("Path" ASC)
+2024-12-14 01:14:14.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE INDEX "IX_Series_CleanTitle" ON "Series" ("CleanTitle" ASC)
+2024-12-14 01:14:14.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE INDEX "IX_Series_TvRageId" ON "Series" ("TvRageId" ASC)
+2024-12-14 01:14:14.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE INDEX "IX_Series_TvMazeId" ON "Series" ("TvMazeId" ASC)
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.005079s
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|DeleteColumn ImportLists LanguageProfileId
+2024-12-14 01:14:14.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "ImportLists_temp" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "Name" TEXT NOT NULL, "Implementation" TEXT NOT NULL, "Settings" TEXT, "ConfigContract" TEXT, "EnableAutomaticAdd" INTEGER, "RootFolderPath" TEXT NOT NULL, "ShouldMonitor" INTEGER NOT NULL, "QualityProfileId" INTEGER NOT NULL, "Tags" TEXT, "SeriesType" INTEGER NOT NULL, "SeasonFolder" INTEGER NOT NULL)
+2024-12-14 01:14:14.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "ImportLists_temp" ("Id", "Name", "Implementation", "Settings", "ConfigContract", "EnableAutomaticAdd", "RootFolderPath", "ShouldMonitor", "QualityProfileId", "Tags", "SeriesType", "SeasonFolder") SELECT "Id", "Name", "Implementation", "Settings", "ConfigContract", "EnableAutomaticAdd", "RootFolderPath", "ShouldMonitor", "QualityProfileId", "Tags", "SeriesType", "SeasonFolder" FROM "ImportLists"
+2024-12-14 01:14:14.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP TABLE "ImportLists"
+2024-12-14 01:14:14.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "ImportLists_temp" RENAME TO "ImportLists"
+2024-12-14 01:14:14.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_ImportLists_Name" ON "ImportLists" ("Name" ASC)
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0033109s
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|DeleteTable LanguageProfiles
+2024-12-14 01:14:14.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP TABLE "LanguageProfiles"
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0002325s
+2024-12-14 01:14:14.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (175, '2024-12-14T01:14:14', 'language_profiles_to_custom_formats')
+2024-12-14 01:14:14.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|175: language_profiles_to_custom_formats migrated
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0068476s
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|176: original_language migrating
+2024-12-14 01:14:14.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:14.0|Info|original_language|Starting migration of Main DB to 176
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|AlterTable Series
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|=> 5E-07s
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn Series OriginalLanguage Int32
+2024-12-14 01:14:14.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Series" ADD COLUMN "OriginalLanguage" INTEGER NOT NULL DEFAULT 1
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0005224s
+2024-12-14 01:14:14.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (176, '2024-12-14T01:14:14', 'original_language')
+2024-12-14 01:14:14.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|176: original_language migrated
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0068324s
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|177: add_on_manual_interaction_required_to_notifications migrating
+2024-12-14 01:14:14.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:14.0|Info|add_on_manual_interaction_required_to_notifications|Starting migration of Main DB to 177
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|AlterTable Notifications
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|=> 5E-07s
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn Notifications OnManualInteractionRequired Boolean
+2024-12-14 01:14:14.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Notifications" ADD COLUMN "OnManualInteractionRequired" INTEGER NOT NULL DEFAULT 0
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0006895s
+2024-12-14 01:14:14.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (177, '2024-12-14T01:14:14', 'add_on_manual_interaction_required_to_notifications')
+2024-12-14 01:14:14.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|177: add_on_manual_interaction_required_to_notifications migrated
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0071133s
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|178: list_sync_time migrating
+2024-12-14 01:14:14.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:14.0|Info|list_sync_time|Starting migration of Main DB to 178
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|DeleteColumn ImportListStatus LastSyncListInfo
+2024-12-14 01:14:14.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "ImportListStatus_temp" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "ProviderId" INTEGER NOT NULL, "InitialFailure" DATETIME, "MostRecentFailure" DATETIME, "EscalationLevel" INTEGER NOT NULL, "DisabledTill" DATETIME)
+2024-12-14 01:14:14.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "ImportListStatus_temp" ("Id", "ProviderId", "InitialFailure", "MostRecentFailure", "EscalationLevel", "DisabledTill") SELECT "Id", "ProviderId", "InitialFailure", "MostRecentFailure", "EscalationLevel", "DisabledTill" FROM "ImportListStatus"
+2024-12-14 01:14:14.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP TABLE "ImportListStatus"
+2024-12-14 01:14:14.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "ImportListStatus_temp" RENAME TO "ImportListStatus"
+2024-12-14 01:14:14.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_ImportListStatus_ProviderId" ON "ImportListStatus" ("ProviderId" ASC)
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0055767s
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|AlterTable ImportListStatus
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|=> 4E-07s
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn ImportListStatus LastInfoSync DateTime
+2024-12-14 01:14:14.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "ImportListStatus" ADD COLUMN "LastInfoSync" DATETIME
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0006309s
+2024-12-14 01:14:14.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (178, '2024-12-14T01:14:14', 'list_sync_time')
+2024-12-14 01:14:14.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|178: list_sync_time migrated
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0071589s
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|179: add_auto_tagging migrating
+2024-12-14 01:14:14.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:14.0|Info|add_auto_tagging|Starting migration of Main DB to 179
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|CreateTable AutoTagging
+2024-12-14 01:14:14.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "AutoTagging" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "Name" TEXT NOT NULL, "Specifications" TEXT NOT NULL DEFAULT '[]', "RemoveTagsAutomatically" INTEGER NOT NULL DEFAULT 0, "Tags" TEXT NOT NULL DEFAULT '[]')
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0003458s
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|CreateIndex AutoTagging (Name)
+2024-12-14 01:14:14.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_AutoTagging_Name" ON "AutoTagging" ("Name" ASC)
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001919s
+2024-12-14 01:14:14.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (179, '2024-12-14T01:14:14', 'add_auto_tagging')
+2024-12-14 01:14:14.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|179: add_auto_tagging migrated
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0067836s
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|180: task_duration migrating
+2024-12-14 01:14:14.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:14.0|Info|task_duration|Starting migration of Main DB to 180
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|AlterTable ScheduledTasks
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|=> 6E-07s
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn ScheduledTasks LastStartTime DateTime
+2024-12-14 01:14:14.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "ScheduledTasks" ADD COLUMN "LastStartTime" DATETIME
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0005247s
+2024-12-14 01:14:14.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (180, '2024-12-14T01:14:14', 'task_duration')
+2024-12-14 01:14:14.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|180: task_duration migrated
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0068402s
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|181: quality_definition_preferred_size migrating
+2024-12-14 01:14:14.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:14.0|Info|quality_definition_preferred_size|Starting migration of Main DB to 181
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|AlterTable QualityDefinitions
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|=> 1.1E-06s
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn QualityDefinitions PreferredSize Double
+2024-12-14 01:14:14.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "QualityDefinitions" ADD COLUMN "PreferredSize" NUMERIC
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0005127s
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|ExecuteSqlStatement UPDATE "QualityDefinitions" SET "PreferredSize" = "MaxSize" - 5 WHERE "MaxSize" > 5
+2024-12-14 01:14:14.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|UPDATE "QualityDefinitions" SET "PreferredSize" = "MaxSize" - 5 WHERE "MaxSize" > 5
+2024-12-14 01:14:14.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001185s
+2024-12-14 01:14:14.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (181, '2024-12-14T01:14:14', 'quality_definition_preferred_size')
+2024-12-14 01:14:14.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|181: quality_definition_preferred_size migrated
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0064201s
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|182: add_custom_format_score_bypass_to_delay_profile migrating
+2024-12-14 01:14:14.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:14.1|Info|add_custom_format_score_bypass_to_delay_profile|Starting migration of Main DB to 182
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|AlterTable DelayProfiles
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|=> 6E-07s
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn DelayProfiles BypassIfAboveCustomFormatScore Boolean
+2024-12-14 01:14:14.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "DelayProfiles" ADD COLUMN "BypassIfAboveCustomFormatScore" INTEGER NOT NULL DEFAULT 0
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0005149s
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|AlterTable DelayProfiles
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|=> 5E-07s
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn DelayProfiles MinimumCustomFormatScore Int32
+2024-12-14 01:14:14.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "DelayProfiles" ADD COLUMN "MinimumCustomFormatScore" INTEGER
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0004612s
+2024-12-14 01:14:14.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (182, '2024-12-14T01:14:14', 'add_custom_format_score_bypass_to_delay_profile')
+2024-12-14 01:14:14.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|182: add_custom_format_score_bypass_to_delay_profile migrated
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.006853s
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|183: update_images_remote_url migrating
+2024-12-14 01:14:14.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:14.1|Info|update_images_remote_url|Starting migration of Main DB to 183
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|ExecuteSqlStatement UPDATE "Episodes" SET "Images" = REPLACE("Images", '"url"', '"remoteUrl"')
+2024-12-14 01:14:14.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|UPDATE "Episodes" SET "Images" = REPLACE("Images", '"url"', '"remoteUrl"')
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001328s
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|ExecuteSqlStatement UPDATE "Series" SET "Images" = REPLACE("Images", '"url"', '"remoteUrl"'), "Actors" = REPLACE("Actors", '"url"', '"remoteUrl"'), "Seasons" = REPLACE("Seasons", '"url"', '"remoteUrl"')
+2024-12-14 01:14:14.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|UPDATE "Series" SET "Images" = REPLACE("Images", '"url"', '"remoteUrl"'), "Actors" = REPLACE("Actors", '"url"', '"remoteUrl"'), "Seasons" = REPLACE("Seasons", '"url"', '"remoteUrl"')
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001928s
+2024-12-14 01:14:14.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (183, '2024-12-14T01:14:14', 'update_images_remote_url')
+2024-12-14 01:14:14.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|183: update_images_remote_url migrated
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0065387s
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|184: remove_invalid_roksbox_metadata_images migrating
+2024-12-14 01:14:14.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:14.1|Info|remove_invalid_roksbox_metadata_images|Starting migration of Main DB to 184
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|ExecuteSqlStatement DELETE FROM "MetadataFiles" WHERE "Consumer" = 'RoksboxMetadata' AND "Type" = 5 AND ("RelativePath" LIKE '%/metadata/%' OR "RelativePath" LIKE '%\metadata\%')
+2024-12-14 01:14:14.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DELETE FROM "MetadataFiles" WHERE "Consumer" = 'RoksboxMetadata' AND "Type" = 5 AND ("RelativePath" LIKE '%/metadata/%' OR "RelativePath" LIKE '%\metadata\%')
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0002216s
+2024-12-14 01:14:14.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (184, '2024-12-14T01:14:14', 'remove_invalid_roksbox_metadata_images')
+2024-12-14 01:14:14.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|184: remove_invalid_roksbox_metadata_images migrated
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0066101s
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|185: add_episode_runtime migrating
+2024-12-14 01:14:14.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:14.1|Info|add_episode_runtime|Starting migration of Main DB to 185
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|AlterTable Episodes
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|=> 6E-07s
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn Episodes Runtime Int32
+2024-12-14 01:14:14.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Episodes" ADD COLUMN "Runtime" INTEGER NOT NULL DEFAULT 0
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0005096s
+2024-12-14 01:14:14.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (185, '2024-12-14T01:14:14', 'add_episode_runtime')
+2024-12-14 01:14:14.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|185: add_episode_runtime migrated
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0068838s
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|186: add_result_to_commands migrating
+2024-12-14 01:14:14.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:14.1|Info|add_result_to_commands|Starting migration of Main DB to 186
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|AlterTable Commands
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|=> 7E-07s
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn Commands Result Int32
+2024-12-14 01:14:14.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Commands" ADD COLUMN "Result" INTEGER NOT NULL DEFAULT 1
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0006991s
+2024-12-14 01:14:14.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (186, '2024-12-14T01:14:14', 'add_result_to_commands')
+2024-12-14 01:14:14.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|186: add_result_to_commands migrated
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.007002s
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|187: add_on_series_add_to_notifications migrating
+2024-12-14 01:14:14.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:14.1|Info|add_on_series_add_to_notifications|Starting migration of Main DB to 187
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|AlterTable Notifications
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|=> 6E-07s
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn Notifications OnSeriesAdd Boolean
+2024-12-14 01:14:14.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Notifications" ADD COLUMN "OnSeriesAdd" INTEGER NOT NULL DEFAULT 0
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0005269s
+2024-12-14 01:14:14.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (187, '2024-12-14T01:14:14', 'add_on_series_add_to_notifications')
+2024-12-14 01:14:14.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|187: add_on_series_add_to_notifications migrated
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0068991s
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|188: postgres_update_timestamp_columns_to_with_timezone migrating
+2024-12-14 01:14:14.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:14.1|Info|postgres_update_timestamp_columns_to_with_timezone|Starting migration of Main DB to 188
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|FluentMigrator.Expressions.DeleteDataExpression
+2024-12-14 01:14:14.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DELETE FROM "Commands" WHERE 1 = 1
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001092s
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|AlterTable Blocklist
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|=> 4E-07s
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|AlterColumn Blocklist Date DateTimeOffset
+2024-12-14 01:14:14.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "Blocklist_temp" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "SeriesId" INTEGER NOT NULL, "EpisodeIds" TEXT NOT NULL, "SourceTitle" TEXT NOT NULL, "Quality" TEXT NOT NULL, "Date" DATETIME NOT NULL, "PublishedDate" DATETIME, "Size" INTEGER, "Protocol" INTEGER, "Indexer" TEXT, "Message" TEXT, "TorrentInfoHash" TEXT, "Languages" TEXT NOT NULL)
+2024-12-14 01:14:14.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "Blocklist_temp" ("Id", "SeriesId", "EpisodeIds", "SourceTitle", "Quality", "Date", "PublishedDate", "Size", "Protocol", "Indexer", "Message", "TorrentInfoHash", "Languages") SELECT "Id", "SeriesId", "EpisodeIds", "SourceTitle", "Quality", "Date", "PublishedDate", "Size", "Protocol", "Indexer", "Message", "TorrentInfoHash", "Languages" FROM "Blocklist"
+2024-12-14 01:14:14.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP TABLE "Blocklist"
+2024-12-14 01:14:14.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Blocklist_temp" RENAME TO "Blocklist"
+2024-12-14 01:14:14.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE INDEX "IX_Blacklist_SeriesId" ON "Blocklist" ("SeriesId" ASC)
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0045661s
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|AlterTable Blocklist
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|=> 6E-07s
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|AlterColumn Blocklist PublishedDate DateTimeOffset
+2024-12-14 01:14:14.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "Blocklist_temp" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "SeriesId" INTEGER NOT NULL, "EpisodeIds" TEXT NOT NULL, "SourceTitle" TEXT NOT NULL, "Quality" TEXT NOT NULL, "Date" DATETIME NOT NULL, "PublishedDate" DATETIME, "Size" INTEGER, "Protocol" INTEGER, "Indexer" TEXT, "Message" TEXT, "TorrentInfoHash" TEXT, "Languages" TEXT NOT NULL)
+2024-12-14 01:14:14.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "Blocklist_temp" ("Id", "SeriesId", "EpisodeIds", "SourceTitle", "Quality", "Date", "PublishedDate", "Size", "Protocol", "Indexer", "Message", "TorrentInfoHash", "Languages") SELECT "Id", "SeriesId", "EpisodeIds", "SourceTitle", "Quality", "Date", "PublishedDate", "Size", "Protocol", "Indexer", "Message", "TorrentInfoHash", "Languages" FROM "Blocklist"
+2024-12-14 01:14:14.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP TABLE "Blocklist"
+2024-12-14 01:14:14.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Blocklist_temp" RENAME TO "Blocklist"
+2024-12-14 01:14:14.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE INDEX "IX_Blacklist_SeriesId" ON "Blocklist" ("SeriesId" ASC)
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0044972s
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|AlterTable Commands
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|=> 5E-07s
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|AlterColumn Commands QueuedAt DateTimeOffset
+2024-12-14 01:14:14.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "Commands_temp" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "Name" TEXT NOT NULL, "Body" TEXT NOT NULL, "Priority" INTEGER NOT NULL, "Status" INTEGER NOT NULL, "QueuedAt" DATETIME NOT NULL, "StartedAt" DATETIME, "EndedAt" DATETIME, "Duration" TEXT, "Exception" TEXT, "Trigger" INTEGER NOT NULL, "Result" INTEGER NOT NULL)
+2024-12-14 01:14:14.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "Commands_temp" ("Id", "Name", "Body", "Priority", "Status", "QueuedAt", "StartedAt", "EndedAt", "Duration", "Exception", "Trigger", "Result") SELECT "Id", "Name", "Body", "Priority", "Status", "QueuedAt", "StartedAt", "EndedAt", "Duration", "Exception", "Trigger", "Result" FROM "Commands"
+2024-12-14 01:14:14.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP TABLE "Commands"
+2024-12-14 01:14:14.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Commands_temp" RENAME TO "Commands"
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0045311s
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|AlterTable Commands
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|=> 6E-07s
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|AlterColumn Commands StartedAt DateTimeOffset
+2024-12-14 01:14:14.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "Commands_temp" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "Name" TEXT NOT NULL, "Body" TEXT NOT NULL, "Priority" INTEGER NOT NULL, "Status" INTEGER NOT NULL, "QueuedAt" DATETIME NOT NULL, "StartedAt" DATETIME, "EndedAt" DATETIME, "Duration" TEXT, "Exception" TEXT, "Trigger" INTEGER NOT NULL, "Result" INTEGER NOT NULL)
+2024-12-14 01:14:14.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "Commands_temp" ("Id", "Name", "Body", "Priority", "Status", "QueuedAt", "StartedAt", "EndedAt", "Duration", "Exception", "Trigger", "Result") SELECT "Id", "Name", "Body", "Priority", "Status", "QueuedAt", "StartedAt", "EndedAt", "Duration", "Exception", "Trigger", "Result" FROM "Commands"
+2024-12-14 01:14:14.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP TABLE "Commands"
+2024-12-14 01:14:14.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Commands_temp" RENAME TO "Commands"
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.004146s
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|AlterTable Commands
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|=> 6E-07s
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|AlterColumn Commands EndedAt DateTimeOffset
+2024-12-14 01:14:14.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "Commands_temp" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "Name" TEXT NOT NULL, "Body" TEXT NOT NULL, "Priority" INTEGER NOT NULL, "Status" INTEGER NOT NULL, "QueuedAt" DATETIME NOT NULL, "StartedAt" DATETIME, "EndedAt" DATETIME, "Duration" TEXT, "Exception" TEXT, "Trigger" INTEGER NOT NULL, "Result" INTEGER NOT NULL)
+2024-12-14 01:14:14.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "Commands_temp" ("Id", "Name", "Body", "Priority", "Status", "QueuedAt", "StartedAt", "EndedAt", "Duration", "Exception", "Trigger", "Result") SELECT "Id", "Name", "Body", "Priority", "Status", "QueuedAt", "StartedAt", "EndedAt", "Duration", "Exception", "Trigger", "Result" FROM "Commands"
+2024-12-14 01:14:14.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP TABLE "Commands"
+2024-12-14 01:14:14.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Commands_temp" RENAME TO "Commands"
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0075094s
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|AlterTable DownloadClientStatus
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|=> 6E-07s
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|AlterColumn DownloadClientStatus InitialFailure DateTimeOffset
+2024-12-14 01:14:14.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "DownloadClientStatus_temp" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "ProviderId" INTEGER NOT NULL, "InitialFailure" DATETIME, "MostRecentFailure" DATETIME, "EscalationLevel" INTEGER NOT NULL, "DisabledTill" DATETIME)
+2024-12-14 01:14:14.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "DownloadClientStatus_temp" ("Id", "ProviderId", "InitialFailure", "MostRecentFailure", "EscalationLevel", "DisabledTill") SELECT "Id", "ProviderId", "InitialFailure", "MostRecentFailure", "EscalationLevel", "DisabledTill" FROM "DownloadClientStatus"
+2024-12-14 01:14:14.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP TABLE "DownloadClientStatus"
+2024-12-14 01:14:14.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "DownloadClientStatus_temp" RENAME TO "DownloadClientStatus"
+2024-12-14 01:14:14.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_DownloadClientStatus_ProviderId" ON "DownloadClientStatus" ("ProviderId" ASC)
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0034494s
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|AlterTable DownloadClientStatus
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|=> 5E-07s
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|AlterColumn DownloadClientStatus MostRecentFailure DateTimeOffset
+2024-12-14 01:14:14.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "DownloadClientStatus_temp" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "ProviderId" INTEGER NOT NULL, "InitialFailure" DATETIME, "MostRecentFailure" DATETIME, "EscalationLevel" INTEGER NOT NULL, "DisabledTill" DATETIME)
+2024-12-14 01:14:14.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "DownloadClientStatus_temp" ("Id", "ProviderId", "InitialFailure", "MostRecentFailure", "EscalationLevel", "DisabledTill") SELECT "Id", "ProviderId", "InitialFailure", "MostRecentFailure", "EscalationLevel", "DisabledTill" FROM "DownloadClientStatus"
+2024-12-14 01:14:14.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP TABLE "DownloadClientStatus"
+2024-12-14 01:14:14.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "DownloadClientStatus_temp" RENAME TO "DownloadClientStatus"
+2024-12-14 01:14:14.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_DownloadClientStatus_ProviderId" ON "DownloadClientStatus" ("ProviderId" ASC)
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0032596s
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|AlterTable DownloadClientStatus
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|=> 4E-07s
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|AlterColumn DownloadClientStatus DisabledTill DateTimeOffset
+2024-12-14 01:14:14.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "DownloadClientStatus_temp" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "ProviderId" INTEGER NOT NULL, "InitialFailure" DATETIME, "MostRecentFailure" DATETIME, "EscalationLevel" INTEGER NOT NULL, "DisabledTill" DATETIME)
+2024-12-14 01:14:14.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "DownloadClientStatus_temp" ("Id", "ProviderId", "InitialFailure", "MostRecentFailure", "EscalationLevel", "DisabledTill") SELECT "Id", "ProviderId", "InitialFailure", "MostRecentFailure", "EscalationLevel", "DisabledTill" FROM "DownloadClientStatus"
+2024-12-14 01:14:14.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP TABLE "DownloadClientStatus"
+2024-12-14 01:14:14.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "DownloadClientStatus_temp" RENAME TO "DownloadClientStatus"
+2024-12-14 01:14:14.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_DownloadClientStatus_ProviderId" ON "DownloadClientStatus" ("ProviderId" ASC)
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0033238s
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|AlterTable DownloadHistory
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|=> 5E-07s
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|AlterColumn DownloadHistory Date DateTimeOffset
+2024-12-14 01:14:14.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "DownloadHistory_temp" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "EventType" INTEGER NOT NULL, "SeriesId" INTEGER NOT NULL, "DownloadId" TEXT NOT NULL, "SourceTitle" TEXT NOT NULL, "Date" DATETIME NOT NULL, "Protocol" INTEGER, "IndexerId" INTEGER, "DownloadClientId" INTEGER, "Release" TEXT, "Data" TEXT)
+2024-12-14 01:14:14.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "DownloadHistory_temp" ("Id", "EventType", "SeriesId", "DownloadId", "SourceTitle", "Date", "Protocol", "IndexerId", "DownloadClientId", "Release", "Data") SELECT "Id", "EventType", "SeriesId", "DownloadId", "SourceTitle", "Date", "Protocol", "IndexerId", "DownloadClientId", "Release", "Data" FROM "DownloadHistory"
+2024-12-14 01:14:14.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP TABLE "DownloadHistory"
+2024-12-14 01:14:14.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "DownloadHistory_temp" RENAME TO "DownloadHistory"
+2024-12-14 01:14:14.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE INDEX "IX_DownloadHistory_EventType" ON "DownloadHistory" ("EventType" ASC)
+2024-12-14 01:14:14.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE INDEX "IX_DownloadHistory_SeriesId" ON "DownloadHistory" ("SeriesId" ASC)
+2024-12-14 01:14:14.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE INDEX "IX_DownloadHistory_DownloadId" ON "DownloadHistory" ("DownloadId" ASC)
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0036993s
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|AlterTable EpisodeFiles
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|=> 4E-07s
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|AlterColumn EpisodeFiles DateAdded DateTimeOffset
+2024-12-14 01:14:14.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "EpisodeFiles_temp" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "SeriesId" INTEGER NOT NULL, "Quality" TEXT NOT NULL, "Size" INTEGER NOT NULL, "DateAdded" DATETIME NOT NULL, "SeasonNumber" INTEGER NOT NULL, "SceneName" TEXT, "ReleaseGroup" TEXT, "MediaInfo" TEXT, "RelativePath" TEXT, "OriginalFilePath" TEXT, "Languages" TEXT NOT NULL)
+2024-12-14 01:14:14.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "EpisodeFiles_temp" ("Id", "SeriesId", "Quality", "Size", "DateAdded", "SeasonNumber", "SceneName", "ReleaseGroup", "MediaInfo", "RelativePath", "OriginalFilePath", "Languages") SELECT "Id", "SeriesId", "Quality", "Size", "DateAdded", "SeasonNumber", "SceneName", "ReleaseGroup", "MediaInfo", "RelativePath", "OriginalFilePath", "Languages" FROM "EpisodeFiles"
+2024-12-14 01:14:14.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP TABLE "EpisodeFiles"
+2024-12-14 01:14:14.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "EpisodeFiles_temp" RENAME TO "EpisodeFiles"
+2024-12-14 01:14:14.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE INDEX "IX_EpisodeFiles_SeriesId" ON "EpisodeFiles" ("SeriesId" ASC)
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.003326s
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|AlterTable Episodes
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|=> 6E-07s
+2024-12-14 01:14:14.1|Info|FluentMigrator.Runner.MigrationRunner|AlterColumn Episodes AirDateUtc DateTimeOffset
+2024-12-14 01:14:14.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "Episodes_temp" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "SeriesId" INTEGER NOT NULL, "SeasonNumber" INTEGER NOT NULL, "EpisodeNumber" INTEGER NOT NULL, "Title" TEXT, "Overview" TEXT, "EpisodeFileId" INTEGER, "AbsoluteEpisodeNumber" INTEGER, "SceneAbsoluteEpisodeNumber" INTEGER, "SceneSeasonNumber" INTEGER, "SceneEpisodeNumber" INTEGER, "Monitored" INTEGER, "AirDateUtc" DATETIME, "AirDate" TEXT, "Ratings" TEXT, "Images" TEXT, "UnverifiedSceneNumbering" INTEGER NOT NULL, "LastSearchTime" DATETIME, "AiredAfterSeasonNumber" INTEGER, "AiredBeforeSeasonNumber" INTEGER, "AiredBeforeEpisodeNumber" INTEGER, "TvdbId" INTEGER, "Runtime" INTEGER NOT NULL)
+2024-12-14 01:14:14.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "Episodes_temp" ("Id", "SeriesId", "SeasonNumber", "EpisodeNumber", "Title", "Overview", "EpisodeFileId", "AbsoluteEpisodeNumber", "SceneAbsoluteEpisodeNumber", "SceneSeasonNumber", "SceneEpisodeNumber", "Monitored", "AirDateUtc", "AirDate", "Ratings", "Images", "UnverifiedSceneNumbering", "LastSearchTime", "AiredAfterSeasonNumber", "AiredBeforeSeasonNumber", "AiredBeforeEpisodeNumber", "TvdbId", "Runtime") SELECT "Id", "SeriesId", "SeasonNumber", "EpisodeNumber", "Title", "Overview", "EpisodeFileId", "AbsoluteEpisodeNumber", "SceneAbsoluteEpisodeNumber", "SceneSeasonNumber", "SceneEpisodeNumber", "Monitored", "AirDateUtc", "AirDate", "Ratings", "Images", "UnverifiedSceneNumbering", "LastSearchTime", "AiredAfterSeasonNumber", "AiredBeforeSeasonNumber", "AiredBeforeEpisodeNumber", "TvdbId", "Runtime" FROM "Episodes"
+2024-12-14 01:14:14.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP TABLE "Episodes"
+2024-12-14 01:14:14.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Episodes_temp" RENAME TO "Episodes"
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE INDEX "IX_Episodes_EpisodeFileId" ON "Episodes" ("EpisodeFileId" ASC)
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE INDEX "IX_Episodes_SeriesId" ON "Episodes" ("SeriesId" ASC)
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE INDEX "IX_Episodes_SeriesId_SeasonNumber_EpisodeNumber" ON "Episodes" ("SeriesId" ASC, "SeasonNumber" ASC, "EpisodeNumber" ASC)
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE INDEX "IX_Episodes_SeriesId_AirDate" ON "Episodes" ("SeriesId" ASC, "AirDate" ASC)
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0045879s
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|AlterTable Episodes
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|=> 5E-07s
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|AlterColumn Episodes LastSearchTime DateTimeOffset
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "Episodes_temp" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "SeriesId" INTEGER NOT NULL, "SeasonNumber" INTEGER NOT NULL, "EpisodeNumber" INTEGER NOT NULL, "Title" TEXT, "Overview" TEXT, "EpisodeFileId" INTEGER, "AbsoluteEpisodeNumber" INTEGER, "SceneAbsoluteEpisodeNumber" INTEGER, "SceneSeasonNumber" INTEGER, "SceneEpisodeNumber" INTEGER, "Monitored" INTEGER, "AirDateUtc" DATETIME, "AirDate" TEXT, "Ratings" TEXT, "Images" TEXT, "UnverifiedSceneNumbering" INTEGER NOT NULL, "LastSearchTime" DATETIME, "AiredAfterSeasonNumber" INTEGER, "AiredBeforeSeasonNumber" INTEGER, "AiredBeforeEpisodeNumber" INTEGER, "TvdbId" INTEGER, "Runtime" INTEGER NOT NULL)
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "Episodes_temp" ("Id", "SeriesId", "SeasonNumber", "EpisodeNumber", "Title", "Overview", "EpisodeFileId", "AbsoluteEpisodeNumber", "SceneAbsoluteEpisodeNumber", "SceneSeasonNumber", "SceneEpisodeNumber", "Monitored", "AirDateUtc", "AirDate", "Ratings", "Images", "UnverifiedSceneNumbering", "LastSearchTime", "AiredAfterSeasonNumber", "AiredBeforeSeasonNumber", "AiredBeforeEpisodeNumber", "TvdbId", "Runtime") SELECT "Id", "SeriesId", "SeasonNumber", "EpisodeNumber", "Title", "Overview", "EpisodeFileId", "AbsoluteEpisodeNumber", "SceneAbsoluteEpisodeNumber", "SceneSeasonNumber", "SceneEpisodeNumber", "Monitored", "AirDateUtc", "AirDate", "Ratings", "Images", "UnverifiedSceneNumbering", "LastSearchTime", "AiredAfterSeasonNumber", "AiredBeforeSeasonNumber", "AiredBeforeEpisodeNumber", "TvdbId", "Runtime" FROM "Episodes"
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP TABLE "Episodes"
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Episodes_temp" RENAME TO "Episodes"
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE INDEX "IX_Episodes_EpisodeFileId" ON "Episodes" ("EpisodeFileId" ASC)
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE INDEX "IX_Episodes_SeriesId" ON "Episodes" ("SeriesId" ASC)
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE INDEX "IX_Episodes_SeriesId_SeasonNumber_EpisodeNumber" ON "Episodes" ("SeriesId" ASC, "SeasonNumber" ASC, "EpisodeNumber" ASC)
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE INDEX "IX_Episodes_SeriesId_AirDate" ON "Episodes" ("SeriesId" ASC, "AirDate" ASC)
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0047315s
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|AlterTable ExtraFiles
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|=> 4E-07s
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|AlterColumn ExtraFiles Added DateTimeOffset
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "ExtraFiles_temp" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "SeriesId" INTEGER NOT NULL, "SeasonNumber" INTEGER NOT NULL, "EpisodeFileId" INTEGER NOT NULL, "RelativePath" TEXT NOT NULL, "Extension" TEXT NOT NULL, "Added" DATETIME NOT NULL, "LastUpdated" DATETIME NOT NULL)
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "ExtraFiles_temp" ("Id", "SeriesId", "SeasonNumber", "EpisodeFileId", "RelativePath", "Extension", "Added", "LastUpdated") SELECT "Id", "SeriesId", "SeasonNumber", "EpisodeFileId", "RelativePath", "Extension", "Added", "LastUpdated" FROM "ExtraFiles"
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP TABLE "ExtraFiles"
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "ExtraFiles_temp" RENAME TO "ExtraFiles"
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0031323s
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|AlterTable ExtraFiles
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|=> 4E-07s
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|AlterColumn ExtraFiles LastUpdated DateTimeOffset
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "ExtraFiles_temp" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "SeriesId" INTEGER NOT NULL, "SeasonNumber" INTEGER NOT NULL, "EpisodeFileId" INTEGER NOT NULL, "RelativePath" TEXT NOT NULL, "Extension" TEXT NOT NULL, "Added" DATETIME NOT NULL, "LastUpdated" DATETIME NOT NULL)
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "ExtraFiles_temp" ("Id", "SeriesId", "SeasonNumber", "EpisodeFileId", "RelativePath", "Extension", "Added", "LastUpdated") SELECT "Id", "SeriesId", "SeasonNumber", "EpisodeFileId", "RelativePath", "Extension", "Added", "LastUpdated" FROM "ExtraFiles"
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP TABLE "ExtraFiles"
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "ExtraFiles_temp" RENAME TO "ExtraFiles"
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0032169s
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|AlterTable History
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|=> 5E-07s
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|AlterColumn History Date DateTimeOffset
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "History_temp" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "EpisodeId" INTEGER NOT NULL, "SeriesId" INTEGER NOT NULL, "SourceTitle" TEXT NOT NULL, "Date" DATETIME NOT NULL, "Quality" TEXT NOT NULL, "Data" TEXT NOT NULL, "EventType" INTEGER, "DownloadId" TEXT, "Languages" TEXT NOT NULL)
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "History_temp" ("Id", "EpisodeId", "SeriesId", "SourceTitle", "Date", "Quality", "Data", "EventType", "DownloadId", "Languages") SELECT "Id", "EpisodeId", "SeriesId", "SourceTitle", "Date", "Quality", "Data", "EventType", "DownloadId", "Languages" FROM "History"
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP TABLE "History"
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "History_temp" RENAME TO "History"
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE INDEX "IX_History_Date" ON "History" ("Date" ASC)
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE INDEX "IX_History_EventType" ON "History" ("EventType" ASC)
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE INDEX "IX_History_EpisodeId_Date" ON "History" ("EpisodeId" ASC, "Date" DESC)
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE INDEX "IX_History_DownloadId_Date" ON "History" ("DownloadId" ASC, "Date" DESC)
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE INDEX "IX_History_SeriesId" ON "History" ("SeriesId" ASC)
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0043399s
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|AlterTable ImportListStatus
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|=> 5E-07s
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|AlterColumn ImportListStatus InitialFailure DateTimeOffset
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "ImportListStatus_temp" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "ProviderId" INTEGER NOT NULL, "InitialFailure" DATETIME, "MostRecentFailure" DATETIME, "EscalationLevel" INTEGER NOT NULL, "DisabledTill" DATETIME, "LastInfoSync" DATETIME)
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "ImportListStatus_temp" ("Id", "ProviderId", "InitialFailure", "MostRecentFailure", "EscalationLevel", "DisabledTill", "LastInfoSync") SELECT "Id", "ProviderId", "InitialFailure", "MostRecentFailure", "EscalationLevel", "DisabledTill", "LastInfoSync" FROM "ImportListStatus"
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP TABLE "ImportListStatus"
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "ImportListStatus_temp" RENAME TO "ImportListStatus"
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_ImportListStatus_ProviderId" ON "ImportListStatus" ("ProviderId" ASC)
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0033247s
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|AlterTable ImportListStatus
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|=> 4E-07s
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|AlterColumn ImportListStatus MostRecentFailure DateTimeOffset
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "ImportListStatus_temp" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "ProviderId" INTEGER NOT NULL, "InitialFailure" DATETIME, "MostRecentFailure" DATETIME, "EscalationLevel" INTEGER NOT NULL, "DisabledTill" DATETIME, "LastInfoSync" DATETIME)
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "ImportListStatus_temp" ("Id", "ProviderId", "InitialFailure", "MostRecentFailure", "EscalationLevel", "DisabledTill", "LastInfoSync") SELECT "Id", "ProviderId", "InitialFailure", "MostRecentFailure", "EscalationLevel", "DisabledTill", "LastInfoSync" FROM "ImportListStatus"
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP TABLE "ImportListStatus"
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "ImportListStatus_temp" RENAME TO "ImportListStatus"
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_ImportListStatus_ProviderId" ON "ImportListStatus" ("ProviderId" ASC)
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0034056s
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|AlterTable ImportListStatus
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|=> 4E-07s
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|AlterColumn ImportListStatus DisabledTill DateTimeOffset
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "ImportListStatus_temp" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "ProviderId" INTEGER NOT NULL, "InitialFailure" DATETIME, "MostRecentFailure" DATETIME, "EscalationLevel" INTEGER NOT NULL, "DisabledTill" DATETIME, "LastInfoSync" DATETIME)
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "ImportListStatus_temp" ("Id", "ProviderId", "InitialFailure", "MostRecentFailure", "EscalationLevel", "DisabledTill", "LastInfoSync") SELECT "Id", "ProviderId", "InitialFailure", "MostRecentFailure", "EscalationLevel", "DisabledTill", "LastInfoSync" FROM "ImportListStatus"
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP TABLE "ImportListStatus"
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "ImportListStatus_temp" RENAME TO "ImportListStatus"
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_ImportListStatus_ProviderId" ON "ImportListStatus" ("ProviderId" ASC)
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0038268s
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|AlterTable ImportListStatus
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|=> 5E-07s
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|AlterColumn ImportListStatus LastInfoSync DateTimeOffset
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "ImportListStatus_temp" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "ProviderId" INTEGER NOT NULL, "InitialFailure" DATETIME, "MostRecentFailure" DATETIME, "EscalationLevel" INTEGER NOT NULL, "DisabledTill" DATETIME, "LastInfoSync" DATETIME)
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "ImportListStatus_temp" ("Id", "ProviderId", "InitialFailure", "MostRecentFailure", "EscalationLevel", "DisabledTill", "LastInfoSync") SELECT "Id", "ProviderId", "InitialFailure", "MostRecentFailure", "EscalationLevel", "DisabledTill", "LastInfoSync" FROM "ImportListStatus"
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP TABLE "ImportListStatus"
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "ImportListStatus_temp" RENAME TO "ImportListStatus"
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_ImportListStatus_ProviderId" ON "ImportListStatus" ("ProviderId" ASC)
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0039183s
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|AlterTable IndexerStatus
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|=> 4E-07s
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|AlterColumn IndexerStatus InitialFailure DateTimeOffset
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "IndexerStatus_temp" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "ProviderId" INTEGER NOT NULL, "InitialFailure" DATETIME, "MostRecentFailure" DATETIME, "EscalationLevel" INTEGER NOT NULL, "DisabledTill" DATETIME, "LastRssSyncReleaseInfo" TEXT)
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "IndexerStatus_temp" ("Id", "ProviderId", "InitialFailure", "MostRecentFailure", "EscalationLevel", "DisabledTill", "LastRssSyncReleaseInfo") SELECT "Id", "ProviderId", "InitialFailure", "MostRecentFailure", "EscalationLevel", "DisabledTill", "LastRssSyncReleaseInfo" FROM "IndexerStatus"
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP TABLE "IndexerStatus"
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "IndexerStatus_temp" RENAME TO "IndexerStatus"
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_IndexerStatus_ProviderId" ON "IndexerStatus" ("ProviderId" ASC)
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0037863s
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|AlterTable IndexerStatus
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|=> 4E-07s
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|AlterColumn IndexerStatus MostRecentFailure DateTimeOffset
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "IndexerStatus_temp" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "ProviderId" INTEGER NOT NULL, "InitialFailure" DATETIME, "MostRecentFailure" DATETIME, "EscalationLevel" INTEGER NOT NULL, "DisabledTill" DATETIME, "LastRssSyncReleaseInfo" TEXT)
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "IndexerStatus_temp" ("Id", "ProviderId", "InitialFailure", "MostRecentFailure", "EscalationLevel", "DisabledTill", "LastRssSyncReleaseInfo") SELECT "Id", "ProviderId", "InitialFailure", "MostRecentFailure", "EscalationLevel", "DisabledTill", "LastRssSyncReleaseInfo" FROM "IndexerStatus"
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP TABLE "IndexerStatus"
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "IndexerStatus_temp" RENAME TO "IndexerStatus"
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_IndexerStatus_ProviderId" ON "IndexerStatus" ("ProviderId" ASC)
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0046963s
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|AlterTable IndexerStatus
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|=> 5E-07s
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|AlterColumn IndexerStatus DisabledTill DateTimeOffset
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "IndexerStatus_temp" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "ProviderId" INTEGER NOT NULL, "InitialFailure" DATETIME, "MostRecentFailure" DATETIME, "EscalationLevel" INTEGER NOT NULL, "DisabledTill" DATETIME, "LastRssSyncReleaseInfo" TEXT)
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "IndexerStatus_temp" ("Id", "ProviderId", "InitialFailure", "MostRecentFailure", "EscalationLevel", "DisabledTill", "LastRssSyncReleaseInfo") SELECT "Id", "ProviderId", "InitialFailure", "MostRecentFailure", "EscalationLevel", "DisabledTill", "LastRssSyncReleaseInfo" FROM "IndexerStatus"
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP TABLE "IndexerStatus"
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "IndexerStatus_temp" RENAME TO "IndexerStatus"
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_IndexerStatus_ProviderId" ON "IndexerStatus" ("ProviderId" ASC)
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0033868s
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|AlterTable MetadataFiles
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|=> 5E-07s
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|AlterColumn MetadataFiles LastUpdated DateTimeOffset
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "MetadataFiles_temp" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "SeriesId" INTEGER NOT NULL, "Consumer" TEXT NOT NULL, "Type" INTEGER NOT NULL, "RelativePath" TEXT NOT NULL, "LastUpdated" DATETIME NOT NULL, "SeasonNumber" INTEGER, "EpisodeFileId" INTEGER, "Hash" TEXT, "Added" DATETIME, "Extension" TEXT NOT NULL)
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "MetadataFiles_temp" ("Id", "SeriesId", "Consumer", "Type", "RelativePath", "LastUpdated", "SeasonNumber", "EpisodeFileId", "Hash", "Added", "Extension") SELECT "Id", "SeriesId", "Consumer", "Type", "RelativePath", "LastUpdated", "SeasonNumber", "EpisodeFileId", "Hash", "Added", "Extension" FROM "MetadataFiles"
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP TABLE "MetadataFiles"
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "MetadataFiles_temp" RENAME TO "MetadataFiles"
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0032461s
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|AlterTable MetadataFiles
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|=> 5E-07s
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|AlterColumn MetadataFiles Added DateTimeOffset
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "MetadataFiles_temp" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "SeriesId" INTEGER NOT NULL, "Consumer" TEXT NOT NULL, "Type" INTEGER NOT NULL, "RelativePath" TEXT NOT NULL, "LastUpdated" DATETIME NOT NULL, "SeasonNumber" INTEGER, "EpisodeFileId" INTEGER, "Hash" TEXT, "Added" DATETIME, "Extension" TEXT NOT NULL)
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "MetadataFiles_temp" ("Id", "SeriesId", "Consumer", "Type", "RelativePath", "LastUpdated", "SeasonNumber", "EpisodeFileId", "Hash", "Added", "Extension") SELECT "Id", "SeriesId", "Consumer", "Type", "RelativePath", "LastUpdated", "SeasonNumber", "EpisodeFileId", "Hash", "Added", "Extension" FROM "MetadataFiles"
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP TABLE "MetadataFiles"
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "MetadataFiles_temp" RENAME TO "MetadataFiles"
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0032576s
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|AlterTable PendingReleases
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|=> 4E-07s
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|AlterColumn PendingReleases Added DateTimeOffset
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "PendingReleases_temp" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "SeriesId" INTEGER NOT NULL, "Title" TEXT NOT NULL, "Added" DATETIME NOT NULL, "ParsedEpisodeInfo" TEXT NOT NULL, "Release" TEXT NOT NULL, "Reason" INTEGER NOT NULL, "AdditionalInfo" TEXT)
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "PendingReleases_temp" ("Id", "SeriesId", "Title", "Added", "ParsedEpisodeInfo", "Release", "Reason", "AdditionalInfo") SELECT "Id", "SeriesId", "Title", "Added", "ParsedEpisodeInfo", "Release", "Reason", "AdditionalInfo" FROM "PendingReleases"
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP TABLE "PendingReleases"
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "PendingReleases_temp" RENAME TO "PendingReleases"
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0030332s
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|AlterTable ScheduledTasks
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|=> 5E-07s
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|AlterColumn ScheduledTasks LastExecution DateTimeOffset
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "ScheduledTasks_temp" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "TypeName" TEXT NOT NULL, "Interval" INTEGER NOT NULL, "LastExecution" DATETIME NOT NULL, "LastStartTime" DATETIME)
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "ScheduledTasks_temp" ("Id", "TypeName", "Interval", "LastExecution", "LastStartTime") SELECT "Id", "TypeName", "Interval", "LastExecution", "LastStartTime" FROM "ScheduledTasks"
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP TABLE "ScheduledTasks"
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "ScheduledTasks_temp" RENAME TO "ScheduledTasks"
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_ScheduledTasks_TypeName" ON "ScheduledTasks" ("TypeName" ASC)
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0031974s
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|AlterTable ScheduledTasks
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|=> 4E-07s
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|AlterColumn ScheduledTasks LastStartTime DateTimeOffset
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "ScheduledTasks_temp" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "TypeName" TEXT NOT NULL, "Interval" INTEGER NOT NULL, "LastExecution" DATETIME NOT NULL, "LastStartTime" DATETIME)
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "ScheduledTasks_temp" ("Id", "TypeName", "Interval", "LastExecution", "LastStartTime") SELECT "Id", "TypeName", "Interval", "LastExecution", "LastStartTime" FROM "ScheduledTasks"
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP TABLE "ScheduledTasks"
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "ScheduledTasks_temp" RENAME TO "ScheduledTasks"
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_ScheduledTasks_TypeName" ON "ScheduledTasks" ("TypeName" ASC)
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0032396s
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|AlterTable Series
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|=> 5E-07s
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|AlterColumn Series LastInfoSync DateTimeOffset
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "Series_temp" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "TvdbId" INTEGER NOT NULL, "TvRageId" INTEGER NOT NULL, "ImdbId" TEXT, "Title" TEXT NOT NULL, "TitleSlug" TEXT, "CleanTitle" TEXT NOT NULL, "Status" INTEGER NOT NULL, "Overview" TEXT, "AirTime" TEXT, "Images" TEXT NOT NULL, "Path" TEXT NOT NULL, "Monitored" INTEGER NOT NULL, "SeasonFolder" INTEGER NOT NULL, "LastInfoSync" DATETIME, "LastDiskSync" DATETIME, "Runtime" INTEGER NOT NULL, "SeriesType" INTEGER NOT NULL, "Network" TEXT, "UseSceneNumbering" INTEGER NOT NULL, "FirstAired" DATETIME, "NextAiring" DATETIME, "Year" INTEGER, "Seasons" TEXT, "Actors" TEXT, "Ratings" TEXT, "Genres" TEXT, "Certification" TEXT, "SortTitle" TEXT, "QualityProfileId" INTEGER, "Tags" TEXT, "Added" DATETIME, "AddOptions" TEXT, "TvMazeId" INTEGER NOT NULL, "OriginalLanguage" INTEGER NOT NULL)
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "Series_temp" ("Id", "TvdbId", "TvRageId", "ImdbId", "Title", "TitleSlug", "CleanTitle", "Status", "Overview", "AirTime", "Images", "Path", "Monitored", "SeasonFolder", "LastInfoSync", "LastDiskSync", "Runtime", "SeriesType", "Network", "UseSceneNumbering", "FirstAired", "NextAiring", "Year", "Seasons", "Actors", "Ratings", "Genres", "Certification", "SortTitle", "QualityProfileId", "Tags", "Added", "AddOptions", "TvMazeId", "OriginalLanguage") SELECT "Id", "TvdbId", "TvRageId", "ImdbId", "Title", "TitleSlug", "CleanTitle", "Status", "Overview", "AirTime", "Images", "Path", "Monitored", "SeasonFolder", "LastInfoSync", "LastDiskSync", "Runtime", "SeriesType", "Network", "UseSceneNumbering", "FirstAired", "NextAiring", "Year", "Seasons", "Actors", "Ratings", "Genres", "Certification", "SortTitle", "QualityProfileId", "Tags", "Added", "AddOptions", "TvMazeId", "OriginalLanguage" FROM "Series"
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP TABLE "Series"
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Series_temp" RENAME TO "Series"
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_Series_TvdbId" ON "Series" ("TvdbId" ASC)
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_Series_TitleSlug" ON "Series" ("TitleSlug" ASC)
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE INDEX "IX_Series_Path" ON "Series" ("Path" ASC)
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE INDEX "IX_Series_CleanTitle" ON "Series" ("CleanTitle" ASC)
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE INDEX "IX_Series_TvRageId" ON "Series" ("TvRageId" ASC)
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE INDEX "IX_Series_TvMazeId" ON "Series" ("TvMazeId" ASC)
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0050464s
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|AlterTable Series
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|=> 5E-07s
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|AlterColumn Series LastDiskSync DateTimeOffset
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "Series_temp" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "TvdbId" INTEGER NOT NULL, "TvRageId" INTEGER NOT NULL, "ImdbId" TEXT, "Title" TEXT NOT NULL, "TitleSlug" TEXT, "CleanTitle" TEXT NOT NULL, "Status" INTEGER NOT NULL, "Overview" TEXT, "AirTime" TEXT, "Images" TEXT NOT NULL, "Path" TEXT NOT NULL, "Monitored" INTEGER NOT NULL, "SeasonFolder" INTEGER NOT NULL, "LastInfoSync" DATETIME, "LastDiskSync" DATETIME, "Runtime" INTEGER NOT NULL, "SeriesType" INTEGER NOT NULL, "Network" TEXT, "UseSceneNumbering" INTEGER NOT NULL, "FirstAired" DATETIME, "NextAiring" DATETIME, "Year" INTEGER, "Seasons" TEXT, "Actors" TEXT, "Ratings" TEXT, "Genres" TEXT, "Certification" TEXT, "SortTitle" TEXT, "QualityProfileId" INTEGER, "Tags" TEXT, "Added" DATETIME, "AddOptions" TEXT, "TvMazeId" INTEGER NOT NULL, "OriginalLanguage" INTEGER NOT NULL)
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "Series_temp" ("Id", "TvdbId", "TvRageId", "ImdbId", "Title", "TitleSlug", "CleanTitle", "Status", "Overview", "AirTime", "Images", "Path", "Monitored", "SeasonFolder", "LastInfoSync", "LastDiskSync", "Runtime", "SeriesType", "Network", "UseSceneNumbering", "FirstAired", "NextAiring", "Year", "Seasons", "Actors", "Ratings", "Genres", "Certification", "SortTitle", "QualityProfileId", "Tags", "Added", "AddOptions", "TvMazeId", "OriginalLanguage") SELECT "Id", "TvdbId", "TvRageId", "ImdbId", "Title", "TitleSlug", "CleanTitle", "Status", "Overview", "AirTime", "Images", "Path", "Monitored", "SeasonFolder", "LastInfoSync", "LastDiskSync", "Runtime", "SeriesType", "Network", "UseSceneNumbering", "FirstAired", "NextAiring", "Year", "Seasons", "Actors", "Ratings", "Genres", "Certification", "SortTitle", "QualityProfileId", "Tags", "Added", "AddOptions", "TvMazeId", "OriginalLanguage" FROM "Series"
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP TABLE "Series"
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Series_temp" RENAME TO "Series"
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_Series_TvdbId" ON "Series" ("TvdbId" ASC)
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_Series_TitleSlug" ON "Series" ("TitleSlug" ASC)
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE INDEX "IX_Series_Path" ON "Series" ("Path" ASC)
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE INDEX "IX_Series_CleanTitle" ON "Series" ("CleanTitle" ASC)
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE INDEX "IX_Series_TvRageId" ON "Series" ("TvRageId" ASC)
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE INDEX "IX_Series_TvMazeId" ON "Series" ("TvMazeId" ASC)
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.005028s
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|AlterTable Series
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|=> 4E-07s
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|AlterColumn Series FirstAired DateTimeOffset
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "Series_temp" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "TvdbId" INTEGER NOT NULL, "TvRageId" INTEGER NOT NULL, "ImdbId" TEXT, "Title" TEXT NOT NULL, "TitleSlug" TEXT, "CleanTitle" TEXT NOT NULL, "Status" INTEGER NOT NULL, "Overview" TEXT, "AirTime" TEXT, "Images" TEXT NOT NULL, "Path" TEXT NOT NULL, "Monitored" INTEGER NOT NULL, "SeasonFolder" INTEGER NOT NULL, "LastInfoSync" DATETIME, "LastDiskSync" DATETIME, "Runtime" INTEGER NOT NULL, "SeriesType" INTEGER NOT NULL, "Network" TEXT, "UseSceneNumbering" INTEGER NOT NULL, "FirstAired" DATETIME, "NextAiring" DATETIME, "Year" INTEGER, "Seasons" TEXT, "Actors" TEXT, "Ratings" TEXT, "Genres" TEXT, "Certification" TEXT, "SortTitle" TEXT, "QualityProfileId" INTEGER, "Tags" TEXT, "Added" DATETIME, "AddOptions" TEXT, "TvMazeId" INTEGER NOT NULL, "OriginalLanguage" INTEGER NOT NULL)
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "Series_temp" ("Id", "TvdbId", "TvRageId", "ImdbId", "Title", "TitleSlug", "CleanTitle", "Status", "Overview", "AirTime", "Images", "Path", "Monitored", "SeasonFolder", "LastInfoSync", "LastDiskSync", "Runtime", "SeriesType", "Network", "UseSceneNumbering", "FirstAired", "NextAiring", "Year", "Seasons", "Actors", "Ratings", "Genres", "Certification", "SortTitle", "QualityProfileId", "Tags", "Added", "AddOptions", "TvMazeId", "OriginalLanguage") SELECT "Id", "TvdbId", "TvRageId", "ImdbId", "Title", "TitleSlug", "CleanTitle", "Status", "Overview", "AirTime", "Images", "Path", "Monitored", "SeasonFolder", "LastInfoSync", "LastDiskSync", "Runtime", "SeriesType", "Network", "UseSceneNumbering", "FirstAired", "NextAiring", "Year", "Seasons", "Actors", "Ratings", "Genres", "Certification", "SortTitle", "QualityProfileId", "Tags", "Added", "AddOptions", "TvMazeId", "OriginalLanguage" FROM "Series"
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP TABLE "Series"
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Series_temp" RENAME TO "Series"
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_Series_TvdbId" ON "Series" ("TvdbId" ASC)
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_Series_TitleSlug" ON "Series" ("TitleSlug" ASC)
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE INDEX "IX_Series_Path" ON "Series" ("Path" ASC)
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE INDEX "IX_Series_CleanTitle" ON "Series" ("CleanTitle" ASC)
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE INDEX "IX_Series_TvRageId" ON "Series" ("TvRageId" ASC)
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE INDEX "IX_Series_TvMazeId" ON "Series" ("TvMazeId" ASC)
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.004747s
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|AlterTable Series
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|=> 4E-07s
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|AlterColumn Series NextAiring DateTimeOffset
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "Series_temp" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "TvdbId" INTEGER NOT NULL, "TvRageId" INTEGER NOT NULL, "ImdbId" TEXT, "Title" TEXT NOT NULL, "TitleSlug" TEXT, "CleanTitle" TEXT NOT NULL, "Status" INTEGER NOT NULL, "Overview" TEXT, "AirTime" TEXT, "Images" TEXT NOT NULL, "Path" TEXT NOT NULL, "Monitored" INTEGER NOT NULL, "SeasonFolder" INTEGER NOT NULL, "LastInfoSync" DATETIME, "LastDiskSync" DATETIME, "Runtime" INTEGER NOT NULL, "SeriesType" INTEGER NOT NULL, "Network" TEXT, "UseSceneNumbering" INTEGER NOT NULL, "FirstAired" DATETIME, "NextAiring" DATETIME, "Year" INTEGER, "Seasons" TEXT, "Actors" TEXT, "Ratings" TEXT, "Genres" TEXT, "Certification" TEXT, "SortTitle" TEXT, "QualityProfileId" INTEGER, "Tags" TEXT, "Added" DATETIME, "AddOptions" TEXT, "TvMazeId" INTEGER NOT NULL, "OriginalLanguage" INTEGER NOT NULL)
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "Series_temp" ("Id", "TvdbId", "TvRageId", "ImdbId", "Title", "TitleSlug", "CleanTitle", "Status", "Overview", "AirTime", "Images", "Path", "Monitored", "SeasonFolder", "LastInfoSync", "LastDiskSync", "Runtime", "SeriesType", "Network", "UseSceneNumbering", "FirstAired", "NextAiring", "Year", "Seasons", "Actors", "Ratings", "Genres", "Certification", "SortTitle", "QualityProfileId", "Tags", "Added", "AddOptions", "TvMazeId", "OriginalLanguage") SELECT "Id", "TvdbId", "TvRageId", "ImdbId", "Title", "TitleSlug", "CleanTitle", "Status", "Overview", "AirTime", "Images", "Path", "Monitored", "SeasonFolder", "LastInfoSync", "LastDiskSync", "Runtime", "SeriesType", "Network", "UseSceneNumbering", "FirstAired", "NextAiring", "Year", "Seasons", "Actors", "Ratings", "Genres", "Certification", "SortTitle", "QualityProfileId", "Tags", "Added", "AddOptions", "TvMazeId", "OriginalLanguage" FROM "Series"
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP TABLE "Series"
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Series_temp" RENAME TO "Series"
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_Series_TvdbId" ON "Series" ("TvdbId" ASC)
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_Series_TitleSlug" ON "Series" ("TitleSlug" ASC)
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE INDEX "IX_Series_Path" ON "Series" ("Path" ASC)
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE INDEX "IX_Series_CleanTitle" ON "Series" ("CleanTitle" ASC)
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE INDEX "IX_Series_TvRageId" ON "Series" ("TvRageId" ASC)
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE INDEX "IX_Series_TvMazeId" ON "Series" ("TvMazeId" ASC)
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.004658s
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|AlterTable Series
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|=> 4E-07s
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|AlterColumn Series Added DateTimeOffset
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "Series_temp" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "TvdbId" INTEGER NOT NULL, "TvRageId" INTEGER NOT NULL, "ImdbId" TEXT, "Title" TEXT NOT NULL, "TitleSlug" TEXT, "CleanTitle" TEXT NOT NULL, "Status" INTEGER NOT NULL, "Overview" TEXT, "AirTime" TEXT, "Images" TEXT NOT NULL, "Path" TEXT NOT NULL, "Monitored" INTEGER NOT NULL, "SeasonFolder" INTEGER NOT NULL, "LastInfoSync" DATETIME, "LastDiskSync" DATETIME, "Runtime" INTEGER NOT NULL, "SeriesType" INTEGER NOT NULL, "Network" TEXT, "UseSceneNumbering" INTEGER NOT NULL, "FirstAired" DATETIME, "NextAiring" DATETIME, "Year" INTEGER, "Seasons" TEXT, "Actors" TEXT, "Ratings" TEXT, "Genres" TEXT, "Certification" TEXT, "SortTitle" TEXT, "QualityProfileId" INTEGER, "Tags" TEXT, "Added" DATETIME, "AddOptions" TEXT, "TvMazeId" INTEGER NOT NULL, "OriginalLanguage" INTEGER NOT NULL)
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "Series_temp" ("Id", "TvdbId", "TvRageId", "ImdbId", "Title", "TitleSlug", "CleanTitle", "Status", "Overview", "AirTime", "Images", "Path", "Monitored", "SeasonFolder", "LastInfoSync", "LastDiskSync", "Runtime", "SeriesType", "Network", "UseSceneNumbering", "FirstAired", "NextAiring", "Year", "Seasons", "Actors", "Ratings", "Genres", "Certification", "SortTitle", "QualityProfileId", "Tags", "Added", "AddOptions", "TvMazeId", "OriginalLanguage") SELECT "Id", "TvdbId", "TvRageId", "ImdbId", "Title", "TitleSlug", "CleanTitle", "Status", "Overview", "AirTime", "Images", "Path", "Monitored", "SeasonFolder", "LastInfoSync", "LastDiskSync", "Runtime", "SeriesType", "Network", "UseSceneNumbering", "FirstAired", "NextAiring", "Year", "Seasons", "Actors", "Ratings", "Genres", "Certification", "SortTitle", "QualityProfileId", "Tags", "Added", "AddOptions", "TvMazeId", "OriginalLanguage" FROM "Series"
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP TABLE "Series"
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Series_temp" RENAME TO "Series"
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_Series_TvdbId" ON "Series" ("TvdbId" ASC)
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_Series_TitleSlug" ON "Series" ("TitleSlug" ASC)
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE INDEX "IX_Series_Path" ON "Series" ("Path" ASC)
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE INDEX "IX_Series_CleanTitle" ON "Series" ("CleanTitle" ASC)
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE INDEX "IX_Series_TvRageId" ON "Series" ("TvRageId" ASC)
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE INDEX "IX_Series_TvMazeId" ON "Series" ("TvMazeId" ASC)
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0046595s
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|AlterTable SubtitleFiles
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|=> 4E-07s
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|AlterColumn SubtitleFiles LastUpdated DateTimeOffset
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "SubtitleFiles_temp" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "SeriesId" INTEGER NOT NULL, "SeasonNumber" INTEGER NOT NULL, "EpisodeFileId" INTEGER NOT NULL, "RelativePath" TEXT NOT NULL, "Extension" TEXT NOT NULL, "Added" DATETIME NOT NULL, "LastUpdated" DATETIME NOT NULL, "Language" INTEGER NOT NULL, "LanguageTags" TEXT)
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "SubtitleFiles_temp" ("Id", "SeriesId", "SeasonNumber", "EpisodeFileId", "RelativePath", "Extension", "Added", "LastUpdated", "Language", "LanguageTags") SELECT "Id", "SeriesId", "SeasonNumber", "EpisodeFileId", "RelativePath", "Extension", "Added", "LastUpdated", "Language", "LanguageTags" FROM "SubtitleFiles"
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP TABLE "SubtitleFiles"
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "SubtitleFiles_temp" RENAME TO "SubtitleFiles"
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0030526s
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|AlterTable SubtitleFiles
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|=> 4E-07s
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|AlterColumn SubtitleFiles Added DateTimeOffset
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "SubtitleFiles_temp" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "SeriesId" INTEGER NOT NULL, "SeasonNumber" INTEGER NOT NULL, "EpisodeFileId" INTEGER NOT NULL, "RelativePath" TEXT NOT NULL, "Extension" TEXT NOT NULL, "Added" DATETIME, "LastUpdated" DATETIME NOT NULL, "Language" INTEGER NOT NULL, "LanguageTags" TEXT)
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "SubtitleFiles_temp" ("Id", "SeriesId", "SeasonNumber", "EpisodeFileId", "RelativePath", "Extension", "Added", "LastUpdated", "Language", "LanguageTags") SELECT "Id", "SeriesId", "SeasonNumber", "EpisodeFileId", "RelativePath", "Extension", "Added", "LastUpdated", "Language", "LanguageTags" FROM "SubtitleFiles"
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP TABLE "SubtitleFiles"
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "SubtitleFiles_temp" RENAME TO "SubtitleFiles"
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0029966s
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|AlterTable VersionInfo
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|=> 4E-07s
+2024-12-14 01:14:14.2|Info|FluentMigrator.Runner.MigrationRunner|AlterColumn VersionInfo AppliedOn DateTimeOffset
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "VersionInfo_temp" ("Version" INTEGER NOT NULL, "AppliedOn" DATETIME, "Description" TEXT)
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo_temp" ("Version", "AppliedOn", "Description") SELECT "Version", "AppliedOn", "Description" FROM "VersionInfo"
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP TABLE "VersionInfo"
+2024-12-14 01:14:14.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "VersionInfo_temp" RENAME TO "VersionInfo"
+2024-12-14 01:14:14.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "UC_Version" ON "VersionInfo" ("Version" ASC)
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0031394s
+2024-12-14 01:14:14.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (188, '2024-12-14T01:14:14', 'postgres_update_timestamp_columns_to_with_timezone')
+2024-12-14 01:14:14.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|188: postgres_update_timestamp_columns_to_with_timezone migrated
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0186589s
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|189: add_colon_replacement_to_naming_config migrating
+2024-12-14 01:14:14.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:14.3|Info|add_colon_replacement_to_naming_config|Starting migration of Main DB to 189
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|AlterTable NamingConfig
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|=> 5E-07s
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn NamingConfig ColonReplacementFormat Int32
+2024-12-14 01:14:14.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "NamingConfig" ADD COLUMN "ColonReplacementFormat" INTEGER NOT NULL DEFAULT 4
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0004812s
+2024-12-14 01:14:14.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (189, '2024-12-14T01:14:14', 'add_colon_replacement_to_naming_config')
+2024-12-14 01:14:14.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|189: add_colon_replacement_to_naming_config migrated
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0067846s
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|190: health_restored_notification migrating
+2024-12-14 01:14:14.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:14.3|Info|health_restored_notification|Starting migration of Main DB to 190
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|AlterTable Notifications
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|=> 5E-07s
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn Notifications OnHealthRestored Boolean
+2024-12-14 01:14:14.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Notifications" ADD COLUMN "OnHealthRestored" INTEGER NOT NULL DEFAULT 0
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0004615s
+2024-12-14 01:14:14.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (190, '2024-12-14T01:14:14', 'health_restored_notification')
+2024-12-14 01:14:14.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|190: health_restored_notification migrated
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0069105s
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|191: add_download_client_tags migrating
+2024-12-14 01:14:14.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:14.3|Info|add_download_client_tags|Starting migration of Main DB to 191
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|AlterTable DownloadClients
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|=> 6E-07s
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn DownloadClients Tags String
+2024-12-14 01:14:14.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "DownloadClients" ADD COLUMN "Tags" TEXT
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0004582s
+2024-12-14 01:14:14.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (191, '2024-12-14T01:14:14', 'add_download_client_tags')
+2024-12-14 01:14:14.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|191: add_download_client_tags migrated
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.00685s
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|192: import_exclusion_type migrating
+2024-12-14 01:14:14.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:14.3|Info|import_exclusion_type|Starting migration of Main DB to 192
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|AlterTable ImportListExclusions
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|=> 6E-07s
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|AlterColumn ImportListExclusions TvdbId Int32
+2024-12-14 01:14:14.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "ImportListExclusions_temp" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "TvdbId" INTEGER NOT NULL, "Title" TEXT NOT NULL)
+2024-12-14 01:14:14.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "ImportListExclusions_temp" ("Id", "TvdbId", "Title") SELECT "Id", "TvdbId", "Title" FROM "ImportListExclusions"
+2024-12-14 01:14:14.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP TABLE "ImportListExclusions"
+2024-12-14 01:14:14.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "ImportListExclusions_temp" RENAME TO "ImportListExclusions"
+2024-12-14 01:14:14.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_ImportListExclusions_TvdbId" ON "ImportListExclusions" ("TvdbId" ASC)
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0040667s
+2024-12-14 01:14:14.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (192, '2024-12-14T01:14:14', 'import_exclusion_type')
+2024-12-14 01:14:14.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|192: import_exclusion_type migrated
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0173974s
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|193: add_import_list_items migrating
+2024-12-14 01:14:14.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:14.3|Info|add_import_list_items|Starting migration of Main DB to 193
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|CreateTable ImportListItems
+2024-12-14 01:14:14.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "ImportListItems" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "ImportListId" INTEGER NOT NULL, "Title" TEXT NOT NULL, "TvdbId" INTEGER NOT NULL, "Year" INTEGER, "TmdbId" INTEGER, "ImdbId" TEXT, "MalId" INTEGER, "AniListId" INTEGER, "ReleaseDate" DATETIME)
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0002811s
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|AlterTable ImportListStatus
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|=> 5E-07s
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn ImportListStatus HasRemovedItemSinceLastClean Boolean
+2024-12-14 01:14:14.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "ImportListStatus" ADD COLUMN "HasRemovedItemSinceLastClean" INTEGER NOT NULL DEFAULT 0
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0004909s
+2024-12-14 01:14:14.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (193, '2024-12-14T01:14:14', 'add_import_list_items')
+2024-12-14 01:14:14.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|193: add_import_list_items migrated
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0042407s
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|194: add_notification_status migrating
+2024-12-14 01:14:14.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:14.3|Info|add_notification_status|Starting migration of Main DB to 194
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|CreateTable NotificationStatus
+2024-12-14 01:14:14.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "NotificationStatus" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "ProviderId" INTEGER NOT NULL, "InitialFailure" DATETIME, "MostRecentFailure" DATETIME, "EscalationLevel" INTEGER NOT NULL, "DisabledTill" DATETIME)
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.000295s
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|CreateIndex NotificationStatus (ProviderId)
+2024-12-14 01:14:14.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "IX_NotificationStatus_ProviderId" ON "NotificationStatus" ("ProviderId" ASC)
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0002041s
+2024-12-14 01:14:14.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (194, '2024-12-14T01:14:14', 'add_notification_status')
+2024-12-14 01:14:14.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|194: add_notification_status migrated
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0022559s
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|195: parse_language_tags_from_existing_subtitle_files migrating
+2024-12-14 01:14:14.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:14.3|Info|parse_language_tags_from_existing_subtitle_files|Starting migration of Main DB to 195
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|PerformDBOperation
+2024-12-14 01:14:14.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Performing DB Operation
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0007859s
+2024-12-14 01:14:14.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (195, '2024-12-14T01:14:14', 'parse_language_tags_from_existing_subtitle_files')
+2024-12-14 01:14:14.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|195: parse_language_tags_from_existing_subtitle_files migrated
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0028526s
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|196: add_finale_type migrating
+2024-12-14 01:14:14.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:14.3|Info|add_finale_type|Starting migration of Main DB to 196
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|AlterTable Episodes
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|=> 4E-07s
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn Episodes FinaleType String
+2024-12-14 01:14:14.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Episodes" ADD COLUMN "FinaleType" TEXT
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0004646s
+2024-12-14 01:14:14.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (196, '2024-12-14T01:14:14', 'add_finale_type')
+2024-12-14 01:14:14.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|196: add_finale_type migrated
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0025713s
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|197: list_add_missing_search migrating
+2024-12-14 01:14:14.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:14.3|Info|list_add_missing_search|Starting migration of Main DB to 197
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|AlterTable ImportLists
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|=> 5E-07s
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn ImportLists SearchForMissingEpisodes Boolean
+2024-12-14 01:14:14.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "ImportLists" ADD COLUMN "SearchForMissingEpisodes" INTEGER NOT NULL DEFAULT 1
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0005841s
+2024-12-14 01:14:14.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (197, '2024-12-14T01:14:14', 'list_add_missing_search')
+2024-12-14 01:14:14.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|197: list_add_missing_search migrated
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0026367s
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|198: parse_title_from_existing_subtitle_files migrating
+2024-12-14 01:14:14.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:14.3|Info|parse_title_from_existing_subtitle_files|Starting migration of Main DB to 198
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|AlterTable SubtitleFiles
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|=> 5E-07s
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn SubtitleFiles Title String
+2024-12-14 01:14:14.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "SubtitleFiles" ADD COLUMN "Title" TEXT
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.000535s
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|AlterTable SubtitleFiles
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|=> 5E-07s
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn SubtitleFiles Copy Int32
+2024-12-14 01:14:14.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "SubtitleFiles" ADD COLUMN "Copy" INTEGER NOT NULL DEFAULT 0
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0005296s
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|PerformDBOperation
+2024-12-14 01:14:14.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Performing DB Operation
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0007124s
+2024-12-14 01:14:14.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (198, '2024-12-14T01:14:14', 'parse_title_from_existing_subtitle_files')
+2024-12-14 01:14:14.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|198: parse_title_from_existing_subtitle_files migrated
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0027616s
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|199: series_last_aired migrating
+2024-12-14 01:14:14.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:14.3|Info|series_last_aired|Starting migration of Main DB to 199
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|AlterTable Series
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|=> 5E-07s
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn Series LastAired DateTimeOffset
+2024-12-14 01:14:14.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Series" ADD COLUMN "LastAired" DATETIME
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0006132s
+2024-12-14 01:14:14.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (199, '2024-12-14T01:14:14', 'series_last_aired')
+2024-12-14 01:14:14.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|199: series_last_aired migrated
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0027285s
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|200: AddNewItemMonitorType migrating
+2024-12-14 01:14:14.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:14.3|Info|AddNewItemMonitorType|Starting migration of Main DB to 200
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|AlterTable Series
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|=> 5E-07s
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn Series MonitorNewItems Int32
+2024-12-14 01:14:14.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Series" ADD COLUMN "MonitorNewItems" INTEGER NOT NULL DEFAULT 0
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0004966s
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|AlterTable ImportLists
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|=> 4E-07s
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn ImportLists MonitorNewItems Int32
+2024-12-14 01:14:14.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "ImportLists" ADD COLUMN "MonitorNewItems" INTEGER NOT NULL DEFAULT 0
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0004807s
+2024-12-14 01:14:14.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (200, '2024-12-14T01:14:14', 'AddNewItemMonitorType')
+2024-12-14 01:14:14.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|200: AddNewItemMonitorType migrated
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0025448s
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|201: email_encryption migrating
+2024-12-14 01:14:14.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:14.3|Info|email_encryption|Starting migration of Main DB to 201
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|PerformDBOperation
+2024-12-14 01:14:14.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Performing DB Operation
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0011313s
+2024-12-14 01:14:14.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (201, '2024-12-14T01:14:14', 'email_encryption')
+2024-12-14 01:14:14.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|201: email_encryption migrated
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0032631s
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|202: add_indexer_flags migrating
+2024-12-14 01:14:14.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:14.3|Info|add_indexer_flags|Starting migration of Main DB to 202
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|AlterTable Blocklist
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|=> 5E-07s
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn Blocklist IndexerFlags Int32
+2024-12-14 01:14:14.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Blocklist" ADD COLUMN "IndexerFlags" INTEGER NOT NULL DEFAULT 0
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0005095s
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|AlterTable EpisodeFiles
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|=> 5E-07s
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn EpisodeFiles IndexerFlags Int32
+2024-12-14 01:14:14.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "EpisodeFiles" ADD COLUMN "IndexerFlags" INTEGER NOT NULL DEFAULT 0
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0004814s
+2024-12-14 01:14:14.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (202, '2024-12-14T01:14:14', 'add_indexer_flags')
+2024-12-14 01:14:14.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|202: add_indexer_flags migrated
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0025281s
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|203: release_type migrating
+2024-12-14 01:14:14.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:14.3|Info|release_type|Starting migration of Main DB to 203
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|AlterTable Blocklist
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|=> 5E-07s
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn Blocklist ReleaseType Int32
+2024-12-14 01:14:14.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Blocklist" ADD COLUMN "ReleaseType" INTEGER NOT NULL DEFAULT 0
+2024-12-14 01:14:14.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0005664s
+2024-12-14 01:14:14.4|Info|FluentMigrator.Runner.MigrationRunner|AlterTable EpisodeFiles
+2024-12-14 01:14:14.4|Info|FluentMigrator.Runner.MigrationRunner|=> 5E-07s
+2024-12-14 01:14:14.4|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn EpisodeFiles ReleaseType Int32
+2024-12-14 01:14:14.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "EpisodeFiles" ADD COLUMN "ReleaseType" INTEGER NOT NULL DEFAULT 0
+2024-12-14 01:14:14.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0005093s
+2024-12-14 01:14:14.4|Info|FluentMigrator.Runner.MigrationRunner|PerformDBOperation
+2024-12-14 01:14:14.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Performing DB Operation
+2024-12-14 01:14:14.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0006922s
+2024-12-14 01:14:14.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (203, '2024-12-14T01:14:14', 'release_type')
+2024-12-14 01:14:14.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:14.4|Info|FluentMigrator.Runner.MigrationRunner|203: release_type migrated
+2024-12-14 01:14:14.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0027847s
+2024-12-14 01:14:14.4|Info|FluentMigrator.Runner.MigrationRunner|204: add_add_release_hash migrating
+2024-12-14 01:14:14.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:14.4|Info|add_add_release_hash|Starting migration of Main DB to 204
+2024-12-14 01:14:14.4|Info|FluentMigrator.Runner.MigrationRunner|AlterTable EpisodeFiles
+2024-12-14 01:14:14.4|Info|FluentMigrator.Runner.MigrationRunner|=> 6E-07s
+2024-12-14 01:14:14.4|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn EpisodeFiles ReleaseHash String
+2024-12-14 01:14:14.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "EpisodeFiles" ADD COLUMN "ReleaseHash" TEXT
+2024-12-14 01:14:14.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0004921s
+2024-12-14 01:14:14.4|Info|FluentMigrator.Runner.MigrationRunner|PerformDBOperation
+2024-12-14 01:14:14.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Performing DB Operation
+2024-12-14 01:14:14.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0008473s
+2024-12-14 01:14:14.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (204, '2024-12-14T01:14:14', 'add_add_release_hash')
+2024-12-14 01:14:14.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:14.4|Info|FluentMigrator.Runner.MigrationRunner|204: add_add_release_hash migrated
+2024-12-14 01:14:14.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0029715s
+2024-12-14 01:14:14.4|Info|FluentMigrator.Runner.MigrationRunner|205: rename_season_pack_spec migrating
+2024-12-14 01:14:14.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:14.4|Info|rename_season_pack_spec|Starting migration of Main DB to 205
+2024-12-14 01:14:14.4|Info|FluentMigrator.Runner.MigrationRunner|ExecuteSqlStatement UPDATE "CustomFormats" SET "Specifications" = REPLACE("Specifications", 'SeasonPackSpecification', 'ReleaseTypeSpecification')
+2024-12-14 01:14:14.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|UPDATE "CustomFormats" SET "Specifications" = REPLACE("Specifications", 'SeasonPackSpecification', 'ReleaseTypeSpecification')
+2024-12-14 01:14:14.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0002146s
+2024-12-14 01:14:14.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (205, '2024-12-14T01:14:14', 'rename_season_pack_spec')
+2024-12-14 01:14:14.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:14.4|Info|FluentMigrator.Runner.MigrationRunner|205: rename_season_pack_spec migrated
+2024-12-14 01:14:14.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0023631s
+2024-12-14 01:14:14.4|Info|FluentMigrator.Runner.MigrationRunner|206: add_tmdbid migrating
+2024-12-14 01:14:14.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:14.4|Info|add_tmdbid|Starting migration of Main DB to 206
+2024-12-14 01:14:14.4|Info|FluentMigrator.Runner.MigrationRunner|AlterTable Series
+2024-12-14 01:14:14.4|Info|FluentMigrator.Runner.MigrationRunner|=> 5E-07s
+2024-12-14 01:14:14.4|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn Series TmdbId Int32
+2024-12-14 01:14:14.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Series" ADD COLUMN "TmdbId" INTEGER NOT NULL DEFAULT 0
+2024-12-14 01:14:14.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0005241s
+2024-12-14 01:14:14.4|Info|FluentMigrator.Runner.MigrationRunner|CreateIndex Series (TmdbId)
+2024-12-14 01:14:14.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE INDEX "IX_Series_TmdbId" ON "Series" ("TmdbId" ASC)
+2024-12-14 01:14:14.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0001671s
+2024-12-14 01:14:14.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (206, '2024-12-14T01:14:14', 'add_tmdbid')
+2024-12-14 01:14:14.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:14.4|Info|FluentMigrator.Runner.MigrationRunner|206: add_tmdbid migrated
+2024-12-14 01:14:14.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0022568s
+2024-12-14 01:14:14.4|Info|FluentMigrator.Runner.MigrationRunner|209: add_on_import_complete_to_notifications migrating
+2024-12-14 01:14:14.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:14.4|Info|add_on_import_complete_to_notifications|Starting migration of Main DB to 209
+2024-12-14 01:14:14.4|Info|FluentMigrator.Runner.MigrationRunner|AlterTable Notifications
+2024-12-14 01:14:14.4|Info|FluentMigrator.Runner.MigrationRunner|=> 6E-07s
+2024-12-14 01:14:14.4|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn Notifications OnImportComplete Boolean
+2024-12-14 01:14:14.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Notifications" ADD COLUMN "OnImportComplete" INTEGER NOT NULL DEFAULT 0
+2024-12-14 01:14:14.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0005448s
+2024-12-14 01:14:14.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (209, '2024-12-14T01:14:14', 'add_on_import_complete_to_notifications')
+2024-12-14 01:14:14.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:14.4|Info|FluentMigrator.Runner.MigrationRunner|209: add_on_import_complete_to_notifications migrated
+2024-12-14 01:14:14.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0025858s
+2024-12-14 01:14:14.4|Info|FluentMigrator.Runner.MigrationRunner|210: add_monitored_seasons_filter migrating
+2024-12-14 01:14:14.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:14.4|Info|add_monitored_seasons_filter|Starting migration of Main DB to 210
+2024-12-14 01:14:14.4|Info|FluentMigrator.Runner.MigrationRunner|PerformDBOperation
+2024-12-14 01:14:14.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Performing DB Operation
+2024-12-14 01:14:14.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0019166s
+2024-12-14 01:14:14.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (210, '2024-12-14T01:14:14', 'add_monitored_seasons_filter')
+2024-12-14 01:14:14.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:14.4|Info|FluentMigrator.Runner.MigrationRunner|210: add_monitored_seasons_filter migrated
+2024-12-14 01:14:14.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0042298s
+2024-12-14 01:14:14.4|Info|FluentMigrator.Runner.MigrationRunner|211: add_custom_colon_replacement_to_naming_config migrating
+2024-12-14 01:14:14.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:14.4|Info|add_custom_colon_replacement_to_naming_config|Starting migration of Main DB to 211
+2024-12-14 01:14:14.4|Info|FluentMigrator.Runner.MigrationRunner|AlterTable NamingConfig
+2024-12-14 01:14:14.4|Info|FluentMigrator.Runner.MigrationRunner|=> 6E-07s
+2024-12-14 01:14:14.4|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn NamingConfig CustomColonReplacementFormat String
+2024-12-14 01:14:14.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "NamingConfig" ADD COLUMN "CustomColonReplacementFormat" TEXT NOT NULL DEFAULT ''
+2024-12-14 01:14:14.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0005087s
+2024-12-14 01:14:14.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (211, '2024-12-14T01:14:14', 'add_custom_colon_replacement_to_naming_config')
+2024-12-14 01:14:14.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:14.4|Info|FluentMigrator.Runner.MigrationRunner|211: add_custom_colon_replacement_to_naming_config migrated
+2024-12-14 01:14:14.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0025528s
+2024-12-14 01:14:14.4|Info|FluentMigrator.Runner.MigrationRunner|212: add_minium_upgrade_format_score_to_quality_profiles migrating
+2024-12-14 01:14:14.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:14.4|Info|add_minium_upgrade_format_score_to_quality_profiles|Starting migration of Main DB to 212
+2024-12-14 01:14:14.4|Info|FluentMigrator.Runner.MigrationRunner|AlterTable QualityProfiles
+2024-12-14 01:14:14.4|Info|FluentMigrator.Runner.MigrationRunner|=> 5E-07s
+2024-12-14 01:14:14.4|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn QualityProfiles MinUpgradeFormatScore Int32
+2024-12-14 01:14:14.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "QualityProfiles" ADD COLUMN "MinUpgradeFormatScore" INTEGER NOT NULL DEFAULT 1
+2024-12-14 01:14:14.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0005561s
+2024-12-14 01:14:14.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (212, '2024-12-14T01:14:14', 'add_minium_upgrade_format_score_to_quality_profiles')
+2024-12-14 01:14:14.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:14.4|Info|FluentMigrator.Runner.MigrationRunner|212: add_minium_upgrade_format_score_to_quality_profiles migrated
+2024-12-14 01:14:14.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0026606s
+2024-12-14 01:14:14.4|Info|FluentMigrator.Runner.MigrationRunner|214: add_blurary576p_quality_in_profiles migrating
+2024-12-14 01:14:14.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:14.4|Info|add_blurary576p_quality_in_profiles|Starting migration of Main DB to 214
+2024-12-14 01:14:14.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (214, '2024-12-14T01:14:14', 'add_blurary576p_quality_in_profiles')
+2024-12-14 01:14:14.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:14.4|Info|FluentMigrator.Runner.MigrationRunner|214: add_blurary576p_quality_in_profiles migrated
+2024-12-14 01:14:14.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0023415s
+2024-12-14 01:14:14.4|Info|FluentMigrator.Runner.MigrationRunner|215: add_blurary576p_quality_in_profiles_with_grouped_blurary480p migrating
+2024-12-14 01:14:14.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:14.4|Info|add_blurary576p_quality_in_profiles_with_grouped_blurary480p|Starting migration of Main DB to 215
+2024-12-14 01:14:14.4|Info|FluentMigrator.Runner.MigrationRunner|PerformDBOperation
+2024-12-14 01:14:14.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Performing DB Operation
+2024-12-14 01:14:14.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0019849s
+2024-12-14 01:14:14.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (215, '2024-12-14T01:14:14', 'add_blurary576p_quality_in_profiles_with_grouped_blurary480p')
+2024-12-14 01:14:14.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:14.4|Info|FluentMigrator.Runner.MigrationRunner|215: add_blurary576p_quality_in_profiles_with_grouped_blurary480p migrated
+2024-12-14 01:14:14.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0041039s
+2024-12-14 01:14:14.6|Info|MigrationController|*** Migrating data source=/config/logs.db;cache size=-20000;datetimekind=Utc;journal mode=Wal;pooling=True;version=3;busytimeout=100 ***
+2024-12-14 01:14:14.6|Info|FluentMigrator.Runner.MigrationRunner|DatabaseEngineVersionCheck migrating
+2024-12-14 01:14:14.6|Info|FluentMigrator.Runner.MigrationRunner|PerformDBOperation
+2024-12-14 01:14:14.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Performing DB Operation
+2024-12-14 01:14:14.6|Info|DatabaseEngineVersionCheck|SQLite 3.45.3
+2024-12-14 01:14:14.6|Info|FluentMigrator.Runner.MigrationRunner|=> 0.023594s
+2024-12-14 01:14:14.6|Info|FluentMigrator.Runner.MigrationRunner|DatabaseEngineVersionCheck migrated
+2024-12-14 01:14:14.6|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0237321s
+2024-12-14 01:14:14.6|Info|FluentMigrator.Runner.MigrationRunner|VersionMigration migrating
+2024-12-14 01:14:14.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:14.6|Info|FluentMigrator.Runner.MigrationRunner|CreateTable VersionInfo
+2024-12-14 01:14:14.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "VersionInfo" ("Version" INTEGER NOT NULL)
+2024-12-14 01:14:14.6|Info|FluentMigrator.Runner.MigrationRunner|=> 0.000253s
+2024-12-14 01:14:14.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:14.6|Info|FluentMigrator.Runner.MigrationRunner|VersionMigration migrated
+2024-12-14 01:14:14.6|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0126873s
+2024-12-14 01:14:14.6|Info|FluentMigrator.Runner.MigrationRunner|VersionUniqueMigration migrating
+2024-12-14 01:14:14.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:14.6|Info|FluentMigrator.Runner.MigrationRunner|CreateIndex VersionInfo (Version)
+2024-12-14 01:14:14.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "UC_Version" ON "VersionInfo" ("Version" ASC)
+2024-12-14 01:14:14.6|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0002926s
+2024-12-14 01:14:14.6|Info|FluentMigrator.Runner.MigrationRunner|AlterTable VersionInfo
+2024-12-14 01:14:14.6|Info|FluentMigrator.Runner.MigrationRunner|=> 5E-07s
+2024-12-14 01:14:14.6|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn VersionInfo AppliedOn DateTime
+2024-12-14 01:14:14.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "VersionInfo" ADD COLUMN "AppliedOn" DATETIME
+2024-12-14 01:14:14.6|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0004697s
+2024-12-14 01:14:14.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:14.6|Info|FluentMigrator.Runner.MigrationRunner|VersionUniqueMigration migrated
+2024-12-14 01:14:14.6|Info|FluentMigrator.Runner.MigrationRunner|=> 0.006683s
+2024-12-14 01:14:14.6|Info|FluentMigrator.Runner.MigrationRunner|VersionDescriptionMigration migrating
+2024-12-14 01:14:14.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:14.6|Info|FluentMigrator.Runner.MigrationRunner|AlterTable VersionInfo
+2024-12-14 01:14:14.6|Info|FluentMigrator.Runner.MigrationRunner|=> 3E-07s
+2024-12-14 01:14:14.6|Info|FluentMigrator.Runner.MigrationRunner|CreateColumn VersionInfo Description String
+2024-12-14 01:14:14.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "VersionInfo" ADD COLUMN "Description" TEXT
+2024-12-14 01:14:14.6|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0003224s
+2024-12-14 01:14:14.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:14.6|Info|FluentMigrator.Runner.MigrationRunner|VersionDescriptionMigration migrated
+2024-12-14 01:14:14.6|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0069509s
+2024-12-14 01:14:14.6|Info|FluentMigrator.Runner.MigrationRunner|1: InitialSetup migrating
+2024-12-14 01:14:14.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:14.6|Info|InitialSetup|Starting migration of Log DB to 1
+2024-12-14 01:14:14.6|Info|FluentMigrator.Runner.MigrationRunner|CreateTable Logs
+2024-12-14 01:14:14.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "Logs" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "Message" TEXT NOT NULL, "Time" DATETIME NOT NULL, "Logger" TEXT NOT NULL, "Method" TEXT, "Exception" TEXT, "ExceptionType" TEXT, "Level" TEXT NOT NULL)
+2024-12-14 01:14:14.6|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0004062s
+2024-12-14 01:14:14.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (1, '2024-12-14T01:14:14', 'InitialSetup')
+2024-12-14 01:14:14.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:14.6|Info|FluentMigrator.Runner.MigrationRunner|1: InitialSetup migrated
+2024-12-14 01:14:14.6|Info|FluentMigrator.Runner.MigrationRunner|=> 0.00693s
+2024-12-14 01:14:14.6|Info|FluentMigrator.Runner.MigrationRunner|2: remove_tvrage_imdb_unique_constraint migrating
+2024-12-14 01:14:14.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:14.6|Info|remove_tvrage_imdb_unique_constraint|Starting migration of Log DB to 2
+2024-12-14 01:14:14.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (2, '2024-12-14T01:14:14', 'remove_tvrage_imdb_unique_constraint')
+2024-12-14 01:14:14.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:14.6|Info|FluentMigrator.Runner.MigrationRunner|2: remove_tvrage_imdb_unique_constraint migrated
+2024-12-14 01:14:14.6|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0067271s
+2024-12-14 01:14:14.6|Info|FluentMigrator.Runner.MigrationRunner|3: remove_renamed_scene_mapping_columns migrating
+2024-12-14 01:14:14.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:14.6|Info|remove_renamed_scene_mapping_columns|Starting migration of Log DB to 3
+2024-12-14 01:14:14.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (3, '2024-12-14T01:14:14', 'remove_renamed_scene_mapping_columns')
+2024-12-14 01:14:14.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:14.6|Info|FluentMigrator.Runner.MigrationRunner|3: remove_renamed_scene_mapping_columns migrated
+2024-12-14 01:14:14.6|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0067497s
+2024-12-14 01:14:14.6|Info|FluentMigrator.Runner.MigrationRunner|4: updated_history migrating
+2024-12-14 01:14:14.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:14.6|Info|updated_history|Starting migration of Log DB to 4
+2024-12-14 01:14:14.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (4, '2024-12-14T01:14:14', 'updated_history')
+2024-12-14 01:14:14.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:14.7|Info|FluentMigrator.Runner.MigrationRunner|4: updated_history migrated
+2024-12-14 01:14:14.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0067875s
+2024-12-14 01:14:14.7|Info|FluentMigrator.Runner.MigrationRunner|5: added_eventtype_to_history migrating
+2024-12-14 01:14:14.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:14.7|Info|added_eventtype_to_history|Starting migration of Log DB to 5
+2024-12-14 01:14:14.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (5, '2024-12-14T01:14:14', 'added_eventtype_to_history')
+2024-12-14 01:14:14.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:14.7|Info|FluentMigrator.Runner.MigrationRunner|5: added_eventtype_to_history migrated
+2024-12-14 01:14:14.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0071428s
+2024-12-14 01:14:14.7|Info|FluentMigrator.Runner.MigrationRunner|6: add_index_to_log_time migrating
+2024-12-14 01:14:14.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:14.7|Info|add_index_to_log_time|Starting migration of Log DB to 6
+2024-12-14 01:14:14.7|Info|FluentMigrator.Runner.MigrationRunner|DeleteTable Logs
+2024-12-14 01:14:14.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP TABLE "Logs"
+2024-12-14 01:14:14.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0003024s
+2024-12-14 01:14:14.7|Info|FluentMigrator.Runner.MigrationRunner|CreateTable Logs
+2024-12-14 01:14:14.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "Logs" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "Message" TEXT NOT NULL, "Time" DATETIME NOT NULL, "Logger" TEXT NOT NULL, "Method" TEXT, "Exception" TEXT, "ExceptionType" TEXT, "Level" TEXT NOT NULL)
+2024-12-14 01:14:14.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0004678s
+2024-12-14 01:14:14.7|Info|FluentMigrator.Runner.MigrationRunner|CreateIndex Logs (Time)
+2024-12-14 01:14:14.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE INDEX "IX_Logs_Time" ON "Logs" ("Time" ASC)
+2024-12-14 01:14:14.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0002882s
+2024-12-14 01:14:14.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (6, '2024-12-14T01:14:14', 'add_index_to_log_time')
+2024-12-14 01:14:14.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:14.7|Info|FluentMigrator.Runner.MigrationRunner|6: add_index_to_log_time migrated
+2024-12-14 01:14:14.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0072562s
+2024-12-14 01:14:14.7|Info|FluentMigrator.Runner.MigrationRunner|7: add_renameEpisodes_to_naming migrating
+2024-12-14 01:14:14.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:14.7|Info|add_renameEpisodes_to_naming|Starting migration of Log DB to 7
+2024-12-14 01:14:14.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (7, '2024-12-14T01:14:14', 'add_renameEpisodes_to_naming')
+2024-12-14 01:14:14.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:14.7|Info|FluentMigrator.Runner.MigrationRunner|7: add_renameEpisodes_to_naming migrated
+2024-12-14 01:14:14.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0069052s
+2024-12-14 01:14:14.7|Info|FluentMigrator.Runner.MigrationRunner|8: remove_backlog migrating
+2024-12-14 01:14:14.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:14.7|Info|remove_backlog|Starting migration of Log DB to 8
+2024-12-14 01:14:14.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (8, '2024-12-14T01:14:14', 'remove_backlog')
+2024-12-14 01:14:14.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:14.7|Info|FluentMigrator.Runner.MigrationRunner|8: remove_backlog migrated
+2024-12-14 01:14:14.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0068033s
+2024-12-14 01:14:14.7|Info|FluentMigrator.Runner.MigrationRunner|9: fix_rename_episodes migrating
+2024-12-14 01:14:14.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:14.7|Info|fix_rename_episodes|Starting migration of Log DB to 9
+2024-12-14 01:14:14.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (9, '2024-12-14T01:14:14', 'fix_rename_episodes')
+2024-12-14 01:14:14.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:14.7|Info|FluentMigrator.Runner.MigrationRunner|9: fix_rename_episodes migrated
+2024-12-14 01:14:14.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0068155s
+2024-12-14 01:14:14.7|Info|FluentMigrator.Runner.MigrationRunner|10: add_monitored migrating
+2024-12-14 01:14:14.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:14.7|Info|add_monitored|Starting migration of Log DB to 10
+2024-12-14 01:14:14.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (10, '2024-12-14T01:14:14', 'add_monitored')
+2024-12-14 01:14:14.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:14.7|Info|FluentMigrator.Runner.MigrationRunner|10: add_monitored migrated
+2024-12-14 01:14:14.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0067559s
+2024-12-14 01:14:14.7|Info|FluentMigrator.Runner.MigrationRunner|11: remove_ignored migrating
+2024-12-14 01:14:14.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:14.7|Info|remove_ignored|Starting migration of Log DB to 11
+2024-12-14 01:14:14.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (11, '2024-12-14T01:14:14', 'remove_ignored')
+2024-12-14 01:14:14.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:14.7|Info|FluentMigrator.Runner.MigrationRunner|11: remove_ignored migrated
+2024-12-14 01:14:14.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0068609s
+2024-12-14 01:14:14.7|Info|FluentMigrator.Runner.MigrationRunner|12: remove_custom_start_date migrating
+2024-12-14 01:14:14.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:14.7|Info|remove_custom_start_date|Starting migration of Log DB to 12
+2024-12-14 01:14:14.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (12, '2024-12-14T01:14:14', 'remove_custom_start_date')
+2024-12-14 01:14:14.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:14.7|Info|FluentMigrator.Runner.MigrationRunner|12: remove_custom_start_date migrated
+2024-12-14 01:14:14.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0068198s
+2024-12-14 01:14:14.7|Info|FluentMigrator.Runner.MigrationRunner|13: add_air_date_utc migrating
+2024-12-14 01:14:14.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:14.7|Info|add_air_date_utc|Starting migration of Log DB to 13
+2024-12-14 01:14:14.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (13, '2024-12-14T01:14:14', 'add_air_date_utc')
+2024-12-14 01:14:14.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:14.7|Info|FluentMigrator.Runner.MigrationRunner|13: add_air_date_utc migrated
+2024-12-14 01:14:14.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0068476s
+2024-12-14 01:14:14.7|Info|FluentMigrator.Runner.MigrationRunner|14: drop_air_date migrating
+2024-12-14 01:14:14.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:14.7|Info|drop_air_date|Starting migration of Log DB to 14
+2024-12-14 01:14:14.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (14, '2024-12-14T01:14:14', 'drop_air_date')
+2024-12-14 01:14:14.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:14.7|Info|FluentMigrator.Runner.MigrationRunner|14: drop_air_date migrated
+2024-12-14 01:14:14.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0068951s
+2024-12-14 01:14:14.7|Info|FluentMigrator.Runner.MigrationRunner|15: add_air_date_as_string migrating
+2024-12-14 01:14:14.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:14.7|Info|add_air_date_as_string|Starting migration of Log DB to 15
+2024-12-14 01:14:14.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (15, '2024-12-14T01:14:14', 'add_air_date_as_string')
+2024-12-14 01:14:14.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:14.7|Info|FluentMigrator.Runner.MigrationRunner|15: add_air_date_as_string migrated
+2024-12-14 01:14:14.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0070105s
+2024-12-14 01:14:14.7|Info|FluentMigrator.Runner.MigrationRunner|16: updated_imported_history_item migrating
+2024-12-14 01:14:14.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:14.7|Info|updated_imported_history_item|Starting migration of Log DB to 16
+2024-12-14 01:14:14.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (16, '2024-12-14T01:14:14', 'updated_imported_history_item')
+2024-12-14 01:14:14.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:14.7|Info|FluentMigrator.Runner.MigrationRunner|16: updated_imported_history_item migrated
+2024-12-14 01:14:14.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0071345s
+2024-12-14 01:14:14.7|Info|FluentMigrator.Runner.MigrationRunner|17: reset_scene_names migrating
+2024-12-14 01:14:14.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:14.7|Info|reset_scene_names|Starting migration of Log DB to 17
+2024-12-14 01:14:14.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (17, '2024-12-14T01:14:14', 'reset_scene_names')
+2024-12-14 01:14:14.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:14.8|Info|FluentMigrator.Runner.MigrationRunner|17: reset_scene_names migrated
+2024-12-14 01:14:14.8|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0069648s
+2024-12-14 01:14:14.8|Info|FluentMigrator.Runner.MigrationRunner|18: remove_duplicates migrating
+2024-12-14 01:14:14.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:14.8|Info|remove_duplicates|Starting migration of Log DB to 18
+2024-12-14 01:14:14.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (18, '2024-12-14T01:14:14', 'remove_duplicates')
+2024-12-14 01:14:14.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:14.8|Info|FluentMigrator.Runner.MigrationRunner|18: remove_duplicates migrated
+2024-12-14 01:14:14.8|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0069381s
+2024-12-14 01:14:14.8|Info|FluentMigrator.Runner.MigrationRunner|19: restore_unique_constraints migrating
+2024-12-14 01:14:14.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:14.8|Info|restore_unique_constraints|Starting migration of Log DB to 19
+2024-12-14 01:14:14.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (19, '2024-12-14T01:14:14', 'restore_unique_constraints')
+2024-12-14 01:14:14.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:14.8|Info|FluentMigrator.Runner.MigrationRunner|19: restore_unique_constraints migrated
+2024-12-14 01:14:14.8|Info|FluentMigrator.Runner.MigrationRunner|=> 0.006896s
+2024-12-14 01:14:14.8|Info|FluentMigrator.Runner.MigrationRunner|20: add_year_and_seasons_to_series migrating
+2024-12-14 01:14:14.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:14.8|Info|add_year_and_seasons_to_series|Starting migration of Log DB to 20
+2024-12-14 01:14:14.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (20, '2024-12-14T01:14:14', 'add_year_and_seasons_to_series')
+2024-12-14 01:14:14.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:14.8|Info|FluentMigrator.Runner.MigrationRunner|20: add_year_and_seasons_to_series migrated
+2024-12-14 01:14:14.8|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0067804s
+2024-12-14 01:14:14.8|Info|FluentMigrator.Runner.MigrationRunner|21: drop_seasons_table migrating
+2024-12-14 01:14:14.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:14.8|Info|drop_seasons_table|Starting migration of Log DB to 21
+2024-12-14 01:14:14.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (21, '2024-12-14T01:14:14', 'drop_seasons_table')
+2024-12-14 01:14:14.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:14.8|Info|FluentMigrator.Runner.MigrationRunner|21: drop_seasons_table migrated
+2024-12-14 01:14:14.8|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0070593s
+2024-12-14 01:14:14.8|Info|FluentMigrator.Runner.MigrationRunner|22: move_indexer_to_generic_provider migrating
+2024-12-14 01:14:14.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:14.8|Info|move_indexer_to_generic_provider|Starting migration of Log DB to 22
+2024-12-14 01:14:14.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (22, '2024-12-14T01:14:14', 'move_indexer_to_generic_provider')
+2024-12-14 01:14:14.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:14.8|Info|FluentMigrator.Runner.MigrationRunner|22: move_indexer_to_generic_provider migrated
+2024-12-14 01:14:14.8|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0068815s
+2024-12-14 01:14:14.8|Info|FluentMigrator.Runner.MigrationRunner|23: add_config_contract_to_indexers migrating
+2024-12-14 01:14:14.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:14.8|Info|add_config_contract_to_indexers|Starting migration of Log DB to 23
+2024-12-14 01:14:14.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (23, '2024-12-14T01:14:14', 'add_config_contract_to_indexers')
+2024-12-14 01:14:14.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:14.8|Info|FluentMigrator.Runner.MigrationRunner|23: add_config_contract_to_indexers migrated
+2024-12-14 01:14:14.8|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0069409s
+2024-12-14 01:14:14.8|Info|FluentMigrator.Runner.MigrationRunner|24: drop_tvdb_episodeid migrating
+2024-12-14 01:14:14.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:14.8|Info|drop_tvdb_episodeid|Starting migration of Log DB to 24
+2024-12-14 01:14:14.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (24, '2024-12-14T01:14:14', 'drop_tvdb_episodeid')
+2024-12-14 01:14:14.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:14.8|Info|FluentMigrator.Runner.MigrationRunner|24: drop_tvdb_episodeid migrated
+2024-12-14 01:14:14.8|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0066972s
+2024-12-14 01:14:14.8|Info|FluentMigrator.Runner.MigrationRunner|25: move_notification_to_generic_provider migrating
+2024-12-14 01:14:14.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:14.8|Info|move_notification_to_generic_provider|Starting migration of Log DB to 25
+2024-12-14 01:14:14.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (25, '2024-12-14T01:14:14', 'move_notification_to_generic_provider')
+2024-12-14 01:14:14.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:14.8|Info|FluentMigrator.Runner.MigrationRunner|25: move_notification_to_generic_provider migrated
+2024-12-14 01:14:14.8|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0068419s
+2024-12-14 01:14:14.8|Info|FluentMigrator.Runner.MigrationRunner|26: add_config_contract_to_notifications migrating
+2024-12-14 01:14:14.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:14.8|Info|add_config_contract_to_notifications|Starting migration of Log DB to 26
+2024-12-14 01:14:14.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (26, '2024-12-14T01:14:14', 'add_config_contract_to_notifications')
+2024-12-14 01:14:14.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:14.8|Info|FluentMigrator.Runner.MigrationRunner|26: add_config_contract_to_notifications migrated
+2024-12-14 01:14:14.8|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0068825s
+2024-12-14 01:14:14.8|Info|FluentMigrator.Runner.MigrationRunner|27: fix_omgwtfnzbs migrating
+2024-12-14 01:14:14.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:14.8|Info|fix_omgwtfnzbs|Starting migration of Log DB to 27
+2024-12-14 01:14:14.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (27, '2024-12-14T01:14:14', 'fix_omgwtfnzbs')
+2024-12-14 01:14:14.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:14.8|Info|FluentMigrator.Runner.MigrationRunner|27: fix_omgwtfnzbs migrated
+2024-12-14 01:14:14.8|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0075467s
+2024-12-14 01:14:14.8|Info|FluentMigrator.Runner.MigrationRunner|28: add_blacklist_table migrating
+2024-12-14 01:14:14.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:14.8|Info|add_blacklist_table|Starting migration of Log DB to 28
+2024-12-14 01:14:14.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (28, '2024-12-14T01:14:14', 'add_blacklist_table')
+2024-12-14 01:14:14.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:14.8|Info|FluentMigrator.Runner.MigrationRunner|28: add_blacklist_table migrated
+2024-12-14 01:14:14.8|Info|FluentMigrator.Runner.MigrationRunner|=> 0.006953s
+2024-12-14 01:14:14.8|Info|FluentMigrator.Runner.MigrationRunner|29: add_formats_to_naming_config migrating
+2024-12-14 01:14:14.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:14.8|Info|add_formats_to_naming_config|Starting migration of Log DB to 29
+2024-12-14 01:14:14.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (29, '2024-12-14T01:14:14', 'add_formats_to_naming_config')
+2024-12-14 01:14:14.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:14.8|Info|FluentMigrator.Runner.MigrationRunner|29: add_formats_to_naming_config migrated
+2024-12-14 01:14:14.8|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0069855s
+2024-12-14 01:14:14.8|Info|FluentMigrator.Runner.MigrationRunner|30: add_season_folder_format_to_naming_config migrating
+2024-12-14 01:14:14.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:14.8|Info|add_season_folder_format_to_naming_config|Starting migration of Log DB to 30
+2024-12-14 01:14:14.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (30, '2024-12-14T01:14:14', 'add_season_folder_format_to_naming_config')
+2024-12-14 01:14:14.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:14.9|Info|FluentMigrator.Runner.MigrationRunner|30: add_season_folder_format_to_naming_config migrated
+2024-12-14 01:14:14.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0069484s
+2024-12-14 01:14:14.9|Info|FluentMigrator.Runner.MigrationRunner|31: delete_old_naming_config_columns migrating
+2024-12-14 01:14:14.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:14.9|Info|delete_old_naming_config_columns|Starting migration of Log DB to 31
+2024-12-14 01:14:14.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (31, '2024-12-14T01:14:14', 'delete_old_naming_config_columns')
+2024-12-14 01:14:14.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:14.9|Info|FluentMigrator.Runner.MigrationRunner|31: delete_old_naming_config_columns migrated
+2024-12-14 01:14:14.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0070075s
+2024-12-14 01:14:14.9|Info|FluentMigrator.Runner.MigrationRunner|32: set_default_release_group migrating
+2024-12-14 01:14:14.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:14.9|Info|set_default_release_group|Starting migration of Log DB to 32
+2024-12-14 01:14:14.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (32, '2024-12-14T01:14:14', 'set_default_release_group')
+2024-12-14 01:14:14.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:14.9|Info|FluentMigrator.Runner.MigrationRunner|32: set_default_release_group migrated
+2024-12-14 01:14:14.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0069176s
+2024-12-14 01:14:14.9|Info|FluentMigrator.Runner.MigrationRunner|33: add_api_key_to_pushover migrating
+2024-12-14 01:14:14.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:14.9|Info|add_api_key_to_pushover|Starting migration of Log DB to 33
+2024-12-14 01:14:14.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (33, '2024-12-14T01:14:14', 'add_api_key_to_pushover')
+2024-12-14 01:14:14.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:14.9|Info|FluentMigrator.Runner.MigrationRunner|33: add_api_key_to_pushover migrated
+2024-12-14 01:14:14.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0069004s
+2024-12-14 01:14:14.9|Info|FluentMigrator.Runner.MigrationRunner|34: remove_series_contraints migrating
+2024-12-14 01:14:14.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:14.9|Info|remove_series_contraints|Starting migration of Log DB to 34
+2024-12-14 01:14:14.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (34, '2024-12-14T01:14:14', 'remove_series_contraints')
+2024-12-14 01:14:14.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:14.9|Info|FluentMigrator.Runner.MigrationRunner|34: remove_series_contraints migrated
+2024-12-14 01:14:14.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0067718s
+2024-12-14 01:14:14.9|Info|FluentMigrator.Runner.MigrationRunner|35: add_series_folder_format_to_naming_config migrating
+2024-12-14 01:14:14.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:14.9|Info|add_series_folder_format_to_naming_config|Starting migration of Log DB to 35
+2024-12-14 01:14:14.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (35, '2024-12-14T01:14:14', 'add_series_folder_format_to_naming_config')
+2024-12-14 01:14:14.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:14.9|Info|FluentMigrator.Runner.MigrationRunner|35: add_series_folder_format_to_naming_config migrated
+2024-12-14 01:14:14.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0074971s
+2024-12-14 01:14:14.9|Info|FluentMigrator.Runner.MigrationRunner|36: update_with_quality_converters migrating
+2024-12-14 01:14:14.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:14.9|Info|update_with_quality_converters|Starting migration of Log DB to 36
+2024-12-14 01:14:14.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (36, '2024-12-14T01:14:14', 'update_with_quality_converters')
+2024-12-14 01:14:14.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:14.9|Info|FluentMigrator.Runner.MigrationRunner|36: update_with_quality_converters migrated
+2024-12-14 01:14:14.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.006737s
+2024-12-14 01:14:14.9|Info|FluentMigrator.Runner.MigrationRunner|37: add_configurable_qualities migrating
+2024-12-14 01:14:14.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:14.9|Info|add_configurable_qualities|Starting migration of Log DB to 37
+2024-12-14 01:14:14.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (37, '2024-12-14T01:14:14', 'add_configurable_qualities')
+2024-12-14 01:14:14.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:14.9|Info|FluentMigrator.Runner.MigrationRunner|37: add_configurable_qualities migrated
+2024-12-14 01:14:14.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0068449s
+2024-12-14 01:14:14.9|Info|FluentMigrator.Runner.MigrationRunner|38: add_on_upgrade_to_notifications migrating
+2024-12-14 01:14:14.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:14.9|Info|add_on_upgrade_to_notifications|Starting migration of Log DB to 38
+2024-12-14 01:14:14.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (38, '2024-12-14T01:14:14', 'add_on_upgrade_to_notifications')
+2024-12-14 01:14:14.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:14.9|Info|FluentMigrator.Runner.MigrationRunner|38: add_on_upgrade_to_notifications migrated
+2024-12-14 01:14:14.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.006774s
+2024-12-14 01:14:14.9|Info|FluentMigrator.Runner.MigrationRunner|39: add_metadata_tables migrating
+2024-12-14 01:14:14.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:14.9|Info|add_metadata_tables|Starting migration of Log DB to 39
+2024-12-14 01:14:14.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (39, '2024-12-14T01:14:14', 'add_metadata_tables')
+2024-12-14 01:14:14.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:14.9|Info|FluentMigrator.Runner.MigrationRunner|39: add_metadata_tables migrated
+2024-12-14 01:14:14.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0069519s
+2024-12-14 01:14:14.9|Info|FluentMigrator.Runner.MigrationRunner|40: add_metadata_to_episodes_and_series migrating
+2024-12-14 01:14:14.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:14.9|Info|add_metadata_to_episodes_and_series|Starting migration of Log DB to 40
+2024-12-14 01:14:14.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (40, '2024-12-14T01:14:14', 'add_metadata_to_episodes_and_series')
+2024-12-14 01:14:14.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:14.9|Info|FluentMigrator.Runner.MigrationRunner|40: add_metadata_to_episodes_and_series migrated
+2024-12-14 01:14:14.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0069258s
+2024-12-14 01:14:14.9|Info|FluentMigrator.Runner.MigrationRunner|41: fix_xbmc_season_images_metadata migrating
+2024-12-14 01:14:14.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:14.9|Info|fix_xbmc_season_images_metadata|Starting migration of Log DB to 41
+2024-12-14 01:14:14.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (41, '2024-12-14T01:14:14', 'fix_xbmc_season_images_metadata')
+2024-12-14 01:14:14.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:14.9|Info|FluentMigrator.Runner.MigrationRunner|41: fix_xbmc_season_images_metadata migrated
+2024-12-14 01:14:14.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0068831s
+2024-12-14 01:14:14.9|Info|FluentMigrator.Runner.MigrationRunner|42: add_download_clients_table migrating
+2024-12-14 01:14:14.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:14.9|Info|add_download_clients_table|Starting migration of Log DB to 42
+2024-12-14 01:14:14.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (42, '2024-12-14T01:14:14', 'add_download_clients_table')
+2024-12-14 01:14:14.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:14.9|Info|FluentMigrator.Runner.MigrationRunner|42: add_download_clients_table migrated
+2024-12-14 01:14:14.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0069217s
+2024-12-14 01:14:14.9|Info|FluentMigrator.Runner.MigrationRunner|43: convert_config_to_download_clients migrating
+2024-12-14 01:14:14.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:14.9|Info|convert_config_to_download_clients|Starting migration of Log DB to 43
+2024-12-14 01:14:14.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (43, '2024-12-14T01:14:14', 'convert_config_to_download_clients')
+2024-12-14 01:14:14.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.0|Info|FluentMigrator.Runner.MigrationRunner|43: convert_config_to_download_clients migrated
+2024-12-14 01:14:15.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0070111s
+2024-12-14 01:14:15.0|Info|FluentMigrator.Runner.MigrationRunner|44: fix_xbmc_episode_metadata migrating
+2024-12-14 01:14:15.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.0|Info|fix_xbmc_episode_metadata|Starting migration of Log DB to 44
+2024-12-14 01:14:15.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (44, '2024-12-14T01:14:15', 'fix_xbmc_episode_metadata')
+2024-12-14 01:14:15.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.0|Info|FluentMigrator.Runner.MigrationRunner|44: fix_xbmc_episode_metadata migrated
+2024-12-14 01:14:15.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0068415s
+2024-12-14 01:14:15.0|Info|FluentMigrator.Runner.MigrationRunner|45: add_indexes migrating
+2024-12-14 01:14:15.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.0|Info|add_indexes|Starting migration of Log DB to 45
+2024-12-14 01:14:15.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (45, '2024-12-14T01:14:15', 'add_indexes')
+2024-12-14 01:14:15.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.0|Info|FluentMigrator.Runner.MigrationRunner|45: add_indexes migrated
+2024-12-14 01:14:15.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0068225s
+2024-12-14 01:14:15.0|Info|FluentMigrator.Runner.MigrationRunner|46: fix_nzb_su_url migrating
+2024-12-14 01:14:15.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.0|Info|fix_nzb_su_url|Starting migration of Log DB to 46
+2024-12-14 01:14:15.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (46, '2024-12-14T01:14:15', 'fix_nzb_su_url')
+2024-12-14 01:14:15.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.0|Info|FluentMigrator.Runner.MigrationRunner|46: fix_nzb_su_url migrated
+2024-12-14 01:14:15.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.006963s
+2024-12-14 01:14:15.0|Info|FluentMigrator.Runner.MigrationRunner|47: add_temporary_blacklist_columns migrating
+2024-12-14 01:14:15.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.0|Info|add_temporary_blacklist_columns|Starting migration of Log DB to 47
+2024-12-14 01:14:15.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (47, '2024-12-14T01:14:15', 'add_temporary_blacklist_columns')
+2024-12-14 01:14:15.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.0|Info|FluentMigrator.Runner.MigrationRunner|47: add_temporary_blacklist_columns migrated
+2024-12-14 01:14:15.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0137429s
+2024-12-14 01:14:15.0|Info|FluentMigrator.Runner.MigrationRunner|48: add_title_to_scenemappings migrating
+2024-12-14 01:14:15.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.0|Info|add_title_to_scenemappings|Starting migration of Log DB to 48
+2024-12-14 01:14:15.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (48, '2024-12-14T01:14:15', 'add_title_to_scenemappings')
+2024-12-14 01:14:15.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.0|Info|FluentMigrator.Runner.MigrationRunner|48: add_title_to_scenemappings migrated
+2024-12-14 01:14:15.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0067455s
+2024-12-14 01:14:15.0|Info|FluentMigrator.Runner.MigrationRunner|49: fix_dognzb_url migrating
+2024-12-14 01:14:15.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.0|Info|fix_dognzb_url|Starting migration of Log DB to 49
+2024-12-14 01:14:15.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (49, '2024-12-14T01:14:15', 'fix_dognzb_url')
+2024-12-14 01:14:15.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.0|Info|FluentMigrator.Runner.MigrationRunner|49: fix_dognzb_url migrated
+2024-12-14 01:14:15.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0068234s
+2024-12-14 01:14:15.0|Info|FluentMigrator.Runner.MigrationRunner|50: add_hash_to_metadata_files migrating
+2024-12-14 01:14:15.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.0|Info|add_hash_to_metadata_files|Starting migration of Log DB to 50
+2024-12-14 01:14:15.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (50, '2024-12-14T01:14:15', 'add_hash_to_metadata_files')
+2024-12-14 01:14:15.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.0|Info|FluentMigrator.Runner.MigrationRunner|50: add_hash_to_metadata_files migrated
+2024-12-14 01:14:15.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0069123s
+2024-12-14 01:14:15.0|Info|FluentMigrator.Runner.MigrationRunner|51: download_client_import migrating
+2024-12-14 01:14:15.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.0|Info|download_client_import|Starting migration of Log DB to 51
+2024-12-14 01:14:15.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (51, '2024-12-14T01:14:15', 'download_client_import')
+2024-12-14 01:14:15.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.0|Info|FluentMigrator.Runner.MigrationRunner|51: download_client_import migrated
+2024-12-14 01:14:15.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.006661s
+2024-12-14 01:14:15.0|Info|FluentMigrator.Runner.MigrationRunner|52: add_columns_for_anime migrating
+2024-12-14 01:14:15.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.0|Info|add_columns_for_anime|Starting migration of Log DB to 52
+2024-12-14 01:14:15.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (52, '2024-12-14T01:14:15', 'add_columns_for_anime')
+2024-12-14 01:14:15.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.0|Info|FluentMigrator.Runner.MigrationRunner|52: add_columns_for_anime migrated
+2024-12-14 01:14:15.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0068033s
+2024-12-14 01:14:15.0|Info|FluentMigrator.Runner.MigrationRunner|53: add_series_sorttitle migrating
+2024-12-14 01:14:15.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.0|Info|add_series_sorttitle|Starting migration of Log DB to 53
+2024-12-14 01:14:15.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (53, '2024-12-14T01:14:15', 'add_series_sorttitle')
+2024-12-14 01:14:15.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.0|Info|FluentMigrator.Runner.MigrationRunner|53: add_series_sorttitle migrated
+2024-12-14 01:14:15.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0066422s
+2024-12-14 01:14:15.0|Info|FluentMigrator.Runner.MigrationRunner|54: rename_profiles migrating
+2024-12-14 01:14:15.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.0|Info|rename_profiles|Starting migration of Log DB to 54
+2024-12-14 01:14:15.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (54, '2024-12-14T01:14:15', 'rename_profiles')
+2024-12-14 01:14:15.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.0|Info|FluentMigrator.Runner.MigrationRunner|54: rename_profiles migrated
+2024-12-14 01:14:15.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.006825s
+2024-12-14 01:14:15.0|Info|FluentMigrator.Runner.MigrationRunner|55: drop_old_profile_columns migrating
+2024-12-14 01:14:15.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.0|Info|drop_old_profile_columns|Starting migration of Log DB to 55
+2024-12-14 01:14:15.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (55, '2024-12-14T01:14:15', 'drop_old_profile_columns')
+2024-12-14 01:14:15.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.0|Info|FluentMigrator.Runner.MigrationRunner|55: drop_old_profile_columns migrated
+2024-12-14 01:14:15.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0068982s
+2024-12-14 01:14:15.0|Info|FluentMigrator.Runner.MigrationRunner|56: add_mediainfo_to_episodefile migrating
+2024-12-14 01:14:15.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.0|Info|add_mediainfo_to_episodefile|Starting migration of Log DB to 56
+2024-12-14 01:14:15.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (56, '2024-12-14T01:14:15', 'add_mediainfo_to_episodefile')
+2024-12-14 01:14:15.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.1|Info|FluentMigrator.Runner.MigrationRunner|56: add_mediainfo_to_episodefile migrated
+2024-12-14 01:14:15.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0067623s
+2024-12-14 01:14:15.1|Info|FluentMigrator.Runner.MigrationRunner|57: convert_episode_file_path_to_relative migrating
+2024-12-14 01:14:15.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.1|Info|convert_episode_file_path_to_relative|Starting migration of Log DB to 57
+2024-12-14 01:14:15.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (57, '2024-12-14T01:14:15', 'convert_episode_file_path_to_relative')
+2024-12-14 01:14:15.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.1|Info|FluentMigrator.Runner.MigrationRunner|57: convert_episode_file_path_to_relative migrated
+2024-12-14 01:14:15.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.006801s
+2024-12-14 01:14:15.1|Info|FluentMigrator.Runner.MigrationRunner|58: drop_episode_file_path migrating
+2024-12-14 01:14:15.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.1|Info|drop_episode_file_path|Starting migration of Log DB to 58
+2024-12-14 01:14:15.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (58, '2024-12-14T01:14:15', 'drop_episode_file_path')
+2024-12-14 01:14:15.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.1|Info|FluentMigrator.Runner.MigrationRunner|58: drop_episode_file_path migrated
+2024-12-14 01:14:15.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0070081s
+2024-12-14 01:14:15.1|Info|FluentMigrator.Runner.MigrationRunner|59: add_enable_options_to_indexers migrating
+2024-12-14 01:14:15.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.1|Info|add_enable_options_to_indexers|Starting migration of Log DB to 59
+2024-12-14 01:14:15.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (59, '2024-12-14T01:14:15', 'add_enable_options_to_indexers')
+2024-12-14 01:14:15.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.1|Info|FluentMigrator.Runner.MigrationRunner|59: add_enable_options_to_indexers migrated
+2024-12-14 01:14:15.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0068209s
+2024-12-14 01:14:15.1|Info|FluentMigrator.Runner.MigrationRunner|60: remove_enable_from_indexers migrating
+2024-12-14 01:14:15.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.1|Info|remove_enable_from_indexers|Starting migration of Log DB to 60
+2024-12-14 01:14:15.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (60, '2024-12-14T01:14:15', 'remove_enable_from_indexers')
+2024-12-14 01:14:15.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.1|Info|FluentMigrator.Runner.MigrationRunner|60: remove_enable_from_indexers migrated
+2024-12-14 01:14:15.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0070805s
+2024-12-14 01:14:15.1|Info|FluentMigrator.Runner.MigrationRunner|61: clear_bad_scene_names migrating
+2024-12-14 01:14:15.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.1|Info|clear_bad_scene_names|Starting migration of Log DB to 61
+2024-12-14 01:14:15.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (61, '2024-12-14T01:14:15', 'clear_bad_scene_names')
+2024-12-14 01:14:15.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.1|Info|FluentMigrator.Runner.MigrationRunner|61: clear_bad_scene_names migrated
+2024-12-14 01:14:15.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.007297s
+2024-12-14 01:14:15.1|Info|FluentMigrator.Runner.MigrationRunner|62: convert_quality_models migrating
+2024-12-14 01:14:15.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.1|Info|convert_quality_models|Starting migration of Log DB to 62
+2024-12-14 01:14:15.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (62, '2024-12-14T01:14:15', 'convert_quality_models')
+2024-12-14 01:14:15.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.1|Info|FluentMigrator.Runner.MigrationRunner|62: convert_quality_models migrated
+2024-12-14 01:14:15.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0070509s
+2024-12-14 01:14:15.1|Info|FluentMigrator.Runner.MigrationRunner|63: add_remotepathmappings migrating
+2024-12-14 01:14:15.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.1|Info|add_remotepathmappings|Starting migration of Log DB to 63
+2024-12-14 01:14:15.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (63, '2024-12-14T01:14:15', 'add_remotepathmappings')
+2024-12-14 01:14:15.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.1|Info|FluentMigrator.Runner.MigrationRunner|63: add_remotepathmappings migrated
+2024-12-14 01:14:15.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.007117s
+2024-12-14 01:14:15.1|Info|FluentMigrator.Runner.MigrationRunner|64: remove_method_from_logs migrating
+2024-12-14 01:14:15.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.1|Info|remove_method_from_logs|Starting migration of Log DB to 64
+2024-12-14 01:14:15.1|Info|FluentMigrator.Runner.MigrationRunner|DeleteColumn Logs Method
+2024-12-14 01:14:15.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "Logs_temp" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "Message" TEXT NOT NULL, "Time" DATETIME NOT NULL, "Logger" TEXT NOT NULL, "Exception" TEXT, "ExceptionType" TEXT, "Level" TEXT NOT NULL)
+2024-12-14 01:14:15.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "Logs_temp" ("Id", "Message", "Time", "Logger", "Exception", "ExceptionType", "Level") SELECT "Id", "Message", "Time", "Logger", "Exception", "ExceptionType", "Level" FROM "Logs"
+2024-12-14 01:14:15.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP TABLE "Logs"
+2024-12-14 01:14:15.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Logs_temp" RENAME TO "Logs"
+2024-12-14 01:14:15.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE INDEX "IX_Logs_Time" ON "Logs" ("Time" ASC)
+2024-12-14 01:14:15.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0023735s
+2024-12-14 01:14:15.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (64, '2024-12-14T01:14:15', 'remove_method_from_logs')
+2024-12-14 01:14:15.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.1|Info|FluentMigrator.Runner.MigrationRunner|64: remove_method_from_logs migrated
+2024-12-14 01:14:15.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0090667s
+2024-12-14 01:14:15.1|Info|FluentMigrator.Runner.MigrationRunner|65: make_scene_numbering_nullable migrating
+2024-12-14 01:14:15.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.1|Info|make_scene_numbering_nullable|Starting migration of Log DB to 65
+2024-12-14 01:14:15.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (65, '2024-12-14T01:14:15', 'make_scene_numbering_nullable')
+2024-12-14 01:14:15.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.1|Info|FluentMigrator.Runner.MigrationRunner|65: make_scene_numbering_nullable migrated
+2024-12-14 01:14:15.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0069833s
+2024-12-14 01:14:15.1|Info|FluentMigrator.Runner.MigrationRunner|66: add_tags migrating
+2024-12-14 01:14:15.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.1|Info|add_tags|Starting migration of Log DB to 66
+2024-12-14 01:14:15.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (66, '2024-12-14T01:14:15', 'add_tags')
+2024-12-14 01:14:15.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.1|Info|FluentMigrator.Runner.MigrationRunner|66: add_tags migrated
+2024-12-14 01:14:15.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0072892s
+2024-12-14 01:14:15.1|Info|FluentMigrator.Runner.MigrationRunner|67: add_added_to_series migrating
+2024-12-14 01:14:15.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.1|Info|add_added_to_series|Starting migration of Log DB to 67
+2024-12-14 01:14:15.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (67, '2024-12-14T01:14:15', 'add_added_to_series')
+2024-12-14 01:14:15.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.1|Info|FluentMigrator.Runner.MigrationRunner|67: add_added_to_series migrated
+2024-12-14 01:14:15.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0071009s
+2024-12-14 01:14:15.1|Info|FluentMigrator.Runner.MigrationRunner|68: add_release_restrictions migrating
+2024-12-14 01:14:15.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.1|Info|add_release_restrictions|Starting migration of Log DB to 68
+2024-12-14 01:14:15.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (68, '2024-12-14T01:14:15', 'add_release_restrictions')
+2024-12-14 01:14:15.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.1|Info|FluentMigrator.Runner.MigrationRunner|68: add_release_restrictions migrated
+2024-12-14 01:14:15.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.00716s
+2024-12-14 01:14:15.1|Info|FluentMigrator.Runner.MigrationRunner|69: quality_proper migrating
+2024-12-14 01:14:15.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.1|Info|quality_proper|Starting migration of Log DB to 69
+2024-12-14 01:14:15.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (69, '2024-12-14T01:14:15', 'quality_proper')
+2024-12-14 01:14:15.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.2|Info|FluentMigrator.Runner.MigrationRunner|69: quality_proper migrated
+2024-12-14 01:14:15.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0074497s
+2024-12-14 01:14:15.2|Info|FluentMigrator.Runner.MigrationRunner|70: delay_profile migrating
+2024-12-14 01:14:15.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.2|Info|delay_profile|Starting migration of Log DB to 70
+2024-12-14 01:14:15.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (70, '2024-12-14T01:14:15', 'delay_profile')
+2024-12-14 01:14:15.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.2|Info|FluentMigrator.Runner.MigrationRunner|70: delay_profile migrated
+2024-12-14 01:14:15.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0073166s
+2024-12-14 01:14:15.2|Info|FluentMigrator.Runner.MigrationRunner|71: unknown_quality_in_profile migrating
+2024-12-14 01:14:15.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.2|Info|unknown_quality_in_profile|Starting migration of Log DB to 71
+2024-12-14 01:14:15.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (71, '2024-12-14T01:14:15', 'unknown_quality_in_profile')
+2024-12-14 01:14:15.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.2|Info|FluentMigrator.Runner.MigrationRunner|71: unknown_quality_in_profile migrated
+2024-12-14 01:14:15.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0067561s
+2024-12-14 01:14:15.2|Info|FluentMigrator.Runner.MigrationRunner|72: history_downloadId migrating
+2024-12-14 01:14:15.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.2|Info|history_downloadId|Starting migration of Log DB to 72
+2024-12-14 01:14:15.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (72, '2024-12-14T01:14:15', 'history_downloadId')
+2024-12-14 01:14:15.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.2|Info|FluentMigrator.Runner.MigrationRunner|72: history_downloadId migrated
+2024-12-14 01:14:15.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.006743s
+2024-12-14 01:14:15.2|Info|FluentMigrator.Runner.MigrationRunner|73: clear_ratings migrating
+2024-12-14 01:14:15.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.2|Info|clear_ratings|Starting migration of Log DB to 73
+2024-12-14 01:14:15.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (73, '2024-12-14T01:14:15', 'clear_ratings')
+2024-12-14 01:14:15.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.2|Info|FluentMigrator.Runner.MigrationRunner|73: clear_ratings migrated
+2024-12-14 01:14:15.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0071732s
+2024-12-14 01:14:15.2|Info|FluentMigrator.Runner.MigrationRunner|74: disable_eztv migrating
+2024-12-14 01:14:15.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.2|Info|disable_eztv|Starting migration of Log DB to 74
+2024-12-14 01:14:15.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (74, '2024-12-14T01:14:15', 'disable_eztv')
+2024-12-14 01:14:15.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.2|Info|FluentMigrator.Runner.MigrationRunner|74: disable_eztv migrated
+2024-12-14 01:14:15.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0070866s
+2024-12-14 01:14:15.2|Info|FluentMigrator.Runner.MigrationRunner|75: force_lib_update migrating
+2024-12-14 01:14:15.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.2|Info|force_lib_update|Starting migration of Log DB to 75
+2024-12-14 01:14:15.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (75, '2024-12-14T01:14:15', 'force_lib_update')
+2024-12-14 01:14:15.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.2|Info|FluentMigrator.Runner.MigrationRunner|75: force_lib_update migrated
+2024-12-14 01:14:15.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0068607s
+2024-12-14 01:14:15.2|Info|FluentMigrator.Runner.MigrationRunner|76: add_users_table migrating
+2024-12-14 01:14:15.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.2|Info|add_users_table|Starting migration of Log DB to 76
+2024-12-14 01:14:15.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (76, '2024-12-14T01:14:15', 'add_users_table')
+2024-12-14 01:14:15.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.2|Info|FluentMigrator.Runner.MigrationRunner|76: add_users_table migrated
+2024-12-14 01:14:15.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0066187s
+2024-12-14 01:14:15.2|Info|FluentMigrator.Runner.MigrationRunner|77: add_add_options_to_series migrating
+2024-12-14 01:14:15.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.2|Info|add_add_options_to_series|Starting migration of Log DB to 77
+2024-12-14 01:14:15.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (77, '2024-12-14T01:14:15', 'add_add_options_to_series')
+2024-12-14 01:14:15.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.2|Info|FluentMigrator.Runner.MigrationRunner|77: add_add_options_to_series migrated
+2024-12-14 01:14:15.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0067075s
+2024-12-14 01:14:15.2|Info|FluentMigrator.Runner.MigrationRunner|78: add_commands_table migrating
+2024-12-14 01:14:15.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.2|Info|add_commands_table|Starting migration of Log DB to 78
+2024-12-14 01:14:15.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (78, '2024-12-14T01:14:15', 'add_commands_table')
+2024-12-14 01:14:15.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.2|Info|FluentMigrator.Runner.MigrationRunner|78: add_commands_table migrated
+2024-12-14 01:14:15.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0067556s
+2024-12-14 01:14:15.2|Info|FluentMigrator.Runner.MigrationRunner|79: dedupe_tags migrating
+2024-12-14 01:14:15.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.2|Info|dedupe_tags|Starting migration of Log DB to 79
+2024-12-14 01:14:15.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (79, '2024-12-14T01:14:15', 'dedupe_tags')
+2024-12-14 01:14:15.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.2|Info|FluentMigrator.Runner.MigrationRunner|79: dedupe_tags migrated
+2024-12-14 01:14:15.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0071662s
+2024-12-14 01:14:15.2|Info|FluentMigrator.Runner.MigrationRunner|81: move_dot_prefix_to_transmission_category migrating
+2024-12-14 01:14:15.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.2|Info|move_dot_prefix_to_transmission_category|Starting migration of Log DB to 81
+2024-12-14 01:14:15.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (81, '2024-12-14T01:14:15', 'move_dot_prefix_to_transmission_category')
+2024-12-14 01:14:15.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.2|Info|FluentMigrator.Runner.MigrationRunner|81: move_dot_prefix_to_transmission_category migrated
+2024-12-14 01:14:15.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0070188s
+2024-12-14 01:14:15.2|Info|FluentMigrator.Runner.MigrationRunner|82: add_fanzub_settings migrating
+2024-12-14 01:14:15.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.2|Info|add_fanzub_settings|Starting migration of Log DB to 82
+2024-12-14 01:14:15.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (82, '2024-12-14T01:14:15', 'add_fanzub_settings')
+2024-12-14 01:14:15.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.2|Info|FluentMigrator.Runner.MigrationRunner|82: add_fanzub_settings migrated
+2024-12-14 01:14:15.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0069396s
+2024-12-14 01:14:15.2|Info|FluentMigrator.Runner.MigrationRunner|83: additonal_blacklist_columns migrating
+2024-12-14 01:14:15.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.2|Info|additonal_blacklist_columns|Starting migration of Log DB to 83
+2024-12-14 01:14:15.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (83, '2024-12-14T01:14:15', 'additonal_blacklist_columns')
+2024-12-14 01:14:15.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.3|Info|FluentMigrator.Runner.MigrationRunner|83: additonal_blacklist_columns migrated
+2024-12-14 01:14:15.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0073287s
+2024-12-14 01:14:15.3|Info|FluentMigrator.Runner.MigrationRunner|84: update_quality_minmax_size migrating
+2024-12-14 01:14:15.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.3|Info|update_quality_minmax_size|Starting migration of Log DB to 84
+2024-12-14 01:14:15.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (84, '2024-12-14T01:14:15', 'update_quality_minmax_size')
+2024-12-14 01:14:15.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.3|Info|FluentMigrator.Runner.MigrationRunner|84: update_quality_minmax_size migrated
+2024-12-14 01:14:15.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0073016s
+2024-12-14 01:14:15.3|Info|FluentMigrator.Runner.MigrationRunner|85: expand_transmission_urlbase migrating
+2024-12-14 01:14:15.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.3|Info|expand_transmission_urlbase|Starting migration of Log DB to 85
+2024-12-14 01:14:15.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (85, '2024-12-14T01:14:15', 'expand_transmission_urlbase')
+2024-12-14 01:14:15.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.3|Info|FluentMigrator.Runner.MigrationRunner|85: expand_transmission_urlbase migrated
+2024-12-14 01:14:15.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0067516s
+2024-12-14 01:14:15.3|Info|FluentMigrator.Runner.MigrationRunner|86: pushbullet_device_ids migrating
+2024-12-14 01:14:15.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.3|Info|pushbullet_device_ids|Starting migration of Log DB to 86
+2024-12-14 01:14:15.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (86, '2024-12-14T01:14:15', 'pushbullet_device_ids')
+2024-12-14 01:14:15.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.3|Info|FluentMigrator.Runner.MigrationRunner|86: pushbullet_device_ids migrated
+2024-12-14 01:14:15.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0067907s
+2024-12-14 01:14:15.3|Info|FluentMigrator.Runner.MigrationRunner|87: remove_eztv migrating
+2024-12-14 01:14:15.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.3|Info|remove_eztv|Starting migration of Log DB to 87
+2024-12-14 01:14:15.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (87, '2024-12-14T01:14:15', 'remove_eztv')
+2024-12-14 01:14:15.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.3|Info|FluentMigrator.Runner.MigrationRunner|87: remove_eztv migrated
+2024-12-14 01:14:15.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0073042s
+2024-12-14 01:14:15.3|Info|FluentMigrator.Runner.MigrationRunner|88: pushbullet_devices_channels_list migrating
+2024-12-14 01:14:15.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.3|Info|pushbullet_devices_channels_list|Starting migration of Log DB to 88
+2024-12-14 01:14:15.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (88, '2024-12-14T01:14:15', 'pushbullet_devices_channels_list')
+2024-12-14 01:14:15.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.3|Info|FluentMigrator.Runner.MigrationRunner|88: pushbullet_devices_channels_list migrated
+2024-12-14 01:14:15.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0073273s
+2024-12-14 01:14:15.3|Info|FluentMigrator.Runner.MigrationRunner|89: add_on_rename_to_notifcations migrating
+2024-12-14 01:14:15.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.3|Info|add_on_rename_to_notifcations|Starting migration of Log DB to 89
+2024-12-14 01:14:15.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (89, '2024-12-14T01:14:15', 'add_on_rename_to_notifcations')
+2024-12-14 01:14:15.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.3|Info|FluentMigrator.Runner.MigrationRunner|89: add_on_rename_to_notifcations migrated
+2024-12-14 01:14:15.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0072602s
+2024-12-14 01:14:15.3|Info|FluentMigrator.Runner.MigrationRunner|90: update_kickass_url migrating
+2024-12-14 01:14:15.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.3|Info|update_kickass_url|Starting migration of Log DB to 90
+2024-12-14 01:14:15.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (90, '2024-12-14T01:14:15', 'update_kickass_url')
+2024-12-14 01:14:15.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.3|Info|FluentMigrator.Runner.MigrationRunner|90: update_kickass_url migrated
+2024-12-14 01:14:15.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0071509s
+2024-12-14 01:14:15.3|Info|FluentMigrator.Runner.MigrationRunner|91: added_indexerstatus migrating
+2024-12-14 01:14:15.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.3|Info|added_indexerstatus|Starting migration of Log DB to 91
+2024-12-14 01:14:15.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (91, '2024-12-14T01:14:15', 'added_indexerstatus')
+2024-12-14 01:14:15.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.3|Info|FluentMigrator.Runner.MigrationRunner|91: added_indexerstatus migrated
+2024-12-14 01:14:15.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0074469s
+2024-12-14 01:14:15.3|Info|FluentMigrator.Runner.MigrationRunner|92: add_unverifiedscenenumbering migrating
+2024-12-14 01:14:15.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.3|Info|add_unverifiedscenenumbering|Starting migration of Log DB to 92
+2024-12-14 01:14:15.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (92, '2024-12-14T01:14:15', 'add_unverifiedscenenumbering')
+2024-12-14 01:14:15.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.3|Info|FluentMigrator.Runner.MigrationRunner|92: add_unverifiedscenenumbering migrated
+2024-12-14 01:14:15.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0069574s
+2024-12-14 01:14:15.3|Info|FluentMigrator.Runner.MigrationRunner|93: naming_config_replace_illegal_characters migrating
+2024-12-14 01:14:15.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.3|Info|naming_config_replace_illegal_characters|Starting migration of Log DB to 93
+2024-12-14 01:14:15.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (93, '2024-12-14T01:14:15', 'naming_config_replace_illegal_characters')
+2024-12-14 01:14:15.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.3|Info|FluentMigrator.Runner.MigrationRunner|93: naming_config_replace_illegal_characters migrated
+2024-12-14 01:14:15.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.006832s
+2024-12-14 01:14:15.3|Info|FluentMigrator.Runner.MigrationRunner|94: add_tvmazeid migrating
+2024-12-14 01:14:15.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.3|Info|add_tvmazeid|Starting migration of Log DB to 94
+2024-12-14 01:14:15.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (94, '2024-12-14T01:14:15', 'add_tvmazeid')
+2024-12-14 01:14:15.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.3|Info|FluentMigrator.Runner.MigrationRunner|94: add_tvmazeid migrated
+2024-12-14 01:14:15.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0069564s
+2024-12-14 01:14:15.3|Info|FluentMigrator.Runner.MigrationRunner|95: add_additional_episodes_index migrating
+2024-12-14 01:14:15.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.3|Info|add_additional_episodes_index|Starting migration of Log DB to 95
+2024-12-14 01:14:15.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (95, '2024-12-14T01:14:15', 'add_additional_episodes_index')
+2024-12-14 01:14:15.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.3|Info|FluentMigrator.Runner.MigrationRunner|95: add_additional_episodes_index migrated
+2024-12-14 01:14:15.3|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0071873s
+2024-12-14 01:14:15.3|Info|FluentMigrator.Runner.MigrationRunner|96: disable_kickass migrating
+2024-12-14 01:14:15.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.3|Info|disable_kickass|Starting migration of Log DB to 96
+2024-12-14 01:14:15.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (96, '2024-12-14T01:14:15', 'disable_kickass')
+2024-12-14 01:14:15.3|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.4|Info|FluentMigrator.Runner.MigrationRunner|96: disable_kickass migrated
+2024-12-14 01:14:15.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0070157s
+2024-12-14 01:14:15.4|Info|FluentMigrator.Runner.MigrationRunner|97: add_reason_to_pending_releases migrating
+2024-12-14 01:14:15.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.4|Info|add_reason_to_pending_releases|Starting migration of Log DB to 97
+2024-12-14 01:14:15.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (97, '2024-12-14T01:14:15', 'add_reason_to_pending_releases')
+2024-12-14 01:14:15.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.4|Info|FluentMigrator.Runner.MigrationRunner|97: add_reason_to_pending_releases migrated
+2024-12-14 01:14:15.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0071059s
+2024-12-14 01:14:15.4|Info|FluentMigrator.Runner.MigrationRunner|98: remove_titans_of_tv migrating
+2024-12-14 01:14:15.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.4|Info|remove_titans_of_tv|Starting migration of Log DB to 98
+2024-12-14 01:14:15.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (98, '2024-12-14T01:14:15', 'remove_titans_of_tv')
+2024-12-14 01:14:15.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.4|Info|FluentMigrator.Runner.MigrationRunner|98: remove_titans_of_tv migrated
+2024-12-14 01:14:15.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0069697s
+2024-12-14 01:14:15.4|Info|FluentMigrator.Runner.MigrationRunner|99: extra_and_subtitle_files migrating
+2024-12-14 01:14:15.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.4|Info|extra_and_subtitle_files|Starting migration of Log DB to 99
+2024-12-14 01:14:15.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (99, '2024-12-14T01:14:15', 'extra_and_subtitle_files')
+2024-12-14 01:14:15.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.4|Info|FluentMigrator.Runner.MigrationRunner|99: extra_and_subtitle_files migrated
+2024-12-14 01:14:15.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0070105s
+2024-12-14 01:14:15.4|Info|FluentMigrator.Runner.MigrationRunner|100: add_scene_season_number migrating
+2024-12-14 01:14:15.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.4|Info|add_scene_season_number|Starting migration of Log DB to 100
+2024-12-14 01:14:15.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (100, '2024-12-14T01:14:15', 'add_scene_season_number')
+2024-12-14 01:14:15.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.4|Info|FluentMigrator.Runner.MigrationRunner|100: add_scene_season_number migrated
+2024-12-14 01:14:15.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0070435s
+2024-12-14 01:14:15.4|Info|FluentMigrator.Runner.MigrationRunner|101: add_ultrahd_quality_in_profiles migrating
+2024-12-14 01:14:15.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.4|Info|add_ultrahd_quality_in_profiles|Starting migration of Log DB to 101
+2024-12-14 01:14:15.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (101, '2024-12-14T01:14:15', 'add_ultrahd_quality_in_profiles')
+2024-12-14 01:14:15.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.4|Info|FluentMigrator.Runner.MigrationRunner|101: add_ultrahd_quality_in_profiles migrated
+2024-12-14 01:14:15.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0071s
+2024-12-14 01:14:15.4|Info|FluentMigrator.Runner.MigrationRunner|102: add_language_to_episodeFiles_history_and_blacklist migrating
+2024-12-14 01:14:15.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.4|Info|add_language_to_episodeFiles_history_and_blacklist|Starting migration of Log DB to 102
+2024-12-14 01:14:15.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (102, '2024-12-14T01:14:15', 'add_language_to_episodeFiles_history_and_blacklist')
+2024-12-14 01:14:15.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.4|Info|FluentMigrator.Runner.MigrationRunner|102: add_language_to_episodeFiles_history_and_blacklist migrated
+2024-12-14 01:14:15.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0072548s
+2024-12-14 01:14:15.4|Info|FluentMigrator.Runner.MigrationRunner|103: fix_metadata_file_extensions migrating
+2024-12-14 01:14:15.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.4|Info|fix_metadata_file_extensions|Starting migration of Log DB to 103
+2024-12-14 01:14:15.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (103, '2024-12-14T01:14:15', 'fix_metadata_file_extensions')
+2024-12-14 01:14:15.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.4|Info|FluentMigrator.Runner.MigrationRunner|103: fix_metadata_file_extensions migrated
+2024-12-14 01:14:15.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0071582s
+2024-12-14 01:14:15.4|Info|FluentMigrator.Runner.MigrationRunner|104: remove_kickass migrating
+2024-12-14 01:14:15.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.4|Info|remove_kickass|Starting migration of Log DB to 104
+2024-12-14 01:14:15.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (104, '2024-12-14T01:14:15', 'remove_kickass')
+2024-12-14 01:14:15.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.4|Info|FluentMigrator.Runner.MigrationRunner|104: remove_kickass migrated
+2024-12-14 01:14:15.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0071652s
+2024-12-14 01:14:15.4|Info|FluentMigrator.Runner.MigrationRunner|105: rename_torrent_downloadstation migrating
+2024-12-14 01:14:15.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.4|Info|rename_torrent_downloadstation|Starting migration of Log DB to 105
+2024-12-14 01:14:15.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (105, '2024-12-14T01:14:15', 'rename_torrent_downloadstation')
+2024-12-14 01:14:15.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.4|Info|FluentMigrator.Runner.MigrationRunner|105: rename_torrent_downloadstation migrated
+2024-12-14 01:14:15.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0072088s
+2024-12-14 01:14:15.4|Info|FluentMigrator.Runner.MigrationRunner|106: update_btn_url migrating
+2024-12-14 01:14:15.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.4|Info|update_btn_url|Starting migration of Log DB to 106
+2024-12-14 01:14:15.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (106, '2024-12-14T01:14:15', 'update_btn_url')
+2024-12-14 01:14:15.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.4|Info|FluentMigrator.Runner.MigrationRunner|106: update_btn_url migrated
+2024-12-14 01:14:15.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0071536s
+2024-12-14 01:14:15.4|Info|FluentMigrator.Runner.MigrationRunner|107: remove_wombles migrating
+2024-12-14 01:14:15.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.4|Info|remove_wombles|Starting migration of Log DB to 107
+2024-12-14 01:14:15.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (107, '2024-12-14T01:14:15', 'remove_wombles')
+2024-12-14 01:14:15.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.4|Info|FluentMigrator.Runner.MigrationRunner|107: remove_wombles migrated
+2024-12-14 01:14:15.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0068651s
+2024-12-14 01:14:15.4|Info|FluentMigrator.Runner.MigrationRunner|108: fix_extra_file_extension migrating
+2024-12-14 01:14:15.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.4|Info|fix_extra_file_extension|Starting migration of Log DB to 108
+2024-12-14 01:14:15.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (108, '2024-12-14T01:14:15', 'fix_extra_file_extension')
+2024-12-14 01:14:15.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.4|Info|FluentMigrator.Runner.MigrationRunner|108: fix_extra_file_extension migrated
+2024-12-14 01:14:15.4|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0071734s
+2024-12-14 01:14:15.4|Info|FluentMigrator.Runner.MigrationRunner|109: import_extra_files migrating
+2024-12-14 01:14:15.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.4|Info|import_extra_files|Starting migration of Log DB to 109
+2024-12-14 01:14:15.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (109, '2024-12-14T01:14:15', 'import_extra_files')
+2024-12-14 01:14:15.4|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.5|Info|FluentMigrator.Runner.MigrationRunner|109: import_extra_files migrated
+2024-12-14 01:14:15.5|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0073485s
+2024-12-14 01:14:15.5|Info|FluentMigrator.Runner.MigrationRunner|110: fix_extra_files_config migrating
+2024-12-14 01:14:15.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.5|Info|fix_extra_files_config|Starting migration of Log DB to 110
+2024-12-14 01:14:15.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (110, '2024-12-14T01:14:15', 'fix_extra_files_config')
+2024-12-14 01:14:15.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.5|Info|FluentMigrator.Runner.MigrationRunner|110: fix_extra_files_config migrated
+2024-12-14 01:14:15.5|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0070848s
+2024-12-14 01:14:15.5|Info|FluentMigrator.Runner.MigrationRunner|111: create_language_profiles migrating
+2024-12-14 01:14:15.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.5|Info|create_language_profiles|Starting migration of Log DB to 111
+2024-12-14 01:14:15.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (111, '2024-12-14T01:14:15', 'create_language_profiles')
+2024-12-14 01:14:15.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.5|Info|FluentMigrator.Runner.MigrationRunner|111: create_language_profiles migrated
+2024-12-14 01:14:15.5|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0067837s
+2024-12-14 01:14:15.5|Info|FluentMigrator.Runner.MigrationRunner|112: added_regex_to_scenemapping migrating
+2024-12-14 01:14:15.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.5|Info|added_regex_to_scenemapping|Starting migration of Log DB to 112
+2024-12-14 01:14:15.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (112, '2024-12-14T01:14:15', 'added_regex_to_scenemapping')
+2024-12-14 01:14:15.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.5|Info|FluentMigrator.Runner.MigrationRunner|112: added_regex_to_scenemapping migrated
+2024-12-14 01:14:15.5|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0073564s
+2024-12-14 01:14:15.5|Info|FluentMigrator.Runner.MigrationRunner|113: consolidate_indexer_baseurl migrating
+2024-12-14 01:14:15.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.5|Info|consolidate_indexer_baseurl|Starting migration of Log DB to 113
+2024-12-14 01:14:15.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (113, '2024-12-14T01:14:15', 'consolidate_indexer_baseurl')
+2024-12-14 01:14:15.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.5|Info|FluentMigrator.Runner.MigrationRunner|113: consolidate_indexer_baseurl migrated
+2024-12-14 01:14:15.5|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0072639s
+2024-12-14 01:14:15.5|Info|FluentMigrator.Runner.MigrationRunner|114: rename_indexer_status_id migrating
+2024-12-14 01:14:15.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.5|Info|rename_indexer_status_id|Starting migration of Log DB to 114
+2024-12-14 01:14:15.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (114, '2024-12-14T01:14:15', 'rename_indexer_status_id')
+2024-12-14 01:14:15.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.5|Info|FluentMigrator.Runner.MigrationRunner|114: rename_indexer_status_id migrated
+2024-12-14 01:14:15.5|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0073098s
+2024-12-14 01:14:15.5|Info|FluentMigrator.Runner.MigrationRunner|115: add_downloadclient_status migrating
+2024-12-14 01:14:15.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.5|Info|add_downloadclient_status|Starting migration of Log DB to 115
+2024-12-14 01:14:15.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (115, '2024-12-14T01:14:15', 'add_downloadclient_status')
+2024-12-14 01:14:15.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.5|Info|FluentMigrator.Runner.MigrationRunner|115: add_downloadclient_status migrated
+2024-12-14 01:14:15.5|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0068812s
+2024-12-14 01:14:15.5|Info|FluentMigrator.Runner.MigrationRunner|116: disable_nyaa migrating
+2024-12-14 01:14:15.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.5|Info|disable_nyaa|Starting migration of Log DB to 116
+2024-12-14 01:14:15.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (116, '2024-12-14T01:14:15', 'disable_nyaa')
+2024-12-14 01:14:15.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.5|Info|FluentMigrator.Runner.MigrationRunner|116: disable_nyaa migrated
+2024-12-14 01:14:15.5|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0073731s
+2024-12-14 01:14:15.5|Info|FluentMigrator.Runner.MigrationRunner|117: add_webrip_and_br480_qualites_in_profile migrating
+2024-12-14 01:14:15.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.5|Info|add_webrip_and_br480_qualites_in_profile|Starting migration of Log DB to 117
+2024-12-14 01:14:15.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (117, '2024-12-14T01:14:15', 'add_webrip_and_br480_qualites_in_profile')
+2024-12-14 01:14:15.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.5|Info|FluentMigrator.Runner.MigrationRunner|117: add_webrip_and_br480_qualites_in_profile migrated
+2024-12-14 01:14:15.5|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0073314s
+2024-12-14 01:14:15.5|Info|FluentMigrator.Runner.MigrationRunner|118: add_history_eventType_index migrating
+2024-12-14 01:14:15.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.5|Info|add_history_eventType_index|Starting migration of Log DB to 118
+2024-12-14 01:14:15.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (118, '2024-12-14T01:14:15', 'add_history_eventType_index')
+2024-12-14 01:14:15.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.5|Info|FluentMigrator.Runner.MigrationRunner|118: add_history_eventType_index migrated
+2024-12-14 01:14:15.5|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0071501s
+2024-12-14 01:14:15.5|Info|FluentMigrator.Runner.MigrationRunner|119: separate_automatic_and_interactive_searches migrating
+2024-12-14 01:14:15.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.5|Info|separate_automatic_and_interactive_searches|Starting migration of Log DB to 119
+2024-12-14 01:14:15.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (119, '2024-12-14T01:14:15', 'separate_automatic_and_interactive_searches')
+2024-12-14 01:14:15.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.5|Info|FluentMigrator.Runner.MigrationRunner|119: separate_automatic_and_interactive_searches migrated
+2024-12-14 01:14:15.5|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0074943s
+2024-12-14 01:14:15.5|Info|FluentMigrator.Runner.MigrationRunner|120: update_series_episodes_history_indexes migrating
+2024-12-14 01:14:15.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.5|Info|update_series_episodes_history_indexes|Starting migration of Log DB to 120
+2024-12-14 01:14:15.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (120, '2024-12-14T01:14:15', 'update_series_episodes_history_indexes')
+2024-12-14 01:14:15.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.5|Info|FluentMigrator.Runner.MigrationRunner|120: update_series_episodes_history_indexes migrated
+2024-12-14 01:14:15.5|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0073096s
+2024-12-14 01:14:15.5|Info|FluentMigrator.Runner.MigrationRunner|121: update_animetosho_url migrating
+2024-12-14 01:14:15.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.5|Info|update_animetosho_url|Starting migration of Log DB to 121
+2024-12-14 01:14:15.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (121, '2024-12-14T01:14:15', 'update_animetosho_url')
+2024-12-14 01:14:15.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.5|Info|FluentMigrator.Runner.MigrationRunner|121: update_animetosho_url migrated
+2024-12-14 01:14:15.5|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0073105s
+2024-12-14 01:14:15.5|Info|FluentMigrator.Runner.MigrationRunner|122: add_remux_qualities_in_profile migrating
+2024-12-14 01:14:15.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.5|Info|add_remux_qualities_in_profile|Starting migration of Log DB to 122
+2024-12-14 01:14:15.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (122, '2024-12-14T01:14:15', 'add_remux_qualities_in_profile')
+2024-12-14 01:14:15.5|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.6|Info|FluentMigrator.Runner.MigrationRunner|122: add_remux_qualities_in_profile migrated
+2024-12-14 01:14:15.6|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0074483s
+2024-12-14 01:14:15.6|Info|FluentMigrator.Runner.MigrationRunner|123: add_history_seriesId_index migrating
+2024-12-14 01:14:15.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.6|Info|add_history_seriesId_index|Starting migration of Log DB to 123
+2024-12-14 01:14:15.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (123, '2024-12-14T01:14:15', 'add_history_seriesId_index')
+2024-12-14 01:14:15.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.6|Info|FluentMigrator.Runner.MigrationRunner|123: add_history_seriesId_index migrated
+2024-12-14 01:14:15.6|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0074074s
+2024-12-14 01:14:15.6|Info|FluentMigrator.Runner.MigrationRunner|124: remove_media_browser_metadata migrating
+2024-12-14 01:14:15.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.6|Info|remove_media_browser_metadata|Starting migration of Log DB to 124
+2024-12-14 01:14:15.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (124, '2024-12-14T01:14:15', 'remove_media_browser_metadata')
+2024-12-14 01:14:15.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.6|Info|FluentMigrator.Runner.MigrationRunner|124: remove_media_browser_metadata migrated
+2024-12-14 01:14:15.6|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0070723s
+2024-12-14 01:14:15.6|Info|FluentMigrator.Runner.MigrationRunner|125: remove_notify_my_android_and_pushalot_notifications migrating
+2024-12-14 01:14:15.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.6|Info|remove_notify_my_android_and_pushalot_notifications|Starting migration of Log DB to 125
+2024-12-14 01:14:15.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (125, '2024-12-14T01:14:15', 'remove_notify_my_android_and_pushalot_notifications')
+2024-12-14 01:14:15.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.6|Info|FluentMigrator.Runner.MigrationRunner|125: remove_notify_my_android_and_pushalot_notifications migrated
+2024-12-14 01:14:15.6|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0074942s
+2024-12-14 01:14:15.6|Info|FluentMigrator.Runner.MigrationRunner|126: add_custom_filters migrating
+2024-12-14 01:14:15.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.6|Info|add_custom_filters|Starting migration of Log DB to 126
+2024-12-14 01:14:15.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (126, '2024-12-14T01:14:15', 'add_custom_filters')
+2024-12-14 01:14:15.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.6|Info|FluentMigrator.Runner.MigrationRunner|126: add_custom_filters migrated
+2024-12-14 01:14:15.6|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0073814s
+2024-12-14 01:14:15.6|Info|FluentMigrator.Runner.MigrationRunner|127: rename_restrictions_to_release_profiles migrating
+2024-12-14 01:14:15.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.6|Info|rename_restrictions_to_release_profiles|Starting migration of Log DB to 127
+2024-12-14 01:14:15.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (127, '2024-12-14T01:14:15', 'rename_restrictions_to_release_profiles')
+2024-12-14 01:14:15.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.6|Info|FluentMigrator.Runner.MigrationRunner|127: rename_restrictions_to_release_profiles migrated
+2024-12-14 01:14:15.6|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0074686s
+2024-12-14 01:14:15.6|Info|FluentMigrator.Runner.MigrationRunner|128: rename_quality_profiles_add_upgrade_allowed migrating
+2024-12-14 01:14:15.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.6|Info|rename_quality_profiles_add_upgrade_allowed|Starting migration of Log DB to 128
+2024-12-14 01:14:15.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (128, '2024-12-14T01:14:15', 'rename_quality_profiles_add_upgrade_allowed')
+2024-12-14 01:14:15.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.6|Info|FluentMigrator.Runner.MigrationRunner|128: rename_quality_profiles_add_upgrade_allowed migrated
+2024-12-14 01:14:15.6|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0073245s
+2024-12-14 01:14:15.6|Info|FluentMigrator.Runner.MigrationRunner|129: add_relative_original_path_to_episode_file migrating
+2024-12-14 01:14:15.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.6|Info|add_relative_original_path_to_episode_file|Starting migration of Log DB to 129
+2024-12-14 01:14:15.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (129, '2024-12-14T01:14:15', 'add_relative_original_path_to_episode_file')
+2024-12-14 01:14:15.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.6|Info|FluentMigrator.Runner.MigrationRunner|129: add_relative_original_path_to_episode_file migrated
+2024-12-14 01:14:15.6|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0073156s
+2024-12-14 01:14:15.6|Info|FluentMigrator.Runner.MigrationRunner|130: episode_last_searched_time migrating
+2024-12-14 01:14:15.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.6|Info|episode_last_searched_time|Starting migration of Log DB to 130
+2024-12-14 01:14:15.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (130, '2024-12-14T01:14:15', 'episode_last_searched_time')
+2024-12-14 01:14:15.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.6|Info|FluentMigrator.Runner.MigrationRunner|130: episode_last_searched_time migrated
+2024-12-14 01:14:15.6|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0071042s
+2024-12-14 01:14:15.6|Info|FluentMigrator.Runner.MigrationRunner|131: download_propers_config migrating
+2024-12-14 01:14:15.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.6|Info|download_propers_config|Starting migration of Log DB to 131
+2024-12-14 01:14:15.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (131, '2024-12-14T01:14:15', 'download_propers_config')
+2024-12-14 01:14:15.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.6|Info|FluentMigrator.Runner.MigrationRunner|131: download_propers_config migrated
+2024-12-14 01:14:15.6|Info|FluentMigrator.Runner.MigrationRunner|=> 0.007341s
+2024-12-14 01:14:15.6|Info|FluentMigrator.Runner.MigrationRunner|132: add_download_client_priority migrating
+2024-12-14 01:14:15.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.6|Info|add_download_client_priority|Starting migration of Log DB to 132
+2024-12-14 01:14:15.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (132, '2024-12-14T01:14:15', 'add_download_client_priority')
+2024-12-14 01:14:15.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.6|Info|FluentMigrator.Runner.MigrationRunner|132: add_download_client_priority migrated
+2024-12-14 01:14:15.6|Info|FluentMigrator.Runner.MigrationRunner|=> 0.006956s
+2024-12-14 01:14:15.6|Info|FluentMigrator.Runner.MigrationRunner|134: add_specials_folder_format migrating
+2024-12-14 01:14:15.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.6|Info|add_specials_folder_format|Starting migration of Log DB to 134
+2024-12-14 01:14:15.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (134, '2024-12-14T01:14:15', 'add_specials_folder_format')
+2024-12-14 01:14:15.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.6|Info|FluentMigrator.Runner.MigrationRunner|134: add_specials_folder_format migrated
+2024-12-14 01:14:15.6|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0069504s
+2024-12-14 01:14:15.6|Info|FluentMigrator.Runner.MigrationRunner|135: health_issue_notification migrating
+2024-12-14 01:14:15.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.6|Info|health_issue_notification|Starting migration of Log DB to 135
+2024-12-14 01:14:15.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (135, '2024-12-14T01:14:15', 'health_issue_notification')
+2024-12-14 01:14:15.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.6|Info|FluentMigrator.Runner.MigrationRunner|135: health_issue_notification migrated
+2024-12-14 01:14:15.6|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0069551s
+2024-12-14 01:14:15.6|Info|FluentMigrator.Runner.MigrationRunner|136: add_indexer_and_enabled_to_release_profiles migrating
+2024-12-14 01:14:15.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.6|Info|add_indexer_and_enabled_to_release_profiles|Starting migration of Log DB to 136
+2024-12-14 01:14:15.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (136, '2024-12-14T01:14:15', 'add_indexer_and_enabled_to_release_profiles')
+2024-12-14 01:14:15.6|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.7|Info|FluentMigrator.Runner.MigrationRunner|136: add_indexer_and_enabled_to_release_profiles migrated
+2024-12-14 01:14:15.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.007297s
+2024-12-14 01:14:15.7|Info|FluentMigrator.Runner.MigrationRunner|137: add_airedbefore_to_episodes migrating
+2024-12-14 01:14:15.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.7|Info|add_airedbefore_to_episodes|Starting migration of Log DB to 137
+2024-12-14 01:14:15.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (137, '2024-12-14T01:14:15', 'add_airedbefore_to_episodes')
+2024-12-14 01:14:15.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.7|Info|FluentMigrator.Runner.MigrationRunner|137: add_airedbefore_to_episodes migrated
+2024-12-14 01:14:15.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0072096s
+2024-12-14 01:14:15.7|Info|FluentMigrator.Runner.MigrationRunner|138: remove_bitmetv migrating
+2024-12-14 01:14:15.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.7|Info|remove_bitmetv|Starting migration of Log DB to 138
+2024-12-14 01:14:15.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (138, '2024-12-14T01:14:15', 'remove_bitmetv')
+2024-12-14 01:14:15.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.7|Info|FluentMigrator.Runner.MigrationRunner|138: remove_bitmetv migrated
+2024-12-14 01:14:15.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0070486s
+2024-12-14 01:14:15.7|Info|FluentMigrator.Runner.MigrationRunner|139: add_download_history migrating
+2024-12-14 01:14:15.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.7|Info|add_download_history|Starting migration of Log DB to 139
+2024-12-14 01:14:15.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (139, '2024-12-14T01:14:15', 'add_download_history')
+2024-12-14 01:14:15.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.7|Info|FluentMigrator.Runner.MigrationRunner|139: add_download_history migrated
+2024-12-14 01:14:15.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0072488s
+2024-12-14 01:14:15.7|Info|FluentMigrator.Runner.MigrationRunner|140: remove_chown_and_folderchmod_config_v2 migrating
+2024-12-14 01:14:15.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.7|Info|remove_chown_and_folderchmod_config_v2|Starting migration of Log DB to 140
+2024-12-14 01:14:15.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (140, '2024-12-14T01:14:15', 'remove_chown_and_folderchmod_config_v2')
+2024-12-14 01:14:15.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.7|Info|FluentMigrator.Runner.MigrationRunner|140: remove_chown_and_folderchmod_config_v2 migrated
+2024-12-14 01:14:15.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0068269s
+2024-12-14 01:14:15.7|Info|FluentMigrator.Runner.MigrationRunner|141: add_update_history migrating
+2024-12-14 01:14:15.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.7|Info|add_update_history|Starting migration of Log DB to 141
+2024-12-14 01:14:15.7|Info|FluentMigrator.Runner.MigrationRunner|CreateTable UpdateHistory
+2024-12-14 01:14:15.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "UpdateHistory" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "Date" DATETIME NOT NULL, "Version" TEXT NOT NULL, "EventType" INTEGER NOT NULL)
+2024-12-14 01:14:15.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0004312s
+2024-12-14 01:14:15.7|Info|FluentMigrator.Runner.MigrationRunner|CreateIndex UpdateHistory (Date)
+2024-12-14 01:14:15.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE INDEX "IX_UpdateHistory_Date" ON "UpdateHistory" ("Date" ASC)
+2024-12-14 01:14:15.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0002064s
+2024-12-14 01:14:15.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (141, '2024-12-14T01:14:15', 'add_update_history')
+2024-12-14 01:14:15.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.7|Info|FluentMigrator.Runner.MigrationRunner|141: add_update_history migrated
+2024-12-14 01:14:15.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0067962s
+2024-12-14 01:14:15.7|Info|FluentMigrator.Runner.MigrationRunner|142: import_lists migrating
+2024-12-14 01:14:15.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.7|Info|import_lists|Starting migration of Log DB to 142
+2024-12-14 01:14:15.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (142, '2024-12-14T01:14:15', 'import_lists')
+2024-12-14 01:14:15.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.7|Info|FluentMigrator.Runner.MigrationRunner|142: import_lists migrated
+2024-12-14 01:14:15.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.007182s
+2024-12-14 01:14:15.7|Info|FluentMigrator.Runner.MigrationRunner|143: add_priority_to_indexers migrating
+2024-12-14 01:14:15.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.7|Info|add_priority_to_indexers|Starting migration of Log DB to 143
+2024-12-14 01:14:15.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (143, '2024-12-14T01:14:15', 'add_priority_to_indexers')
+2024-12-14 01:14:15.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.7|Info|FluentMigrator.Runner.MigrationRunner|143: add_priority_to_indexers migrated
+2024-12-14 01:14:15.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0068403s
+2024-12-14 01:14:15.7|Info|FluentMigrator.Runner.MigrationRunner|144: import_lists_series_type_and_season_folder migrating
+2024-12-14 01:14:15.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.7|Info|import_lists_series_type_and_season_folder|Starting migration of Log DB to 144
+2024-12-14 01:14:15.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (144, '2024-12-14T01:14:15', 'import_lists_series_type_and_season_folder')
+2024-12-14 01:14:15.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.7|Info|FluentMigrator.Runner.MigrationRunner|144: import_lists_series_type_and_season_folder migrated
+2024-12-14 01:14:15.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0069076s
+2024-12-14 01:14:15.7|Info|FluentMigrator.Runner.MigrationRunner|145: remove_growl migrating
+2024-12-14 01:14:15.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.7|Info|remove_growl|Starting migration of Log DB to 145
+2024-12-14 01:14:15.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (145, '2024-12-14T01:14:15', 'remove_growl')
+2024-12-14 01:14:15.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.7|Info|FluentMigrator.Runner.MigrationRunner|145: remove_growl migrated
+2024-12-14 01:14:15.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0069485s
+2024-12-14 01:14:15.7|Info|FluentMigrator.Runner.MigrationRunner|146: cleanup_duplicates_updatehistory migrating
+2024-12-14 01:14:15.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.7|Info|cleanup_duplicates_updatehistory|Starting migration of Log DB to 146
+2024-12-14 01:14:15.7|Info|FluentMigrator.Runner.MigrationRunner|PerformDBOperation
+2024-12-14 01:14:15.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Performing DB Operation
+2024-12-14 01:14:15.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0013265s
+2024-12-14 01:14:15.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (146, '2024-12-14T01:14:15', 'cleanup_duplicates_updatehistory')
+2024-12-14 01:14:15.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.7|Info|FluentMigrator.Runner.MigrationRunner|146: cleanup_duplicates_updatehistory migrated
+2024-12-14 01:14:15.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0082182s
+2024-12-14 01:14:15.7|Info|FluentMigrator.Runner.MigrationRunner|147: swap_filechmod_for_folderchmod migrating
+2024-12-14 01:14:15.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.7|Info|swap_filechmod_for_folderchmod|Starting migration of Log DB to 147
+2024-12-14 01:14:15.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (147, '2024-12-14T01:14:15', 'swap_filechmod_for_folderchmod')
+2024-12-14 01:14:15.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.7|Info|FluentMigrator.Runner.MigrationRunner|147: swap_filechmod_for_folderchmod migrated
+2024-12-14 01:14:15.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.007471s
+2024-12-14 01:14:15.7|Info|FluentMigrator.Runner.MigrationRunner|148: mediainfo_channels migrating
+2024-12-14 01:14:15.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.7|Info|mediainfo_channels|Starting migration of Log DB to 148
+2024-12-14 01:14:15.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (148, '2024-12-14T01:14:15', 'mediainfo_channels')
+2024-12-14 01:14:15.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.7|Info|FluentMigrator.Runner.MigrationRunner|148: mediainfo_channels migrated
+2024-12-14 01:14:15.7|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0069831s
+2024-12-14 01:14:15.7|Info|FluentMigrator.Runner.MigrationRunner|149: add_on_delete_to_notifications migrating
+2024-12-14 01:14:15.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.7|Info|add_on_delete_to_notifications|Starting migration of Log DB to 149
+2024-12-14 01:14:15.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (149, '2024-12-14T01:14:15', 'add_on_delete_to_notifications')
+2024-12-14 01:14:15.7|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.8|Info|FluentMigrator.Runner.MigrationRunner|149: add_on_delete_to_notifications migrated
+2024-12-14 01:14:15.8|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0070404s
+2024-12-14 01:14:15.8|Info|FluentMigrator.Runner.MigrationRunner|150: add_scene_mapping_origin migrating
+2024-12-14 01:14:15.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.8|Info|add_scene_mapping_origin|Starting migration of Log DB to 150
+2024-12-14 01:14:15.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (150, '2024-12-14T01:14:15', 'add_scene_mapping_origin')
+2024-12-14 01:14:15.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.8|Info|FluentMigrator.Runner.MigrationRunner|150: add_scene_mapping_origin migrated
+2024-12-14 01:14:15.8|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0069446s
+2024-12-14 01:14:15.8|Info|FluentMigrator.Runner.MigrationRunner|151: remove_custom_filter_type migrating
+2024-12-14 01:14:15.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.8|Info|remove_custom_filter_type|Starting migration of Log DB to 151
+2024-12-14 01:14:15.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (151, '2024-12-14T01:14:15', 'remove_custom_filter_type')
+2024-12-14 01:14:15.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.8|Info|FluentMigrator.Runner.MigrationRunner|151: remove_custom_filter_type migrated
+2024-12-14 01:14:15.8|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0072981s
+2024-12-14 01:14:15.8|Info|FluentMigrator.Runner.MigrationRunner|152: update_btn_url_to_https migrating
+2024-12-14 01:14:15.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.8|Info|update_btn_url_to_https|Starting migration of Log DB to 152
+2024-12-14 01:14:15.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (152, '2024-12-14T01:14:15', 'update_btn_url_to_https')
+2024-12-14 01:14:15.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.8|Info|FluentMigrator.Runner.MigrationRunner|152: update_btn_url_to_https migrated
+2024-12-14 01:14:15.8|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0067029s
+2024-12-14 01:14:15.8|Info|FluentMigrator.Runner.MigrationRunner|153: add_on_episodefiledelete_for_upgrade migrating
+2024-12-14 01:14:15.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.8|Info|add_on_episodefiledelete_for_upgrade|Starting migration of Log DB to 153
+2024-12-14 01:14:15.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (153, '2024-12-14T01:14:15', 'add_on_episodefiledelete_for_upgrade')
+2024-12-14 01:14:15.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.8|Info|FluentMigrator.Runner.MigrationRunner|153: add_on_episodefiledelete_for_upgrade migrated
+2024-12-14 01:14:15.8|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0073169s
+2024-12-14 01:14:15.8|Info|FluentMigrator.Runner.MigrationRunner|154: add_name_release_profile migrating
+2024-12-14 01:14:15.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.8|Info|add_name_release_profile|Starting migration of Log DB to 154
+2024-12-14 01:14:15.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (154, '2024-12-14T01:14:15', 'add_name_release_profile')
+2024-12-14 01:14:15.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.8|Info|FluentMigrator.Runner.MigrationRunner|154: add_name_release_profile migrated
+2024-12-14 01:14:15.8|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0067549s
+2024-12-14 01:14:15.8|Info|FluentMigrator.Runner.MigrationRunner|155: add_arabic_and_hindi_languages migrating
+2024-12-14 01:14:15.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.8|Info|add_arabic_and_hindi_languages|Starting migration of Log DB to 155
+2024-12-14 01:14:15.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (155, '2024-12-14T01:14:15', 'add_arabic_and_hindi_languages')
+2024-12-14 01:14:15.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.8|Info|FluentMigrator.Runner.MigrationRunner|155: add_arabic_and_hindi_languages migrated
+2024-12-14 01:14:15.8|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0070017s
+2024-12-14 01:14:15.8|Info|FluentMigrator.Runner.MigrationRunner|156: add_bypass_to_delay_profile migrating
+2024-12-14 01:14:15.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.8|Info|add_bypass_to_delay_profile|Starting migration of Log DB to 156
+2024-12-14 01:14:15.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (156, '2024-12-14T01:14:15', 'add_bypass_to_delay_profile')
+2024-12-14 01:14:15.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.8|Info|FluentMigrator.Runner.MigrationRunner|156: add_bypass_to_delay_profile migrated
+2024-12-14 01:14:15.8|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0067352s
+2024-12-14 01:14:15.8|Info|FluentMigrator.Runner.MigrationRunner|157: email_multiple_addresses migrating
+2024-12-14 01:14:15.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.8|Info|email_multiple_addresses|Starting migration of Log DB to 157
+2024-12-14 01:14:15.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (157, '2024-12-14T01:14:15', 'email_multiple_addresses')
+2024-12-14 01:14:15.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.8|Info|FluentMigrator.Runner.MigrationRunner|157: email_multiple_addresses migrated
+2024-12-14 01:14:15.8|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0070416s
+2024-12-14 01:14:15.8|Info|FluentMigrator.Runner.MigrationRunner|158: cdh_per_downloadclient migrating
+2024-12-14 01:14:15.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.8|Info|cdh_per_downloadclient|Starting migration of Log DB to 158
+2024-12-14 01:14:15.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (158, '2024-12-14T01:14:15', 'cdh_per_downloadclient')
+2024-12-14 01:14:15.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.8|Info|FluentMigrator.Runner.MigrationRunner|158: cdh_per_downloadclient migrated
+2024-12-14 01:14:15.8|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0070109s
+2024-12-14 01:14:15.8|Info|FluentMigrator.Runner.MigrationRunner|159: add_indexer_tags migrating
+2024-12-14 01:14:15.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.8|Info|add_indexer_tags|Starting migration of Log DB to 159
+2024-12-14 01:14:15.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (159, '2024-12-14T01:14:15', 'add_indexer_tags')
+2024-12-14 01:14:15.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.8|Info|FluentMigrator.Runner.MigrationRunner|159: add_indexer_tags migrated
+2024-12-14 01:14:15.8|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0069311s
+2024-12-14 01:14:15.8|Info|FluentMigrator.Runner.MigrationRunner|160: rename_blacklist_to_blocklist migrating
+2024-12-14 01:14:15.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.8|Info|rename_blacklist_to_blocklist|Starting migration of Log DB to 160
+2024-12-14 01:14:15.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (160, '2024-12-14T01:14:15', 'rename_blacklist_to_blocklist')
+2024-12-14 01:14:15.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.8|Info|FluentMigrator.Runner.MigrationRunner|160: rename_blacklist_to_blocklist migrated
+2024-12-14 01:14:15.8|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0071746s
+2024-12-14 01:14:15.8|Info|FluentMigrator.Runner.MigrationRunner|161: remove_plex_hometheatre migrating
+2024-12-14 01:14:15.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.8|Info|remove_plex_hometheatre|Starting migration of Log DB to 161
+2024-12-14 01:14:15.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (161, '2024-12-14T01:14:15', 'remove_plex_hometheatre')
+2024-12-14 01:14:15.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.8|Info|FluentMigrator.Runner.MigrationRunner|161: remove_plex_hometheatre migrated
+2024-12-14 01:14:15.8|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0071967s
+2024-12-14 01:14:15.8|Info|FluentMigrator.Runner.MigrationRunner|162: release_profile_to_array migrating
+2024-12-14 01:14:15.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.8|Info|release_profile_to_array|Starting migration of Log DB to 162
+2024-12-14 01:14:15.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (162, '2024-12-14T01:14:15', 'release_profile_to_array')
+2024-12-14 01:14:15.8|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.9|Info|FluentMigrator.Runner.MigrationRunner|162: release_profile_to_array migrated
+2024-12-14 01:14:15.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0071475s
+2024-12-14 01:14:15.9|Info|FluentMigrator.Runner.MigrationRunner|163: mediainfo_to_ffmpeg migrating
+2024-12-14 01:14:15.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.9|Info|mediainfo_to_ffmpeg|Starting migration of Log DB to 163
+2024-12-14 01:14:15.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (163, '2024-12-14T01:14:15', 'mediainfo_to_ffmpeg')
+2024-12-14 01:14:15.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.9|Info|FluentMigrator.Runner.MigrationRunner|163: mediainfo_to_ffmpeg migrated
+2024-12-14 01:14:15.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0073104s
+2024-12-14 01:14:15.9|Info|FluentMigrator.Runner.MigrationRunner|164: download_client_per_indexer migrating
+2024-12-14 01:14:15.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.9|Info|download_client_per_indexer|Starting migration of Log DB to 164
+2024-12-14 01:14:15.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (164, '2024-12-14T01:14:15', 'download_client_per_indexer')
+2024-12-14 01:14:15.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.9|Info|FluentMigrator.Runner.MigrationRunner|164: download_client_per_indexer migrated
+2024-12-14 01:14:15.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0072383s
+2024-12-14 01:14:15.9|Info|FluentMigrator.Runner.MigrationRunner|165: add_on_update_to_notifications migrating
+2024-12-14 01:14:15.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.9|Info|add_on_update_to_notifications|Starting migration of Log DB to 165
+2024-12-14 01:14:15.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (165, '2024-12-14T01:14:15', 'add_on_update_to_notifications')
+2024-12-14 01:14:15.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.9|Info|FluentMigrator.Runner.MigrationRunner|165: add_on_update_to_notifications migrated
+2024-12-14 01:14:15.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0072852s
+2024-12-14 01:14:15.9|Info|FluentMigrator.Runner.MigrationRunner|166: update_series_sort_title migrating
+2024-12-14 01:14:15.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.9|Info|update_series_sort_title|Starting migration of Log DB to 166
+2024-12-14 01:14:15.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (166, '2024-12-14T01:14:15', 'update_series_sort_title')
+2024-12-14 01:14:15.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.9|Info|FluentMigrator.Runner.MigrationRunner|166: update_series_sort_title migrated
+2024-12-14 01:14:15.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0073091s
+2024-12-14 01:14:15.9|Info|FluentMigrator.Runner.MigrationRunner|167: add_tvdbid_to_episode migrating
+2024-12-14 01:14:15.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.9|Info|add_tvdbid_to_episode|Starting migration of Log DB to 167
+2024-12-14 01:14:15.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (167, '2024-12-14T01:14:15', 'add_tvdbid_to_episode')
+2024-12-14 01:14:15.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.9|Info|FluentMigrator.Runner.MigrationRunner|167: add_tvdbid_to_episode migrated
+2024-12-14 01:14:15.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0075342s
+2024-12-14 01:14:15.9|Info|FluentMigrator.Runner.MigrationRunner|168: add_additional_info_to_pending_releases migrating
+2024-12-14 01:14:15.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.9|Info|add_additional_info_to_pending_releases|Starting migration of Log DB to 168
+2024-12-14 01:14:15.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (168, '2024-12-14T01:14:15', 'add_additional_info_to_pending_releases')
+2024-12-14 01:14:15.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.9|Info|FluentMigrator.Runner.MigrationRunner|168: add_additional_info_to_pending_releases migrated
+2024-12-14 01:14:15.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0070095s
+2024-12-14 01:14:15.9|Info|FluentMigrator.Runner.MigrationRunner|169: add_malayalam_and_ukrainian_languages migrating
+2024-12-14 01:14:15.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.9|Info|add_malayalam_and_ukrainian_languages|Starting migration of Log DB to 169
+2024-12-14 01:14:15.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (169, '2024-12-14T01:14:15', 'add_malayalam_and_ukrainian_languages')
+2024-12-14 01:14:15.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.9|Info|FluentMigrator.Runner.MigrationRunner|169: add_malayalam_and_ukrainian_languages migrated
+2024-12-14 01:14:15.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0073417s
+2024-12-14 01:14:15.9|Info|FluentMigrator.Runner.MigrationRunner|170: add_language_tags_to_subtitle_files migrating
+2024-12-14 01:14:15.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.9|Info|add_language_tags_to_subtitle_files|Starting migration of Log DB to 170
+2024-12-14 01:14:15.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (170, '2024-12-14T01:14:15', 'add_language_tags_to_subtitle_files')
+2024-12-14 01:14:15.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.9|Info|FluentMigrator.Runner.MigrationRunner|170: add_language_tags_to_subtitle_files migrated
+2024-12-14 01:14:15.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0071603s
+2024-12-14 01:14:15.9|Info|FluentMigrator.Runner.MigrationRunner|171: add_custom_formats migrating
+2024-12-14 01:14:15.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.9|Info|add_custom_formats|Starting migration of Log DB to 171
+2024-12-14 01:14:15.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (171, '2024-12-14T01:14:15', 'add_custom_formats')
+2024-12-14 01:14:15.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.9|Info|FluentMigrator.Runner.MigrationRunner|171: add_custom_formats migrated
+2024-12-14 01:14:15.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0068192s
+2024-12-14 01:14:15.9|Info|FluentMigrator.Runner.MigrationRunner|172: add_SeasonSearchMaximumSingleEpisodeAge_to_indexers migrating
+2024-12-14 01:14:15.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.9|Info|add_SeasonSearchMaximumSingleEpisodeAge_to_indexers|Starting migration of Log DB to 172
+2024-12-14 01:14:15.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (172, '2024-12-14T01:14:15', 'add_SeasonSearchMaximumSingleEpisodeAge_to_indexers')
+2024-12-14 01:14:15.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.9|Info|FluentMigrator.Runner.MigrationRunner|172: add_SeasonSearchMaximumSingleEpisodeAge_to_indexers migrated
+2024-12-14 01:14:15.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0067684s
+2024-12-14 01:14:15.9|Info|FluentMigrator.Runner.MigrationRunner|173: remove_omg migrating
+2024-12-14 01:14:15.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.9|Info|remove_omg|Starting migration of Log DB to 173
+2024-12-14 01:14:15.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (173, '2024-12-14T01:14:15', 'remove_omg')
+2024-12-14 01:14:15.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.9|Info|FluentMigrator.Runner.MigrationRunner|173: remove_omg migrated
+2024-12-14 01:14:15.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0069995s
+2024-12-14 01:14:15.9|Info|FluentMigrator.Runner.MigrationRunner|174: add_salt_to_users migrating
+2024-12-14 01:14:15.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.9|Info|add_salt_to_users|Starting migration of Log DB to 174
+2024-12-14 01:14:15.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (174, '2024-12-14T01:14:15', 'add_salt_to_users')
+2024-12-14 01:14:15.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:15.9|Info|FluentMigrator.Runner.MigrationRunner|174: add_salt_to_users migrated
+2024-12-14 01:14:15.9|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0072242s
+2024-12-14 01:14:15.9|Info|FluentMigrator.Runner.MigrationRunner|175: language_profiles_to_custom_formats migrating
+2024-12-14 01:14:15.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:15.9|Info|language_profiles_to_custom_formats|Starting migration of Log DB to 175
+2024-12-14 01:14:15.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (175, '2024-12-14T01:14:15', 'language_profiles_to_custom_formats')
+2024-12-14 01:14:15.9|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:16.0|Info|FluentMigrator.Runner.MigrationRunner|175: language_profiles_to_custom_formats migrated
+2024-12-14 01:14:16.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0068695s
+2024-12-14 01:14:16.0|Info|FluentMigrator.Runner.MigrationRunner|176: original_language migrating
+2024-12-14 01:14:16.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:16.0|Info|original_language|Starting migration of Log DB to 176
+2024-12-14 01:14:16.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (176, '2024-12-14T01:14:16', 'original_language')
+2024-12-14 01:14:16.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:16.0|Info|FluentMigrator.Runner.MigrationRunner|176: original_language migrated
+2024-12-14 01:14:16.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0068183s
+2024-12-14 01:14:16.0|Info|FluentMigrator.Runner.MigrationRunner|177: add_on_manual_interaction_required_to_notifications migrating
+2024-12-14 01:14:16.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:16.0|Info|add_on_manual_interaction_required_to_notifications|Starting migration of Log DB to 177
+2024-12-14 01:14:16.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (177, '2024-12-14T01:14:16', 'add_on_manual_interaction_required_to_notifications')
+2024-12-14 01:14:16.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:16.0|Info|FluentMigrator.Runner.MigrationRunner|177: add_on_manual_interaction_required_to_notifications migrated
+2024-12-14 01:14:16.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0068195s
+2024-12-14 01:14:16.0|Info|FluentMigrator.Runner.MigrationRunner|178: list_sync_time migrating
+2024-12-14 01:14:16.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:16.0|Info|list_sync_time|Starting migration of Log DB to 178
+2024-12-14 01:14:16.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (178, '2024-12-14T01:14:16', 'list_sync_time')
+2024-12-14 01:14:16.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:16.0|Info|FluentMigrator.Runner.MigrationRunner|178: list_sync_time migrated
+2024-12-14 01:14:16.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0067675s
+2024-12-14 01:14:16.0|Info|FluentMigrator.Runner.MigrationRunner|179: add_auto_tagging migrating
+2024-12-14 01:14:16.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:16.0|Info|add_auto_tagging|Starting migration of Log DB to 179
+2024-12-14 01:14:16.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (179, '2024-12-14T01:14:16', 'add_auto_tagging')
+2024-12-14 01:14:16.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:16.0|Info|FluentMigrator.Runner.MigrationRunner|179: add_auto_tagging migrated
+2024-12-14 01:14:16.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0067757s
+2024-12-14 01:14:16.0|Info|FluentMigrator.Runner.MigrationRunner|180: task_duration migrating
+2024-12-14 01:14:16.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:16.0|Info|task_duration|Starting migration of Log DB to 180
+2024-12-14 01:14:16.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (180, '2024-12-14T01:14:16', 'task_duration')
+2024-12-14 01:14:16.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:16.0|Info|FluentMigrator.Runner.MigrationRunner|180: task_duration migrated
+2024-12-14 01:14:16.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0068144s
+2024-12-14 01:14:16.0|Info|FluentMigrator.Runner.MigrationRunner|181: quality_definition_preferred_size migrating
+2024-12-14 01:14:16.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:16.0|Info|quality_definition_preferred_size|Starting migration of Log DB to 181
+2024-12-14 01:14:16.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (181, '2024-12-14T01:14:16', 'quality_definition_preferred_size')
+2024-12-14 01:14:16.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:16.0|Info|FluentMigrator.Runner.MigrationRunner|181: quality_definition_preferred_size migrated
+2024-12-14 01:14:16.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0068028s
+2024-12-14 01:14:16.0|Info|FluentMigrator.Runner.MigrationRunner|182: add_custom_format_score_bypass_to_delay_profile migrating
+2024-12-14 01:14:16.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:16.0|Info|add_custom_format_score_bypass_to_delay_profile|Starting migration of Log DB to 182
+2024-12-14 01:14:16.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (182, '2024-12-14T01:14:16', 'add_custom_format_score_bypass_to_delay_profile')
+2024-12-14 01:14:16.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:16.0|Info|FluentMigrator.Runner.MigrationRunner|182: add_custom_format_score_bypass_to_delay_profile migrated
+2024-12-14 01:14:16.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0070789s
+2024-12-14 01:14:16.0|Info|FluentMigrator.Runner.MigrationRunner|183: update_images_remote_url migrating
+2024-12-14 01:14:16.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:16.0|Info|update_images_remote_url|Starting migration of Log DB to 183
+2024-12-14 01:14:16.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (183, '2024-12-14T01:14:16', 'update_images_remote_url')
+2024-12-14 01:14:16.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:16.0|Info|FluentMigrator.Runner.MigrationRunner|183: update_images_remote_url migrated
+2024-12-14 01:14:16.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0066955s
+2024-12-14 01:14:16.0|Info|FluentMigrator.Runner.MigrationRunner|184: remove_invalid_roksbox_metadata_images migrating
+2024-12-14 01:14:16.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:16.0|Info|remove_invalid_roksbox_metadata_images|Starting migration of Log DB to 184
+2024-12-14 01:14:16.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (184, '2024-12-14T01:14:16', 'remove_invalid_roksbox_metadata_images')
+2024-12-14 01:14:16.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:16.0|Info|FluentMigrator.Runner.MigrationRunner|184: remove_invalid_roksbox_metadata_images migrated
+2024-12-14 01:14:16.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0068335s
+2024-12-14 01:14:16.0|Info|FluentMigrator.Runner.MigrationRunner|185: add_episode_runtime migrating
+2024-12-14 01:14:16.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:16.0|Info|add_episode_runtime|Starting migration of Log DB to 185
+2024-12-14 01:14:16.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (185, '2024-12-14T01:14:16', 'add_episode_runtime')
+2024-12-14 01:14:16.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:16.0|Info|FluentMigrator.Runner.MigrationRunner|185: add_episode_runtime migrated
+2024-12-14 01:14:16.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.006827s
+2024-12-14 01:14:16.0|Info|FluentMigrator.Runner.MigrationRunner|186: add_result_to_commands migrating
+2024-12-14 01:14:16.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:16.0|Info|add_result_to_commands|Starting migration of Log DB to 186
+2024-12-14 01:14:16.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (186, '2024-12-14T01:14:16', 'add_result_to_commands')
+2024-12-14 01:14:16.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:16.0|Info|FluentMigrator.Runner.MigrationRunner|186: add_result_to_commands migrated
+2024-12-14 01:14:16.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0068726s
+2024-12-14 01:14:16.0|Info|FluentMigrator.Runner.MigrationRunner|187: add_on_series_add_to_notifications migrating
+2024-12-14 01:14:16.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:16.0|Info|add_on_series_add_to_notifications|Starting migration of Log DB to 187
+2024-12-14 01:14:16.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (187, '2024-12-14T01:14:16', 'add_on_series_add_to_notifications')
+2024-12-14 01:14:16.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:16.0|Info|FluentMigrator.Runner.MigrationRunner|187: add_on_series_add_to_notifications migrated
+2024-12-14 01:14:16.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0069907s
+2024-12-14 01:14:16.0|Info|FluentMigrator.Runner.MigrationRunner|188: postgres_update_timestamp_columns_to_with_timezone migrating
+2024-12-14 01:14:16.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:16.0|Info|postgres_update_timestamp_columns_to_with_timezone|Starting migration of Log DB to 188
+2024-12-14 01:14:16.0|Info|FluentMigrator.Runner.MigrationRunner|AlterTable Logs
+2024-12-14 01:14:16.0|Info|FluentMigrator.Runner.MigrationRunner|=> 8E-07s
+2024-12-14 01:14:16.0|Info|FluentMigrator.Runner.MigrationRunner|AlterColumn Logs Time DateTimeOffset
+2024-12-14 01:14:16.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "Logs_temp" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "Message" TEXT NOT NULL, "Time" DATETIME NOT NULL, "Logger" TEXT NOT NULL, "Exception" TEXT, "ExceptionType" TEXT, "Level" TEXT NOT NULL)
+2024-12-14 01:14:16.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "Logs_temp" ("Id", "Message", "Time", "Logger", "Exception", "ExceptionType", "Level") SELECT "Id", "Message", "Time", "Logger", "Exception", "ExceptionType", "Level" FROM "Logs"
+2024-12-14 01:14:16.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP TABLE "Logs"
+2024-12-14 01:14:16.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "Logs_temp" RENAME TO "Logs"
+2024-12-14 01:14:16.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE INDEX "IX_Logs_Time" ON "Logs" ("Time" ASC)
+2024-12-14 01:14:16.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0021847s
+2024-12-14 01:14:16.0|Info|FluentMigrator.Runner.MigrationRunner|AlterTable UpdateHistory
+2024-12-14 01:14:16.0|Info|FluentMigrator.Runner.MigrationRunner|=> 7E-07s
+2024-12-14 01:14:16.0|Info|FluentMigrator.Runner.MigrationRunner|AlterColumn UpdateHistory Date DateTimeOffset
+2024-12-14 01:14:16.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "UpdateHistory_temp" ("Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "Date" DATETIME NOT NULL, "Version" TEXT NOT NULL, "EventType" INTEGER NOT NULL)
+2024-12-14 01:14:16.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "UpdateHistory_temp" ("Id", "Date", "Version", "EventType") SELECT "Id", "Date", "Version", "EventType" FROM "UpdateHistory"
+2024-12-14 01:14:16.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP TABLE "UpdateHistory"
+2024-12-14 01:14:16.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "UpdateHistory_temp" RENAME TO "UpdateHistory"
+2024-12-14 01:14:16.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE INDEX "IX_UpdateHistory_Date" ON "UpdateHistory" ("Date" ASC)
+2024-12-14 01:14:16.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0019017s
+2024-12-14 01:14:16.0|Info|FluentMigrator.Runner.MigrationRunner|AlterTable VersionInfo
+2024-12-14 01:14:16.0|Info|FluentMigrator.Runner.MigrationRunner|=> 6E-07s
+2024-12-14 01:14:16.0|Info|FluentMigrator.Runner.MigrationRunner|AlterColumn VersionInfo AppliedOn DateTimeOffset
+2024-12-14 01:14:16.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE TABLE "VersionInfo_temp" ("Version" INTEGER NOT NULL, "AppliedOn" DATETIME, "Description" TEXT)
+2024-12-14 01:14:16.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo_temp" ("Version", "AppliedOn", "Description") SELECT "Version", "AppliedOn", "Description" FROM "VersionInfo"
+2024-12-14 01:14:16.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|DROP TABLE "VersionInfo"
+2024-12-14 01:14:16.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|ALTER TABLE "VersionInfo_temp" RENAME TO "VersionInfo"
+2024-12-14 01:14:16.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|CREATE UNIQUE INDEX "UC_Version" ON "VersionInfo" ("Version" ASC)
+2024-12-14 01:14:16.0|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0019864s
+2024-12-14 01:14:16.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (188, '2024-12-14T01:14:16', 'postgres_update_timestamp_columns_to_with_timezone')
+2024-12-14 01:14:16.0|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:16.1|Info|FluentMigrator.Runner.MigrationRunner|188: postgres_update_timestamp_columns_to_with_timezone migrated
+2024-12-14 01:14:16.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0087943s
+2024-12-14 01:14:16.1|Info|FluentMigrator.Runner.MigrationRunner|189: add_colon_replacement_to_naming_config migrating
+2024-12-14 01:14:16.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:16.1|Info|add_colon_replacement_to_naming_config|Starting migration of Log DB to 189
+2024-12-14 01:14:16.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (189, '2024-12-14T01:14:16', 'add_colon_replacement_to_naming_config')
+2024-12-14 01:14:16.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:16.1|Info|FluentMigrator.Runner.MigrationRunner|189: add_colon_replacement_to_naming_config migrated
+2024-12-14 01:14:16.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.006671s
+2024-12-14 01:14:16.1|Info|FluentMigrator.Runner.MigrationRunner|190: health_restored_notification migrating
+2024-12-14 01:14:16.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:16.1|Info|health_restored_notification|Starting migration of Log DB to 190
+2024-12-14 01:14:16.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (190, '2024-12-14T01:14:16', 'health_restored_notification')
+2024-12-14 01:14:16.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:16.1|Info|FluentMigrator.Runner.MigrationRunner|190: health_restored_notification migrated
+2024-12-14 01:14:16.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0068677s
+2024-12-14 01:14:16.1|Info|FluentMigrator.Runner.MigrationRunner|191: add_download_client_tags migrating
+2024-12-14 01:14:16.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:16.1|Info|add_download_client_tags|Starting migration of Log DB to 191
+2024-12-14 01:14:16.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (191, '2024-12-14T01:14:16', 'add_download_client_tags')
+2024-12-14 01:14:16.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:16.1|Info|FluentMigrator.Runner.MigrationRunner|191: add_download_client_tags migrated
+2024-12-14 01:14:16.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0070974s
+2024-12-14 01:14:16.1|Info|FluentMigrator.Runner.MigrationRunner|192: import_exclusion_type migrating
+2024-12-14 01:14:16.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:16.1|Info|import_exclusion_type|Starting migration of Log DB to 192
+2024-12-14 01:14:16.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (192, '2024-12-14T01:14:16', 'import_exclusion_type')
+2024-12-14 01:14:16.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:16.1|Info|FluentMigrator.Runner.MigrationRunner|192: import_exclusion_type migrated
+2024-12-14 01:14:16.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0069821s
+2024-12-14 01:14:16.1|Info|FluentMigrator.Runner.MigrationRunner|193: add_import_list_items migrating
+2024-12-14 01:14:16.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:16.1|Info|add_import_list_items|Starting migration of Log DB to 193
+2024-12-14 01:14:16.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (193, '2024-12-14T01:14:16', 'add_import_list_items')
+2024-12-14 01:14:16.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:16.1|Info|FluentMigrator.Runner.MigrationRunner|193: add_import_list_items migrated
+2024-12-14 01:14:16.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0068413s
+2024-12-14 01:14:16.1|Info|FluentMigrator.Runner.MigrationRunner|194: add_notification_status migrating
+2024-12-14 01:14:16.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:16.1|Info|add_notification_status|Starting migration of Log DB to 194
+2024-12-14 01:14:16.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (194, '2024-12-14T01:14:16', 'add_notification_status')
+2024-12-14 01:14:16.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:16.1|Info|FluentMigrator.Runner.MigrationRunner|194: add_notification_status migrated
+2024-12-14 01:14:16.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0068266s
+2024-12-14 01:14:16.1|Info|FluentMigrator.Runner.MigrationRunner|195: parse_language_tags_from_existing_subtitle_files migrating
+2024-12-14 01:14:16.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:16.1|Info|parse_language_tags_from_existing_subtitle_files|Starting migration of Log DB to 195
+2024-12-14 01:14:16.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (195, '2024-12-14T01:14:16', 'parse_language_tags_from_existing_subtitle_files')
+2024-12-14 01:14:16.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:16.1|Info|FluentMigrator.Runner.MigrationRunner|195: parse_language_tags_from_existing_subtitle_files migrated
+2024-12-14 01:14:16.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0136519s
+2024-12-14 01:14:16.1|Info|FluentMigrator.Runner.MigrationRunner|196: add_finale_type migrating
+2024-12-14 01:14:16.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:16.1|Info|add_finale_type|Starting migration of Log DB to 196
+2024-12-14 01:14:16.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (196, '2024-12-14T01:14:16', 'add_finale_type')
+2024-12-14 01:14:16.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:16.1|Info|FluentMigrator.Runner.MigrationRunner|196: add_finale_type migrated
+2024-12-14 01:14:16.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0067465s
+2024-12-14 01:14:16.1|Info|FluentMigrator.Runner.MigrationRunner|197: list_add_missing_search migrating
+2024-12-14 01:14:16.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:16.1|Info|list_add_missing_search|Starting migration of Log DB to 197
+2024-12-14 01:14:16.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (197, '2024-12-14T01:14:16', 'list_add_missing_search')
+2024-12-14 01:14:16.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:16.1|Info|FluentMigrator.Runner.MigrationRunner|197: list_add_missing_search migrated
+2024-12-14 01:14:16.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0065902s
+2024-12-14 01:14:16.1|Info|FluentMigrator.Runner.MigrationRunner|198: parse_title_from_existing_subtitle_files migrating
+2024-12-14 01:14:16.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:16.1|Info|parse_title_from_existing_subtitle_files|Starting migration of Log DB to 198
+2024-12-14 01:14:16.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (198, '2024-12-14T01:14:16', 'parse_title_from_existing_subtitle_files')
+2024-12-14 01:14:16.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:16.1|Info|FluentMigrator.Runner.MigrationRunner|198: parse_title_from_existing_subtitle_files migrated
+2024-12-14 01:14:16.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.006641s
+2024-12-14 01:14:16.1|Info|FluentMigrator.Runner.MigrationRunner|199: series_last_aired migrating
+2024-12-14 01:14:16.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:16.1|Info|series_last_aired|Starting migration of Log DB to 199
+2024-12-14 01:14:16.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (199, '2024-12-14T01:14:16', 'series_last_aired')
+2024-12-14 01:14:16.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:16.1|Info|FluentMigrator.Runner.MigrationRunner|199: series_last_aired migrated
+2024-12-14 01:14:16.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0067648s
+2024-12-14 01:14:16.1|Info|FluentMigrator.Runner.MigrationRunner|200: AddNewItemMonitorType migrating
+2024-12-14 01:14:16.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:16.1|Info|AddNewItemMonitorType|Starting migration of Log DB to 200
+2024-12-14 01:14:16.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (200, '2024-12-14T01:14:16', 'AddNewItemMonitorType')
+2024-12-14 01:14:16.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:16.1|Info|FluentMigrator.Runner.MigrationRunner|200: AddNewItemMonitorType migrated
+2024-12-14 01:14:16.1|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0066039s
+2024-12-14 01:14:16.1|Info|FluentMigrator.Runner.MigrationRunner|201: email_encryption migrating
+2024-12-14 01:14:16.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:16.1|Info|email_encryption|Starting migration of Log DB to 201
+2024-12-14 01:14:16.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (201, '2024-12-14T01:14:16', 'email_encryption')
+2024-12-14 01:14:16.1|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:16.2|Info|FluentMigrator.Runner.MigrationRunner|201: email_encryption migrated
+2024-12-14 01:14:16.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0068741s
+2024-12-14 01:14:16.2|Info|FluentMigrator.Runner.MigrationRunner|202: add_indexer_flags migrating
+2024-12-14 01:14:16.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:16.2|Info|add_indexer_flags|Starting migration of Log DB to 202
+2024-12-14 01:14:16.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (202, '2024-12-14T01:14:16', 'add_indexer_flags')
+2024-12-14 01:14:16.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:16.2|Info|FluentMigrator.Runner.MigrationRunner|202: add_indexer_flags migrated
+2024-12-14 01:14:16.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0067459s
+2024-12-14 01:14:16.2|Info|FluentMigrator.Runner.MigrationRunner|203: release_type migrating
+2024-12-14 01:14:16.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:16.2|Info|release_type|Starting migration of Log DB to 203
+2024-12-14 01:14:16.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (203, '2024-12-14T01:14:16', 'release_type')
+2024-12-14 01:14:16.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:16.2|Info|FluentMigrator.Runner.MigrationRunner|203: release_type migrated
+2024-12-14 01:14:16.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0071889s
+2024-12-14 01:14:16.2|Info|FluentMigrator.Runner.MigrationRunner|204: add_add_release_hash migrating
+2024-12-14 01:14:16.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:16.2|Info|add_add_release_hash|Starting migration of Log DB to 204
+2024-12-14 01:14:16.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (204, '2024-12-14T01:14:16', 'add_add_release_hash')
+2024-12-14 01:14:16.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:16.2|Info|FluentMigrator.Runner.MigrationRunner|204: add_add_release_hash migrated
+2024-12-14 01:14:16.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0068564s
+2024-12-14 01:14:16.2|Info|FluentMigrator.Runner.MigrationRunner|205: rename_season_pack_spec migrating
+2024-12-14 01:14:16.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:16.2|Info|rename_season_pack_spec|Starting migration of Log DB to 205
+2024-12-14 01:14:16.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (205, '2024-12-14T01:14:16', 'rename_season_pack_spec')
+2024-12-14 01:14:16.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:16.2|Info|FluentMigrator.Runner.MigrationRunner|205: rename_season_pack_spec migrated
+2024-12-14 01:14:16.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0065967s
+2024-12-14 01:14:16.2|Info|FluentMigrator.Runner.MigrationRunner|206: add_tmdbid migrating
+2024-12-14 01:14:16.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:16.2|Info|add_tmdbid|Starting migration of Log DB to 206
+2024-12-14 01:14:16.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (206, '2024-12-14T01:14:16', 'add_tmdbid')
+2024-12-14 01:14:16.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:16.2|Info|FluentMigrator.Runner.MigrationRunner|206: add_tmdbid migrated
+2024-12-14 01:14:16.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0066486s
+2024-12-14 01:14:16.2|Info|FluentMigrator.Runner.MigrationRunner|209: add_on_import_complete_to_notifications migrating
+2024-12-14 01:14:16.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:16.2|Info|add_on_import_complete_to_notifications|Starting migration of Log DB to 209
+2024-12-14 01:14:16.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (209, '2024-12-14T01:14:16', 'add_on_import_complete_to_notifications')
+2024-12-14 01:14:16.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:16.2|Info|FluentMigrator.Runner.MigrationRunner|209: add_on_import_complete_to_notifications migrated
+2024-12-14 01:14:16.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0067026s
+2024-12-14 01:14:16.2|Info|FluentMigrator.Runner.MigrationRunner|210: add_monitored_seasons_filter migrating
+2024-12-14 01:14:16.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:16.2|Info|add_monitored_seasons_filter|Starting migration of Log DB to 210
+2024-12-14 01:14:16.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (210, '2024-12-14T01:14:16', 'add_monitored_seasons_filter')
+2024-12-14 01:14:16.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:16.2|Info|FluentMigrator.Runner.MigrationRunner|210: add_monitored_seasons_filter migrated
+2024-12-14 01:14:16.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0067213s
+2024-12-14 01:14:16.2|Info|FluentMigrator.Runner.MigrationRunner|211: add_custom_colon_replacement_to_naming_config migrating
+2024-12-14 01:14:16.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:16.2|Info|add_custom_colon_replacement_to_naming_config|Starting migration of Log DB to 211
+2024-12-14 01:14:16.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (211, '2024-12-14T01:14:16', 'add_custom_colon_replacement_to_naming_config')
+2024-12-14 01:14:16.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:16.2|Info|FluentMigrator.Runner.MigrationRunner|211: add_custom_colon_replacement_to_naming_config migrated
+2024-12-14 01:14:16.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0065129s
+2024-12-14 01:14:16.2|Info|FluentMigrator.Runner.MigrationRunner|212: add_minium_upgrade_format_score_to_quality_profiles migrating
+2024-12-14 01:14:16.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:16.2|Info|add_minium_upgrade_format_score_to_quality_profiles|Starting migration of Log DB to 212
+2024-12-14 01:14:16.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (212, '2024-12-14T01:14:16', 'add_minium_upgrade_format_score_to_quality_profiles')
+2024-12-14 01:14:16.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:16.2|Info|FluentMigrator.Runner.MigrationRunner|212: add_minium_upgrade_format_score_to_quality_profiles migrated
+2024-12-14 01:14:16.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0067294s
+2024-12-14 01:14:16.2|Info|FluentMigrator.Runner.MigrationRunner|214: add_blurary576p_quality_in_profiles migrating
+2024-12-14 01:14:16.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:16.2|Info|add_blurary576p_quality_in_profiles|Starting migration of Log DB to 214
+2024-12-14 01:14:16.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (214, '2024-12-14T01:14:16', 'add_blurary576p_quality_in_profiles')
+2024-12-14 01:14:16.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:16.2|Info|FluentMigrator.Runner.MigrationRunner|214: add_blurary576p_quality_in_profiles migrated
+2024-12-14 01:14:16.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0067321s
+2024-12-14 01:14:16.2|Info|FluentMigrator.Runner.MigrationRunner|215: add_blurary576p_quality_in_profiles_with_grouped_blurary480p migrating
+2024-12-14 01:14:16.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Beginning Transaction
+2024-12-14 01:14:16.2|Info|add_blurary576p_quality_in_profiles_with_grouped_blurary480p|Starting migration of Log DB to 215
+2024-12-14 01:14:16.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|INSERT INTO "VersionInfo" ("Version", "AppliedOn", "Description") VALUES (215, '2024-12-14T01:14:16', 'add_blurary576p_quality_in_profiles_with_grouped_blurary480p')
+2024-12-14 01:14:16.2|Info|NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor|Committing Transaction
+2024-12-14 01:14:16.2|Info|FluentMigrator.Runner.MigrationRunner|215: add_blurary576p_quality_in_profiles_with_grouped_blurary480p migrated
+2024-12-14 01:14:16.2|Info|FluentMigrator.Runner.MigrationRunner|=> 0.0067002s
+2024-12-14 01:14:16.4|Info|Microsoft.Hosting.Lifetime|Now listening on: http://[::]:8989
+2024-12-14 01:14:16.4|Info|UpdaterConfigProvider|Update mechanism BuiltIn not supported in the current configuration, changing to Docker.
+2024-12-14 01:14:16.5|Info|QualityProfileService|Setting up default quality profiles
+2024-12-14 01:14:16.5|Info|Microsoft.Hosting.Lifetime|Application started. Press Ctrl+C to shut down.
+2024-12-14 01:14:16.5|Info|Microsoft.Hosting.Lifetime|Hosting environment: Production
+2024-12-14 01:14:16.5|Info|Microsoft.Hosting.Lifetime|Content root path: /app/sonarr/bin
+2024-12-14 01:14:16.7|Info|ManagedHttpDispatcher|IPv4 is available: True, IPv6 will be disabled
+2024-12-14 01:15:18.8|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:15:18.8|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:15:18.8|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:15:18.8|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:15:18.8|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:15:18.8|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:15:18.9|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:15:18.9|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:15:18.9|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:15:18.9|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:15:18.9|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:15:18.9|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:15:18.9|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:15:19.0|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:15:19.0|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:15:19.0|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:15:19.0|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:15:19.0|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:15:19.1|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:15:19.1|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:15:19.1|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:15:19.1|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:15:19.1|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:15:19.1|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:15:19.2|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:15:19.2|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:15:19.2|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:15:19.2|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:15:19.2|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:15:19.3|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:15:19.3|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:15:19.3|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:15:19.3|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:15:19.3|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:15:19.3|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:15:19.4|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:15:19.4|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:15:19.4|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:15:19.4|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:15:19.5|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:15:19.5|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:15:19.5|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:15:19.5|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:15:19.5|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:15:19.6|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:15:19.6|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:15:19.6|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:15:19.6|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:15:19.6|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:15:19.6|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:15:19.6|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:15:19.6|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:15:19.6|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:15:19.6|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:15:19.6|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:15:19.6|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:15:19.6|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:15:19.6|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:15:19.7|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:15:19.7|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:15:19.8|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:15:19.8|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:15:19.9|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:15:19.9|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:15:19.9|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:15:19.9|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:15:20.0|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:15:20.0|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:15:20.1|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:15:20.1|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:15:20.1|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:15:20.1|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:15:20.1|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:15:20.1|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:15:20.1|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:15:20.1|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:15:20.2|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:15:20.2|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:15:20.3|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:15:20.3|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:15:20.3|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:15:20.4|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:15:20.4|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:15:20.4|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:15:20.4|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:15:25.3|Warn|SonarrErrorPipeline|Invalid request Validation failed:
+ -- Path: 'Path' must not be empty.
+ -- RootFolderPath: 'Root Folder Path' must not be empty.
+2024-12-14 01:15:35.4|Warn|SonarrErrorPipeline|Invalid request Validation failed:
+ -- Path: Invalid Path: '{path}'
+2024-12-14 01:15:50.5|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:08.7|Info|AddSeriesService|Adding Series [294431][The Enfield Haunting] Path: [/tv/The Enfield Haunting]
+2024-12-14 01:16:08.8|Info|SceneMappingService|Updating Scene mappings
+2024-12-14 01:16:08.8|Info|RefreshSeriesService|Updating The Enfield Haunting
+2024-12-14 01:16:08.9|Info|RefreshEpisodeService|Starting episode info refresh for: [294431][The Enfield Haunting]
+2024-12-14 01:16:08.9|Info|RefreshEpisodeService|Finished episode refresh for series: [294431][The Enfield Haunting].
+2024-12-14 01:16:09.0|Info|MediaCoverService|Downloading Banner for [294431][The Enfield Haunting] https://artworks.thetvdb.com/banners/graphical/294431-g.jpg
+2024-12-14 01:16:09.0|Warn|DiskScanService|Series' root folder (/tv/) is empty.
+2024-12-14 01:16:09.0|Info|SeriesScannedHandler|[The Enfield Haunting] was recently added, performing post-add actions
+2024-12-14 01:16:09.2|Info|MediaCoverService|Downloading Poster for [294431][The Enfield Haunting] https://artworks.thetvdb.com/banners/posters/294431-2.jpg
+2024-12-14 01:16:09.2|Info|MediaCoverService|Downloading Fanart for [294431][The Enfield Haunting] https://artworks.thetvdb.com/banners/fanart/original/294431-4.jpg
+2024-12-14 01:16:09.2|Info|MediaCoverService|Downloading Clearlogo for [294431][The Enfield Haunting] https://artworks.thetvdb.com/banners/v4/series/294431/clearlogo/611d8bdbc927c.png
+2024-12-14 01:16:09.8|Info|MetadataService|Series folder does not exist, skipping metadata image creation
+2024-12-14 01:16:17.0|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:17.0|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:17.0|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:17.0|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:17.0|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:17.0|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:17.0|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:17.0|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:17.0|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:17.0|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:17.0|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:17.0|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:19.7|Info|AddSeriesService|Adding Series [360893][Chernobyl] Path: [/tv/Chernobyl]
+2024-12-14 01:16:19.8|Info|RefreshSeriesService|Updating Chernobyl
+2024-12-14 01:16:19.8|Info|RefreshEpisodeService|Starting episode info refresh for: [360893][Chernobyl]
+2024-12-14 01:16:19.8|Info|RefreshEpisodeService|Finished episode refresh for series: [360893][Chernobyl].
+2024-12-14 01:16:19.8|Info|MediaCoverService|Downloading Banner for [360893][Chernobyl] https://artworks.thetvdb.com/banners/v4/series/360893/banners/6751caac5a993.jpg
+2024-12-14 01:16:19.8|Warn|DiskScanService|Series' root folder (/tv/) is empty.
+2024-12-14 01:16:19.8|Info|SeriesScannedHandler|[Chernobyl] was recently added, performing post-add actions
+2024-12-14 01:16:19.8|Info|MediaCoverService|Downloading Poster for [360893][Chernobyl] https://artworks.thetvdb.com/banners/posters/5cc12861c93e4.jpg
+2024-12-14 01:16:19.9|Info|MediaCoverService|Downloading Fanart for [360893][Chernobyl] https://artworks.thetvdb.com/banners/series/360893/backgrounds/62017319.jpg
+2024-12-14 01:16:19.9|Info|MediaCoverService|Downloading Clearlogo for [360893][Chernobyl] https://artworks.thetvdb.com/banners/v4/series/360893/clearlogo/611be4d52d6a8.png
+2024-12-14 01:16:20.1|Info|MetadataService|Series folder does not exist, skipping metadata image creation
+2024-12-14 01:16:26.3|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:26.3|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:26.3|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:26.3|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:26.3|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:26.3|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:26.3|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:26.3|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:26.3|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:26.3|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:26.3|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:26.3|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:26.3|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:26.3|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:26.4|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:26.4|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:26.4|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:26.4|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:26.4|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:26.4|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:26.4|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:26.5|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:26.5|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:26.5|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:26.5|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:26.5|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:26.5|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:26.5|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:26.5|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:26.6|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:26.6|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:26.6|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:26.6|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:26.6|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:26.6|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:26.6|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:26.6|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:26.7|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:26.7|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:26.7|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:26.7|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:26.7|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:26.7|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:26.8|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:26.8|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:26.8|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:26.8|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:26.8|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:26.8|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:26.8|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:26.9|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:26.9|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:26.9|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:26.9|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:26.9|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:26.9|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:26.9|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:26.9|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:26.9|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:26.9|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:26.9|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:26.9|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:27.0|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:27.0|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:27.0|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:27.0|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:27.0|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:27.0|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:27.0|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:27.0|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:27.0|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:27.0|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:27.1|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:27.1|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:16:49.3|Warn|Torznab|Unable to connect to indexer.
+2024-12-14 01:16:49.3|Warn|SonarrErrorPipeline|Invalid request Validation failed:
+ -- : Unable to connect to indexer, indexer's server is unavailable. Try again later. Http request timed out.
+2024-12-14 01:16:58.9|Warn|SonarrErrorPipeline|Invalid request Validation failed:
+ -- : Query successful, but no results in the configured categories were returned from your indexer. This may be an issue with the indexer or your indexer category settings.
+2024-12-14 01:17:00.6|Warn|SonarrErrorPipeline|Invalid request Validation failed:
+ -- : Query successful, but no results in the configured categories were returned from your indexer. This may be an issue with the indexer or your indexer category settings.
+2024-12-14 01:17:04.3|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:17:04.3|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:17:04.3|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:17:04.3|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:17:04.3|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:17:04.3|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:17:04.3|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:17:04.4|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:17:04.5|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:17:04.6|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:17:04.6|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:17:04.6|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:17:04.6|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:17:04.7|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:17:04.7|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:17:04.8|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:17:04.8|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:17:04.8|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:17:04.8|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:17:04.8|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:17:04.8|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:17:04.8|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:17:04.9|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:17:04.9|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:17:04.9|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:17:05.0|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:17:08.0|Info|AddSeriesService|Adding Series [390936][Archive 81] Path: [/tv/Archive 81]
+2024-12-14 01:17:08.0|Info|RefreshSeriesService|Updating Archive 81
+2024-12-14 01:17:08.0|Info|RefreshEpisodeService|Starting episode info refresh for: [390936][Archive 81]
+2024-12-14 01:17:08.0|Info|RefreshEpisodeService|Finished episode refresh for series: [390936][Archive 81].
+2024-12-14 01:17:08.0|Info|MediaCoverService|Downloading Banner for [390936][Archive 81] https://artworks.thetvdb.com/banners/v4/series/390936/banners/66d8c4bddabfc.jpg
+2024-12-14 01:17:08.0|Warn|DiskScanService|Series' root folder (/tv/) is empty.
+2024-12-14 01:17:08.0|Info|SeriesScannedHandler|[Archive 81] was recently added, performing post-add actions
+2024-12-14 01:17:08.0|Info|MediaCoverService|Downloading Poster for [390936][Archive 81] https://artworks.thetvdb.com/banners/v4/series/390936/posters/61b915220ba4a.jpg
+2024-12-14 01:17:08.1|Info|MediaCoverService|Downloading Fanart for [390936][Archive 81] https://artworks.thetvdb.com/banners/v4/series/390936/backgrounds/61da2cf017e0b.jpg
+2024-12-14 01:17:08.1|Info|MediaCoverService|Downloading Clearlogo for [390936][Archive 81] https://artworks.thetvdb.com/banners/v4/series/390936/clearlogo/661da6c37e2de.png
+2024-12-14 01:17:08.1|Info|MetadataService|Series folder does not exist, skipping metadata image creation
+2024-12-14 01:17:48.1|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:17:48.1|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:17:48.1|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:17:52.1|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:17:52.1|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:17:52.1|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:17:52.1|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:17:52.1|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:17:52.1|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:17:52.1|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:17:52.1|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:17:52.1|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:17:52.1|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:17:52.1|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:17:52.1|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:17:52.3|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:17:56.0|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:17:56.0|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:17:56.0|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:17:56.0|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:17:56.0|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:17:56.0|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:17:56.0|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:03.0|Info|AddSeriesService|Adding Series [404833][The Watcher (2022)] Path: [/tv/The Watcher (2022)]
+2024-12-14 01:18:03.0|Info|RefreshSeriesService|Updating The Watcher (2022)
+2024-12-14 01:18:03.1|Info|RefreshEpisodeService|Starting episode info refresh for: [404833][The Watcher (2022)]
+2024-12-14 01:18:03.1|Info|RefreshEpisodeService|Finished episode refresh for series: [404833][The Watcher (2022)].
+2024-12-14 01:18:03.1|Info|MediaCoverService|Downloading Banner for [404833][The Watcher (2022)] https://artworks.thetvdb.com/banners/v4/series/404833/banners/633fb9aa812e3.jpg
+2024-12-14 01:18:03.1|Warn|DiskScanService|Series' root folder (/tv/) is empty.
+2024-12-14 01:18:03.1|Info|SeriesScannedHandler|[The Watcher (2022)] was recently added, performing post-add actions
+2024-12-14 01:18:03.1|Info|MediaCoverService|Downloading Poster for [404833][The Watcher (2022)] https://artworks.thetvdb.com/banners/v4/series/404833/posters/632f710875c5b.jpg
+2024-12-14 01:18:03.1|Info|MediaCoverService|Downloading Fanart for [404833][The Watcher (2022)] https://artworks.thetvdb.com/banners/v4/series/404833/backgrounds/634925245e5ea.jpg
+2024-12-14 01:18:03.2|Info|MediaCoverService|Downloading Clearlogo for [404833][The Watcher (2022)] https://artworks.thetvdb.com/banners/v4/series/404833/clearlogo/63ebde1765536.png
+2024-12-14 01:18:03.3|Info|MetadataService|Series folder does not exist, skipping metadata image creation
+2024-12-14 01:18:33.9|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:33.9|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:33.9|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:33.9|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:33.9|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:33.9|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:33.9|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:33.9|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:33.9|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:33.9|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:34.0|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:34.0|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:34.1|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:34.1|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:34.1|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:34.1|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:34.1|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:34.1|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:34.1|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:34.2|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:34.2|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:34.2|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:34.2|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:34.2|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:34.2|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:34.2|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:34.2|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:34.2|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:34.2|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:34.2|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:34.2|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:34.2|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:34.2|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:34.3|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:34.3|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:34.3|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:34.3|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:34.3|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:34.3|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:34.3|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:34.3|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:34.3|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:34.4|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:34.4|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:34.4|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:34.4|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:34.4|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:34.4|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:34.4|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:34.4|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:34.5|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:34.5|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:34.5|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:34.5|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:34.5|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:34.5|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:34.5|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:34.5|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:34.6|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:34.6|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:34.6|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:34.6|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:34.6|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:34.6|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:34.6|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:34.7|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:34.7|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:34.7|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:34.7|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:34.7|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:34.7|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:34.7|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:34.7|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:34.7|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:34.7|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:34.8|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:34.8|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:34.8|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:34.8|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:34.8|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:34.8|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:34.8|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:34.8|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:34.9|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:34.9|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:34.9|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:34.9|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:34.9|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:34.9|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:34.9|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:34.9|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:35.0|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:35.0|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:41.3|Info|AddSeriesService|Adding Series [125441][Halo Legends] Path: [/tv/Halo Legends]
+2024-12-14 01:18:41.3|Info|RefreshSeriesService|Updating Halo Legends
+2024-12-14 01:18:41.4|Info|RefreshEpisodeService|Starting episode info refresh for: [125441][Halo Legends]
+2024-12-14 01:18:41.4|Info|RefreshEpisodeService|Finished episode refresh for series: [125441][Halo Legends].
+2024-12-14 01:18:41.4|Info|MediaCoverService|Downloading Banner for [125441][Halo Legends] https://artworks.thetvdb.com/banners/graphical/125441-g.jpg
+2024-12-14 01:18:41.4|Warn|DiskScanService|Series' root folder (/tv/) is empty.
+2024-12-14 01:18:41.4|Info|SeriesScannedHandler|[Halo Legends] was recently added, performing post-add actions
+2024-12-14 01:18:41.6|Info|MediaCoverService|Downloading Poster for [125441][Halo Legends] https://artworks.thetvdb.com/banners/posters/125441-3.jpg
+2024-12-14 01:18:41.7|Info|MediaCoverService|Downloading Fanart for [125441][Halo Legends] https://artworks.thetvdb.com/banners/fanart/original/125441-3.jpg
+2024-12-14 01:18:42.0|Info|MediaCoverService|Downloading Clearlogo for [125441][Halo Legends] https://artworks.thetvdb.com/banners/v4/series/125441/clearlogo/611c1c8d1fa3f.png
+2024-12-14 01:18:42.2|Info|MetadataService|Series folder does not exist, skipping metadata image creation
+2024-12-14 01:18:48.5|Warn|Torznab|Unable to connect to indexer.
+2024-12-14 01:18:48.5|Warn|SonarrErrorPipeline|Invalid request Validation failed:
+ -- : Unable to connect to indexer, indexer's server is unavailable. Try again later. Http request timed out.
+2024-12-14 01:18:51.4|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:51.4|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:51.4|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:51.4|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:51.4|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:51.4|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:51.4|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:51.4|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:51.4|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:51.4|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:51.4|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:51.4|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:51.4|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:51.4|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:51.4|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:51.4|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:51.5|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:18:51.5|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:19:01.6|Info|AddSeriesService|Adding Series [71278][Hellsing] Path: [/tv/Hellsing]
+2024-12-14 01:19:01.6|Info|RefreshSeriesService|Updating Hellsing
+2024-12-14 01:19:01.7|Info|RefreshEpisodeService|Starting episode info refresh for: [71278][Hellsing]
+2024-12-14 01:19:01.7|Info|RefreshEpisodeService|Finished episode refresh for series: [71278][Hellsing].
+2024-12-14 01:19:01.7|Info|MediaCoverService|Downloading Banner for [71278][Hellsing] https://artworks.thetvdb.com/banners/graphical/71278-g.jpg
+2024-12-14 01:19:01.7|Warn|DiskScanService|Series' root folder (/tv/) is empty.
+2024-12-14 01:19:01.7|Info|SeriesScannedHandler|[Hellsing] was recently added, performing post-add actions
+2024-12-14 01:19:01.7|Info|MediaCoverService|Downloading Poster for [71278][Hellsing] https://artworks.thetvdb.com/banners/posters/71278-2.jpg
+2024-12-14 01:19:01.7|Info|MediaCoverService|Downloading Fanart for [71278][Hellsing] https://artworks.thetvdb.com/banners/fanart/original/71278-14.jpg
+2024-12-14 01:19:01.7|Info|MediaCoverService|Downloading Clearlogo for [71278][Hellsing] https://artworks.thetvdb.com/banners/v4/series/71278/clearlogo/611be0afe2a81.png
+2024-12-14 01:19:01.8|Info|MetadataService|Series folder does not exist, skipping metadata image creation
+2024-12-14 01:19:21.1|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:19:21.1|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:19:21.1|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:19:21.1|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:19:21.1|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:19:21.1|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:19:39.2|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:19:39.2|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:19:39.2|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:19:39.2|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:19:39.2|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:19:39.2|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:19:39.2|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:19:39.2|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:19:39.2|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:19:39.2|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:19:39.2|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:19:39.2|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:19:39.2|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:19:39.3|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:19:39.3|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:19:39.5|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:19:39.5|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:19:39.6|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:19:39.6|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:19:39.7|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:19:39.7|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:19:39.7|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:19:39.7|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:19:39.7|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:19:39.7|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:19:39.7|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:19:39.7|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:19:42.2|Info|AddSeriesService|Adding Series [414337][Manhunt (2024)] Path: [/tv/Manhunt (2024)]
+2024-12-14 01:19:42.2|Info|RefreshSeriesService|Updating Manhunt (2024)
+2024-12-14 01:19:42.2|Info|RefreshEpisodeService|Starting episode info refresh for: [414337][Manhunt (2024)]
+2024-12-14 01:19:42.2|Info|RefreshEpisodeService|Finished episode refresh for series: [414337][Manhunt (2024)].
+2024-12-14 01:19:42.2|Info|MediaCoverService|Downloading Banner for [414337][Manhunt (2024)] https://artworks.thetvdb.com/banners/v4/series/414337/banners/65ddf736e8765.jpg
+2024-12-14 01:19:42.2|Warn|DiskScanService|Series' root folder (/tv/) is empty.
+2024-12-14 01:19:42.2|Info|SeriesScannedHandler|[Manhunt (2024)] was recently added, performing post-add actions
+2024-12-14 01:19:42.2|Info|MediaCoverService|Downloading Poster for [414337][Manhunt (2024)] https://artworks.thetvdb.com/banners/v4/series/414337/posters/65c17e70dc2b7.jpg
+2024-12-14 01:19:42.3|Info|MediaCoverService|Downloading Fanart for [414337][Manhunt (2024)] https://artworks.thetvdb.com/banners/v4/series/414337/backgrounds/65c138f78bcd4.jpg
+2024-12-14 01:19:42.3|Info|MediaCoverService|Downloading Clearlogo for [414337][Manhunt (2024)] https://artworks.thetvdb.com/banners/v4/series/414337/clearlogo/65fd9f18be687.png
+2024-12-14 01:19:42.3|Info|MetadataService|Series folder does not exist, skipping metadata image creation
+2024-12-14 01:19:48.1|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:19:48.1|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:19:48.1|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:19:51.6|Info|AddSeriesService|Adding Series [431139][MH370: The Plane That Disappeared] Path: [/tv/MH370 - The Plane That Disappeared]
+2024-12-14 01:19:51.7|Info|RefreshSeriesService|Updating MH370: The Plane That Disappeared
+2024-12-14 01:19:51.7|Info|RefreshEpisodeService|Starting episode info refresh for: [431139][MH370: The Plane That Disappeared]
+2024-12-14 01:19:51.7|Info|RefreshEpisodeService|Finished episode refresh for series: [431139][MH370: The Plane That Disappeared].
+2024-12-14 01:19:51.7|Info|MediaCoverService|Downloading Banner for [431139][MH370: The Plane That Disappeared] https://artworks.thetvdb.com/banners/v4/series/431139/banners/63ef7aadaa61f.jpg
+2024-12-14 01:19:51.7|Warn|DiskScanService|Series' root folder (/tv/) is empty.
+2024-12-14 01:19:51.7|Info|SeriesScannedHandler|[MH370: The Plane That Disappeared] was recently added, performing post-add actions
+2024-12-14 01:19:51.7|Info|MediaCoverService|Downloading Poster for [431139][MH370: The Plane That Disappeared] https://artworks.thetvdb.com/banners/v4/series/431139/posters/63ef7599ae952.jpg
+2024-12-14 01:19:51.7|Info|MediaCoverService|Downloading Fanart for [431139][MH370: The Plane That Disappeared] https://artworks.thetvdb.com/banners/v4/series/431139/backgrounds/63f180c425470.jpg
+2024-12-14 01:19:51.8|Info|MetadataService|Series folder does not exist, skipping metadata image creation
+2024-12-14 01:19:53.0|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:19:53.0|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:09.7|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:09.7|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:09.7|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:09.7|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:09.7|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:09.7|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:09.7|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:09.8|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:09.8|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:09.9|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:10.0|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:10.0|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:10.0|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:10.0|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:10.0|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:10.1|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:10.2|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:10.2|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:10.2|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:10.2|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:10.2|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:10.2|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:10.2|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:10.2|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:10.2|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:10.2|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:10.2|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:10.3|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:10.3|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:10.3|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:10.4|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:10.4|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:10.4|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:10.4|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:10.4|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:10.5|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:10.5|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:10.5|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:10.6|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:10.6|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:10.7|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:10.7|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:10.7|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:10.7|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:10.7|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:10.7|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:10.8|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:10.8|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:14.4|Info|AddSeriesService|Adding Series [365480][The Outsider (2020)] Path: [/tv/The Outsider (2020)]
+2024-12-14 01:20:14.4|Info|RefreshSeriesService|Updating The Outsider (2020)
+2024-12-14 01:20:14.5|Info|RefreshEpisodeService|Starting episode info refresh for: [365480][The Outsider (2020)]
+2024-12-14 01:20:14.5|Info|RefreshEpisodeService|Finished episode refresh for series: [365480][The Outsider (2020)].
+2024-12-14 01:20:14.5|Info|MediaCoverService|Downloading Banner for [365480][The Outsider (2020)] https://artworks.thetvdb.com/banners/series/365480/banners/62051524.jpg
+2024-12-14 01:20:14.5|Warn|DiskScanService|Series' root folder (/tv/) is empty.
+2024-12-14 01:20:14.5|Info|SeriesScannedHandler|[The Outsider (2020)] was recently added, performing post-add actions
+2024-12-14 01:20:14.5|Info|MediaCoverService|Downloading Poster for [365480][The Outsider (2020)] https://artworks.thetvdb.com/banners/series/365480/posters/62042220.jpg
+2024-12-14 01:20:14.5|Info|MediaCoverService|Downloading Fanart for [365480][The Outsider (2020)] https://artworks.thetvdb.com/banners/fanart/original/5dac8f56ca29d.jpg
+2024-12-14 01:20:14.5|Info|MediaCoverService|Downloading Clearlogo for [365480][The Outsider (2020)] https://artworks.thetvdb.com/banners/v4/series/365480/clearlogo/611c1a8c21730.png
+2024-12-14 01:20:14.7|Info|MetadataService|Series folder does not exist, skipping metadata image creation
+2024-12-14 01:20:43.8|Warn|Torznab|Unable to connect to indexer.
+2024-12-14 01:20:43.8|Warn|SonarrErrorPipeline|Invalid request Validation failed:
+ -- : Unable to connect to indexer, indexer's server is unavailable. Try again later. Http request timed out.
+2024-12-14 01:20:44.9|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:44.9|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:44.9|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:44.9|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:44.9|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:44.9|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:44.9|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:44.9|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:44.9|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:45.1|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:45.1|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:45.1|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:45.1|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:45.2|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:45.2|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:45.2|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:45.2|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:45.3|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:45.3|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:45.4|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:45.4|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:45.4|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:45.4|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:45.4|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:45.5|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:45.5|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:45.5|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:45.5|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:45.6|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:45.6|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:45.6|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:45.6|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:45.6|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:45.7|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:45.7|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:45.7|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:45.7|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:45.7|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:45.7|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:45.8|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:45.9|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:45.9|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:45.9|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:45.9|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:45.9|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:45.9|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:45.9|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:46.0|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:46.0|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:46.0|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:46.1|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:46.1|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:46.1|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:46.1|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:46.1|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:46.1|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:46.2|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:46.2|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:46.2|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:46.3|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:46.3|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:46.3|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:46.4|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:46.5|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:46.5|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:46.5|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:46.5|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:46.6|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:46.6|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:46.6|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:46.6|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:46.6|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:46.7|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:46.7|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:46.7|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:46.8|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:46.8|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:46.8|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:47.2|Info|AddSeriesService|Adding Series [85538][Storm of the Century] Path: [/tv/Storm of the Century]
+2024-12-14 01:20:47.2|Info|RefreshSeriesService|Updating Storm of the Century
+2024-12-14 01:20:47.2|Info|RefreshEpisodeService|Starting episode info refresh for: [85538][Storm of the Century]
+2024-12-14 01:20:47.2|Info|RefreshEpisodeService|Finished episode refresh for series: [85538][Storm of the Century].
+2024-12-14 01:20:47.2|Info|MediaCoverService|Downloading Banner for [85538][Storm of the Century] https://artworks.thetvdb.com/banners/graphical/85538-g.jpg
+2024-12-14 01:20:47.2|Warn|DiskScanService|Series' root folder (/tv/) is empty.
+2024-12-14 01:20:47.2|Info|SeriesScannedHandler|[Storm of the Century] was recently added, performing post-add actions
+2024-12-14 01:20:47.3|Info|MediaCoverService|Downloading Poster for [85538][Storm of the Century] https://artworks.thetvdb.com/banners/posters/85538-4.jpg
+2024-12-14 01:20:47.3|Info|MediaCoverService|Downloading Fanart for [85538][Storm of the Century] https://artworks.thetvdb.com/banners/fanart/original/85538-3.jpg
+2024-12-14 01:20:47.3|Info|MediaCoverService|Downloading Clearlogo for [85538][Storm of the Century] https://artworks.thetvdb.com/banners/v4/series/85538/clearlogo/611d056431a2e.png
+2024-12-14 01:20:47.4|Info|MetadataService|Series folder does not exist, skipping metadata image creation
+2024-12-14 01:20:54.0|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:54.0|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:54.0|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:54.0|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:54.0|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:54.0|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:54.0|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:54.0|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:54.0|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:54.0|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:54.1|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:54.2|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:54.2|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:54.2|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:54.2|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:54.3|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:54.3|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:54.4|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:20:56.1|Info|AddSeriesService|Adding Series [413526][Treason] Path: [/tv/Treason]
+2024-12-14 01:20:56.2|Info|RefreshSeriesService|Updating Treason
+2024-12-14 01:20:56.2|Info|RefreshEpisodeService|Starting episode info refresh for: [413526][Treason]
+2024-12-14 01:20:56.2|Info|RefreshEpisodeService|Finished episode refresh for series: [413526][Treason].
+2024-12-14 01:20:56.2|Info|MediaCoverService|Downloading Banner for [413526][Treason] https://artworks.thetvdb.com/banners/v4/series/413526/banners/63aa5304e7a6a.jpg
+2024-12-14 01:20:56.2|Warn|DiskScanService|Series' root folder (/tv/) is empty.
+2024-12-14 01:20:56.2|Info|SeriesScannedHandler|[Treason] was recently added, performing post-add actions
+2024-12-14 01:20:56.2|Info|MediaCoverService|Downloading Poster for [413526][Treason] https://artworks.thetvdb.com/banners/v4/series/413526/posters/637b90e90fa3d.jpg
+2024-12-14 01:20:56.2|Info|MediaCoverService|Downloading Fanart for [413526][Treason] https://artworks.thetvdb.com/banners/v4/series/413526/backgrounds/63aa53ca43188.jpg
+2024-12-14 01:20:56.3|Info|MediaCoverService|Downloading Clearlogo for [413526][Treason] https://artworks.thetvdb.com/banners/v4/series/413526/clearlogo/63b9ab5754b71.png
+2024-12-14 01:20:56.3|Info|MetadataService|Series folder does not exist, skipping metadata image creation
+2024-12-14 01:21:00.0|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:21:02.6|Info|AddSeriesService|Adding Series [372288][Unus Annus] Path: [/tv/Unus Annus]
+2024-12-14 01:21:02.6|Info|RefreshSeriesService|Updating Unus Annus
+2024-12-14 01:21:02.7|Info|RefreshEpisodeService|Starting episode info refresh for: [372288][Unus Annus]
+2024-12-14 01:21:02.7|Info|RefreshEpisodeService|Finished episode refresh for series: [372288][Unus Annus].
+2024-12-14 01:21:02.7|Info|MediaCoverService|Downloading Banner for [372288][Unus Annus] https://artworks.thetvdb.com/banners/series/372288/banners/61998696.jpg
+2024-12-14 01:21:02.7|Warn|DiskScanService|Series' root folder (/tv/) is empty.
+2024-12-14 01:21:02.7|Info|SeriesScannedHandler|[Unus Annus] was recently added, performing post-add actions
+2024-12-14 01:21:02.9|Info|MediaCoverService|Downloading Poster for [372288][Unus Annus] https://artworks.thetvdb.com/banners/v4/series/372288/posters/62e696ed495c1.jpg
+2024-12-14 01:21:02.9|Info|MediaCoverService|Downloading Fanart for [372288][Unus Annus] https://artworks.thetvdb.com/banners/series/372288/backgrounds/61998706.jpg
+2024-12-14 01:21:03.2|Info|MetadataService|Series folder does not exist, skipping metadata image creation
+2024-12-14 01:21:19.2|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:21:19.2|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:21:19.2|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:21:19.2|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:21:19.2|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:21:19.2|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:21:19.2|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:21:19.2|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:21:19.2|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:21:19.4|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:21:19.4|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:21:19.4|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:21:19.4|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:21:19.4|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:21:19.4|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:21:19.4|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:21:19.4|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:21:19.4|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:21:19.4|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:21:19.5|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:21:19.5|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:21:19.6|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:21:19.6|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:21:19.6|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:21:19.6|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:21:19.6|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:21:19.7|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:21:19.7|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:21:19.7|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:21:19.7|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:21:19.7|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:21:19.7|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:21:19.7|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:21:19.7|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:21:19.8|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:21:19.8|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:21:19.8|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:21:19.8|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:21:19.8|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:21:19.8|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:21:19.9|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:21:19.9|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:21:20.0|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:21:20.0|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:21:20.0|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:21:20.0|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:21:21.6|Info|AddSeriesService|Adding Series [283942][Yona of the Dawn] Path: [/tv/Yona of the Dawn]
+2024-12-14 01:21:21.6|Info|RefreshSeriesService|Updating Yona of the Dawn
+2024-12-14 01:21:21.7|Info|RefreshEpisodeService|Starting episode info refresh for: [283942][Yona of the Dawn]
+2024-12-14 01:21:21.7|Info|RefreshEpisodeService|Finished episode refresh for series: [283942][Yona of the Dawn].
+2024-12-14 01:21:22.0|Info|MediaCoverService|Downloading Banner for [283942][Yona of the Dawn] https://artworks.thetvdb.com/banners/graphical/283942-g2.jpg
+2024-12-14 01:21:22.0|Warn|DiskScanService|Series' root folder (/tv/) is empty.
+2024-12-14 01:21:22.0|Info|SeriesScannedHandler|[Yona of the Dawn] was recently added, performing post-add actions
+2024-12-14 01:21:22.2|Info|MediaCoverService|Downloading Poster for [283942][Yona of the Dawn] https://artworks.thetvdb.com/banners/v4/series/283942/posters/6103bd805f09d.jpg
+2024-12-14 01:21:22.2|Info|MediaCoverService|Downloading Fanart for [283942][Yona of the Dawn] https://artworks.thetvdb.com/banners/fanart/original/283942-2.jpg
+2024-12-14 01:21:22.2|Info|MediaCoverService|Downloading Clearlogo for [283942][Yona of the Dawn] https://artworks.thetvdb.com/banners/v4/series/283942/clearlogo/611c2f3df2b15.png
+2024-12-14 01:21:22.5|Info|MetadataService|Series folder does not exist, skipping metadata image creation
+2024-12-14 01:21:44.1|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:21:44.1|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:21:44.1|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:21:44.1|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:21:44.1|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:21:44.1|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:21:44.1|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:21:44.1|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:21:44.1|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:21:44.1|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:21:44.2|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:21:44.2|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:21:44.2|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:21:45.0|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:21:45.0|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:22:27.8|Error|VideoFileInfoReader|Unable to parse media info from file: /tv/test/1.mkv
+
+[v4.0.11.2680] FFMpegCore.Exceptions.FFMpegException: ffprobe exited with non-zero exit-code (1 - [matroska,webm @ 0x2f956c0] EBML header parsing failed
+/tv/test/1.mkv: Invalid data found when processing input)
+ at FFMpegCore.FFProbe.GetStreamJson(String filePath, Int32 outputCapacity, FFOptions ffOptions)
+ at NzbDrone.Core.MediaFiles.MediaInfo.VideoFileInfoReader.GetMediaInfo(String filename) in ./Sonarr.Core/MediaFiles/MediaInfo/VideoFileInfoReader.cs:line 68
+
+2024-12-14 01:22:27.9|Error|DetectSample|Failed to get runtime from the file, make sure ffprobe is available
+2024-12-14 01:22:32.0|Error|VideoFileInfoReader|Unable to parse media info from file: /tv/test/4.mkv
+
+[v4.0.11.2680] FFMpegCore.Exceptions.FFMpegException: ffprobe exited with non-zero exit-code (1 - [matroska,webm @ 0x283c6c0] EBML header parsing failed
+/tv/test/4.mkv: Invalid data found when processing input)
+ at FFMpegCore.FFProbe.GetStreamJson(String filePath, Int32 outputCapacity, FFOptions ffOptions)
+ at NzbDrone.Core.MediaFiles.MediaInfo.VideoFileInfoReader.GetMediaInfo(String filename) in ./Sonarr.Core/MediaFiles/MediaInfo/VideoFileInfoReader.cs:line 68
+
+2024-12-14 01:22:32.0|Error|DetectSample|Failed to get runtime from the file, make sure ffprobe is available
+2024-12-14 01:22:32.0|Error|VideoFileInfoReader|Unable to parse media info from file: /tv/test/3.mkv
+
+[v4.0.11.2680] FFMpegCore.Exceptions.FFMpegException: ffprobe exited with non-zero exit-code (1 - [matroska,webm @ 0x34d66c0] EBML header parsing failed
+/tv/test/3.mkv: Invalid data found when processing input)
+ at FFMpegCore.FFProbe.GetStreamJson(String filePath, Int32 outputCapacity, FFOptions ffOptions)
+ at NzbDrone.Core.MediaFiles.MediaInfo.VideoFileInfoReader.GetMediaInfo(String filename) in ./Sonarr.Core/MediaFiles/MediaInfo/VideoFileInfoReader.cs:line 68
+
+2024-12-14 01:22:32.0|Error|DetectSample|Failed to get runtime from the file, make sure ffprobe is available
+2024-12-14 01:22:32.0|Error|VideoFileInfoReader|Unable to parse media info from file: /tv/test/5.mkv
+
+[v4.0.11.2680] FFMpegCore.Exceptions.FFMpegException: ffprobe exited with non-zero exit-code (1 - [matroska,webm @ 0x1c7a6c0] EBML header parsing failed
+/tv/test/5.mkv: Invalid data found when processing input)
+ at FFMpegCore.FFProbe.GetStreamJson(String filePath, Int32 outputCapacity, FFOptions ffOptions)
+ at NzbDrone.Core.MediaFiles.MediaInfo.VideoFileInfoReader.GetMediaInfo(String filename) in ./Sonarr.Core/MediaFiles/MediaInfo/VideoFileInfoReader.cs:line 68
+
+2024-12-14 01:22:32.0|Error|DetectSample|Failed to get runtime from the file, make sure ffprobe is available
+2024-12-14 01:22:32.0|Error|VideoFileInfoReader|Unable to parse media info from file: /tv/test/2.mkv
+
+[v4.0.11.2680] FFMpegCore.Exceptions.FFMpegException: ffprobe exited with non-zero exit-code (1 - [matroska,webm @ 0x37d56c0] EBML header parsing failed
+/tv/test/2.mkv: Invalid data found when processing input)
+ at FFMpegCore.FFProbe.GetStreamJson(String filePath, Int32 outputCapacity, FFOptions ffOptions)
+ at NzbDrone.Core.MediaFiles.MediaInfo.VideoFileInfoReader.GetMediaInfo(String filename) in ./Sonarr.Core/MediaFiles/MediaInfo/VideoFileInfoReader.cs:line 68
+
+2024-12-14 01:22:32.0|Error|DetectSample|Failed to get runtime from the file, make sure ffprobe is available
+2024-12-14 01:22:32.0|Error|VideoFileInfoReader|Unable to parse media info from file: /tv/test/1.mkv
+
+[v4.0.11.2680] FFMpegCore.Exceptions.FFMpegException: ffprobe exited with non-zero exit-code (1 - [matroska,webm @ 0x28736c0] EBML header parsing failed
+/tv/test/1.mkv: Invalid data found when processing input)
+ at FFMpegCore.FFProbe.GetStreamJson(String filePath, Int32 outputCapacity, FFOptions ffOptions)
+ at NzbDrone.Core.MediaFiles.MediaInfo.VideoFileInfoReader.GetMediaInfo(String filename) in ./Sonarr.Core/MediaFiles/MediaInfo/VideoFileInfoReader.cs:line 68
+
+2024-12-14 01:22:32.0|Error|DetectSample|Failed to get runtime from the file, make sure ffprobe is available
+2024-12-14 01:22:32.0|Error|VideoFileInfoReader|Unable to parse media info from file: /tv/test/6.mkv
+
+[v4.0.11.2680] FFMpegCore.Exceptions.FFMpegException: ffprobe exited with non-zero exit-code (1 - [matroska,webm @ 0x1c156c0] EBML header parsing failed
+/tv/test/6.mkv: Invalid data found when processing input)
+ at FFMpegCore.FFProbe.GetStreamJson(String filePath, Int32 outputCapacity, FFOptions ffOptions)
+ at NzbDrone.Core.MediaFiles.MediaInfo.VideoFileInfoReader.GetMediaInfo(String filename) in ./Sonarr.Core/MediaFiles/MediaInfo/VideoFileInfoReader.cs:line 68
+
+2024-12-14 01:22:32.0|Error|DetectSample|Failed to get runtime from the file, make sure ffprobe is available
+2024-12-14 01:22:32.0|Error|VideoFileInfoReader|Unable to parse media info from file: /tv/test/7.mkv
+
+[v4.0.11.2680] FFMpegCore.Exceptions.FFMpegException: ffprobe exited with non-zero exit-code (1 - [matroska,webm @ 0x36b96c0] EBML header parsing failed
+/tv/test/7.mkv: Invalid data found when processing input)
+ at FFMpegCore.FFProbe.GetStreamJson(String filePath, Int32 outputCapacity, FFOptions ffOptions)
+ at NzbDrone.Core.MediaFiles.MediaInfo.VideoFileInfoReader.GetMediaInfo(String filename) in ./Sonarr.Core/MediaFiles/MediaInfo/VideoFileInfoReader.cs:line 68
+
+2024-12-14 01:22:32.0|Error|DetectSample|Failed to get runtime from the file, make sure ffprobe is available
+2024-12-14 01:22:32.0|Error|VideoFileInfoReader|Unable to parse media info from file: /tv/test/8.mkv
+
+[v4.0.11.2680] FFMpegCore.Exceptions.FFMpegException: ffprobe exited with non-zero exit-code (1 - [matroska,webm @ 0x33f56c0] EBML header parsing failed
+/tv/test/8.mkv: Invalid data found when processing input)
+ at FFMpegCore.FFProbe.GetStreamJson(String filePath, Int32 outputCapacity, FFOptions ffOptions)
+ at NzbDrone.Core.MediaFiles.MediaInfo.VideoFileInfoReader.GetMediaInfo(String filename) in ./Sonarr.Core/MediaFiles/MediaInfo/VideoFileInfoReader.cs:line 68
+
+2024-12-14 01:22:32.0|Error|DetectSample|Failed to get runtime from the file, make sure ffprobe is available
+2024-12-14 01:22:41.5|Fatal|SonarrErrorPipeline|Request Failed. POST /api/v3/manualimport
+
+[v4.0.11.2680] NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AugmentingFailedException: Unable to parse episode info from path: /tv/test/1.mkv
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AggregationService.Augment(LocalEpisode localEpisode, DownloadClientItem downloadClientItem) in ./Sonarr.Core/MediaFiles/EpisodeImport/Aggregation/AggregationService.cs:line 51
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Manual.ManualImportService.ReprocessItem(String path, String downloadId, Int32 seriesId, Nullable`1 seasonNumber, List`1 episodeIds, String releaseGroup, QualityModel quality, List`1 languages, Int32 indexerFlags, ReleaseType releaseType) in ./Sonarr.Core/MediaFiles/EpisodeImport/Manual/ManualImportService.cs:line 188
+ at Sonarr.Api.V3.ManualImport.ManualImportController.ReprocessItems(List`1 items) in ./Sonarr.Api.V3/ManualImport/ManualImportController.cs:line 42
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.SyncObjectResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeActionMethodAsync()
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeNextActionFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Routing.EndpointMiddleware.g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
+ at Sonarr.Http.Middleware.BufferingMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/BufferingMiddleware.cs:line 28
+ at Sonarr.Http.Middleware.IfModifiedMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/IfModifiedMiddleware.cs:line 41
+ at Sonarr.Http.Middleware.CacheHeaderMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/CacheHeaderMiddleware.cs:line 33
+ at Sonarr.Http.Middleware.StartingUpMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/StartingUpMiddleware.cs:line 38
+ at Sonarr.Http.Middleware.UrlBaseMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/UrlBaseMiddleware.cs:line 29
+ at Sonarr.Http.Middleware.VersionMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/VersionMiddleware.cs:line 29
+ at Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.InvokeCore(HttpContext context)
+ at Microsoft.AspNetCore.Authorization.Policy.AuthorizationMiddlewareResultHandler.HandleAsync(RequestDelegate next, HttpContext context, AuthorizationPolicy policy, PolicyAuthorizationResult authorizeResult)
+ at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.g__Awaited|6_0(ExceptionHandlerMiddleware middleware, HttpContext context, Task task)
+
+2024-12-14 01:22:44.2|Fatal|SonarrErrorPipeline|Request Failed. POST /api/v3/manualimport
+
+[v4.0.11.2680] NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AugmentingFailedException: Unable to parse episode info from path: /tv/test/2.mkv
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AggregationService.Augment(LocalEpisode localEpisode, DownloadClientItem downloadClientItem) in ./Sonarr.Core/MediaFiles/EpisodeImport/Aggregation/AggregationService.cs:line 51
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Manual.ManualImportService.ReprocessItem(String path, String downloadId, Int32 seriesId, Nullable`1 seasonNumber, List`1 episodeIds, String releaseGroup, QualityModel quality, List`1 languages, Int32 indexerFlags, ReleaseType releaseType) in ./Sonarr.Core/MediaFiles/EpisodeImport/Manual/ManualImportService.cs:line 188
+ at Sonarr.Api.V3.ManualImport.ManualImportController.ReprocessItems(List`1 items) in ./Sonarr.Api.V3/ManualImport/ManualImportController.cs:line 42
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.SyncObjectResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeActionMethodAsync()
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeNextActionFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Routing.EndpointMiddleware.g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
+ at Sonarr.Http.Middleware.BufferingMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/BufferingMiddleware.cs:line 28
+ at Sonarr.Http.Middleware.IfModifiedMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/IfModifiedMiddleware.cs:line 41
+ at Sonarr.Http.Middleware.CacheHeaderMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/CacheHeaderMiddleware.cs:line 33
+ at Sonarr.Http.Middleware.StartingUpMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/StartingUpMiddleware.cs:line 38
+ at Sonarr.Http.Middleware.UrlBaseMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/UrlBaseMiddleware.cs:line 29
+ at Sonarr.Http.Middleware.VersionMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/VersionMiddleware.cs:line 29
+ at Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.InvokeCore(HttpContext context)
+ at Microsoft.AspNetCore.Authorization.Policy.AuthorizationMiddlewareResultHandler.HandleAsync(RequestDelegate next, HttpContext context, AuthorizationPolicy policy, PolicyAuthorizationResult authorizeResult)
+ at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.g__Awaited|6_0(ExceptionHandlerMiddleware middleware, HttpContext context, Task task)
+
+2024-12-14 01:22:46.9|Fatal|SonarrErrorPipeline|Request Failed. POST /api/v3/manualimport
+
+[v4.0.11.2680] NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AugmentingFailedException: Unable to parse episode info from path: /tv/test/3.mkv
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AggregationService.Augment(LocalEpisode localEpisode, DownloadClientItem downloadClientItem) in ./Sonarr.Core/MediaFiles/EpisodeImport/Aggregation/AggregationService.cs:line 51
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Manual.ManualImportService.ReprocessItem(String path, String downloadId, Int32 seriesId, Nullable`1 seasonNumber, List`1 episodeIds, String releaseGroup, QualityModel quality, List`1 languages, Int32 indexerFlags, ReleaseType releaseType) in ./Sonarr.Core/MediaFiles/EpisodeImport/Manual/ManualImportService.cs:line 188
+ at Sonarr.Api.V3.ManualImport.ManualImportController.ReprocessItems(List`1 items) in ./Sonarr.Api.V3/ManualImport/ManualImportController.cs:line 42
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.SyncObjectResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeActionMethodAsync()
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeNextActionFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Routing.EndpointMiddleware.g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
+ at Sonarr.Http.Middleware.BufferingMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/BufferingMiddleware.cs:line 28
+ at Sonarr.Http.Middleware.IfModifiedMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/IfModifiedMiddleware.cs:line 41
+ at Sonarr.Http.Middleware.CacheHeaderMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/CacheHeaderMiddleware.cs:line 33
+ at Sonarr.Http.Middleware.StartingUpMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/StartingUpMiddleware.cs:line 38
+ at Sonarr.Http.Middleware.UrlBaseMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/UrlBaseMiddleware.cs:line 29
+ at Sonarr.Http.Middleware.VersionMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/VersionMiddleware.cs:line 29
+ at Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.InvokeCore(HttpContext context)
+ at Microsoft.AspNetCore.Authorization.Policy.AuthorizationMiddlewareResultHandler.HandleAsync(RequestDelegate next, HttpContext context, AuthorizationPolicy policy, PolicyAuthorizationResult authorizeResult)
+ at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.g__Awaited|6_0(ExceptionHandlerMiddleware middleware, HttpContext context, Task task)
+
+2024-12-14 01:22:49.2|Fatal|SonarrErrorPipeline|Request Failed. POST /api/v3/manualimport
+
+[v4.0.11.2680] NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AugmentingFailedException: Unable to parse episode info from path: /tv/test/4.mkv
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AggregationService.Augment(LocalEpisode localEpisode, DownloadClientItem downloadClientItem) in ./Sonarr.Core/MediaFiles/EpisodeImport/Aggregation/AggregationService.cs:line 51
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Manual.ManualImportService.ReprocessItem(String path, String downloadId, Int32 seriesId, Nullable`1 seasonNumber, List`1 episodeIds, String releaseGroup, QualityModel quality, List`1 languages, Int32 indexerFlags, ReleaseType releaseType) in ./Sonarr.Core/MediaFiles/EpisodeImport/Manual/ManualImportService.cs:line 188
+ at Sonarr.Api.V3.ManualImport.ManualImportController.ReprocessItems(List`1 items) in ./Sonarr.Api.V3/ManualImport/ManualImportController.cs:line 42
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.SyncObjectResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeActionMethodAsync()
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeNextActionFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Routing.EndpointMiddleware.g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
+ at Sonarr.Http.Middleware.BufferingMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/BufferingMiddleware.cs:line 28
+ at Sonarr.Http.Middleware.IfModifiedMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/IfModifiedMiddleware.cs:line 41
+ at Sonarr.Http.Middleware.CacheHeaderMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/CacheHeaderMiddleware.cs:line 33
+ at Sonarr.Http.Middleware.StartingUpMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/StartingUpMiddleware.cs:line 38
+ at Sonarr.Http.Middleware.UrlBaseMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/UrlBaseMiddleware.cs:line 29
+ at Sonarr.Http.Middleware.VersionMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/VersionMiddleware.cs:line 29
+ at Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.InvokeCore(HttpContext context)
+ at Microsoft.AspNetCore.Authorization.Policy.AuthorizationMiddlewareResultHandler.HandleAsync(RequestDelegate next, HttpContext context, AuthorizationPolicy policy, PolicyAuthorizationResult authorizeResult)
+ at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.g__Awaited|6_0(ExceptionHandlerMiddleware middleware, HttpContext context, Task task)
+
+2024-12-14 01:22:51.3|Fatal|SonarrErrorPipeline|Request Failed. POST /api/v3/manualimport
+
+[v4.0.11.2680] NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AugmentingFailedException: Unable to parse episode info from path: /tv/test/5.mkv
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AggregationService.Augment(LocalEpisode localEpisode, DownloadClientItem downloadClientItem) in ./Sonarr.Core/MediaFiles/EpisodeImport/Aggregation/AggregationService.cs:line 51
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Manual.ManualImportService.ReprocessItem(String path, String downloadId, Int32 seriesId, Nullable`1 seasonNumber, List`1 episodeIds, String releaseGroup, QualityModel quality, List`1 languages, Int32 indexerFlags, ReleaseType releaseType) in ./Sonarr.Core/MediaFiles/EpisodeImport/Manual/ManualImportService.cs:line 188
+ at Sonarr.Api.V3.ManualImport.ManualImportController.ReprocessItems(List`1 items) in ./Sonarr.Api.V3/ManualImport/ManualImportController.cs:line 42
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.SyncObjectResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeActionMethodAsync()
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeNextActionFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Routing.EndpointMiddleware.g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
+ at Sonarr.Http.Middleware.BufferingMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/BufferingMiddleware.cs:line 28
+ at Sonarr.Http.Middleware.IfModifiedMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/IfModifiedMiddleware.cs:line 41
+ at Sonarr.Http.Middleware.CacheHeaderMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/CacheHeaderMiddleware.cs:line 33
+ at Sonarr.Http.Middleware.StartingUpMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/StartingUpMiddleware.cs:line 38
+ at Sonarr.Http.Middleware.UrlBaseMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/UrlBaseMiddleware.cs:line 29
+ at Sonarr.Http.Middleware.VersionMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/VersionMiddleware.cs:line 29
+ at Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.InvokeCore(HttpContext context)
+ at Microsoft.AspNetCore.Authorization.Policy.AuthorizationMiddlewareResultHandler.HandleAsync(RequestDelegate next, HttpContext context, AuthorizationPolicy policy, PolicyAuthorizationResult authorizeResult)
+ at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.g__Awaited|6_0(ExceptionHandlerMiddleware middleware, HttpContext context, Task task)
+
+2024-12-14 01:22:53.5|Fatal|SonarrErrorPipeline|Request Failed. POST /api/v3/manualimport
+
+[v4.0.11.2680] NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AugmentingFailedException: Unable to parse episode info from path: /tv/test/6.mkv
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AggregationService.Augment(LocalEpisode localEpisode, DownloadClientItem downloadClientItem) in ./Sonarr.Core/MediaFiles/EpisodeImport/Aggregation/AggregationService.cs:line 51
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Manual.ManualImportService.ReprocessItem(String path, String downloadId, Int32 seriesId, Nullable`1 seasonNumber, List`1 episodeIds, String releaseGroup, QualityModel quality, List`1 languages, Int32 indexerFlags, ReleaseType releaseType) in ./Sonarr.Core/MediaFiles/EpisodeImport/Manual/ManualImportService.cs:line 188
+ at Sonarr.Api.V3.ManualImport.ManualImportController.ReprocessItems(List`1 items) in ./Sonarr.Api.V3/ManualImport/ManualImportController.cs:line 42
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.SyncObjectResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeActionMethodAsync()
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeNextActionFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Routing.EndpointMiddleware.g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
+ at Sonarr.Http.Middleware.BufferingMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/BufferingMiddleware.cs:line 28
+ at Sonarr.Http.Middleware.IfModifiedMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/IfModifiedMiddleware.cs:line 41
+ at Sonarr.Http.Middleware.CacheHeaderMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/CacheHeaderMiddleware.cs:line 33
+ at Sonarr.Http.Middleware.StartingUpMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/StartingUpMiddleware.cs:line 38
+ at Sonarr.Http.Middleware.UrlBaseMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/UrlBaseMiddleware.cs:line 29
+ at Sonarr.Http.Middleware.VersionMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/VersionMiddleware.cs:line 29
+ at Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.InvokeCore(HttpContext context)
+ at Microsoft.AspNetCore.Authorization.Policy.AuthorizationMiddlewareResultHandler.HandleAsync(RequestDelegate next, HttpContext context, AuthorizationPolicy policy, PolicyAuthorizationResult authorizeResult)
+ at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.g__Awaited|6_0(ExceptionHandlerMiddleware middleware, HttpContext context, Task task)
+
+2024-12-14 01:22:55.9|Fatal|SonarrErrorPipeline|Request Failed. POST /api/v3/manualimport
+
+[v4.0.11.2680] NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AugmentingFailedException: Unable to parse episode info from path: /tv/test/7.mkv
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AggregationService.Augment(LocalEpisode localEpisode, DownloadClientItem downloadClientItem) in ./Sonarr.Core/MediaFiles/EpisodeImport/Aggregation/AggregationService.cs:line 51
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Manual.ManualImportService.ReprocessItem(String path, String downloadId, Int32 seriesId, Nullable`1 seasonNumber, List`1 episodeIds, String releaseGroup, QualityModel quality, List`1 languages, Int32 indexerFlags, ReleaseType releaseType) in ./Sonarr.Core/MediaFiles/EpisodeImport/Manual/ManualImportService.cs:line 188
+ at Sonarr.Api.V3.ManualImport.ManualImportController.ReprocessItems(List`1 items) in ./Sonarr.Api.V3/ManualImport/ManualImportController.cs:line 42
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.SyncObjectResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeActionMethodAsync()
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeNextActionFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Routing.EndpointMiddleware.g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
+ at Sonarr.Http.Middleware.BufferingMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/BufferingMiddleware.cs:line 28
+ at Sonarr.Http.Middleware.IfModifiedMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/IfModifiedMiddleware.cs:line 41
+ at Sonarr.Http.Middleware.CacheHeaderMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/CacheHeaderMiddleware.cs:line 33
+ at Sonarr.Http.Middleware.StartingUpMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/StartingUpMiddleware.cs:line 38
+ at Sonarr.Http.Middleware.UrlBaseMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/UrlBaseMiddleware.cs:line 29
+ at Sonarr.Http.Middleware.VersionMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/VersionMiddleware.cs:line 29
+ at Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.InvokeCore(HttpContext context)
+ at Microsoft.AspNetCore.Authorization.Policy.AuthorizationMiddlewareResultHandler.HandleAsync(RequestDelegate next, HttpContext context, AuthorizationPolicy policy, PolicyAuthorizationResult authorizeResult)
+ at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.g__Awaited|6_0(ExceptionHandlerMiddleware middleware, HttpContext context, Task task)
+
+2024-12-14 01:22:57.9|Fatal|SonarrErrorPipeline|Request Failed. POST /api/v3/manualimport
+
+[v4.0.11.2680] NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AugmentingFailedException: Unable to parse episode info from path: /tv/test/8.mkv
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AggregationService.Augment(LocalEpisode localEpisode, DownloadClientItem downloadClientItem) in ./Sonarr.Core/MediaFiles/EpisodeImport/Aggregation/AggregationService.cs:line 51
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Manual.ManualImportService.ReprocessItem(String path, String downloadId, Int32 seriesId, Nullable`1 seasonNumber, List`1 episodeIds, String releaseGroup, QualityModel quality, List`1 languages, Int32 indexerFlags, ReleaseType releaseType) in ./Sonarr.Core/MediaFiles/EpisodeImport/Manual/ManualImportService.cs:line 188
+ at Sonarr.Api.V3.ManualImport.ManualImportController.ReprocessItems(List`1 items) in ./Sonarr.Api.V3/ManualImport/ManualImportController.cs:line 42
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.SyncObjectResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeActionMethodAsync()
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeNextActionFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Routing.EndpointMiddleware.g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
+ at Sonarr.Http.Middleware.BufferingMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/BufferingMiddleware.cs:line 28
+ at Sonarr.Http.Middleware.IfModifiedMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/IfModifiedMiddleware.cs:line 41
+ at Sonarr.Http.Middleware.CacheHeaderMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/CacheHeaderMiddleware.cs:line 33
+ at Sonarr.Http.Middleware.StartingUpMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/StartingUpMiddleware.cs:line 38
+ at Sonarr.Http.Middleware.UrlBaseMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/UrlBaseMiddleware.cs:line 29
+ at Sonarr.Http.Middleware.VersionMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/VersionMiddleware.cs:line 29
+ at Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.InvokeCore(HttpContext context)
+ at Microsoft.AspNetCore.Authorization.Policy.AuthorizationMiddlewareResultHandler.HandleAsync(RequestDelegate next, HttpContext context, AuthorizationPolicy policy, PolicyAuthorizationResult authorizeResult)
+ at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.g__Awaited|6_0(ExceptionHandlerMiddleware middleware, HttpContext context, Task task)
+
+2024-12-14 01:23:04.1|Fatal|SonarrErrorPipeline|Request Failed. POST /api/v3/manualimport
+
+[v4.0.11.2680] NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AugmentingFailedException: Unable to parse episode info from path: /tv/test/4.mkv
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AggregationService.Augment(LocalEpisode localEpisode, DownloadClientItem downloadClientItem) in ./Sonarr.Core/MediaFiles/EpisodeImport/Aggregation/AggregationService.cs:line 51
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Manual.ManualImportService.ReprocessItem(String path, String downloadId, Int32 seriesId, Nullable`1 seasonNumber, List`1 episodeIds, String releaseGroup, QualityModel quality, List`1 languages, Int32 indexerFlags, ReleaseType releaseType) in ./Sonarr.Core/MediaFiles/EpisodeImport/Manual/ManualImportService.cs:line 188
+ at Sonarr.Api.V3.ManualImport.ManualImportController.ReprocessItems(List`1 items) in ./Sonarr.Api.V3/ManualImport/ManualImportController.cs:line 42
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.SyncObjectResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeActionMethodAsync()
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeNextActionFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Routing.EndpointMiddleware.g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
+ at Sonarr.Http.Middleware.BufferingMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/BufferingMiddleware.cs:line 28
+ at Sonarr.Http.Middleware.IfModifiedMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/IfModifiedMiddleware.cs:line 41
+ at Sonarr.Http.Middleware.CacheHeaderMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/CacheHeaderMiddleware.cs:line 33
+ at Sonarr.Http.Middleware.StartingUpMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/StartingUpMiddleware.cs:line 38
+ at Sonarr.Http.Middleware.UrlBaseMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/UrlBaseMiddleware.cs:line 29
+ at Sonarr.Http.Middleware.VersionMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/VersionMiddleware.cs:line 29
+ at Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.InvokeCore(HttpContext context)
+ at Microsoft.AspNetCore.Authorization.Policy.AuthorizationMiddlewareResultHandler.HandleAsync(RequestDelegate next, HttpContext context, AuthorizationPolicy policy, PolicyAuthorizationResult authorizeResult)
+ at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.g__Awaited|6_0(ExceptionHandlerMiddleware middleware, HttpContext context, Task task)
+
+2024-12-14 01:23:11.6|Error|VideoFileInfoReader|Unable to parse media info from file: /tv/test/1.mkv
+
+[v4.0.11.2680] FFMpegCore.Exceptions.FFMpegException: ffprobe exited with non-zero exit-code (1 - [matroska,webm @ 0x2ecc6c0] EBML header parsing failed
+/tv/test/1.mkv: Invalid data found when processing input)
+ at FFMpegCore.FFProbe.GetStreamJson(String filePath, Int32 outputCapacity, FFOptions ffOptions)
+ at NzbDrone.Core.MediaFiles.MediaInfo.VideoFileInfoReader.GetMediaInfo(String filename) in ./Sonarr.Core/MediaFiles/MediaInfo/VideoFileInfoReader.cs:line 68
+
+2024-12-14 01:23:11.7|Error|VideoFileInfoReader|Unable to parse media info from file: /tv/test/2.mkv
+
+[v4.0.11.2680] FFMpegCore.Exceptions.FFMpegException: ffprobe exited with non-zero exit-code (1 - [matroska,webm @ 0x1fd76c0] EBML header parsing failed
+/tv/test/2.mkv: Invalid data found when processing input)
+ at FFMpegCore.FFProbe.GetStreamJson(String filePath, Int32 outputCapacity, FFOptions ffOptions)
+ at NzbDrone.Core.MediaFiles.MediaInfo.VideoFileInfoReader.GetMediaInfo(String filename) in ./Sonarr.Core/MediaFiles/MediaInfo/VideoFileInfoReader.cs:line 68
+
+2024-12-14 01:23:11.8|Error|VideoFileInfoReader|Unable to parse media info from file: /tv/test/3.mkv
+
+[v4.0.11.2680] FFMpegCore.Exceptions.FFMpegException: ffprobe exited with non-zero exit-code (1 - [matroska,webm @ 0x32c16c0] EBML header parsing failed
+/tv/test/3.mkv: Invalid data found when processing input)
+ at FFMpegCore.FFProbe.GetStreamJson(String filePath, Int32 outputCapacity, FFOptions ffOptions)
+ at NzbDrone.Core.MediaFiles.MediaInfo.VideoFileInfoReader.GetMediaInfo(String filename) in ./Sonarr.Core/MediaFiles/MediaInfo/VideoFileInfoReader.cs:line 68
+
+2024-12-14 01:23:11.8|Error|VideoFileInfoReader|Unable to parse media info from file: /tv/test/4.mkv
+
+[v4.0.11.2680] FFMpegCore.Exceptions.FFMpegException: ffprobe exited with non-zero exit-code (1 - [matroska,webm @ 0x228e6c0] EBML header parsing failed
+/tv/test/4.mkv: Invalid data found when processing input)
+ at FFMpegCore.FFProbe.GetStreamJson(String filePath, Int32 outputCapacity, FFOptions ffOptions)
+ at NzbDrone.Core.MediaFiles.MediaInfo.VideoFileInfoReader.GetMediaInfo(String filename) in ./Sonarr.Core/MediaFiles/MediaInfo/VideoFileInfoReader.cs:line 68
+
+2024-12-14 01:23:11.9|Error|VideoFileInfoReader|Unable to parse media info from file: /tv/test/5.mkv
+
+[v4.0.11.2680] FFMpegCore.Exceptions.FFMpegException: ffprobe exited with non-zero exit-code (1 - [matroska,webm @ 0x37e26c0] EBML header parsing failed
+/tv/test/5.mkv: Invalid data found when processing input)
+ at FFMpegCore.FFProbe.GetStreamJson(String filePath, Int32 outputCapacity, FFOptions ffOptions)
+ at NzbDrone.Core.MediaFiles.MediaInfo.VideoFileInfoReader.GetMediaInfo(String filename) in ./Sonarr.Core/MediaFiles/MediaInfo/VideoFileInfoReader.cs:line 68
+
+2024-12-14 01:23:11.9|Error|VideoFileInfoReader|Unable to parse media info from file: /tv/test/6.mkv
+
+[v4.0.11.2680] FFMpegCore.Exceptions.FFMpegException: ffprobe exited with non-zero exit-code (1 - [matroska,webm @ 0x303b6c0] EBML header parsing failed
+/tv/test/6.mkv: Invalid data found when processing input)
+ at FFMpegCore.FFProbe.GetStreamJson(String filePath, Int32 outputCapacity, FFOptions ffOptions)
+ at NzbDrone.Core.MediaFiles.MediaInfo.VideoFileInfoReader.GetMediaInfo(String filename) in ./Sonarr.Core/MediaFiles/MediaInfo/VideoFileInfoReader.cs:line 68
+
+2024-12-14 01:23:11.9|Error|VideoFileInfoReader|Unable to parse media info from file: /tv/test/7.mkv
+
+[v4.0.11.2680] FFMpegCore.Exceptions.FFMpegException: ffprobe exited with non-zero exit-code (1 - [matroska,webm @ 0x30ab6c0] EBML header parsing failed
+/tv/test/7.mkv: Invalid data found when processing input)
+ at FFMpegCore.FFProbe.GetStreamJson(String filePath, Int32 outputCapacity, FFOptions ffOptions)
+ at NzbDrone.Core.MediaFiles.MediaInfo.VideoFileInfoReader.GetMediaInfo(String filename) in ./Sonarr.Core/MediaFiles/MediaInfo/VideoFileInfoReader.cs:line 68
+
+2024-12-14 01:23:12.0|Error|VideoFileInfoReader|Unable to parse media info from file: /tv/test/8.mkv
+
+[v4.0.11.2680] FFMpegCore.Exceptions.FFMpegException: ffprobe exited with non-zero exit-code (1 - [matroska,webm @ 0x36576c0] EBML header parsing failed
+/tv/test/8.mkv: Invalid data found when processing input)
+ at FFMpegCore.FFProbe.GetStreamJson(String filePath, Int32 outputCapacity, FFOptions ffOptions)
+ at NzbDrone.Core.MediaFiles.MediaInfo.VideoFileInfoReader.GetMediaInfo(String filename) in ./Sonarr.Core/MediaFiles/MediaInfo/VideoFileInfoReader.cs:line 68
+
+2024-12-14 01:23:12.0|Error|EventAggregator|NotificationService failed while processing [UntrackedDownloadCompletedEvent]
+
+[v4.0.11.2680] System.NullReferenceException: Object reference not set to an instance of an object.
+ at NzbDrone.Core.Notifications.NotificationService.GetQualityString(Series series, QualityModel quality) in ./Sonarr.Core/Notifications/NotificationService.cs:line 88
+ at NzbDrone.Core.Notifications.NotificationService.GetMessage(Series series, List`1 episodes, QualityModel quality) in ./Sonarr.Core/Notifications/NotificationService.cs:line 50
+ at NzbDrone.Core.Notifications.NotificationService.Handle(UntrackedDownloadCompletedEvent message) in ./Sonarr.Core/Notifications/NotificationService.cs:line 262
+ at NzbDrone.Core.Messaging.Events.EventAggregator.PublishEvent[TEvent](TEvent event)
+
+2024-12-14 01:23:19.5|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:23:19.5|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:23:46.6|Error|VideoFileInfoReader|Unable to parse media info from file: /tv/test/4.mkv
+
+[v4.0.11.2680] FFMpegCore.Exceptions.FFMpegException: ffprobe exited with non-zero exit-code (1 - [matroska,webm @ 0x23176c0] EBML header parsing failed
+/tv/test/4.mkv: Invalid data found when processing input)
+ at FFMpegCore.FFProbe.GetStreamJson(String filePath, Int32 outputCapacity, FFOptions ffOptions)
+ at NzbDrone.Core.MediaFiles.MediaInfo.VideoFileInfoReader.GetMediaInfo(String filename) in ./Sonarr.Core/MediaFiles/MediaInfo/VideoFileInfoReader.cs:line 68
+
+2024-12-14 01:23:46.6|Error|DetectSample|Failed to get runtime from the file, make sure ffprobe is available
+2024-12-14 01:23:46.6|Error|VideoFileInfoReader|Unable to parse media info from file: /tv/test/3.mkv
+
+[v4.0.11.2680] FFMpegCore.Exceptions.FFMpegException: ffprobe exited with non-zero exit-code (1 - [matroska,webm @ 0x2d666c0] EBML header parsing failed
+/tv/test/3.mkv: Invalid data found when processing input)
+ at FFMpegCore.FFProbe.GetStreamJson(String filePath, Int32 outputCapacity, FFOptions ffOptions)
+ at NzbDrone.Core.MediaFiles.MediaInfo.VideoFileInfoReader.GetMediaInfo(String filename) in ./Sonarr.Core/MediaFiles/MediaInfo/VideoFileInfoReader.cs:line 68
+
+2024-12-14 01:23:46.6|Error|DetectSample|Failed to get runtime from the file, make sure ffprobe is available
+2024-12-14 01:23:46.6|Error|VideoFileInfoReader|Unable to parse media info from file: /tv/test/5.mkv
+
+[v4.0.11.2680] FFMpegCore.Exceptions.FFMpegException: ffprobe exited with non-zero exit-code (1 - [matroska,webm @ 0x2f996c0] EBML header parsing failed
+/tv/test/5.mkv: Invalid data found when processing input)
+ at FFMpegCore.FFProbe.GetStreamJson(String filePath, Int32 outputCapacity, FFOptions ffOptions)
+ at NzbDrone.Core.MediaFiles.MediaInfo.VideoFileInfoReader.GetMediaInfo(String filename) in ./Sonarr.Core/MediaFiles/MediaInfo/VideoFileInfoReader.cs:line 68
+
+2024-12-14 01:23:46.6|Error|DetectSample|Failed to get runtime from the file, make sure ffprobe is available
+2024-12-14 01:23:46.6|Error|VideoFileInfoReader|Unable to parse media info from file: /tv/test/2.mkv
+
+[v4.0.11.2680] FFMpegCore.Exceptions.FFMpegException: ffprobe exited with non-zero exit-code (1 - [matroska,webm @ 0x30db6c0] EBML header parsing failed
+/tv/test/2.mkv: Invalid data found when processing input)
+ at FFMpegCore.FFProbe.GetStreamJson(String filePath, Int32 outputCapacity, FFOptions ffOptions)
+ at NzbDrone.Core.MediaFiles.MediaInfo.VideoFileInfoReader.GetMediaInfo(String filename) in ./Sonarr.Core/MediaFiles/MediaInfo/VideoFileInfoReader.cs:line 68
+
+2024-12-14 01:23:46.6|Error|DetectSample|Failed to get runtime from the file, make sure ffprobe is available
+2024-12-14 01:23:46.6|Error|VideoFileInfoReader|Unable to parse media info from file: /tv/test/1.mkv
+
+[v4.0.11.2680] FFMpegCore.Exceptions.FFMpegException: ffprobe exited with non-zero exit-code (1 - [matroska,webm @ 0x37936c0] EBML header parsing failed
+/tv/test/1.mkv: Invalid data found when processing input)
+ at FFMpegCore.FFProbe.GetStreamJson(String filePath, Int32 outputCapacity, FFOptions ffOptions)
+ at NzbDrone.Core.MediaFiles.MediaInfo.VideoFileInfoReader.GetMediaInfo(String filename) in ./Sonarr.Core/MediaFiles/MediaInfo/VideoFileInfoReader.cs:line 68
+
+2024-12-14 01:23:46.6|Error|DetectSample|Failed to get runtime from the file, make sure ffprobe is available
+2024-12-14 01:23:52.7|Fatal|SonarrErrorPipeline|Request Failed. POST /api/v3/manualimport
+
+[v4.0.11.2680] NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AugmentingFailedException: Unable to parse episode info from path: /tv/test/1.mkv
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AggregationService.Augment(LocalEpisode localEpisode, DownloadClientItem downloadClientItem) in ./Sonarr.Core/MediaFiles/EpisodeImport/Aggregation/AggregationService.cs:line 51
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Manual.ManualImportService.ReprocessItem(String path, String downloadId, Int32 seriesId, Nullable`1 seasonNumber, List`1 episodeIds, String releaseGroup, QualityModel quality, List`1 languages, Int32 indexerFlags, ReleaseType releaseType) in ./Sonarr.Core/MediaFiles/EpisodeImport/Manual/ManualImportService.cs:line 188
+ at Sonarr.Api.V3.ManualImport.ManualImportController.ReprocessItems(List`1 items) in ./Sonarr.Api.V3/ManualImport/ManualImportController.cs:line 42
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.SyncObjectResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeActionMethodAsync()
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeNextActionFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Routing.EndpointMiddleware.g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
+ at Sonarr.Http.Middleware.BufferingMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/BufferingMiddleware.cs:line 28
+ at Sonarr.Http.Middleware.IfModifiedMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/IfModifiedMiddleware.cs:line 41
+ at Sonarr.Http.Middleware.CacheHeaderMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/CacheHeaderMiddleware.cs:line 33
+ at Sonarr.Http.Middleware.StartingUpMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/StartingUpMiddleware.cs:line 38
+ at Sonarr.Http.Middleware.UrlBaseMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/UrlBaseMiddleware.cs:line 29
+ at Sonarr.Http.Middleware.VersionMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/VersionMiddleware.cs:line 29
+ at Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.InvokeCore(HttpContext context)
+ at Microsoft.AspNetCore.Authorization.Policy.AuthorizationMiddlewareResultHandler.HandleAsync(RequestDelegate next, HttpContext context, AuthorizationPolicy policy, PolicyAuthorizationResult authorizeResult)
+ at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.g__Awaited|6_0(ExceptionHandlerMiddleware middleware, HttpContext context, Task task)
+
+2024-12-14 01:23:54.9|Fatal|SonarrErrorPipeline|Request Failed. POST /api/v3/manualimport
+
+[v4.0.11.2680] NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AugmentingFailedException: Unable to parse episode info from path: /tv/test/2.mkv
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AggregationService.Augment(LocalEpisode localEpisode, DownloadClientItem downloadClientItem) in ./Sonarr.Core/MediaFiles/EpisodeImport/Aggregation/AggregationService.cs:line 51
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Manual.ManualImportService.ReprocessItem(String path, String downloadId, Int32 seriesId, Nullable`1 seasonNumber, List`1 episodeIds, String releaseGroup, QualityModel quality, List`1 languages, Int32 indexerFlags, ReleaseType releaseType) in ./Sonarr.Core/MediaFiles/EpisodeImport/Manual/ManualImportService.cs:line 188
+ at Sonarr.Api.V3.ManualImport.ManualImportController.ReprocessItems(List`1 items) in ./Sonarr.Api.V3/ManualImport/ManualImportController.cs:line 42
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.SyncObjectResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeActionMethodAsync()
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeNextActionFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Routing.EndpointMiddleware.g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
+ at Sonarr.Http.Middleware.BufferingMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/BufferingMiddleware.cs:line 28
+ at Sonarr.Http.Middleware.IfModifiedMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/IfModifiedMiddleware.cs:line 41
+ at Sonarr.Http.Middleware.CacheHeaderMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/CacheHeaderMiddleware.cs:line 33
+ at Sonarr.Http.Middleware.StartingUpMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/StartingUpMiddleware.cs:line 38
+ at Sonarr.Http.Middleware.UrlBaseMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/UrlBaseMiddleware.cs:line 29
+ at Sonarr.Http.Middleware.VersionMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/VersionMiddleware.cs:line 29
+ at Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.InvokeCore(HttpContext context)
+ at Microsoft.AspNetCore.Authorization.Policy.AuthorizationMiddlewareResultHandler.HandleAsync(RequestDelegate next, HttpContext context, AuthorizationPolicy policy, PolicyAuthorizationResult authorizeResult)
+ at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.g__Awaited|6_0(ExceptionHandlerMiddleware middleware, HttpContext context, Task task)
+
+2024-12-14 01:23:57.6|Fatal|SonarrErrorPipeline|Request Failed. POST /api/v3/manualimport
+
+[v4.0.11.2680] NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AugmentingFailedException: Unable to parse episode info from path: /tv/test/3.mkv
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AggregationService.Augment(LocalEpisode localEpisode, DownloadClientItem downloadClientItem) in ./Sonarr.Core/MediaFiles/EpisodeImport/Aggregation/AggregationService.cs:line 51
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Manual.ManualImportService.ReprocessItem(String path, String downloadId, Int32 seriesId, Nullable`1 seasonNumber, List`1 episodeIds, String releaseGroup, QualityModel quality, List`1 languages, Int32 indexerFlags, ReleaseType releaseType) in ./Sonarr.Core/MediaFiles/EpisodeImport/Manual/ManualImportService.cs:line 188
+ at Sonarr.Api.V3.ManualImport.ManualImportController.ReprocessItems(List`1 items) in ./Sonarr.Api.V3/ManualImport/ManualImportController.cs:line 42
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.SyncObjectResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeActionMethodAsync()
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeNextActionFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Routing.EndpointMiddleware.g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
+ at Sonarr.Http.Middleware.BufferingMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/BufferingMiddleware.cs:line 28
+ at Sonarr.Http.Middleware.IfModifiedMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/IfModifiedMiddleware.cs:line 41
+ at Sonarr.Http.Middleware.CacheHeaderMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/CacheHeaderMiddleware.cs:line 33
+ at Sonarr.Http.Middleware.StartingUpMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/StartingUpMiddleware.cs:line 38
+ at Sonarr.Http.Middleware.UrlBaseMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/UrlBaseMiddleware.cs:line 29
+ at Sonarr.Http.Middleware.VersionMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/VersionMiddleware.cs:line 29
+ at Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.InvokeCore(HttpContext context)
+ at Microsoft.AspNetCore.Authorization.Policy.AuthorizationMiddlewareResultHandler.HandleAsync(RequestDelegate next, HttpContext context, AuthorizationPolicy policy, PolicyAuthorizationResult authorizeResult)
+ at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.g__Awaited|6_0(ExceptionHandlerMiddleware middleware, HttpContext context, Task task)
+
+2024-12-14 01:23:59.4|Fatal|SonarrErrorPipeline|Request Failed. POST /api/v3/manualimport
+
+[v4.0.11.2680] NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AugmentingFailedException: Unable to parse episode info from path: /tv/test/4.mkv
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AggregationService.Augment(LocalEpisode localEpisode, DownloadClientItem downloadClientItem) in ./Sonarr.Core/MediaFiles/EpisodeImport/Aggregation/AggregationService.cs:line 51
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Manual.ManualImportService.ReprocessItem(String path, String downloadId, Int32 seriesId, Nullable`1 seasonNumber, List`1 episodeIds, String releaseGroup, QualityModel quality, List`1 languages, Int32 indexerFlags, ReleaseType releaseType) in ./Sonarr.Core/MediaFiles/EpisodeImport/Manual/ManualImportService.cs:line 144
+ at Sonarr.Api.V3.ManualImport.ManualImportController.ReprocessItems(List`1 items) in ./Sonarr.Api.V3/ManualImport/ManualImportController.cs:line 42
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.SyncObjectResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeActionMethodAsync()
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeNextActionFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Routing.EndpointMiddleware.g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
+ at Sonarr.Http.Middleware.BufferingMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/BufferingMiddleware.cs:line 28
+ at Sonarr.Http.Middleware.IfModifiedMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/IfModifiedMiddleware.cs:line 41
+ at Sonarr.Http.Middleware.CacheHeaderMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/CacheHeaderMiddleware.cs:line 33
+ at Sonarr.Http.Middleware.StartingUpMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/StartingUpMiddleware.cs:line 38
+ at Sonarr.Http.Middleware.UrlBaseMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/UrlBaseMiddleware.cs:line 29
+ at Sonarr.Http.Middleware.VersionMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/VersionMiddleware.cs:line 29
+ at Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.InvokeCore(HttpContext context)
+ at Microsoft.AspNetCore.Authorization.Policy.AuthorizationMiddlewareResultHandler.HandleAsync(RequestDelegate next, HttpContext context, AuthorizationPolicy policy, PolicyAuthorizationResult authorizeResult)
+ at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.g__Awaited|6_0(ExceptionHandlerMiddleware middleware, HttpContext context, Task task)
+
+2024-12-14 01:24:01.5|Fatal|SonarrErrorPipeline|Request Failed. POST /api/v3/manualimport
+
+[v4.0.11.2680] NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AugmentingFailedException: Unable to parse episode info from path: /tv/test/5.mkv
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AggregationService.Augment(LocalEpisode localEpisode, DownloadClientItem downloadClientItem) in ./Sonarr.Core/MediaFiles/EpisodeImport/Aggregation/AggregationService.cs:line 51
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Manual.ManualImportService.ReprocessItem(String path, String downloadId, Int32 seriesId, Nullable`1 seasonNumber, List`1 episodeIds, String releaseGroup, QualityModel quality, List`1 languages, Int32 indexerFlags, ReleaseType releaseType) in ./Sonarr.Core/MediaFiles/EpisodeImport/Manual/ManualImportService.cs:line 144
+ at Sonarr.Api.V3.ManualImport.ManualImportController.ReprocessItems(List`1 items) in ./Sonarr.Api.V3/ManualImport/ManualImportController.cs:line 42
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.SyncObjectResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeActionMethodAsync()
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeNextActionFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Routing.EndpointMiddleware.g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
+ at Sonarr.Http.Middleware.BufferingMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/BufferingMiddleware.cs:line 28
+ at Sonarr.Http.Middleware.IfModifiedMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/IfModifiedMiddleware.cs:line 41
+ at Sonarr.Http.Middleware.CacheHeaderMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/CacheHeaderMiddleware.cs:line 33
+ at Sonarr.Http.Middleware.StartingUpMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/StartingUpMiddleware.cs:line 38
+ at Sonarr.Http.Middleware.UrlBaseMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/UrlBaseMiddleware.cs:line 29
+ at Sonarr.Http.Middleware.VersionMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/VersionMiddleware.cs:line 29
+ at Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.InvokeCore(HttpContext context)
+ at Microsoft.AspNetCore.Authorization.Policy.AuthorizationMiddlewareResultHandler.HandleAsync(RequestDelegate next, HttpContext context, AuthorizationPolicy policy, PolicyAuthorizationResult authorizeResult)
+ at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.g__Awaited|6_0(ExceptionHandlerMiddleware middleware, HttpContext context, Task task)
+
+2024-12-14 01:24:08.4|Fatal|SonarrErrorPipeline|Request Failed. POST /api/v3/manualimport
+
+[v4.0.11.2680] NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AugmentingFailedException: Unable to parse episode info from path: /tv/test/4.mkv
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AggregationService.Augment(LocalEpisode localEpisode, DownloadClientItem downloadClientItem) in ./Sonarr.Core/MediaFiles/EpisodeImport/Aggregation/AggregationService.cs:line 51
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Manual.ManualImportService.ReprocessItem(String path, String downloadId, Int32 seriesId, Nullable`1 seasonNumber, List`1 episodeIds, String releaseGroup, QualityModel quality, List`1 languages, Int32 indexerFlags, ReleaseType releaseType) in ./Sonarr.Core/MediaFiles/EpisodeImport/Manual/ManualImportService.cs:line 144
+ at Sonarr.Api.V3.ManualImport.ManualImportController.ReprocessItems(List`1 items) in ./Sonarr.Api.V3/ManualImport/ManualImportController.cs:line 42
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.SyncObjectResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeActionMethodAsync()
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeNextActionFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Routing.EndpointMiddleware.g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
+ at Sonarr.Http.Middleware.BufferingMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/BufferingMiddleware.cs:line 28
+ at Sonarr.Http.Middleware.IfModifiedMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/IfModifiedMiddleware.cs:line 41
+ at Sonarr.Http.Middleware.CacheHeaderMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/CacheHeaderMiddleware.cs:line 33
+ at Sonarr.Http.Middleware.StartingUpMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/StartingUpMiddleware.cs:line 38
+ at Sonarr.Http.Middleware.UrlBaseMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/UrlBaseMiddleware.cs:line 29
+ at Sonarr.Http.Middleware.VersionMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/VersionMiddleware.cs:line 29
+ at Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.InvokeCore(HttpContext context)
+ at Microsoft.AspNetCore.Authorization.Policy.AuthorizationMiddlewareResultHandler.HandleAsync(RequestDelegate next, HttpContext context, AuthorizationPolicy policy, PolicyAuthorizationResult authorizeResult)
+ at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.g__Awaited|6_0(ExceptionHandlerMiddleware middleware, HttpContext context, Task task)
+
+2024-12-14 01:24:09.1|Error|VideoFileInfoReader|Unable to parse media info from file: /tv/test/1.mkv
+
+[v4.0.11.2680] FFMpegCore.Exceptions.FFMpegException: ffprobe exited with non-zero exit-code (1 - [matroska,webm @ 0x2aa46c0] EBML header parsing failed
+/tv/test/1.mkv: Invalid data found when processing input)
+ at FFMpegCore.FFProbe.GetStreamJson(String filePath, Int32 outputCapacity, FFOptions ffOptions)
+ at NzbDrone.Core.MediaFiles.MediaInfo.VideoFileInfoReader.GetMediaInfo(String filename) in ./Sonarr.Core/MediaFiles/MediaInfo/VideoFileInfoReader.cs:line 68
+
+2024-12-14 01:24:09.1|Error|VideoFileInfoReader|Unable to parse media info from file: /tv/test/2.mkv
+
+[v4.0.11.2680] FFMpegCore.Exceptions.FFMpegException: ffprobe exited with non-zero exit-code (1 - [matroska,webm @ 0x33a56c0] EBML header parsing failed
+/tv/test/2.mkv: Invalid data found when processing input)
+ at FFMpegCore.FFProbe.GetStreamJson(String filePath, Int32 outputCapacity, FFOptions ffOptions)
+ at NzbDrone.Core.MediaFiles.MediaInfo.VideoFileInfoReader.GetMediaInfo(String filename) in ./Sonarr.Core/MediaFiles/MediaInfo/VideoFileInfoReader.cs:line 68
+
+2024-12-14 01:24:09.2|Error|VideoFileInfoReader|Unable to parse media info from file: /tv/test/3.mkv
+
+[v4.0.11.2680] FFMpegCore.Exceptions.FFMpegException: ffprobe exited with non-zero exit-code (1 - [matroska,webm @ 0x2a236c0] EBML header parsing failed
+/tv/test/3.mkv: Invalid data found when processing input)
+ at FFMpegCore.FFProbe.GetStreamJson(String filePath, Int32 outputCapacity, FFOptions ffOptions)
+ at NzbDrone.Core.MediaFiles.MediaInfo.VideoFileInfoReader.GetMediaInfo(String filename) in ./Sonarr.Core/MediaFiles/MediaInfo/VideoFileInfoReader.cs:line 68
+
+2024-12-14 01:24:09.2|Error|VideoFileInfoReader|Unable to parse media info from file: /tv/test/4.mkv
+
+[v4.0.11.2680] FFMpegCore.Exceptions.FFMpegException: ffprobe exited with non-zero exit-code (1 - [matroska,webm @ 0x29846c0] EBML header parsing failed
+/tv/test/4.mkv: Invalid data found when processing input)
+ at FFMpegCore.FFProbe.GetStreamJson(String filePath, Int32 outputCapacity, FFOptions ffOptions)
+ at NzbDrone.Core.MediaFiles.MediaInfo.VideoFileInfoReader.GetMediaInfo(String filename) in ./Sonarr.Core/MediaFiles/MediaInfo/VideoFileInfoReader.cs:line 68
+
+2024-12-14 01:24:09.2|Error|VideoFileInfoReader|Unable to parse media info from file: /tv/test/5.mkv
+
+[v4.0.11.2680] FFMpegCore.Exceptions.FFMpegException: ffprobe exited with non-zero exit-code (1 - [matroska,webm @ 0x23586c0] EBML header parsing failed
+/tv/test/5.mkv: Invalid data found when processing input)
+ at FFMpegCore.FFProbe.GetStreamJson(String filePath, Int32 outputCapacity, FFOptions ffOptions)
+ at NzbDrone.Core.MediaFiles.MediaInfo.VideoFileInfoReader.GetMediaInfo(String filename) in ./Sonarr.Core/MediaFiles/MediaInfo/VideoFileInfoReader.cs:line 68
+
+2024-12-14 01:24:09.3|Error|EventAggregator|NotificationService failed while processing [UntrackedDownloadCompletedEvent]
+
+[v4.0.11.2680] System.NullReferenceException: Object reference not set to an instance of an object.
+ at NzbDrone.Core.Notifications.NotificationService.GetQualityString(Series series, QualityModel quality) in ./Sonarr.Core/Notifications/NotificationService.cs:line 88
+ at NzbDrone.Core.Notifications.NotificationService.GetMessage(Series series, List`1 episodes, QualityModel quality) in ./Sonarr.Core/Notifications/NotificationService.cs:line 50
+ at NzbDrone.Core.Notifications.NotificationService.Handle(UntrackedDownloadCompletedEvent message) in ./Sonarr.Core/Notifications/NotificationService.cs:line 262
+ at NzbDrone.Core.Messaging.Events.EventAggregator.PublishEvent[TEvent](TEvent event)
+
+2024-12-14 01:24:12.4|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:24:12.4|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:24:34.4|Error|VideoFileInfoReader|Unable to parse media info from file: /tv/test/3.mkv
+
+[v4.0.11.2680] FFMpegCore.Exceptions.FFMpegException: ffprobe exited with non-zero exit-code (1 - [matroska,webm @ 0x35a96c0] EBML header parsing failed
+/tv/test/3.mkv: Invalid data found when processing input)
+ at FFMpegCore.FFProbe.GetStreamJson(String filePath, Int32 outputCapacity, FFOptions ffOptions)
+ at NzbDrone.Core.MediaFiles.MediaInfo.VideoFileInfoReader.GetMediaInfo(String filename) in ./Sonarr.Core/MediaFiles/MediaInfo/VideoFileInfoReader.cs:line 68
+
+2024-12-14 01:24:34.4|Error|DetectSample|Failed to get runtime from the file, make sure ffprobe is available
+2024-12-14 01:24:34.4|Error|VideoFileInfoReader|Unable to parse media info from file: /tv/test/2.mkv
+
+[v4.0.11.2680] FFMpegCore.Exceptions.FFMpegException: ffprobe exited with non-zero exit-code (1 - [matroska,webm @ 0x26006c0] EBML header parsing failed
+/tv/test/2.mkv: Invalid data found when processing input)
+ at FFMpegCore.FFProbe.GetStreamJson(String filePath, Int32 outputCapacity, FFOptions ffOptions)
+ at NzbDrone.Core.MediaFiles.MediaInfo.VideoFileInfoReader.GetMediaInfo(String filename) in ./Sonarr.Core/MediaFiles/MediaInfo/VideoFileInfoReader.cs:line 68
+
+2024-12-14 01:24:34.4|Error|DetectSample|Failed to get runtime from the file, make sure ffprobe is available
+2024-12-14 01:24:34.4|Error|VideoFileInfoReader|Unable to parse media info from file: /tv/test/1.mkv
+
+[v4.0.11.2680] FFMpegCore.Exceptions.FFMpegException: ffprobe exited with non-zero exit-code (1 - [matroska,webm @ 0x384d6c0] EBML header parsing failed
+/tv/test/1.mkv: Invalid data found when processing input)
+ at FFMpegCore.FFProbe.GetStreamJson(String filePath, Int32 outputCapacity, FFOptions ffOptions)
+ at NzbDrone.Core.MediaFiles.MediaInfo.VideoFileInfoReader.GetMediaInfo(String filename) in ./Sonarr.Core/MediaFiles/MediaInfo/VideoFileInfoReader.cs:line 68
+
+2024-12-14 01:24:34.4|Error|DetectSample|Failed to get runtime from the file, make sure ffprobe is available
+2024-12-14 01:24:40.6|Fatal|SonarrErrorPipeline|Request Failed. POST /api/v3/manualimport
+
+[v4.0.11.2680] NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AugmentingFailedException: Unable to parse episode info from path: /tv/test/1.mkv
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AggregationService.Augment(LocalEpisode localEpisode, DownloadClientItem downloadClientItem) in ./Sonarr.Core/MediaFiles/EpisodeImport/Aggregation/AggregationService.cs:line 51
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Manual.ManualImportService.ReprocessItem(String path, String downloadId, Int32 seriesId, Nullable`1 seasonNumber, List`1 episodeIds, String releaseGroup, QualityModel quality, List`1 languages, Int32 indexerFlags, ReleaseType releaseType) in ./Sonarr.Core/MediaFiles/EpisodeImport/Manual/ManualImportService.cs:line 144
+ at Sonarr.Api.V3.ManualImport.ManualImportController.ReprocessItems(List`1 items) in ./Sonarr.Api.V3/ManualImport/ManualImportController.cs:line 42
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.SyncObjectResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeActionMethodAsync()
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeNextActionFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Routing.EndpointMiddleware.g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
+ at Sonarr.Http.Middleware.BufferingMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/BufferingMiddleware.cs:line 28
+ at Sonarr.Http.Middleware.IfModifiedMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/IfModifiedMiddleware.cs:line 41
+ at Sonarr.Http.Middleware.CacheHeaderMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/CacheHeaderMiddleware.cs:line 33
+ at Sonarr.Http.Middleware.StartingUpMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/StartingUpMiddleware.cs:line 38
+ at Sonarr.Http.Middleware.UrlBaseMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/UrlBaseMiddleware.cs:line 29
+ at Sonarr.Http.Middleware.VersionMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/VersionMiddleware.cs:line 29
+ at Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.InvokeCore(HttpContext context)
+ at Microsoft.AspNetCore.Authorization.Policy.AuthorizationMiddlewareResultHandler.HandleAsync(RequestDelegate next, HttpContext context, AuthorizationPolicy policy, PolicyAuthorizationResult authorizeResult)
+ at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.g__Awaited|6_0(ExceptionHandlerMiddleware middleware, HttpContext context, Task task)
+
+2024-12-14 01:24:46.2|Fatal|SonarrErrorPipeline|Request Failed. POST /api/v3/manualimport
+
+[v4.0.11.2680] NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AugmentingFailedException: Unable to parse episode info from path: /tv/test/2.mkv
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AggregationService.Augment(LocalEpisode localEpisode, DownloadClientItem downloadClientItem) in ./Sonarr.Core/MediaFiles/EpisodeImport/Aggregation/AggregationService.cs:line 51
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Manual.ManualImportService.ReprocessItem(String path, String downloadId, Int32 seriesId, Nullable`1 seasonNumber, List`1 episodeIds, String releaseGroup, QualityModel quality, List`1 languages, Int32 indexerFlags, ReleaseType releaseType) in ./Sonarr.Core/MediaFiles/EpisodeImport/Manual/ManualImportService.cs:line 144
+ at Sonarr.Api.V3.ManualImport.ManualImportController.ReprocessItems(List`1 items) in ./Sonarr.Api.V3/ManualImport/ManualImportController.cs:line 42
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.SyncObjectResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeActionMethodAsync()
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeNextActionFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Routing.EndpointMiddleware.g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
+ at Sonarr.Http.Middleware.BufferingMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/BufferingMiddleware.cs:line 28
+ at Sonarr.Http.Middleware.IfModifiedMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/IfModifiedMiddleware.cs:line 41
+ at Sonarr.Http.Middleware.CacheHeaderMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/CacheHeaderMiddleware.cs:line 33
+ at Sonarr.Http.Middleware.StartingUpMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/StartingUpMiddleware.cs:line 38
+ at Sonarr.Http.Middleware.UrlBaseMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/UrlBaseMiddleware.cs:line 29
+ at Sonarr.Http.Middleware.VersionMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/VersionMiddleware.cs:line 29
+ at Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.InvokeCore(HttpContext context)
+ at Microsoft.AspNetCore.Authorization.Policy.AuthorizationMiddlewareResultHandler.HandleAsync(RequestDelegate next, HttpContext context, AuthorizationPolicy policy, PolicyAuthorizationResult authorizeResult)
+ at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.g__Awaited|6_0(ExceptionHandlerMiddleware middleware, HttpContext context, Task task)
+
+2024-12-14 01:24:49.3|Fatal|SonarrErrorPipeline|Request Failed. POST /api/v3/manualimport
+
+[v4.0.11.2680] NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AugmentingFailedException: Unable to parse episode info from path: /tv/test/2.mkv
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AggregationService.Augment(LocalEpisode localEpisode, DownloadClientItem downloadClientItem) in ./Sonarr.Core/MediaFiles/EpisodeImport/Aggregation/AggregationService.cs:line 51
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Manual.ManualImportService.ReprocessItem(String path, String downloadId, Int32 seriesId, Nullable`1 seasonNumber, List`1 episodeIds, String releaseGroup, QualityModel quality, List`1 languages, Int32 indexerFlags, ReleaseType releaseType) in ./Sonarr.Core/MediaFiles/EpisodeImport/Manual/ManualImportService.cs:line 144
+ at Sonarr.Api.V3.ManualImport.ManualImportController.ReprocessItems(List`1 items) in ./Sonarr.Api.V3/ManualImport/ManualImportController.cs:line 42
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.SyncObjectResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeActionMethodAsync()
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeNextActionFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Routing.EndpointMiddleware.g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
+ at Sonarr.Http.Middleware.BufferingMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/BufferingMiddleware.cs:line 28
+ at Sonarr.Http.Middleware.IfModifiedMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/IfModifiedMiddleware.cs:line 41
+ at Sonarr.Http.Middleware.CacheHeaderMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/CacheHeaderMiddleware.cs:line 33
+ at Sonarr.Http.Middleware.StartingUpMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/StartingUpMiddleware.cs:line 38
+ at Sonarr.Http.Middleware.UrlBaseMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/UrlBaseMiddleware.cs:line 29
+ at Sonarr.Http.Middleware.VersionMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/VersionMiddleware.cs:line 29
+ at Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.InvokeCore(HttpContext context)
+ at Microsoft.AspNetCore.Authorization.Policy.AuthorizationMiddlewareResultHandler.HandleAsync(RequestDelegate next, HttpContext context, AuthorizationPolicy policy, PolicyAuthorizationResult authorizeResult)
+ at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.g__Awaited|6_0(ExceptionHandlerMiddleware middleware, HttpContext context, Task task)
+
+2024-12-14 01:24:51.1|Fatal|SonarrErrorPipeline|Request Failed. POST /api/v3/manualimport
+
+[v4.0.11.2680] NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AugmentingFailedException: Unable to parse episode info from path: /tv/test/3.mkv
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AggregationService.Augment(LocalEpisode localEpisode, DownloadClientItem downloadClientItem) in ./Sonarr.Core/MediaFiles/EpisodeImport/Aggregation/AggregationService.cs:line 51
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Manual.ManualImportService.ReprocessItem(String path, String downloadId, Int32 seriesId, Nullable`1 seasonNumber, List`1 episodeIds, String releaseGroup, QualityModel quality, List`1 languages, Int32 indexerFlags, ReleaseType releaseType) in ./Sonarr.Core/MediaFiles/EpisodeImport/Manual/ManualImportService.cs:line 144
+ at Sonarr.Api.V3.ManualImport.ManualImportController.ReprocessItems(List`1 items) in ./Sonarr.Api.V3/ManualImport/ManualImportController.cs:line 42
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.SyncObjectResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeActionMethodAsync()
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeNextActionFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Routing.EndpointMiddleware.g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
+ at Sonarr.Http.Middleware.BufferingMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/BufferingMiddleware.cs:line 28
+ at Sonarr.Http.Middleware.IfModifiedMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/IfModifiedMiddleware.cs:line 41
+ at Sonarr.Http.Middleware.CacheHeaderMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/CacheHeaderMiddleware.cs:line 33
+ at Sonarr.Http.Middleware.StartingUpMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/StartingUpMiddleware.cs:line 38
+ at Sonarr.Http.Middleware.UrlBaseMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/UrlBaseMiddleware.cs:line 29
+ at Sonarr.Http.Middleware.VersionMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/VersionMiddleware.cs:line 29
+ at Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.InvokeCore(HttpContext context)
+ at Microsoft.AspNetCore.Authorization.Policy.AuthorizationMiddlewareResultHandler.HandleAsync(RequestDelegate next, HttpContext context, AuthorizationPolicy policy, PolicyAuthorizationResult authorizeResult)
+ at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.g__Awaited|6_0(ExceptionHandlerMiddleware middleware, HttpContext context, Task task)
+
+2024-12-14 01:24:57.5|Fatal|SonarrErrorPipeline|Request Failed. POST /api/v3/manualimport
+
+[v4.0.11.2680] NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AugmentingFailedException: Unable to parse episode info from path: /tv/test/3.mkv
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AggregationService.Augment(LocalEpisode localEpisode, DownloadClientItem downloadClientItem) in ./Sonarr.Core/MediaFiles/EpisodeImport/Aggregation/AggregationService.cs:line 51
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Manual.ManualImportService.ReprocessItem(String path, String downloadId, Int32 seriesId, Nullable`1 seasonNumber, List`1 episodeIds, String releaseGroup, QualityModel quality, List`1 languages, Int32 indexerFlags, ReleaseType releaseType) in ./Sonarr.Core/MediaFiles/EpisodeImport/Manual/ManualImportService.cs:line 144
+ at Sonarr.Api.V3.ManualImport.ManualImportController.ReprocessItems(List`1 items) in ./Sonarr.Api.V3/ManualImport/ManualImportController.cs:line 42
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.SyncObjectResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeActionMethodAsync()
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeNextActionFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Routing.EndpointMiddleware.g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
+ at Sonarr.Http.Middleware.BufferingMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/BufferingMiddleware.cs:line 28
+ at Sonarr.Http.Middleware.IfModifiedMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/IfModifiedMiddleware.cs:line 41
+ at Sonarr.Http.Middleware.CacheHeaderMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/CacheHeaderMiddleware.cs:line 33
+ at Sonarr.Http.Middleware.StartingUpMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/StartingUpMiddleware.cs:line 38
+ at Sonarr.Http.Middleware.UrlBaseMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/UrlBaseMiddleware.cs:line 29
+ at Sonarr.Http.Middleware.VersionMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/VersionMiddleware.cs:line 29
+ at Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.InvokeCore(HttpContext context)
+ at Microsoft.AspNetCore.Authorization.Policy.AuthorizationMiddlewareResultHandler.HandleAsync(RequestDelegate next, HttpContext context, AuthorizationPolicy policy, PolicyAuthorizationResult authorizeResult)
+ at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.g__Awaited|6_0(ExceptionHandlerMiddleware middleware, HttpContext context, Task task)
+
+2024-12-14 01:24:59.0|Error|VideoFileInfoReader|Unable to parse media info from file: /tv/test/1.mkv
+
+[v4.0.11.2680] FFMpegCore.Exceptions.FFMpegException: ffprobe exited with non-zero exit-code (1 - [matroska,webm @ 0x23376c0] EBML header parsing failed
+/tv/test/1.mkv: Invalid data found when processing input)
+ at FFMpegCore.FFProbe.GetStreamJson(String filePath, Int32 outputCapacity, FFOptions ffOptions)
+ at NzbDrone.Core.MediaFiles.MediaInfo.VideoFileInfoReader.GetMediaInfo(String filename) in ./Sonarr.Core/MediaFiles/MediaInfo/VideoFileInfoReader.cs:line 68
+
+2024-12-14 01:24:59.0|Error|VideoFileInfoReader|Unable to parse media info from file: /tv/test/2.mkv
+
+[v4.0.11.2680] FFMpegCore.Exceptions.FFMpegException: ffprobe exited with non-zero exit-code (1 - [matroska,webm @ 0x2ae36c0] EBML header parsing failed
+/tv/test/2.mkv: Invalid data found when processing input)
+ at FFMpegCore.FFProbe.GetStreamJson(String filePath, Int32 outputCapacity, FFOptions ffOptions)
+ at NzbDrone.Core.MediaFiles.MediaInfo.VideoFileInfoReader.GetMediaInfo(String filename) in ./Sonarr.Core/MediaFiles/MediaInfo/VideoFileInfoReader.cs:line 68
+
+2024-12-14 01:24:59.1|Error|VideoFileInfoReader|Unable to parse media info from file: /tv/test/3.mkv
+
+[v4.0.11.2680] FFMpegCore.Exceptions.FFMpegException: ffprobe exited with non-zero exit-code (1 - [matroska,webm @ 0x26ad6c0] EBML header parsing failed
+/tv/test/3.mkv: Invalid data found when processing input)
+ at FFMpegCore.FFProbe.GetStreamJson(String filePath, Int32 outputCapacity, FFOptions ffOptions)
+ at NzbDrone.Core.MediaFiles.MediaInfo.VideoFileInfoReader.GetMediaInfo(String filename) in ./Sonarr.Core/MediaFiles/MediaInfo/VideoFileInfoReader.cs:line 68
+
+2024-12-14 01:24:59.1|Error|EventAggregator|NotificationService failed while processing [UntrackedDownloadCompletedEvent]
+
+[v4.0.11.2680] System.NullReferenceException: Object reference not set to an instance of an object.
+ at NzbDrone.Core.Notifications.NotificationService.GetQualityString(Series series, QualityModel quality) in ./Sonarr.Core/Notifications/NotificationService.cs:line 88
+ at NzbDrone.Core.Notifications.NotificationService.GetMessage(Series series, List`1 episodes, QualityModel quality) in ./Sonarr.Core/Notifications/NotificationService.cs:line 50
+ at NzbDrone.Core.Notifications.NotificationService.Handle(UntrackedDownloadCompletedEvent message) in ./Sonarr.Core/Notifications/NotificationService.cs:line 262
+ at NzbDrone.Core.Messaging.Events.EventAggregator.PublishEvent[TEvent](TEvent event)
+
+2024-12-14 01:25:19.8|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:25:19.8|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:25:19.8|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:25:19.8|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:25:19.8|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:25:19.8|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:25:20.0|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:25:20.0|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:25:20.0|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:25:20.0|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:25:20.0|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:25:20.1|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:25:20.1|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:25:20.2|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:25:20.2|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:25:22.1|Info|AddSeriesService|Adding Series [268156][Sense8] Path: [/tv/Sense8]
+2024-12-14 01:25:22.2|Info|RefreshSeriesService|Updating Sense8
+2024-12-14 01:25:22.2|Info|RefreshEpisodeService|Starting episode info refresh for: [268156][Sense8]
+2024-12-14 01:25:22.2|Info|RefreshEpisodeService|Finished episode refresh for series: [268156][Sense8].
+2024-12-14 01:25:22.2|Info|MediaCoverService|Downloading Banner for [268156][Sense8] https://artworks.thetvdb.com/banners/graphical/268156-g3.jpg
+2024-12-14 01:25:22.2|Info|DiskScanService|Scanning Sense8
+2024-12-14 01:25:22.2|Info|DiskScanService|Completed scanning disk for Sense8
+2024-12-14 01:25:22.2|Info|SeriesScannedHandler|[Sense8] was recently added, performing post-add actions
+2024-12-14 01:25:22.2|Info|MediaCoverService|Downloading Poster for [268156][Sense8] https://artworks.thetvdb.com/banners/posters/268156-6.jpg
+2024-12-14 01:25:22.3|Info|MediaCoverService|Downloading Fanart for [268156][Sense8] https://artworks.thetvdb.com/banners/fanart/original/268156-5.jpg
+2024-12-14 01:25:22.3|Info|MediaCoverService|Downloading Clearlogo for [268156][Sense8] https://artworks.thetvdb.com/banners/v4/series/268156/clearlogo/611b867ed111a.png
+2024-12-14 01:25:22.4|Info|ExistingMetadataImporter|Found 0 existing metadata files
+2024-12-14 01:25:22.4|Info|ExistingSubtitleImporter|Found 0 existing subtitle files
+2024-12-14 01:25:22.4|Info|ExistingOtherExtraImporter|Found 0 existing other extra files
+2024-12-14 01:25:22.4|Info|ExistingExtraFileService|Found 0 possible extra files, imported 0 files.
+2024-12-14 01:25:22.4|Info|MetadataService|Series folder does not exist, skipping metadata creation
+2024-12-14 01:25:22.4|Info|MetadataService|Series folder does not exist, skipping metadata image creation
+2024-12-14 01:25:23.4|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:25:27.1|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:25:27.1|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:25:46.9|Error|VideoFileInfoReader|Unable to parse media info from file: /tv/test/4.mkv
+
+[v4.0.11.2680] FFMpegCore.Exceptions.FFMpegException: ffprobe exited with non-zero exit-code (1 - [matroska,webm @ 0x1f676c0] EBML header parsing failed
+/tv/test/4.mkv: Invalid data found when processing input)
+ at FFMpegCore.FFProbe.GetStreamJson(String filePath, Int32 outputCapacity, FFOptions ffOptions)
+ at NzbDrone.Core.MediaFiles.MediaInfo.VideoFileInfoReader.GetMediaInfo(String filename) in ./Sonarr.Core/MediaFiles/MediaInfo/VideoFileInfoReader.cs:line 68
+
+2024-12-14 01:25:46.9|Error|DetectSample|Failed to get runtime from the file, make sure ffprobe is available
+2024-12-14 01:25:46.9|Error|VideoFileInfoReader|Unable to parse media info from file: /tv/test/3.mkv
+
+[v4.0.11.2680] FFMpegCore.Exceptions.FFMpegException: ffprobe exited with non-zero exit-code (1 - [matroska,webm @ 0x1bdb6c0] EBML header parsing failed
+/tv/test/3.mkv: Invalid data found when processing input)
+ at FFMpegCore.FFProbe.GetStreamJson(String filePath, Int32 outputCapacity, FFOptions ffOptions)
+ at NzbDrone.Core.MediaFiles.MediaInfo.VideoFileInfoReader.GetMediaInfo(String filename) in ./Sonarr.Core/MediaFiles/MediaInfo/VideoFileInfoReader.cs:line 68
+
+2024-12-14 01:25:46.9|Error|DetectSample|Failed to get runtime from the file, make sure ffprobe is available
+2024-12-14 01:25:46.9|Error|VideoFileInfoReader|Unable to parse media info from file: /tv/test/5.mkv
+
+[v4.0.11.2680] FFMpegCore.Exceptions.FFMpegException: ffprobe exited with non-zero exit-code (1 - [matroska,webm @ 0x30986c0] EBML header parsing failed
+/tv/test/5.mkv: Invalid data found when processing input)
+ at FFMpegCore.FFProbe.GetStreamJson(String filePath, Int32 outputCapacity, FFOptions ffOptions)
+ at NzbDrone.Core.MediaFiles.MediaInfo.VideoFileInfoReader.GetMediaInfo(String filename) in ./Sonarr.Core/MediaFiles/MediaInfo/VideoFileInfoReader.cs:line 68
+
+2024-12-14 01:25:46.9|Error|DetectSample|Failed to get runtime from the file, make sure ffprobe is available
+2024-12-14 01:25:46.9|Error|VideoFileInfoReader|Unable to parse media info from file: /tv/test/2.mkv
+
+[v4.0.11.2680] FFMpegCore.Exceptions.FFMpegException: ffprobe exited with non-zero exit-code (1 - [matroska,webm @ 0x340a6c0] EBML header parsing failed
+/tv/test/2.mkv: Invalid data found when processing input)
+ at FFMpegCore.FFProbe.GetStreamJson(String filePath, Int32 outputCapacity, FFOptions ffOptions)
+ at NzbDrone.Core.MediaFiles.MediaInfo.VideoFileInfoReader.GetMediaInfo(String filename) in ./Sonarr.Core/MediaFiles/MediaInfo/VideoFileInfoReader.cs:line 68
+
+2024-12-14 01:25:46.9|Error|DetectSample|Failed to get runtime from the file, make sure ffprobe is available
+2024-12-14 01:25:46.9|Error|VideoFileInfoReader|Unable to parse media info from file: /tv/test/1.mkv
+
+[v4.0.11.2680] FFMpegCore.Exceptions.FFMpegException: ffprobe exited with non-zero exit-code (1 - [matroska,webm @ 0x31376c0] EBML header parsing failed
+/tv/test/1.mkv: Invalid data found when processing input)
+ at FFMpegCore.FFProbe.GetStreamJson(String filePath, Int32 outputCapacity, FFOptions ffOptions)
+ at NzbDrone.Core.MediaFiles.MediaInfo.VideoFileInfoReader.GetMediaInfo(String filename) in ./Sonarr.Core/MediaFiles/MediaInfo/VideoFileInfoReader.cs:line 140
+
+2024-12-14 01:25:46.9|Error|DetectSample|Failed to get runtime from the file, make sure ffprobe is available
+2024-12-14 01:25:47.0|Error|VideoFileInfoReader|Unable to parse media info from file: /tv/test/6.mkv
+
+[v4.0.11.2680] FFMpegCore.Exceptions.FFMpegException: ffprobe exited with non-zero exit-code (1 - [matroska,webm @ 0x34f46c0] EBML header parsing failed
+/tv/test/6.mkv: Invalid data found when processing input)
+ at FFMpegCore.FFProbe.GetStreamJson(String filePath, Int32 outputCapacity, FFOptions ffOptions)
+ at NzbDrone.Core.MediaFiles.MediaInfo.VideoFileInfoReader.GetMediaInfo(String filename) in ./Sonarr.Core/MediaFiles/MediaInfo/VideoFileInfoReader.cs:line 140
+
+2024-12-14 01:25:47.0|Error|DetectSample|Failed to get runtime from the file, make sure ffprobe is available
+2024-12-14 01:25:47.0|Error|VideoFileInfoReader|Unable to parse media info from file: /tv/test/7.mkv
+
+[v4.0.11.2680] FFMpegCore.Exceptions.FFMpegException: ffprobe exited with non-zero exit-code (1 - [matroska,webm @ 0x36436c0] EBML header parsing failed
+/tv/test/7.mkv: Invalid data found when processing input)
+ at FFMpegCore.FFProbe.GetStreamJson(String filePath, Int32 outputCapacity, FFOptions ffOptions)
+ at NzbDrone.Core.MediaFiles.MediaInfo.VideoFileInfoReader.GetMediaInfo(String filename) in ./Sonarr.Core/MediaFiles/MediaInfo/VideoFileInfoReader.cs:line 140
+
+2024-12-14 01:25:47.0|Error|DetectSample|Failed to get runtime from the file, make sure ffprobe is available
+2024-12-14 01:25:47.0|Error|VideoFileInfoReader|Unable to parse media info from file: /tv/test/8.mkv
+
+[v4.0.11.2680] FFMpegCore.Exceptions.FFMpegException: ffprobe exited with non-zero exit-code (1 - [matroska,webm @ 0x1ba46c0] EBML header parsing failed
+/tv/test/8.mkv: Invalid data found when processing input)
+ at FFMpegCore.FFProbe.GetStreamJson(String filePath, Int32 outputCapacity, FFOptions ffOptions)
+ at NzbDrone.Core.MediaFiles.MediaInfo.VideoFileInfoReader.GetMediaInfo(String filename) in ./Sonarr.Core/MediaFiles/MediaInfo/VideoFileInfoReader.cs:line 140
+
+2024-12-14 01:25:47.0|Error|DetectSample|Failed to get runtime from the file, make sure ffprobe is available
+2024-12-14 01:25:56.2|Fatal|SonarrErrorPipeline|Request Failed. POST /api/v3/manualimport
+
+[v4.0.11.2680] NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AugmentingFailedException: Unable to parse episode info from path: /tv/test/1.mkv
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AggregationService.Augment(LocalEpisode localEpisode, DownloadClientItem downloadClientItem) in ./Sonarr.Core/MediaFiles/EpisodeImport/Aggregation/AggregationService.cs:line 51
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Manual.ManualImportService.ReprocessItem(String path, String downloadId, Int32 seriesId, Nullable`1 seasonNumber, List`1 episodeIds, String releaseGroup, QualityModel quality, List`1 languages, Int32 indexerFlags, ReleaseType releaseType) in ./Sonarr.Core/MediaFiles/EpisodeImport/Manual/ManualImportService.cs:line 144
+ at Sonarr.Api.V3.ManualImport.ManualImportController.ReprocessItems(List`1 items) in ./Sonarr.Api.V3/ManualImport/ManualImportController.cs:line 42
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.SyncObjectResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeActionMethodAsync()
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeNextActionFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Routing.EndpointMiddleware.g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
+ at Sonarr.Http.Middleware.BufferingMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/BufferingMiddleware.cs:line 28
+ at Sonarr.Http.Middleware.IfModifiedMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/IfModifiedMiddleware.cs:line 41
+ at Sonarr.Http.Middleware.CacheHeaderMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/CacheHeaderMiddleware.cs:line 33
+ at Sonarr.Http.Middleware.StartingUpMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/StartingUpMiddleware.cs:line 38
+ at Sonarr.Http.Middleware.UrlBaseMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/UrlBaseMiddleware.cs:line 29
+ at Sonarr.Http.Middleware.VersionMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/VersionMiddleware.cs:line 29
+ at Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.InvokeCore(HttpContext context)
+ at Microsoft.AspNetCore.Authorization.Policy.AuthorizationMiddlewareResultHandler.HandleAsync(RequestDelegate next, HttpContext context, AuthorizationPolicy policy, PolicyAuthorizationResult authorizeResult)
+ at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.g__Awaited|6_0(ExceptionHandlerMiddleware middleware, HttpContext context, Task task)
+
+2024-12-14 01:25:58.6|Fatal|SonarrErrorPipeline|Request Failed. POST /api/v3/manualimport
+
+[v4.0.11.2680] NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AugmentingFailedException: Unable to parse episode info from path: /tv/test/2.mkv
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AggregationService.Augment(LocalEpisode localEpisode, DownloadClientItem downloadClientItem) in ./Sonarr.Core/MediaFiles/EpisodeImport/Aggregation/AggregationService.cs:line 51
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Manual.ManualImportService.ReprocessItem(String path, String downloadId, Int32 seriesId, Nullable`1 seasonNumber, List`1 episodeIds, String releaseGroup, QualityModel quality, List`1 languages, Int32 indexerFlags, ReleaseType releaseType) in ./Sonarr.Core/MediaFiles/EpisodeImport/Manual/ManualImportService.cs:line 144
+ at Sonarr.Api.V3.ManualImport.ManualImportController.ReprocessItems(List`1 items) in ./Sonarr.Api.V3/ManualImport/ManualImportController.cs:line 42
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.SyncObjectResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeActionMethodAsync()
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeNextActionFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Routing.EndpointMiddleware.g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
+ at Sonarr.Http.Middleware.BufferingMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/BufferingMiddleware.cs:line 28
+ at Sonarr.Http.Middleware.IfModifiedMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/IfModifiedMiddleware.cs:line 41
+ at Sonarr.Http.Middleware.CacheHeaderMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/CacheHeaderMiddleware.cs:line 33
+ at Sonarr.Http.Middleware.StartingUpMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/StartingUpMiddleware.cs:line 38
+ at Sonarr.Http.Middleware.UrlBaseMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/UrlBaseMiddleware.cs:line 29
+ at Sonarr.Http.Middleware.VersionMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/VersionMiddleware.cs:line 29
+ at Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.InvokeCore(HttpContext context)
+ at Microsoft.AspNetCore.Authorization.Policy.AuthorizationMiddlewareResultHandler.HandleAsync(RequestDelegate next, HttpContext context, AuthorizationPolicy policy, PolicyAuthorizationResult authorizeResult)
+ at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.g__Awaited|6_0(ExceptionHandlerMiddleware middleware, HttpContext context, Task task)
+
+2024-12-14 01:26:00.8|Fatal|SonarrErrorPipeline|Request Failed. POST /api/v3/manualimport
+
+[v4.0.11.2680] NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AugmentingFailedException: Unable to parse episode info from path: /tv/test/3.mkv
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AggregationService.Augment(LocalEpisode localEpisode, DownloadClientItem downloadClientItem) in ./Sonarr.Core/MediaFiles/EpisodeImport/Aggregation/AggregationService.cs:line 51
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Manual.ManualImportService.ReprocessItem(String path, String downloadId, Int32 seriesId, Nullable`1 seasonNumber, List`1 episodeIds, String releaseGroup, QualityModel quality, List`1 languages, Int32 indexerFlags, ReleaseType releaseType) in ./Sonarr.Core/MediaFiles/EpisodeImport/Manual/ManualImportService.cs:line 144
+ at Sonarr.Api.V3.ManualImport.ManualImportController.ReprocessItems(List`1 items) in ./Sonarr.Api.V3/ManualImport/ManualImportController.cs:line 42
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.SyncObjectResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeActionMethodAsync()
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeNextActionFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Routing.EndpointMiddleware.g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
+ at Sonarr.Http.Middleware.BufferingMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/BufferingMiddleware.cs:line 28
+ at Sonarr.Http.Middleware.IfModifiedMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/IfModifiedMiddleware.cs:line 41
+ at Sonarr.Http.Middleware.CacheHeaderMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/CacheHeaderMiddleware.cs:line 33
+ at Sonarr.Http.Middleware.StartingUpMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/StartingUpMiddleware.cs:line 38
+ at Sonarr.Http.Middleware.UrlBaseMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/UrlBaseMiddleware.cs:line 29
+ at Sonarr.Http.Middleware.VersionMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/VersionMiddleware.cs:line 29
+ at Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.InvokeCore(HttpContext context)
+ at Microsoft.AspNetCore.Authorization.Policy.AuthorizationMiddlewareResultHandler.HandleAsync(RequestDelegate next, HttpContext context, AuthorizationPolicy policy, PolicyAuthorizationResult authorizeResult)
+ at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.g__Awaited|6_0(ExceptionHandlerMiddleware middleware, HttpContext context, Task task)
+
+2024-12-14 01:26:03.7|Fatal|SonarrErrorPipeline|Request Failed. POST /api/v3/manualimport
+
+[v4.0.11.2680] NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AugmentingFailedException: Unable to parse episode info from path: /tv/test/4.mkv
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AggregationService.Augment(LocalEpisode localEpisode, DownloadClientItem downloadClientItem) in ./Sonarr.Core/MediaFiles/EpisodeImport/Aggregation/AggregationService.cs:line 51
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Manual.ManualImportService.ReprocessItem(String path, String downloadId, Int32 seriesId, Nullable`1 seasonNumber, List`1 episodeIds, String releaseGroup, QualityModel quality, List`1 languages, Int32 indexerFlags, ReleaseType releaseType) in ./Sonarr.Core/MediaFiles/EpisodeImport/Manual/ManualImportService.cs:line 144
+ at Sonarr.Api.V3.ManualImport.ManualImportController.ReprocessItems(List`1 items) in ./Sonarr.Api.V3/ManualImport/ManualImportController.cs:line 42
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.SyncObjectResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeActionMethodAsync()
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeNextActionFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Routing.EndpointMiddleware.g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
+ at Sonarr.Http.Middleware.BufferingMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/BufferingMiddleware.cs:line 28
+ at Sonarr.Http.Middleware.IfModifiedMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/IfModifiedMiddleware.cs:line 41
+ at Sonarr.Http.Middleware.CacheHeaderMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/CacheHeaderMiddleware.cs:line 33
+ at Sonarr.Http.Middleware.StartingUpMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/StartingUpMiddleware.cs:line 38
+ at Sonarr.Http.Middleware.UrlBaseMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/UrlBaseMiddleware.cs:line 29
+ at Sonarr.Http.Middleware.VersionMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/VersionMiddleware.cs:line 29
+ at Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.InvokeCore(HttpContext context)
+ at Microsoft.AspNetCore.Authorization.Policy.AuthorizationMiddlewareResultHandler.HandleAsync(RequestDelegate next, HttpContext context, AuthorizationPolicy policy, PolicyAuthorizationResult authorizeResult)
+ at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.g__Awaited|6_0(ExceptionHandlerMiddleware middleware, HttpContext context, Task task)
+
+2024-12-14 01:26:06.9|Fatal|SonarrErrorPipeline|Request Failed. POST /api/v3/manualimport
+
+[v4.0.11.2680] NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AugmentingFailedException: Unable to parse episode info from path: /tv/test/5.mkv
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AggregationService.Augment(LocalEpisode localEpisode, DownloadClientItem downloadClientItem) in ./Sonarr.Core/MediaFiles/EpisodeImport/Aggregation/AggregationService.cs:line 51
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Manual.ManualImportService.ReprocessItem(String path, String downloadId, Int32 seriesId, Nullable`1 seasonNumber, List`1 episodeIds, String releaseGroup, QualityModel quality, List`1 languages, Int32 indexerFlags, ReleaseType releaseType) in ./Sonarr.Core/MediaFiles/EpisodeImport/Manual/ManualImportService.cs:line 144
+ at Sonarr.Api.V3.ManualImport.ManualImportController.ReprocessItems(List`1 items) in ./Sonarr.Api.V3/ManualImport/ManualImportController.cs:line 42
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.SyncObjectResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeActionMethodAsync()
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeNextActionFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Routing.EndpointMiddleware.g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
+ at Sonarr.Http.Middleware.BufferingMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/BufferingMiddleware.cs:line 28
+ at Sonarr.Http.Middleware.IfModifiedMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/IfModifiedMiddleware.cs:line 41
+ at Sonarr.Http.Middleware.CacheHeaderMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/CacheHeaderMiddleware.cs:line 33
+ at Sonarr.Http.Middleware.StartingUpMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/StartingUpMiddleware.cs:line 38
+ at Sonarr.Http.Middleware.UrlBaseMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/UrlBaseMiddleware.cs:line 29
+ at Sonarr.Http.Middleware.VersionMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/VersionMiddleware.cs:line 29
+ at Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.InvokeCore(HttpContext context)
+ at Microsoft.AspNetCore.Authorization.Policy.AuthorizationMiddlewareResultHandler.HandleAsync(RequestDelegate next, HttpContext context, AuthorizationPolicy policy, PolicyAuthorizationResult authorizeResult)
+ at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.g__Awaited|6_0(ExceptionHandlerMiddleware middleware, HttpContext context, Task task)
+
+2024-12-14 01:26:09.5|Fatal|SonarrErrorPipeline|Request Failed. POST /api/v3/manualimport
+
+[v4.0.11.2680] NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AugmentingFailedException: Unable to parse episode info from path: /tv/test/6.mkv
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AggregationService.Augment(LocalEpisode localEpisode, DownloadClientItem downloadClientItem) in ./Sonarr.Core/MediaFiles/EpisodeImport/Aggregation/AggregationService.cs:line 51
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Manual.ManualImportService.ReprocessItem(String path, String downloadId, Int32 seriesId, Nullable`1 seasonNumber, List`1 episodeIds, String releaseGroup, QualityModel quality, List`1 languages, Int32 indexerFlags, ReleaseType releaseType) in ./Sonarr.Core/MediaFiles/EpisodeImport/Manual/ManualImportService.cs:line 144
+ at Sonarr.Api.V3.ManualImport.ManualImportController.ReprocessItems(List`1 items) in ./Sonarr.Api.V3/ManualImport/ManualImportController.cs:line 42
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.SyncObjectResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeActionMethodAsync()
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeNextActionFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Routing.EndpointMiddleware.g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
+ at Sonarr.Http.Middleware.BufferingMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/BufferingMiddleware.cs:line 28
+ at Sonarr.Http.Middleware.IfModifiedMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/IfModifiedMiddleware.cs:line 41
+ at Sonarr.Http.Middleware.CacheHeaderMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/CacheHeaderMiddleware.cs:line 33
+ at Sonarr.Http.Middleware.StartingUpMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/StartingUpMiddleware.cs:line 38
+ at Sonarr.Http.Middleware.UrlBaseMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/UrlBaseMiddleware.cs:line 29
+ at Sonarr.Http.Middleware.VersionMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/VersionMiddleware.cs:line 29
+ at Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.InvokeCore(HttpContext context)
+ at Microsoft.AspNetCore.Authorization.Policy.AuthorizationMiddlewareResultHandler.HandleAsync(RequestDelegate next, HttpContext context, AuthorizationPolicy policy, PolicyAuthorizationResult authorizeResult)
+ at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.g__Awaited|6_0(ExceptionHandlerMiddleware middleware, HttpContext context, Task task)
+
+2024-12-14 01:26:11.9|Fatal|SonarrErrorPipeline|Request Failed. POST /api/v3/manualimport
+
+[v4.0.11.2680] NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AugmentingFailedException: Unable to parse episode info from path: /tv/test/7.mkv
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AggregationService.Augment(LocalEpisode localEpisode, DownloadClientItem downloadClientItem) in ./Sonarr.Core/MediaFiles/EpisodeImport/Aggregation/AggregationService.cs:line 51
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Manual.ManualImportService.ReprocessItem(String path, String downloadId, Int32 seriesId, Nullable`1 seasonNumber, List`1 episodeIds, String releaseGroup, QualityModel quality, List`1 languages, Int32 indexerFlags, ReleaseType releaseType) in ./Sonarr.Core/MediaFiles/EpisodeImport/Manual/ManualImportService.cs:line 144
+ at Sonarr.Api.V3.ManualImport.ManualImportController.ReprocessItems(List`1 items) in ./Sonarr.Api.V3/ManualImport/ManualImportController.cs:line 42
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.SyncObjectResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeActionMethodAsync()
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeNextActionFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Routing.EndpointMiddleware.g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
+ at Sonarr.Http.Middleware.BufferingMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/BufferingMiddleware.cs:line 28
+ at Sonarr.Http.Middleware.IfModifiedMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/IfModifiedMiddleware.cs:line 41
+ at Sonarr.Http.Middleware.CacheHeaderMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/CacheHeaderMiddleware.cs:line 33
+ at Sonarr.Http.Middleware.StartingUpMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/StartingUpMiddleware.cs:line 38
+ at Sonarr.Http.Middleware.UrlBaseMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/UrlBaseMiddleware.cs:line 29
+ at Sonarr.Http.Middleware.VersionMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/VersionMiddleware.cs:line 29
+ at Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.InvokeCore(HttpContext context)
+ at Microsoft.AspNetCore.Authorization.Policy.AuthorizationMiddlewareResultHandler.HandleAsync(RequestDelegate next, HttpContext context, AuthorizationPolicy policy, PolicyAuthorizationResult authorizeResult)
+ at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.g__Awaited|6_0(ExceptionHandlerMiddleware middleware, HttpContext context, Task task)
+
+2024-12-14 01:26:14.4|Fatal|SonarrErrorPipeline|Request Failed. POST /api/v3/manualimport
+
+[v4.0.11.2680] NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AugmentingFailedException: Unable to parse episode info from path: /tv/test/8.mkv
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AggregationService.Augment(LocalEpisode localEpisode, DownloadClientItem downloadClientItem) in ./Sonarr.Core/MediaFiles/EpisodeImport/Aggregation/AggregationService.cs:line 51
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Manual.ManualImportService.ReprocessItem(String path, String downloadId, Int32 seriesId, Nullable`1 seasonNumber, List`1 episodeIds, String releaseGroup, QualityModel quality, List`1 languages, Int32 indexerFlags, ReleaseType releaseType) in ./Sonarr.Core/MediaFiles/EpisodeImport/Manual/ManualImportService.cs:line 144
+ at Sonarr.Api.V3.ManualImport.ManualImportController.ReprocessItems(List`1 items) in ./Sonarr.Api.V3/ManualImport/ManualImportController.cs:line 42
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.SyncObjectResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeActionMethodAsync()
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeNextActionFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Routing.EndpointMiddleware.g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
+ at Sonarr.Http.Middleware.BufferingMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/BufferingMiddleware.cs:line 28
+ at Sonarr.Http.Middleware.IfModifiedMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/IfModifiedMiddleware.cs:line 41
+ at Sonarr.Http.Middleware.CacheHeaderMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/CacheHeaderMiddleware.cs:line 33
+ at Sonarr.Http.Middleware.StartingUpMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/StartingUpMiddleware.cs:line 38
+ at Sonarr.Http.Middleware.UrlBaseMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/UrlBaseMiddleware.cs:line 29
+ at Sonarr.Http.Middleware.VersionMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/VersionMiddleware.cs:line 29
+ at Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.InvokeCore(HttpContext context)
+ at Microsoft.AspNetCore.Authorization.Policy.AuthorizationMiddlewareResultHandler.HandleAsync(RequestDelegate next, HttpContext context, AuthorizationPolicy policy, PolicyAuthorizationResult authorizeResult)
+ at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.g__Awaited|6_0(ExceptionHandlerMiddleware middleware, HttpContext context, Task task)
+
+2024-12-14 01:26:19.8|Fatal|SonarrErrorPipeline|Request Failed. POST /api/v3/manualimport
+
+[v4.0.11.2680] NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AugmentingFailedException: Unable to parse episode info from path: /tv/test/4.mkv
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AggregationService.Augment(LocalEpisode localEpisode, DownloadClientItem downloadClientItem) in ./Sonarr.Core/MediaFiles/EpisodeImport/Aggregation/AggregationService.cs:line 51
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Manual.ManualImportService.ReprocessItem(String path, String downloadId, Int32 seriesId, Nullable`1 seasonNumber, List`1 episodeIds, String releaseGroup, QualityModel quality, List`1 languages, Int32 indexerFlags, ReleaseType releaseType) in ./Sonarr.Core/MediaFiles/EpisodeImport/Manual/ManualImportService.cs:line 144
+ at Sonarr.Api.V3.ManualImport.ManualImportController.ReprocessItems(List`1 items) in ./Sonarr.Api.V3/ManualImport/ManualImportController.cs:line 42
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.SyncObjectResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeActionMethodAsync()
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeNextActionFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Routing.EndpointMiddleware.g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
+ at Sonarr.Http.Middleware.BufferingMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/BufferingMiddleware.cs:line 28
+ at Sonarr.Http.Middleware.IfModifiedMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/IfModifiedMiddleware.cs:line 41
+ at Sonarr.Http.Middleware.CacheHeaderMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/CacheHeaderMiddleware.cs:line 33
+ at Sonarr.Http.Middleware.StartingUpMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/StartingUpMiddleware.cs:line 38
+ at Sonarr.Http.Middleware.UrlBaseMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/UrlBaseMiddleware.cs:line 29
+ at Sonarr.Http.Middleware.VersionMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/VersionMiddleware.cs:line 29
+ at Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.InvokeCore(HttpContext context)
+ at Microsoft.AspNetCore.Authorization.Policy.AuthorizationMiddlewareResultHandler.HandleAsync(RequestDelegate next, HttpContext context, AuthorizationPolicy policy, PolicyAuthorizationResult authorizeResult)
+ at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.g__Awaited|6_0(ExceptionHandlerMiddleware middleware, HttpContext context, Task task)
+
+2024-12-14 01:26:20.5|Error|VideoFileInfoReader|Unable to parse media info from file: /tv/test/1.mkv
+
+[v4.0.11.2680] FFMpegCore.Exceptions.FFMpegException: ffprobe exited with non-zero exit-code (1 - [matroska,webm @ 0x2e086c0] EBML header parsing failed
+/tv/test/1.mkv: Invalid data found when processing input)
+ at FFMpegCore.FFProbe.GetStreamJson(String filePath, Int32 outputCapacity, FFOptions ffOptions)
+ at NzbDrone.Core.MediaFiles.MediaInfo.VideoFileInfoReader.GetMediaInfo(String filename) in ./Sonarr.Core/MediaFiles/MediaInfo/VideoFileInfoReader.cs:line 140
+
+2024-12-14 01:26:20.5|Error|VideoFileInfoReader|Unable to parse media info from file: /tv/test/2.mkv
+
+[v4.0.11.2680] FFMpegCore.Exceptions.FFMpegException: ffprobe exited with non-zero exit-code (1 - [matroska,webm @ 0x1ed16c0] EBML header parsing failed
+/tv/test/2.mkv: Invalid data found when processing input)
+ at FFMpegCore.FFProbe.GetStreamJson(String filePath, Int32 outputCapacity, FFOptions ffOptions)
+ at NzbDrone.Core.MediaFiles.MediaInfo.VideoFileInfoReader.GetMediaInfo(String filename) in ./Sonarr.Core/MediaFiles/MediaInfo/VideoFileInfoReader.cs:line 140
+
+2024-12-14 01:26:20.6|Error|VideoFileInfoReader|Unable to parse media info from file: /tv/test/3.mkv
+
+[v4.0.11.2680] FFMpegCore.Exceptions.FFMpegException: ffprobe exited with non-zero exit-code (1 - [matroska,webm @ 0x344b6c0] EBML header parsing failed
+/tv/test/3.mkv: Invalid data found when processing input)
+ at FFMpegCore.FFProbe.GetStreamJson(String filePath, Int32 outputCapacity, FFOptions ffOptions)
+ at NzbDrone.Core.MediaFiles.MediaInfo.VideoFileInfoReader.GetMediaInfo(String filename) in ./Sonarr.Core/MediaFiles/MediaInfo/VideoFileInfoReader.cs:line 140
+
+2024-12-14 01:26:20.6|Error|VideoFileInfoReader|Unable to parse media info from file: /tv/test/4.mkv
+
+[v4.0.11.2680] FFMpegCore.Exceptions.FFMpegException: ffprobe exited with non-zero exit-code (1 - [matroska,webm @ 0x31e86c0] EBML header parsing failed
+/tv/test/4.mkv: Invalid data found when processing input)
+ at FFMpegCore.FFProbe.GetStreamJson(String filePath, Int32 outputCapacity, FFOptions ffOptions)
+ at NzbDrone.Core.MediaFiles.MediaInfo.VideoFileInfoReader.GetMediaInfo(String filename) in ./Sonarr.Core/MediaFiles/MediaInfo/VideoFileInfoReader.cs:line 140
+
+2024-12-14 01:26:20.6|Error|VideoFileInfoReader|Unable to parse media info from file: /tv/test/5.mkv
+
+[v4.0.11.2680] FFMpegCore.Exceptions.FFMpegException: ffprobe exited with non-zero exit-code (1 - [matroska,webm @ 0x2abb6c0] EBML header parsing failed
+/tv/test/5.mkv: Invalid data found when processing input)
+ at FFMpegCore.FFProbe.GetStreamJson(String filePath, Int32 outputCapacity, FFOptions ffOptions)
+ at NzbDrone.Core.MediaFiles.MediaInfo.VideoFileInfoReader.GetMediaInfo(String filename) in ./Sonarr.Core/MediaFiles/MediaInfo/VideoFileInfoReader.cs:line 140
+
+2024-12-14 01:26:20.7|Error|VideoFileInfoReader|Unable to parse media info from file: /tv/test/6.mkv
+
+[v4.0.11.2680] FFMpegCore.Exceptions.FFMpegException: ffprobe exited with non-zero exit-code (1 - [matroska,webm @ 0x1e986c0] EBML header parsing failed
+/tv/test/6.mkv: Invalid data found when processing input)
+ at FFMpegCore.FFProbe.GetStreamJson(String filePath, Int32 outputCapacity, FFOptions ffOptions)
+ at NzbDrone.Core.MediaFiles.MediaInfo.VideoFileInfoReader.GetMediaInfo(String filename) in ./Sonarr.Core/MediaFiles/MediaInfo/VideoFileInfoReader.cs:line 140
+
+2024-12-14 01:26:20.7|Error|VideoFileInfoReader|Unable to parse media info from file: /tv/test/7.mkv
+
+[v4.0.11.2680] FFMpegCore.Exceptions.FFMpegException: ffprobe exited with non-zero exit-code (1 - [matroska,webm @ 0x208f6c0] EBML header parsing failed
+/tv/test/7.mkv: Invalid data found when processing input)
+ at FFMpegCore.FFProbe.GetStreamJson(String filePath, Int32 outputCapacity, FFOptions ffOptions)
+ at NzbDrone.Core.MediaFiles.MediaInfo.VideoFileInfoReader.GetMediaInfo(String filename) in ./Sonarr.Core/MediaFiles/MediaInfo/VideoFileInfoReader.cs:line 140
+
+2024-12-14 01:26:20.8|Error|VideoFileInfoReader|Unable to parse media info from file: /tv/test/8.mkv
+
+[v4.0.11.2680] FFMpegCore.Exceptions.FFMpegException: ffprobe exited with non-zero exit-code (1 - [matroska,webm @ 0x2d326c0] EBML header parsing failed
+/tv/test/8.mkv: Invalid data found when processing input)
+ at FFMpegCore.FFProbe.GetStreamJson(String filePath, Int32 outputCapacity, FFOptions ffOptions)
+ at NzbDrone.Core.MediaFiles.MediaInfo.VideoFileInfoReader.GetMediaInfo(String filename) in ./Sonarr.Core/MediaFiles/MediaInfo/VideoFileInfoReader.cs:line 140
+
+2024-12-14 01:26:20.8|Error|EventAggregator|NotificationService failed while processing [UntrackedDownloadCompletedEvent]
+
+[v4.0.11.2680] System.NullReferenceException: Object reference not set to an instance of an object.
+ at NzbDrone.Core.Notifications.NotificationService.GetQualityString(Series series, QualityModel quality) in ./Sonarr.Core/Notifications/NotificationService.cs:line 88
+ at NzbDrone.Core.Notifications.NotificationService.GetMessage(Series series, List`1 episodes, QualityModel quality) in ./Sonarr.Core/Notifications/NotificationService.cs:line 50
+ at NzbDrone.Core.Notifications.NotificationService.Handle(UntrackedDownloadCompletedEvent message) in ./Sonarr.Core/Notifications/NotificationService.cs:line 262
+ at NzbDrone.Core.Messaging.Events.EventAggregator.PublishEvent[TEvent](TEvent event)
+
+2024-12-14 01:26:24.2|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:26:24.2|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:27:16.5|Error|VideoFileInfoReader|Unable to parse media info from file: /tv/test/4.mkv
+
+[v4.0.11.2680] FFMpegCore.Exceptions.FFMpegException: ffprobe exited with non-zero exit-code (1 - [matroska,webm @ 0x2c6d6c0] EBML header parsing failed
+/tv/test/4.mkv: Invalid data found when processing input)
+ at FFMpegCore.FFProbe.GetStreamJson(String filePath, Int32 outputCapacity, FFOptions ffOptions)
+ at NzbDrone.Core.MediaFiles.MediaInfo.VideoFileInfoReader.GetMediaInfo(String filename) in ./Sonarr.Core/MediaFiles/MediaInfo/VideoFileInfoReader.cs:line 140
+
+2024-12-14 01:27:16.5|Error|DetectSample|Failed to get runtime from the file, make sure ffprobe is available
+2024-12-14 01:27:16.5|Error|VideoFileInfoReader|Unable to parse media info from file: /tv/test/3.mkv
+
+[v4.0.11.2680] FFMpegCore.Exceptions.FFMpegException: ffprobe exited with non-zero exit-code (1 - [matroska,webm @ 0x1f556c0] EBML header parsing failed
+/tv/test/3.mkv: Invalid data found when processing input)
+ at FFMpegCore.FFProbe.GetStreamJson(String filePath, Int32 outputCapacity, FFOptions ffOptions)
+ at NzbDrone.Core.MediaFiles.MediaInfo.VideoFileInfoReader.GetMediaInfo(String filename) in ./Sonarr.Core/MediaFiles/MediaInfo/VideoFileInfoReader.cs:line 140
+
+2024-12-14 01:27:16.5|Error|DetectSample|Failed to get runtime from the file, make sure ffprobe is available
+2024-12-14 01:27:16.5|Error|VideoFileInfoReader|Unable to parse media info from file: /tv/test/2.mkv
+
+[v4.0.11.2680] FFMpegCore.Exceptions.FFMpegException: ffprobe exited with non-zero exit-code (1 - [matroska,webm @ 0x21bf6c0] EBML header parsing failed
+/tv/test/2.mkv: Invalid data found when processing input)
+ at FFMpegCore.FFProbe.GetStreamJson(String filePath, Int32 outputCapacity, FFOptions ffOptions)
+ at NzbDrone.Core.MediaFiles.MediaInfo.VideoFileInfoReader.GetMediaInfo(String filename) in ./Sonarr.Core/MediaFiles/MediaInfo/VideoFileInfoReader.cs:line 140
+
+2024-12-14 01:27:16.5|Error|DetectSample|Failed to get runtime from the file, make sure ffprobe is available
+2024-12-14 01:27:16.5|Error|VideoFileInfoReader|Unable to parse media info from file: /tv/test/1.mkv
+
+[v4.0.11.2680] FFMpegCore.Exceptions.FFMpegException: ffprobe exited with non-zero exit-code (1 - [matroska,webm @ 0x30cc6c0] EBML header parsing failed
+/tv/test/1.mkv: Invalid data found when processing input)
+ at FFMpegCore.FFProbe.GetStreamJson(String filePath, Int32 outputCapacity, FFOptions ffOptions)
+ at NzbDrone.Core.MediaFiles.MediaInfo.VideoFileInfoReader.GetMediaInfo(String filename) in ./Sonarr.Core/MediaFiles/MediaInfo/VideoFileInfoReader.cs:line 140
+
+2024-12-14 01:27:16.5|Error|DetectSample|Failed to get runtime from the file, make sure ffprobe is available
+2024-12-14 01:27:23.1|Fatal|SonarrErrorPipeline|Request Failed. POST /api/v3/manualimport
+
+[v4.0.11.2680] NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AugmentingFailedException: Unable to parse episode info from path: /tv/test/1.mkv
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AggregationService.Augment(LocalEpisode localEpisode, DownloadClientItem downloadClientItem) in ./Sonarr.Core/MediaFiles/EpisodeImport/Aggregation/AggregationService.cs:line 51
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Manual.ManualImportService.ReprocessItem(String path, String downloadId, Int32 seriesId, Nullable`1 seasonNumber, List`1 episodeIds, String releaseGroup, QualityModel quality, List`1 languages, Int32 indexerFlags, ReleaseType releaseType) in ./Sonarr.Core/MediaFiles/EpisodeImport/Manual/ManualImportService.cs:line 144
+ at Sonarr.Api.V3.ManualImport.ManualImportController.ReprocessItems(List`1 items) in ./Sonarr.Api.V3/ManualImport/ManualImportController.cs:line 42
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.SyncObjectResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeActionMethodAsync()
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeNextActionFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Routing.EndpointMiddleware.g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
+ at Sonarr.Http.Middleware.BufferingMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/BufferingMiddleware.cs:line 28
+ at Sonarr.Http.Middleware.IfModifiedMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/IfModifiedMiddleware.cs:line 41
+ at Sonarr.Http.Middleware.CacheHeaderMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/CacheHeaderMiddleware.cs:line 33
+ at Sonarr.Http.Middleware.StartingUpMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/StartingUpMiddleware.cs:line 38
+ at Sonarr.Http.Middleware.UrlBaseMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/UrlBaseMiddleware.cs:line 29
+ at Sonarr.Http.Middleware.VersionMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/VersionMiddleware.cs:line 29
+ at Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.InvokeCore(HttpContext context)
+ at Microsoft.AspNetCore.Authorization.Policy.AuthorizationMiddlewareResultHandler.HandleAsync(RequestDelegate next, HttpContext context, AuthorizationPolicy policy, PolicyAuthorizationResult authorizeResult)
+ at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.g__Awaited|6_0(ExceptionHandlerMiddleware middleware, HttpContext context, Task task)
+
+2024-12-14 01:27:25.2|Fatal|SonarrErrorPipeline|Request Failed. POST /api/v3/manualimport
+
+[v4.0.11.2680] NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AugmentingFailedException: Unable to parse episode info from path: /tv/test/2.mkv
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AggregationService.Augment(LocalEpisode localEpisode, DownloadClientItem downloadClientItem) in ./Sonarr.Core/MediaFiles/EpisodeImport/Aggregation/AggregationService.cs:line 51
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Manual.ManualImportService.ReprocessItem(String path, String downloadId, Int32 seriesId, Nullable`1 seasonNumber, List`1 episodeIds, String releaseGroup, QualityModel quality, List`1 languages, Int32 indexerFlags, ReleaseType releaseType) in ./Sonarr.Core/MediaFiles/EpisodeImport/Manual/ManualImportService.cs:line 144
+ at Sonarr.Api.V3.ManualImport.ManualImportController.ReprocessItems(List`1 items) in ./Sonarr.Api.V3/ManualImport/ManualImportController.cs:line 42
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.SyncObjectResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeActionMethodAsync()
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeNextActionFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Routing.EndpointMiddleware.g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
+ at Sonarr.Http.Middleware.BufferingMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/BufferingMiddleware.cs:line 28
+ at Sonarr.Http.Middleware.IfModifiedMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/IfModifiedMiddleware.cs:line 41
+ at Sonarr.Http.Middleware.CacheHeaderMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/CacheHeaderMiddleware.cs:line 33
+ at Sonarr.Http.Middleware.StartingUpMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/StartingUpMiddleware.cs:line 38
+ at Sonarr.Http.Middleware.UrlBaseMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/UrlBaseMiddleware.cs:line 29
+ at Sonarr.Http.Middleware.VersionMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/VersionMiddleware.cs:line 29
+ at Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.InvokeCore(HttpContext context)
+ at Microsoft.AspNetCore.Authorization.Policy.AuthorizationMiddlewareResultHandler.HandleAsync(RequestDelegate next, HttpContext context, AuthorizationPolicy policy, PolicyAuthorizationResult authorizeResult)
+ at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.g__Awaited|6_0(ExceptionHandlerMiddleware middleware, HttpContext context, Task task)
+
+2024-12-14 01:27:28.4|Fatal|SonarrErrorPipeline|Request Failed. POST /api/v3/manualimport
+
+[v4.0.11.2680] NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AugmentingFailedException: Unable to parse episode info from path: /tv/test/3.mkv
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AggregationService.Augment(LocalEpisode localEpisode, DownloadClientItem downloadClientItem) in ./Sonarr.Core/MediaFiles/EpisodeImport/Aggregation/AggregationService.cs:line 51
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Manual.ManualImportService.ReprocessItem(String path, String downloadId, Int32 seriesId, Nullable`1 seasonNumber, List`1 episodeIds, String releaseGroup, QualityModel quality, List`1 languages, Int32 indexerFlags, ReleaseType releaseType) in ./Sonarr.Core/MediaFiles/EpisodeImport/Manual/ManualImportService.cs:line 144
+ at Sonarr.Api.V3.ManualImport.ManualImportController.ReprocessItems(List`1 items) in ./Sonarr.Api.V3/ManualImport/ManualImportController.cs:line 42
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.SyncObjectResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeActionMethodAsync()
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeNextActionFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Routing.EndpointMiddleware.g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
+ at Sonarr.Http.Middleware.BufferingMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/BufferingMiddleware.cs:line 28
+ at Sonarr.Http.Middleware.IfModifiedMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/IfModifiedMiddleware.cs:line 41
+ at Sonarr.Http.Middleware.CacheHeaderMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/CacheHeaderMiddleware.cs:line 33
+ at Sonarr.Http.Middleware.StartingUpMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/StartingUpMiddleware.cs:line 38
+ at Sonarr.Http.Middleware.UrlBaseMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/UrlBaseMiddleware.cs:line 29
+ at Sonarr.Http.Middleware.VersionMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/VersionMiddleware.cs:line 29
+ at Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.InvokeCore(HttpContext context)
+ at Microsoft.AspNetCore.Authorization.Policy.AuthorizationMiddlewareResultHandler.HandleAsync(RequestDelegate next, HttpContext context, AuthorizationPolicy policy, PolicyAuthorizationResult authorizeResult)
+ at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.g__Awaited|6_0(ExceptionHandlerMiddleware middleware, HttpContext context, Task task)
+
+2024-12-14 01:27:30.8|Fatal|SonarrErrorPipeline|Request Failed. POST /api/v3/manualimport
+
+[v4.0.11.2680] NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AugmentingFailedException: Unable to parse episode info from path: /tv/test/4.mkv
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AggregationService.Augment(LocalEpisode localEpisode, DownloadClientItem downloadClientItem) in ./Sonarr.Core/MediaFiles/EpisodeImport/Aggregation/AggregationService.cs:line 51
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Manual.ManualImportService.ReprocessItem(String path, String downloadId, Int32 seriesId, Nullable`1 seasonNumber, List`1 episodeIds, String releaseGroup, QualityModel quality, List`1 languages, Int32 indexerFlags, ReleaseType releaseType) in ./Sonarr.Core/MediaFiles/EpisodeImport/Manual/ManualImportService.cs:line 144
+ at Sonarr.Api.V3.ManualImport.ManualImportController.ReprocessItems(List`1 items) in ./Sonarr.Api.V3/ManualImport/ManualImportController.cs:line 42
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.SyncObjectResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeActionMethodAsync()
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeNextActionFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Routing.EndpointMiddleware.g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
+ at Sonarr.Http.Middleware.BufferingMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/BufferingMiddleware.cs:line 28
+ at Sonarr.Http.Middleware.IfModifiedMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/IfModifiedMiddleware.cs:line 41
+ at Sonarr.Http.Middleware.CacheHeaderMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/CacheHeaderMiddleware.cs:line 33
+ at Sonarr.Http.Middleware.StartingUpMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/StartingUpMiddleware.cs:line 38
+ at Sonarr.Http.Middleware.UrlBaseMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/UrlBaseMiddleware.cs:line 29
+ at Sonarr.Http.Middleware.VersionMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/VersionMiddleware.cs:line 29
+ at Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.InvokeCore(HttpContext context)
+ at Microsoft.AspNetCore.Authorization.Policy.AuthorizationMiddlewareResultHandler.HandleAsync(RequestDelegate next, HttpContext context, AuthorizationPolicy policy, PolicyAuthorizationResult authorizeResult)
+ at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.g__Awaited|6_0(ExceptionHandlerMiddleware middleware, HttpContext context, Task task)
+
+2024-12-14 01:27:36.4|Fatal|SonarrErrorPipeline|Request Failed. POST /api/v3/manualimport
+
+[v4.0.11.2680] NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AugmentingFailedException: Unable to parse episode info from path: /tv/test/4.mkv
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AggregationService.Augment(LocalEpisode localEpisode, DownloadClientItem downloadClientItem) in ./Sonarr.Core/MediaFiles/EpisodeImport/Aggregation/AggregationService.cs:line 51
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Manual.ManualImportService.ReprocessItem(String path, String downloadId, Int32 seriesId, Nullable`1 seasonNumber, List`1 episodeIds, String releaseGroup, QualityModel quality, List`1 languages, Int32 indexerFlags, ReleaseType releaseType) in ./Sonarr.Core/MediaFiles/EpisodeImport/Manual/ManualImportService.cs:line 144
+ at Sonarr.Api.V3.ManualImport.ManualImportController.ReprocessItems(List`1 items) in ./Sonarr.Api.V3/ManualImport/ManualImportController.cs:line 42
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.SyncObjectResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeActionMethodAsync()
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeNextActionFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Routing.EndpointMiddleware.g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
+ at Sonarr.Http.Middleware.BufferingMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/BufferingMiddleware.cs:line 28
+ at Sonarr.Http.Middleware.IfModifiedMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/IfModifiedMiddleware.cs:line 41
+ at Sonarr.Http.Middleware.CacheHeaderMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/CacheHeaderMiddleware.cs:line 33
+ at Sonarr.Http.Middleware.StartingUpMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/StartingUpMiddleware.cs:line 38
+ at Sonarr.Http.Middleware.UrlBaseMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/UrlBaseMiddleware.cs:line 29
+ at Sonarr.Http.Middleware.VersionMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/VersionMiddleware.cs:line 29
+ at Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.InvokeCore(HttpContext context)
+ at Microsoft.AspNetCore.Authorization.Policy.AuthorizationMiddlewareResultHandler.HandleAsync(RequestDelegate next, HttpContext context, AuthorizationPolicy policy, PolicyAuthorizationResult authorizeResult)
+ at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.g__Awaited|6_0(ExceptionHandlerMiddleware middleware, HttpContext context, Task task)
+
+2024-12-14 01:27:37.1|Error|VideoFileInfoReader|Unable to parse media info from file: /tv/test/1.mkv
+
+[v4.0.11.2680] FFMpegCore.Exceptions.FFMpegException: ffprobe exited with non-zero exit-code (1 - [matroska,webm @ 0x38046c0] EBML header parsing failed
+/tv/test/1.mkv: Invalid data found when processing input)
+ at FFMpegCore.FFProbe.GetStreamJson(String filePath, Int32 outputCapacity, FFOptions ffOptions)
+ at NzbDrone.Core.MediaFiles.MediaInfo.VideoFileInfoReader.GetMediaInfo(String filename) in ./Sonarr.Core/MediaFiles/MediaInfo/VideoFileInfoReader.cs:line 140
+
+2024-12-14 01:27:37.1|Error|VideoFileInfoReader|Unable to parse media info from file: /tv/test/2.mkv
+
+[v4.0.11.2680] FFMpegCore.Exceptions.FFMpegException: ffprobe exited with non-zero exit-code (1 - [matroska,webm @ 0x283a6c0] EBML header parsing failed
+/tv/test/2.mkv: Invalid data found when processing input)
+ at FFMpegCore.FFProbe.GetStreamJson(String filePath, Int32 outputCapacity, FFOptions ffOptions)
+ at NzbDrone.Core.MediaFiles.MediaInfo.VideoFileInfoReader.GetMediaInfo(String filename) in ./Sonarr.Core/MediaFiles/MediaInfo/VideoFileInfoReader.cs:line 140
+
+2024-12-14 01:27:37.2|Error|VideoFileInfoReader|Unable to parse media info from file: /tv/test/3.mkv
+
+[v4.0.11.2680] FFMpegCore.Exceptions.FFMpegException: ffprobe exited with non-zero exit-code (1 - [matroska,webm @ 0x22f66c0] EBML header parsing failed
+/tv/test/3.mkv: Invalid data found when processing input)
+ at FFMpegCore.FFProbe.GetStreamJson(String filePath, Int32 outputCapacity, FFOptions ffOptions)
+ at NzbDrone.Core.MediaFiles.MediaInfo.VideoFileInfoReader.GetMediaInfo(String filename) in ./Sonarr.Core/MediaFiles/MediaInfo/VideoFileInfoReader.cs:line 140
+
+2024-12-14 01:27:37.2|Error|VideoFileInfoReader|Unable to parse media info from file: /tv/test/4.mkv
+
+[v4.0.11.2680] FFMpegCore.Exceptions.FFMpegException: ffprobe exited with non-zero exit-code (1 - [matroska,webm @ 0x2d6d6c0] EBML header parsing failed
+/tv/test/4.mkv: Invalid data found when processing input)
+ at FFMpegCore.FFProbe.GetStreamJson(String filePath, Int32 outputCapacity, FFOptions ffOptions)
+ at NzbDrone.Core.MediaFiles.MediaInfo.VideoFileInfoReader.GetMediaInfo(String filename) in ./Sonarr.Core/MediaFiles/MediaInfo/VideoFileInfoReader.cs:line 140
+
+2024-12-14 01:27:37.2|Error|EventAggregator|NotificationService failed while processing [UntrackedDownloadCompletedEvent]
+
+[v4.0.11.2680] System.NullReferenceException: Object reference not set to an instance of an object.
+ at NzbDrone.Core.Notifications.NotificationService.GetQualityString(Series series, QualityModel quality) in ./Sonarr.Core/Notifications/NotificationService.cs:line 88
+ at NzbDrone.Core.Notifications.NotificationService.GetMessage(Series series, List`1 episodes, QualityModel quality) in ./Sonarr.Core/Notifications/NotificationService.cs:line 50
+ at NzbDrone.Core.Notifications.NotificationService.Handle(UntrackedDownloadCompletedEvent message) in ./Sonarr.Core/Notifications/NotificationService.cs:line 262
+ at NzbDrone.Core.Messaging.Events.EventAggregator.PublishEvent[TEvent](TEvent event)
+
+2024-12-14 01:27:41.1|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:27:41.1|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:27:55.8|Error|VideoFileInfoReader|Unable to parse media info from file: /tv/test/3.mkv
+
+[v4.0.11.2680] FFMpegCore.Exceptions.FFMpegException: ffprobe exited with non-zero exit-code (1 - [matroska,webm @ 0x290b6c0] EBML header parsing failed
+/tv/test/3.mkv: Invalid data found when processing input)
+ at FFMpegCore.FFProbe.GetStreamJson(String filePath, Int32 outputCapacity, FFOptions ffOptions)
+ at NzbDrone.Core.MediaFiles.MediaInfo.VideoFileInfoReader.GetMediaInfo(String filename) in ./Sonarr.Core/MediaFiles/MediaInfo/VideoFileInfoReader.cs:line 140
+
+2024-12-14 01:27:55.8|Error|DetectSample|Failed to get runtime from the file, make sure ffprobe is available
+2024-12-14 01:27:55.8|Error|VideoFileInfoReader|Unable to parse media info from file: /tv/test/2.mkv
+
+[v4.0.11.2680] FFMpegCore.Exceptions.FFMpegException: ffprobe exited with non-zero exit-code (1 - [matroska,webm @ 0x1bdf6c0] EBML header parsing failed
+/tv/test/2.mkv: Invalid data found when processing input)
+ at FFMpegCore.FFProbe.GetStreamJson(String filePath, Int32 outputCapacity, FFOptions ffOptions)
+ at NzbDrone.Core.MediaFiles.MediaInfo.VideoFileInfoReader.GetMediaInfo(String filename) in ./Sonarr.Core/MediaFiles/MediaInfo/VideoFileInfoReader.cs:line 140
+
+2024-12-14 01:27:55.8|Error|DetectSample|Failed to get runtime from the file, make sure ffprobe is available
+2024-12-14 01:27:55.8|Error|VideoFileInfoReader|Unable to parse media info from file: /tv/test/1.mkv
+
+[v4.0.11.2680] FFMpegCore.Exceptions.FFMpegException: ffprobe exited with non-zero exit-code (1 - [matroska,webm @ 0x1e2f6c0] EBML header parsing failed
+/tv/test/1.mkv: Invalid data found when processing input)
+ at FFMpegCore.FFProbe.GetStreamJson(String filePath, Int32 outputCapacity, FFOptions ffOptions)
+ at NzbDrone.Core.MediaFiles.MediaInfo.VideoFileInfoReader.GetMediaInfo(String filename) in ./Sonarr.Core/MediaFiles/MediaInfo/VideoFileInfoReader.cs:line 140
+
+2024-12-14 01:27:55.8|Error|DetectSample|Failed to get runtime from the file, make sure ffprobe is available
+2024-12-14 01:28:01.5|Fatal|SonarrErrorPipeline|Request Failed. POST /api/v3/manualimport
+
+[v4.0.11.2680] NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AugmentingFailedException: Unable to parse episode info from path: /tv/test/1.mkv
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AggregationService.Augment(LocalEpisode localEpisode, DownloadClientItem downloadClientItem) in ./Sonarr.Core/MediaFiles/EpisodeImport/Aggregation/AggregationService.cs:line 51
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Manual.ManualImportService.ReprocessItem(String path, String downloadId, Int32 seriesId, Nullable`1 seasonNumber, List`1 episodeIds, String releaseGroup, QualityModel quality, List`1 languages, Int32 indexerFlags, ReleaseType releaseType) in ./Sonarr.Core/MediaFiles/EpisodeImport/Manual/ManualImportService.cs:line 144
+ at Sonarr.Api.V3.ManualImport.ManualImportController.ReprocessItems(List`1 items) in ./Sonarr.Api.V3/ManualImport/ManualImportController.cs:line 42
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.SyncObjectResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeActionMethodAsync()
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeNextActionFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Routing.EndpointMiddleware.g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
+ at Sonarr.Http.Middleware.BufferingMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/BufferingMiddleware.cs:line 28
+ at Sonarr.Http.Middleware.IfModifiedMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/IfModifiedMiddleware.cs:line 41
+ at Sonarr.Http.Middleware.CacheHeaderMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/CacheHeaderMiddleware.cs:line 33
+ at Sonarr.Http.Middleware.StartingUpMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/StartingUpMiddleware.cs:line 38
+ at Sonarr.Http.Middleware.UrlBaseMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/UrlBaseMiddleware.cs:line 29
+ at Sonarr.Http.Middleware.VersionMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/VersionMiddleware.cs:line 29
+ at Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.InvokeCore(HttpContext context)
+ at Microsoft.AspNetCore.Authorization.Policy.AuthorizationMiddlewareResultHandler.HandleAsync(RequestDelegate next, HttpContext context, AuthorizationPolicy policy, PolicyAuthorizationResult authorizeResult)
+ at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.g__Awaited|6_0(ExceptionHandlerMiddleware middleware, HttpContext context, Task task)
+
+2024-12-14 01:28:03.3|Fatal|SonarrErrorPipeline|Request Failed. POST /api/v3/manualimport
+
+[v4.0.11.2680] NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AugmentingFailedException: Unable to parse episode info from path: /tv/test/2.mkv
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AggregationService.Augment(LocalEpisode localEpisode, DownloadClientItem downloadClientItem) in ./Sonarr.Core/MediaFiles/EpisodeImport/Aggregation/AggregationService.cs:line 51
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Manual.ManualImportService.ReprocessItem(String path, String downloadId, Int32 seriesId, Nullable`1 seasonNumber, List`1 episodeIds, String releaseGroup, QualityModel quality, List`1 languages, Int32 indexerFlags, ReleaseType releaseType) in ./Sonarr.Core/MediaFiles/EpisodeImport/Manual/ManualImportService.cs:line 144
+ at Sonarr.Api.V3.ManualImport.ManualImportController.ReprocessItems(List`1 items) in ./Sonarr.Api.V3/ManualImport/ManualImportController.cs:line 42
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.SyncObjectResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeActionMethodAsync()
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeNextActionFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Routing.EndpointMiddleware.g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
+ at Sonarr.Http.Middleware.BufferingMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/BufferingMiddleware.cs:line 28
+ at Sonarr.Http.Middleware.IfModifiedMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/IfModifiedMiddleware.cs:line 41
+ at Sonarr.Http.Middleware.CacheHeaderMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/CacheHeaderMiddleware.cs:line 33
+ at Sonarr.Http.Middleware.StartingUpMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/StartingUpMiddleware.cs:line 38
+ at Sonarr.Http.Middleware.UrlBaseMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/UrlBaseMiddleware.cs:line 29
+ at Sonarr.Http.Middleware.VersionMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/VersionMiddleware.cs:line 29
+ at Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.InvokeCore(HttpContext context)
+ at Microsoft.AspNetCore.Authorization.Policy.AuthorizationMiddlewareResultHandler.HandleAsync(RequestDelegate next, HttpContext context, AuthorizationPolicy policy, PolicyAuthorizationResult authorizeResult)
+ at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.g__Awaited|6_0(ExceptionHandlerMiddleware middleware, HttpContext context, Task task)
+
+2024-12-14 01:28:05.2|Fatal|SonarrErrorPipeline|Request Failed. POST /api/v3/manualimport
+
+[v4.0.11.2680] NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AugmentingFailedException: Unable to parse episode info from path: /tv/test/3.mkv
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AggregationService.Augment(LocalEpisode localEpisode, DownloadClientItem downloadClientItem) in ./Sonarr.Core/MediaFiles/EpisodeImport/Aggregation/AggregationService.cs:line 51
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Manual.ManualImportService.ReprocessItem(String path, String downloadId, Int32 seriesId, Nullable`1 seasonNumber, List`1 episodeIds, String releaseGroup, QualityModel quality, List`1 languages, Int32 indexerFlags, ReleaseType releaseType) in ./Sonarr.Core/MediaFiles/EpisodeImport/Manual/ManualImportService.cs:line 144
+ at Sonarr.Api.V3.ManualImport.ManualImportController.ReprocessItems(List`1 items) in ./Sonarr.Api.V3/ManualImport/ManualImportController.cs:line 42
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.SyncObjectResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeActionMethodAsync()
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeNextActionFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Routing.EndpointMiddleware.g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
+ at Sonarr.Http.Middleware.BufferingMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/BufferingMiddleware.cs:line 28
+ at Sonarr.Http.Middleware.IfModifiedMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/IfModifiedMiddleware.cs:line 41
+ at Sonarr.Http.Middleware.CacheHeaderMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/CacheHeaderMiddleware.cs:line 33
+ at Sonarr.Http.Middleware.StartingUpMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/StartingUpMiddleware.cs:line 38
+ at Sonarr.Http.Middleware.UrlBaseMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/UrlBaseMiddleware.cs:line 29
+ at Sonarr.Http.Middleware.VersionMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/VersionMiddleware.cs:line 29
+ at Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.InvokeCore(HttpContext context)
+ at Microsoft.AspNetCore.Authorization.Policy.AuthorizationMiddlewareResultHandler.HandleAsync(RequestDelegate next, HttpContext context, AuthorizationPolicy policy, PolicyAuthorizationResult authorizeResult)
+ at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.g__Awaited|6_0(ExceptionHandlerMiddleware middleware, HttpContext context, Task task)
+
+2024-12-14 01:28:15.2|Fatal|SonarrErrorPipeline|Request Failed. POST /api/v3/manualimport
+
+[v4.0.11.2680] NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AugmentingFailedException: Unable to parse episode info from path: /tv/test/3.mkv
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AggregationService.Augment(LocalEpisode localEpisode, DownloadClientItem downloadClientItem) in ./Sonarr.Core/MediaFiles/EpisodeImport/Aggregation/AggregationService.cs:line 51
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Manual.ManualImportService.ReprocessItem(String path, String downloadId, Int32 seriesId, Nullable`1 seasonNumber, List`1 episodeIds, String releaseGroup, QualityModel quality, List`1 languages, Int32 indexerFlags, ReleaseType releaseType) in ./Sonarr.Core/MediaFiles/EpisodeImport/Manual/ManualImportService.cs:line 144
+ at Sonarr.Api.V3.ManualImport.ManualImportController.ReprocessItems(List`1 items) in ./Sonarr.Api.V3/ManualImport/ManualImportController.cs:line 42
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.SyncObjectResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeActionMethodAsync()
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeNextActionFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Routing.EndpointMiddleware.g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
+ at Sonarr.Http.Middleware.BufferingMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/BufferingMiddleware.cs:line 28
+ at Sonarr.Http.Middleware.IfModifiedMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/IfModifiedMiddleware.cs:line 41
+ at Sonarr.Http.Middleware.CacheHeaderMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/CacheHeaderMiddleware.cs:line 33
+ at Sonarr.Http.Middleware.StartingUpMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/StartingUpMiddleware.cs:line 38
+ at Sonarr.Http.Middleware.UrlBaseMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/UrlBaseMiddleware.cs:line 29
+ at Sonarr.Http.Middleware.VersionMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/VersionMiddleware.cs:line 29
+ at Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.InvokeCore(HttpContext context)
+ at Microsoft.AspNetCore.Authorization.Policy.AuthorizationMiddlewareResultHandler.HandleAsync(RequestDelegate next, HttpContext context, AuthorizationPolicy policy, PolicyAuthorizationResult authorizeResult)
+ at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.g__Awaited|6_0(ExceptionHandlerMiddleware middleware, HttpContext context, Task task)
+
+2024-12-14 01:28:15.8|Error|VideoFileInfoReader|Unable to parse media info from file: /tv/test/1.mkv
+
+[v4.0.11.2680] FFMpegCore.Exceptions.FFMpegException: ffprobe exited with non-zero exit-code (1 - [matroska,webm @ 0x21366c0] EBML header parsing failed
+/tv/test/1.mkv: Invalid data found when processing input)
+ at FFMpegCore.FFProbe.GetStreamJson(String filePath, Int32 outputCapacity, FFOptions ffOptions)
+ at NzbDrone.Core.MediaFiles.MediaInfo.VideoFileInfoReader.GetMediaInfo(String filename) in ./Sonarr.Core/MediaFiles/MediaInfo/VideoFileInfoReader.cs:line 140
+
+2024-12-14 01:28:15.8|Error|VideoFileInfoReader|Unable to parse media info from file: /tv/test/2.mkv
+
+[v4.0.11.2680] FFMpegCore.Exceptions.FFMpegException: ffprobe exited with non-zero exit-code (1 - [matroska,webm @ 0x38a66c0] EBML header parsing failed
+/tv/test/2.mkv: Invalid data found when processing input)
+ at FFMpegCore.FFProbe.GetStreamJson(String filePath, Int32 outputCapacity, FFOptions ffOptions)
+ at NzbDrone.Core.MediaFiles.MediaInfo.VideoFileInfoReader.GetMediaInfo(String filename) in ./Sonarr.Core/MediaFiles/MediaInfo/VideoFileInfoReader.cs:line 140
+
+2024-12-14 01:28:15.9|Error|VideoFileInfoReader|Unable to parse media info from file: /tv/test/3.mkv
+
+[v4.0.11.2680] FFMpegCore.Exceptions.FFMpegException: ffprobe exited with non-zero exit-code (1 - [matroska,webm @ 0x20126c0] EBML header parsing failed
+/tv/test/3.mkv: Invalid data found when processing input)
+ at FFMpegCore.FFProbe.GetStreamJson(String filePath, Int32 outputCapacity, FFOptions ffOptions)
+ at NzbDrone.Core.MediaFiles.MediaInfo.VideoFileInfoReader.GetMediaInfo(String filename) in ./Sonarr.Core/MediaFiles/MediaInfo/VideoFileInfoReader.cs:line 140
+
+2024-12-14 01:28:15.9|Error|EventAggregator|NotificationService failed while processing [UntrackedDownloadCompletedEvent]
+
+[v4.0.11.2680] System.NullReferenceException: Object reference not set to an instance of an object.
+ at NzbDrone.Core.Notifications.NotificationService.GetQualityString(Series series, QualityModel quality) in ./Sonarr.Core/Notifications/NotificationService.cs:line 88
+ at NzbDrone.Core.Notifications.NotificationService.GetMessage(Series series, List`1 episodes, QualityModel quality) in ./Sonarr.Core/Notifications/NotificationService.cs:line 50
+ at NzbDrone.Core.Notifications.NotificationService.Handle(UntrackedDownloadCompletedEvent message) in ./Sonarr.Core/Notifications/NotificationService.cs:line 262
+ at NzbDrone.Core.Messaging.Events.EventAggregator.PublishEvent[TEvent](TEvent event)
+
+2024-12-14 01:28:18.3|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:28:18.3|Info|Sonarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
+2024-12-14 01:28:35.5|Error|VideoFileInfoReader|Unable to parse media info from file: /tv/test/4.mkv
+
+[v4.0.11.2680] FFMpegCore.Exceptions.FFMpegException: ffprobe exited with non-zero exit-code (1 - [matroska,webm @ 0x26006c0] EBML header parsing failed
+/tv/test/4.mkv: Invalid data found when processing input)
+ at FFMpegCore.FFProbe.GetStreamJson(String filePath, Int32 outputCapacity, FFOptions ffOptions)
+ at NzbDrone.Core.MediaFiles.MediaInfo.VideoFileInfoReader.GetMediaInfo(String filename) in ./Sonarr.Core/MediaFiles/MediaInfo/VideoFileInfoReader.cs:line 140
+
+2024-12-14 01:28:35.5|Error|DetectSample|Failed to get runtime from the file, make sure ffprobe is available
+2024-12-14 01:28:35.5|Error|VideoFileInfoReader|Unable to parse media info from file: /tv/test/3.mkv
+
+[v4.0.11.2680] FFMpegCore.Exceptions.FFMpegException: ffprobe exited with non-zero exit-code (1 - [matroska,webm @ 0x347d6c0] EBML header parsing failed
+/tv/test/3.mkv: Invalid data found when processing input)
+ at FFMpegCore.FFProbe.GetStreamJson(String filePath, Int32 outputCapacity, FFOptions ffOptions)
+ at NzbDrone.Core.MediaFiles.MediaInfo.VideoFileInfoReader.GetMediaInfo(String filename) in ./Sonarr.Core/MediaFiles/MediaInfo/VideoFileInfoReader.cs:line 140
+
+2024-12-14 01:28:35.5|Error|DetectSample|Failed to get runtime from the file, make sure ffprobe is available
+2024-12-14 01:28:35.5|Error|VideoFileInfoReader|Unable to parse media info from file: /tv/test/5.mkv
+
+[v4.0.11.2680] FFMpegCore.Exceptions.FFMpegException: ffprobe exited with non-zero exit-code (1 - [matroska,webm @ 0x25746c0] EBML header parsing failed
+/tv/test/5.mkv: Invalid data found when processing input)
+ at FFMpegCore.FFProbe.GetStreamJson(String filePath, Int32 outputCapacity, FFOptions ffOptions)
+ at NzbDrone.Core.MediaFiles.MediaInfo.VideoFileInfoReader.GetMediaInfo(String filename) in ./Sonarr.Core/MediaFiles/MediaInfo/VideoFileInfoReader.cs:line 140
+
+2024-12-14 01:28:35.5|Error|DetectSample|Failed to get runtime from the file, make sure ffprobe is available
+2024-12-14 01:28:35.5|Error|VideoFileInfoReader|Unable to parse media info from file: /tv/test/2.mkv
+
+[v4.0.11.2680] FFMpegCore.Exceptions.FFMpegException: ffprobe exited with non-zero exit-code (1 - [matroska,webm @ 0x35346c0] EBML header parsing failed
+/tv/test/2.mkv: Invalid data found when processing input)
+ at FFMpegCore.FFProbe.GetStreamJson(String filePath, Int32 outputCapacity, FFOptions ffOptions)
+ at NzbDrone.Core.MediaFiles.MediaInfo.VideoFileInfoReader.GetMediaInfo(String filename) in ./Sonarr.Core/MediaFiles/MediaInfo/VideoFileInfoReader.cs:line 140
+
+2024-12-14 01:28:35.5|Error|DetectSample|Failed to get runtime from the file, make sure ffprobe is available
+2024-12-14 01:28:35.5|Error|VideoFileInfoReader|Unable to parse media info from file: /tv/test/10.mkv
+
+[v4.0.11.2680] FFMpegCore.Exceptions.FFMpegException: ffprobe exited with non-zero exit-code (1 - [matroska,webm @ 0x39c66c0] EBML header parsing failed
+/tv/test/10.mkv: Invalid data found when processing input)
+ at FFMpegCore.FFProbe.GetStreamJson(String filePath, Int32 outputCapacity, FFOptions ffOptions)
+ at NzbDrone.Core.MediaFiles.MediaInfo.VideoFileInfoReader.GetMediaInfo(String filename) in ./Sonarr.Core/MediaFiles/MediaInfo/VideoFileInfoReader.cs:line 140
+
+2024-12-14 01:28:35.5|Error|DetectSample|Failed to get runtime from the file, make sure ffprobe is available
+2024-12-14 01:28:35.5|Error|VideoFileInfoReader|Unable to parse media info from file: /tv/test/10.mkv
+
+[v4.0.11.2680] FFMpegCore.Exceptions.FFMpegException: ffprobe exited with non-zero exit-code (1 - [matroska,webm @ 0x27546c0] EBML header parsing failed
+/tv/test/10.mkv: Invalid data found when processing input)
+ at FFMpegCore.FFProbe.GetStreamJson(String filePath, Int32 outputCapacity, FFOptions ffOptions)
+ at NzbDrone.Core.MediaFiles.MediaInfo.VideoFileInfoReader.GetMediaInfo(String filename) in ./Sonarr.Core/MediaFiles/MediaInfo/VideoFileInfoReader.cs:line 140
+
+2024-12-14 01:28:35.6|Error|DetectSample|Failed to get runtime from the file, make sure ffprobe is available
+2024-12-14 01:28:35.6|Error|VideoFileInfoReader|Unable to parse media info from file: /tv/test/1.mkv
+
+[v4.0.11.2680] FFMpegCore.Exceptions.FFMpegException: ffprobe exited with non-zero exit-code (1 - [matroska,webm @ 0x2e386c0] EBML header parsing failed
+/tv/test/1.mkv: Invalid data found when processing input)
+ at FFMpegCore.FFProbe.GetStreamJson(String filePath, Int32 outputCapacity, FFOptions ffOptions)
+ at NzbDrone.Core.MediaFiles.MediaInfo.VideoFileInfoReader.GetMediaInfo(String filename) in ./Sonarr.Core/MediaFiles/MediaInfo/VideoFileInfoReader.cs:line 140
+
+2024-12-14 01:28:35.6|Error|DetectSample|Failed to get runtime from the file, make sure ffprobe is available
+2024-12-14 01:28:35.6|Error|VideoFileInfoReader|Unable to parse media info from file: /tv/test/9.mkv
+
+[v4.0.11.2680] FFMpegCore.Exceptions.FFMpegException: ffprobe exited with non-zero exit-code (1 - [matroska,webm @ 0x31c06c0] EBML header parsing failed
+/tv/test/9.mkv: Invalid data found when processing input)
+ at FFMpegCore.FFProbe.GetStreamJson(String filePath, Int32 outputCapacity, FFOptions ffOptions)
+ at NzbDrone.Core.MediaFiles.MediaInfo.VideoFileInfoReader.GetMediaInfo(String filename) in ./Sonarr.Core/MediaFiles/MediaInfo/VideoFileInfoReader.cs:line 140
+
+2024-12-14 01:28:35.6|Error|DetectSample|Failed to get runtime from the file, make sure ffprobe is available
+2024-12-14 01:28:35.6|Error|VideoFileInfoReader|Unable to parse media info from file: /tv/test/6.mkv
+
+[v4.0.11.2680] FFMpegCore.Exceptions.FFMpegException: ffprobe exited with non-zero exit-code (1 - [matroska,webm @ 0x30e56c0] EBML header parsing failed
+/tv/test/6.mkv: Invalid data found when processing input)
+ at FFMpegCore.FFProbe.GetStreamJson(String filePath, Int32 outputCapacity, FFOptions ffOptions)
+ at NzbDrone.Core.MediaFiles.MediaInfo.VideoFileInfoReader.GetMediaInfo(String filename) in ./Sonarr.Core/MediaFiles/MediaInfo/VideoFileInfoReader.cs:line 140
+
+2024-12-14 01:28:35.6|Error|DetectSample|Failed to get runtime from the file, make sure ffprobe is available
+2024-12-14 01:28:35.6|Error|VideoFileInfoReader|Unable to parse media info from file: /tv/test/7.mkv
+
+[v4.0.11.2680] FFMpegCore.Exceptions.FFMpegException: ffprobe exited with non-zero exit-code (1 - [matroska,webm @ 0x262e6c0] EBML header parsing failed
+/tv/test/7.mkv: Invalid data found when processing input)
+ at FFMpegCore.FFProbe.GetStreamJson(String filePath, Int32 outputCapacity, FFOptions ffOptions)
+ at NzbDrone.Core.MediaFiles.MediaInfo.VideoFileInfoReader.GetMediaInfo(String filename) in ./Sonarr.Core/MediaFiles/MediaInfo/VideoFileInfoReader.cs:line 140
+
+2024-12-14 01:28:35.6|Error|DetectSample|Failed to get runtime from the file, make sure ffprobe is available
+2024-12-14 01:28:35.6|Error|VideoFileInfoReader|Unable to parse media info from file: /tv/test/8.mkv
+
+[v4.0.11.2680] FFMpegCore.Exceptions.FFMpegException: ffprobe exited with non-zero exit-code (1 - [matroska,webm @ 0x27b86c0] EBML header parsing failed
+/tv/test/8.mkv: Invalid data found when processing input)
+ at FFMpegCore.FFProbe.GetStreamJson(String filePath, Int32 outputCapacity, FFOptions ffOptions)
+ at NzbDrone.Core.MediaFiles.MediaInfo.VideoFileInfoReader.GetMediaInfo(String filename) in ./Sonarr.Core/MediaFiles/MediaInfo/VideoFileInfoReader.cs:line 140
+
+2024-12-14 01:28:35.6|Error|DetectSample|Failed to get runtime from the file, make sure ffprobe is available
+2024-12-14 01:28:35.6|Error|VideoFileInfoReader|Unable to parse media info from file: /tv/test/11.mkv
+
+[v4.0.11.2680] FFMpegCore.Exceptions.FFMpegException: ffprobe exited with non-zero exit-code (1 - [matroska,webm @ 0x34ec6c0] EBML header parsing failed
+/tv/test/11.mkv: Invalid data found when processing input)
+ at FFMpegCore.FFProbe.GetStreamJson(String filePath, Int32 outputCapacity, FFOptions ffOptions)
+ at NzbDrone.Core.MediaFiles.MediaInfo.VideoFileInfoReader.GetMediaInfo(String filename) in ./Sonarr.Core/MediaFiles/MediaInfo/VideoFileInfoReader.cs:line 140
+
+2024-12-14 01:28:35.6|Error|DetectSample|Failed to get runtime from the file, make sure ffprobe is available
+2024-12-14 01:28:35.6|Error|VideoFileInfoReader|Unable to parse media info from file: /tv/test/11.mkv
+
+[v4.0.11.2680] FFMpegCore.Exceptions.FFMpegException: ffprobe exited with non-zero exit-code (1 - [matroska,webm @ 0x24526c0] EBML header parsing failed
+/tv/test/11.mkv: Invalid data found when processing input)
+ at FFMpegCore.FFProbe.GetStreamJson(String filePath, Int32 outputCapacity, FFOptions ffOptions)
+ at NzbDrone.Core.MediaFiles.MediaInfo.VideoFileInfoReader.GetMediaInfo(String filename) in ./Sonarr.Core/MediaFiles/MediaInfo/VideoFileInfoReader.cs:line 140
+
+2024-12-14 01:28:45.2|Fatal|SonarrErrorPipeline|Request Failed. POST /api/v3/manualimport
+
+[v4.0.11.2680] NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AugmentingFailedException: Unable to parse episode info from path: /tv/test/1.mkv
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AggregationService.Augment(LocalEpisode localEpisode, DownloadClientItem downloadClientItem) in ./Sonarr.Core/MediaFiles/EpisodeImport/Aggregation/AggregationService.cs:line 51
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Manual.ManualImportService.ReprocessItem(String path, String downloadId, Int32 seriesId, Nullable`1 seasonNumber, List`1 episodeIds, String releaseGroup, QualityModel quality, List`1 languages, Int32 indexerFlags, ReleaseType releaseType) in ./Sonarr.Core/MediaFiles/EpisodeImport/Manual/ManualImportService.cs:line 144
+ at Sonarr.Api.V3.ManualImport.ManualImportController.ReprocessItems(List`1 items) in ./Sonarr.Api.V3/ManualImport/ManualImportController.cs:line 42
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.SyncObjectResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeActionMethodAsync()
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeNextActionFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Routing.EndpointMiddleware.g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
+ at Sonarr.Http.Middleware.BufferingMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/BufferingMiddleware.cs:line 28
+ at Sonarr.Http.Middleware.IfModifiedMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/IfModifiedMiddleware.cs:line 41
+ at Sonarr.Http.Middleware.CacheHeaderMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/CacheHeaderMiddleware.cs:line 33
+ at Sonarr.Http.Middleware.StartingUpMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/StartingUpMiddleware.cs:line 38
+ at Sonarr.Http.Middleware.UrlBaseMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/UrlBaseMiddleware.cs:line 29
+ at Sonarr.Http.Middleware.VersionMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/VersionMiddleware.cs:line 29
+ at Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.InvokeCore(HttpContext context)
+ at Microsoft.AspNetCore.Authorization.Policy.AuthorizationMiddlewareResultHandler.HandleAsync(RequestDelegate next, HttpContext context, AuthorizationPolicy policy, PolicyAuthorizationResult authorizeResult)
+ at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.g__Awaited|6_0(ExceptionHandlerMiddleware middleware, HttpContext context, Task task)
+
+2024-12-14 01:28:47.6|Fatal|SonarrErrorPipeline|Request Failed. POST /api/v3/manualimport
+
+[v4.0.11.2680] NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AugmentingFailedException: Unable to parse episode info from path: /tv/test/2.mkv
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AggregationService.Augment(LocalEpisode localEpisode, DownloadClientItem downloadClientItem) in ./Sonarr.Core/MediaFiles/EpisodeImport/Aggregation/AggregationService.cs:line 51
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Manual.ManualImportService.ReprocessItem(String path, String downloadId, Int32 seriesId, Nullable`1 seasonNumber, List`1 episodeIds, String releaseGroup, QualityModel quality, List`1 languages, Int32 indexerFlags, ReleaseType releaseType) in ./Sonarr.Core/MediaFiles/EpisodeImport/Manual/ManualImportService.cs:line 144
+ at Sonarr.Api.V3.ManualImport.ManualImportController.ReprocessItems(List`1 items) in ./Sonarr.Api.V3/ManualImport/ManualImportController.cs:line 42
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.SyncObjectResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeActionMethodAsync()
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeNextActionFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Routing.EndpointMiddleware.g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
+ at Sonarr.Http.Middleware.BufferingMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/BufferingMiddleware.cs:line 28
+ at Sonarr.Http.Middleware.IfModifiedMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/IfModifiedMiddleware.cs:line 41
+ at Sonarr.Http.Middleware.CacheHeaderMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/CacheHeaderMiddleware.cs:line 33
+ at Sonarr.Http.Middleware.StartingUpMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/StartingUpMiddleware.cs:line 38
+ at Sonarr.Http.Middleware.UrlBaseMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/UrlBaseMiddleware.cs:line 29
+ at Sonarr.Http.Middleware.VersionMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/VersionMiddleware.cs:line 29
+ at Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.InvokeCore(HttpContext context)
+ at Microsoft.AspNetCore.Authorization.Policy.AuthorizationMiddlewareResultHandler.HandleAsync(RequestDelegate next, HttpContext context, AuthorizationPolicy policy, PolicyAuthorizationResult authorizeResult)
+ at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.g__Awaited|6_0(ExceptionHandlerMiddleware middleware, HttpContext context, Task task)
+
+2024-12-14 01:28:49.9|Fatal|SonarrErrorPipeline|Request Failed. POST /api/v3/manualimport
+
+[v4.0.11.2680] NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AugmentingFailedException: Unable to parse episode info from path: /tv/test/3.mkv
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AggregationService.Augment(LocalEpisode localEpisode, DownloadClientItem downloadClientItem) in ./Sonarr.Core/MediaFiles/EpisodeImport/Aggregation/AggregationService.cs:line 51
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Manual.ManualImportService.ReprocessItem(String path, String downloadId, Int32 seriesId, Nullable`1 seasonNumber, List`1 episodeIds, String releaseGroup, QualityModel quality, List`1 languages, Int32 indexerFlags, ReleaseType releaseType) in ./Sonarr.Core/MediaFiles/EpisodeImport/Manual/ManualImportService.cs:line 144
+ at Sonarr.Api.V3.ManualImport.ManualImportController.ReprocessItems(List`1 items) in ./Sonarr.Api.V3/ManualImport/ManualImportController.cs:line 42
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.SyncObjectResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeActionMethodAsync()
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeNextActionFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Routing.EndpointMiddleware.g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
+ at Sonarr.Http.Middleware.BufferingMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/BufferingMiddleware.cs:line 28
+ at Sonarr.Http.Middleware.IfModifiedMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/IfModifiedMiddleware.cs:line 41
+ at Sonarr.Http.Middleware.CacheHeaderMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/CacheHeaderMiddleware.cs:line 33
+ at Sonarr.Http.Middleware.StartingUpMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/StartingUpMiddleware.cs:line 38
+ at Sonarr.Http.Middleware.UrlBaseMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/UrlBaseMiddleware.cs:line 29
+ at Sonarr.Http.Middleware.VersionMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/VersionMiddleware.cs:line 29
+ at Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.InvokeCore(HttpContext context)
+ at Microsoft.AspNetCore.Authorization.Policy.AuthorizationMiddlewareResultHandler.HandleAsync(RequestDelegate next, HttpContext context, AuthorizationPolicy policy, PolicyAuthorizationResult authorizeResult)
+ at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.g__Awaited|6_0(ExceptionHandlerMiddleware middleware, HttpContext context, Task task)
+
+2024-12-14 01:28:52.2|Fatal|SonarrErrorPipeline|Request Failed. POST /api/v3/manualimport
+
+[v4.0.11.2680] NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AugmentingFailedException: Unable to parse episode info from path: /tv/test/4.mkv
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AggregationService.Augment(LocalEpisode localEpisode, DownloadClientItem downloadClientItem) in ./Sonarr.Core/MediaFiles/EpisodeImport/Aggregation/AggregationService.cs:line 51
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Manual.ManualImportService.ReprocessItem(String path, String downloadId, Int32 seriesId, Nullable`1 seasonNumber, List`1 episodeIds, String releaseGroup, QualityModel quality, List`1 languages, Int32 indexerFlags, ReleaseType releaseType) in ./Sonarr.Core/MediaFiles/EpisodeImport/Manual/ManualImportService.cs:line 144
+ at Sonarr.Api.V3.ManualImport.ManualImportController.ReprocessItems(List`1 items) in ./Sonarr.Api.V3/ManualImport/ManualImportController.cs:line 42
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.SyncObjectResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeActionMethodAsync()
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeNextActionFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Routing.EndpointMiddleware.g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
+ at Sonarr.Http.Middleware.BufferingMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/BufferingMiddleware.cs:line 28
+ at Sonarr.Http.Middleware.IfModifiedMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/IfModifiedMiddleware.cs:line 41
+ at Sonarr.Http.Middleware.CacheHeaderMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/CacheHeaderMiddleware.cs:line 33
+ at Sonarr.Http.Middleware.StartingUpMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/StartingUpMiddleware.cs:line 38
+ at Sonarr.Http.Middleware.UrlBaseMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/UrlBaseMiddleware.cs:line 29
+ at Sonarr.Http.Middleware.VersionMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/VersionMiddleware.cs:line 29
+ at Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.InvokeCore(HttpContext context)
+ at Microsoft.AspNetCore.Authorization.Policy.AuthorizationMiddlewareResultHandler.HandleAsync(RequestDelegate next, HttpContext context, AuthorizationPolicy policy, PolicyAuthorizationResult authorizeResult)
+ at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.g__Awaited|6_0(ExceptionHandlerMiddleware middleware, HttpContext context, Task task)
+
+2024-12-14 01:28:54.4|Fatal|SonarrErrorPipeline|Request Failed. POST /api/v3/manualimport
+
+[v4.0.11.2680] NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AugmentingFailedException: Unable to parse episode info from path: /tv/test/5.mkv
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AggregationService.Augment(LocalEpisode localEpisode, DownloadClientItem downloadClientItem) in ./Sonarr.Core/MediaFiles/EpisodeImport/Aggregation/AggregationService.cs:line 51
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Manual.ManualImportService.ReprocessItem(String path, String downloadId, Int32 seriesId, Nullable`1 seasonNumber, List`1 episodeIds, String releaseGroup, QualityModel quality, List`1 languages, Int32 indexerFlags, ReleaseType releaseType) in ./Sonarr.Core/MediaFiles/EpisodeImport/Manual/ManualImportService.cs:line 144
+ at Sonarr.Api.V3.ManualImport.ManualImportController.ReprocessItems(List`1 items) in ./Sonarr.Api.V3/ManualImport/ManualImportController.cs:line 42
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.SyncObjectResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeActionMethodAsync()
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeNextActionFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Routing.EndpointMiddleware.g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
+ at Sonarr.Http.Middleware.BufferingMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/BufferingMiddleware.cs:line 28
+ at Sonarr.Http.Middleware.IfModifiedMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/IfModifiedMiddleware.cs:line 41
+ at Sonarr.Http.Middleware.CacheHeaderMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/CacheHeaderMiddleware.cs:line 33
+ at Sonarr.Http.Middleware.StartingUpMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/StartingUpMiddleware.cs:line 38
+ at Sonarr.Http.Middleware.UrlBaseMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/UrlBaseMiddleware.cs:line 29
+ at Sonarr.Http.Middleware.VersionMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/VersionMiddleware.cs:line 29
+ at Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.InvokeCore(HttpContext context)
+ at Microsoft.AspNetCore.Authorization.Policy.AuthorizationMiddlewareResultHandler.HandleAsync(RequestDelegate next, HttpContext context, AuthorizationPolicy policy, PolicyAuthorizationResult authorizeResult)
+ at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.g__Awaited|6_0(ExceptionHandlerMiddleware middleware, HttpContext context, Task task)
+
+2024-12-14 01:28:56.6|Fatal|SonarrErrorPipeline|Request Failed. POST /api/v3/manualimport
+
+[v4.0.11.2680] NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AugmentingFailedException: Unable to parse episode info from path: /tv/test/6.mkv
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AggregationService.Augment(LocalEpisode localEpisode, DownloadClientItem downloadClientItem) in ./Sonarr.Core/MediaFiles/EpisodeImport/Aggregation/AggregationService.cs:line 51
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Manual.ManualImportService.ReprocessItem(String path, String downloadId, Int32 seriesId, Nullable`1 seasonNumber, List`1 episodeIds, String releaseGroup, QualityModel quality, List`1 languages, Int32 indexerFlags, ReleaseType releaseType) in ./Sonarr.Core/MediaFiles/EpisodeImport/Manual/ManualImportService.cs:line 144
+ at Sonarr.Api.V3.ManualImport.ManualImportController.ReprocessItems(List`1 items) in ./Sonarr.Api.V3/ManualImport/ManualImportController.cs:line 42
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.SyncObjectResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeActionMethodAsync()
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeNextActionFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Routing.EndpointMiddleware.g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
+ at Sonarr.Http.Middleware.BufferingMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/BufferingMiddleware.cs:line 28
+ at Sonarr.Http.Middleware.IfModifiedMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/IfModifiedMiddleware.cs:line 41
+ at Sonarr.Http.Middleware.CacheHeaderMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/CacheHeaderMiddleware.cs:line 33
+ at Sonarr.Http.Middleware.StartingUpMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/StartingUpMiddleware.cs:line 38
+ at Sonarr.Http.Middleware.UrlBaseMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/UrlBaseMiddleware.cs:line 29
+ at Sonarr.Http.Middleware.VersionMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/VersionMiddleware.cs:line 29
+ at Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.InvokeCore(HttpContext context)
+ at Microsoft.AspNetCore.Authorization.Policy.AuthorizationMiddlewareResultHandler.HandleAsync(RequestDelegate next, HttpContext context, AuthorizationPolicy policy, PolicyAuthorizationResult authorizeResult)
+ at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.g__Awaited|6_0(ExceptionHandlerMiddleware middleware, HttpContext context, Task task)
+
+2024-12-14 01:28:58.5|Fatal|SonarrErrorPipeline|Request Failed. POST /api/v3/manualimport
+
+[v4.0.11.2680] NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AugmentingFailedException: Unable to parse episode info from path: /tv/test/7.mkv
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AggregationService.Augment(LocalEpisode localEpisode, DownloadClientItem downloadClientItem) in ./Sonarr.Core/MediaFiles/EpisodeImport/Aggregation/AggregationService.cs:line 51
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Manual.ManualImportService.ReprocessItem(String path, String downloadId, Int32 seriesId, Nullable`1 seasonNumber, List`1 episodeIds, String releaseGroup, QualityModel quality, List`1 languages, Int32 indexerFlags, ReleaseType releaseType) in ./Sonarr.Core/MediaFiles/EpisodeImport/Manual/ManualImportService.cs:line 144
+ at Sonarr.Api.V3.ManualImport.ManualImportController.ReprocessItems(List`1 items) in ./Sonarr.Api.V3/ManualImport/ManualImportController.cs:line 42
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.SyncObjectResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeActionMethodAsync()
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeNextActionFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Routing.EndpointMiddleware.g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
+ at Sonarr.Http.Middleware.BufferingMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/BufferingMiddleware.cs:line 28
+ at Sonarr.Http.Middleware.IfModifiedMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/IfModifiedMiddleware.cs:line 41
+ at Sonarr.Http.Middleware.CacheHeaderMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/CacheHeaderMiddleware.cs:line 33
+ at Sonarr.Http.Middleware.StartingUpMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/StartingUpMiddleware.cs:line 38
+ at Sonarr.Http.Middleware.UrlBaseMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/UrlBaseMiddleware.cs:line 29
+ at Sonarr.Http.Middleware.VersionMiddleware.InvokeAsync(HttpContext context) in ./Sonarr.Http/Middleware/VersionMiddleware.cs:line 29
+ at Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.InvokeCore(HttpContext context)
+ at Microsoft.AspNetCore.Authorization.Policy.AuthorizationMiddlewareResultHandler.HandleAsync(RequestDelegate next, HttpContext context, AuthorizationPolicy policy, PolicyAuthorizationResult authorizeResult)
+ at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
+ at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.g__Awaited|6_0(ExceptionHandlerMiddleware middleware, HttpContext context, Task task)
+
+2024-12-14 01:29:01.2|Fatal|SonarrErrorPipeline|Request Failed. POST /api/v3/manualimport
+
+[v4.0.11.2680] NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AugmentingFailedException: Unable to parse episode info from path: /tv/test/8.mkv
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.AggregationService.Augment(LocalEpisode localEpisode, DownloadClientItem downloadClientItem) in ./Sonarr.Core/MediaFiles/EpisodeImport/Aggregation/AggregationService.cs:line 51
+ at NzbDrone.Core.MediaFiles.EpisodeImport.Manual.ManualImportService.ReprocessItem(String path, String downloadId, Int32 seriesId, Nullable`1 seasonNumber, List`1 episodeIds, String releaseGroup, QualityModel quality, List`1 languages, Int32 indexerFlags, ReleaseType releaseType) in ./Sonarr.Core/MediaFiles/EpisodeImport/Manual/ManualImportService.cs:line 144
+ at Sonarr.Api.V3.ManualImport.ManualImportController.ReprocessItems(List`1 items) in ./Sonarr.Api.V3/ManualImport/ManualImportController.cs:line 42
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.SyncObjectResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeActionMethodAsync()
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeNextActionFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync()
+--- End of stack trace from previous location ---
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
+ at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.