[13] add spellcheck

This commit is contained in:
meisnate12 2024-05-01 12:17:46 -04:00
parent 54c0128893
commit 204449ddd3
46 changed files with 535 additions and 174 deletions

330
.github/.wordlist.txt vendored Normal file
View file

@ -0,0 +1,330 @@
AAC
accessModes
Addon
Adlib
Amblin
analytics
AniDB
AniDB's
AniList
anilist
AniList's
API
apikey
APIs
apiVersion
AppleTV
ArrAPI
Arrowverse
Atmos
Avenir
BAFTA
BBFC
bearlikelion
Berlinale
Bestest
BING
bing
bitrate
BOING
boolean
BoxOfficeMojo
boxofficemojo
BPjM
BritBox
britbox
bullmoose
burkasaurusrex
bw
Cappella
cd
chazlarson
codec
codecs
collectionless
config
configs
cpp
cpt
CPUs
cron
CronJob
cronjob
crontab
Crunchyroll
customizable
customizations
César
dbader
de
deva
DIIIVOY
diiivoy
diiivoycolor
DIR
dir
DiskStation
dockerfile
dockerfiles
DockerHub
dockerhub
dolby
DreamWorks
dropdown
DTS
DV
Emmys
ENV
env
etree
eventartworks
favorited
fawkes
FFFFFF
Fi
filepath
filetype
FLAC
FlixPatrol
flixpatrol
fontawesome
Fribb
FSK
Galician
generalizable
GitHub
github
githubusercontent
gotify
Grenvilles
GUID
HAMA
hayu
HD
HDR
Hemsworth
homescreen
homescreens
HRA
html
http
https
Hulu
ICheckMovies
ImageMaid
IMAX
IMDb
imdb
IMDb's
IMDbList
img
includer
init
integrations
io
iteratively
Jinja
jkirkcaldy
JohnFawkes
JonnyWong
jpeg
jpg
json
kesleyalfa
Koltom
kometa
Kometa
Kometa's
kometateam
kometautils
Kubernetes
kuesel
Launchd
Letterboxd
LGBTQ
linas
Lingala
linux
LinuxServer
linuxserver
linuxserver's
localhost
Looper
LSIO
lsio
Luxembourgish
LXML
lxml
macOS
mal
MB
mb
MCU
md
mdb
MDBList
mdblist
MediaStinger
mediastinger
mediastingers
MediUX
mediux
meisnate
metacritic
microsoft
mikenobbs
minikube
mnt
monetization
Mossi
MPAA
MyAnimeList
myanimelist
MyAnimeList's
MyCollections
MyOverlays
MyPlaylists
mza
namespace
NAS
natively
nitsua
Nokmål
NOSUCHLIBRARY
notifiarr
Nynorsk
OAuth
oauth
octicons
OMDb
oscar
OSX
ozzy
pathing
PCM
PersistentVolumeClaim
PGID
pgid
pkkid
plex
plex's
plexapi
PlexCollection
PlexPosters
PNG
Pokémon
popularplex
portainer
Powershell
pre
prepend
PUID
puid
QNAP
radarr
Razzie
Razzies
README
Readme
ReadWriteOnce
reciperr
reddit
RedHeadJedi
REMUX
repo
repos
rholder
RogerEvert
Romani
runtime
runtimes
schemas
Sci-Fi
SciFi
ScudLee
SDTV
SemVer
ShawShank
Skywalker
Sohjiro
Sohjiro's
sonarr
SSL
StevenLu
StevenLu's
subprocess
Sundance
SxxEyy
symlinks
Synology
Systemctl
Taglist
Tautulli
Tautulli's
TELESYNC
Templatizing
th
TheMovieDb
themoviedb
ThePosterDB
TheTVDb
TMDb
tmdb
TMDb's
TMDbAPIs
Toastjuh
TODO
tomatometer
trakt
trakt's
transcoded
transcoding
TRaSH
TrueHD
ttf
tutin
tv
TVDb
UI
unionfs
unmanaged
unplayed
unraid
unRAID
URI
URL
url
urls
UserList
userlist
utills
Vecteezy
VENV
venv
visualstudio
vladimir
Wachowski
walkthrough
walkthroughs
watchlist
webhook
webhooks
WEBP
webserver
whitespace
wildcarded
Witherspoon
Wizarding
Wolof
www
xmark
XYZ
yaml
yml
YourName
yourname
Yozora
YozoraXCII
YYYY
zaP
ZeroQI

12
.github/workflows/spellcheck.yml vendored Normal file
View file

@ -0,0 +1,12 @@
name: Spellcheck Action
on: pull_request
jobs:
spellcheck:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: rojopolis/spellcheck-github-actions@0.36.0

19
.spellcheck.yml Normal file
View file

@ -0,0 +1,19 @@
matrix:
- name: Markdown
sources:
- '**/*.md'
- 'CHANGELOG'
aspell:
lang: en
dictionary:
wordlists:
- .github/.wordlist.txt
encoding: utf-8
pipeline:
- pyspelling.filters.markdown:
- pyspelling.filters.html:
comments: false
ignores:
- code
- pre
default_encoding: utf-8

View file

@ -1 +1 @@
2.0.0-develop12 2.0.0-develop13

View file

@ -122,7 +122,7 @@ templates:
rating<<rating_num>>_image_url: rating<<rating_num>>_image_url:
conditions: conditions:
- rating<<rating_num>>_image: anidb - rating<<rating_num>>_image: anidb
value: Anidb value: AniDB
- rating<<rating_num>>_image: imdb - rating<<rating_num>>_image: imdb
value: IMDb value: IMDb
- rating<<rating_num>>_image: letterboxd - rating<<rating_num>>_image: letterboxd

View file

@ -1,6 +1,6 @@
# MdbList Attributes # MDBList Attributes
Configuring [MdbList](https://mdblist.com/) is optional but can allow you to mass edit metadata. Configuring [MDBList](https://mdblist.com/) is optional but can allow you to mass edit metadata.
A `mdblist` mapping is in the root of the config file. A `mdblist` mapping is in the root of the config file.
@ -13,12 +13,12 @@ mdblist:
| Attribute | Allowed Values | Default | Required | | Attribute | Allowed Values | Default | Required |
|:-------------------|:--------------------------------------------------------------------------|:--------|:------------------------------------------:| |:-------------------|:--------------------------------------------------------------------------|:--------|:------------------------------------------:|
| `apikey` | MdbList API Key | N/A | :fontawesome-solid-circle-check:{ .green } | | `apikey` | MDBList API Key | N/A | :fontawesome-solid-circle-check:{ .green } |
| `cache_expiration` | Number of days before each cache mapping expires and has to be re-cached. | 60 | :fontawesome-solid-circle-xmark:{ .red } | | `cache_expiration` | Number of days before each cache mapping expires and has to be re-cached. | 60 | :fontawesome-solid-circle-xmark:{ .red } |
???+ tip ???+ tip
The MdbList apikey can be found [here](https://mdblist.com/preferences/). The MDBList apikey can be found [here](https://mdblist.com/preferences/).
The free apikey is limited to 1000 requests per day so if you hit your limit the program should be able to pick up The free apikey is limited to 1000 requests per day so if you hit your limit the program should be able to pick up
where it left off the next day as long as the `cache` [Setting](settings.md#cache) is enabled. where it left off the next day as long as the `cache` [Setting](settings.md#cache) is enabled.

View file

@ -66,7 +66,7 @@ To connect to MyAnimeList.net you must create a MyAnimeList application and supp
You will need to stop that web server while you're doing this in order to grab that localhost URL. You will need to stop that web server while you're doing this in order to grab that localhost URL.
19. Run Kometa and the auth will be completed. 19. Run Kometa and the authentication will be completed.
## Alternative Way of Letting Kometa make the URL ## Alternative Way of Letting Kometa make the URL
@ -127,6 +127,6 @@ the container normally.
## Online Authorization ## Online Authorization
{% {%
include-markdown "./auth.md" include-markdown "./authentication.md"
start="# Trakt and MyAnimeList Authentication" start="# Trakt and MyAnimeList Authentication"
%} %}

View file

@ -158,11 +158,11 @@ You can create individual blocks of operations by using a list under `operations
**Accepted Values:** Source or List of sources to use in that order **Accepted Values:** Source or List of sources to use in that order
<table class="clearTable"> <table class="clearTable">
<tr><td>`mdb`</td><td>Use MdbList for Content Ratings</td></tr> <tr><td>`mdb`</td><td>Use MDBList for Content Ratings</td></tr>
<tr><td>`mdb_commonsense`</td><td>Use Common Sense Rating through MDbList for Content Ratings</td></tr> <tr><td>`mdb_commonsense`</td><td>Use Common Sense Rating through MDBList for Content Ratings</td></tr>
<tr><td>`mdb_commonsense0`</td><td>Use Common Sense Rating with Zero Padding through MDbList for Content Ratings</td></tr> <tr><td>`mdb_commonsense0`</td><td>Use Common Sense Rating with Zero Padding through MDBList for Content Ratings</td></tr>
<tr><td>`mdb_age_rating`</td><td>Use MDbList Age Rating for Content Ratings</td></tr> <tr><td>`mdb_age_rating`</td><td>Use MDBList Age Rating for Content Ratings</td></tr>
<tr><td>`mdb_age_rating0`</td><td>Use MDbList Age Rating with Zero Padding for Content Ratings</td></tr> <tr><td>`mdb_age_rating0`</td><td>Use MDBList Age Rating with Zero Padding for Content Ratings</td></tr>
<tr><td>`omdb`</td><td>Use IMDb through OMDb for Content Ratings</td></tr> <tr><td>`omdb`</td><td>Use IMDb through OMDb for Content Ratings</td></tr>
<tr><td>`mal`</td><td>Use MyAnimeList for Content Ratings</td></tr> <tr><td>`mal`</td><td>Use MyAnimeList for Content Ratings</td></tr>
<tr><td>`lock`</td><td>Lock Content Rating Field</td></tr> <tr><td>`lock`</td><td>Lock Content Rating Field</td></tr>
@ -279,8 +279,8 @@ You can create individual blocks of operations by using a list under `operations
<tr><td>`tmdb`</td><td>Use TMDb Release Date</td></tr> <tr><td>`tmdb`</td><td>Use TMDb Release Date</td></tr>
<tr><td>`tvdb`</td><td>Use TVDb Release Date</td></tr> <tr><td>`tvdb`</td><td>Use TVDb Release Date</td></tr>
<tr><td>`omdb`</td><td>Use IMDb Release Date through OMDb</td></tr> <tr><td>`omdb`</td><td>Use IMDb Release Date through OMDb</td></tr>
<tr><td>`mdb`</td><td>Use MdbList Release Date</td></tr> <tr><td>`mdb`</td><td>Use MDBList Release Date</td></tr>
<tr><td>`mdb_digital`</td><td>Use MdbList Digital Release Date</td></tr> <tr><td>`mdb_digital`</td><td>Use MDBList Digital Release Date</td></tr>
<tr><td>`anidb`</td><td>Use AniDB Release Date</td></tr> <tr><td>`anidb`</td><td>Use AniDB Release Date</td></tr>
<tr><td>`mal`</td><td>Use MyAnimeList Release Date</td></tr> <tr><td>`mal`</td><td>Use MyAnimeList Release Date</td></tr>
<tr><td>`lock`</td><td>Lock Originally Available Field</td></tr> <tr><td>`lock`</td><td>Lock Originally Available Field</td></tr>
@ -330,17 +330,17 @@ You can create individual blocks of operations by using a list under `operations
<tr><td>`imdb`</td><td>Use IMDb Rating</td></tr> <tr><td>`imdb`</td><td>Use IMDb Rating</td></tr>
<tr><td>`trakt_user`</td><td>Use Trakt User's Personal Rating</td></tr> <tr><td>`trakt_user`</td><td>Use Trakt User's Personal Rating</td></tr>
<tr><td>`omdb`</td><td>Use IMDbRating through OMDb</td></tr> <tr><td>`omdb`</td><td>Use IMDbRating through OMDb</td></tr>
<tr><td>`mdb`</td><td>Use MdbList Score</td></tr> <tr><td>`mdb`</td><td>Use MDBList Score</td></tr>
<tr><td>`mdb_average`</td><td>Use MdbList Average Score</td></tr> <tr><td>`mdb_average`</td><td>Use MDBList Average Score</td></tr>
<tr><td>`mdb_imdb`</td><td>Use IMDb Rating through MDbList</td></tr> <tr><td>`mdb_imdb`</td><td>Use IMDb Rating through MDBList</td></tr>
<tr><td>`mdb_metacritic`</td><td>Use Metacritic Rating through MDbList</td></tr> <tr><td>`mdb_metacritic`</td><td>Use Metacritic Rating through MDBList</td></tr>
<tr><td>`mdb_metacriticuser`</td><td>Use Metacritic User Rating through MDbList</td></tr> <tr><td>`mdb_metacriticuser`</td><td>Use Metacritic User Rating through MDBList</td></tr>
<tr><td>`mdb_trakt`</td><td>Use Trakt Rating through MDbList</td></tr> <tr><td>`mdb_trakt`</td><td>Use Trakt Rating through MDBList</td></tr>
<tr><td>`mdb_tomatoes`</td><td>Use Rotten Tomatoes Rating through MDbList</td></tr> <tr><td>`mdb_tomatoes`</td><td>Use Rotten Tomatoes Rating through MDBList</td></tr>
<tr><td>`mdb_tomatoesaudience`</td><td>Use Rotten Tomatoes Audience Rating through MDbList</td></tr> <tr><td>`mdb_tomatoesaudience`</td><td>Use Rotten Tomatoes Audience Rating through MDBList</td></tr>
<tr><td>`mdb_tmdb`</td><td>Use TMDb Rating through MDbList</td></tr> <tr><td>`mdb_tmdb`</td><td>Use TMDb Rating through MDBList</td></tr>
<tr><td>`mdb_letterboxd`</td><td>Use Letterboxd Rating through MDbList</td></tr> <tr><td>`mdb_letterboxd`</td><td>Use Letterboxd Rating through MDBList</td></tr>
<tr><td>`mdb_myanimelist`</td><td>Use MyAnimeList Rating through MDbList</td></tr> <tr><td>`mdb_myanimelist`</td><td>Use MyAnimeList Rating through MDBList</td></tr>
<tr><td>`anidb_rating`</td><td>Use AniDB Rating</td></tr> <tr><td>`anidb_rating`</td><td>Use AniDB Rating</td></tr>
<tr><td>`anidb_average`</td><td>Use AniDB Average</td></tr> <tr><td>`anidb_average`</td><td>Use AniDB Average</td></tr>
<tr><td>`anidb_score`</td><td>Use AniDB Review Score</td></tr> <tr><td>`anidb_score`</td><td>Use AniDB Review Score</td></tr>

View file

@ -52,6 +52,6 @@ To connect to Trakt.tv you must create a Trakt application and supply Kometa the
## Online Authorization ## Online Authorization
{% {%
include-markdown "./auth.md" include-markdown "./authentication.md"
start="# Trakt and MyAnimeList Authentication" start="# Trakt and MyAnimeList Authentication"
%} %}

View file

@ -1,6 +1,6 @@
# Award Separator Collections # Award Separator Collections
The `separator_award` Default Collection File is used to create a seperator collection for Awards. The `separator_award` Default Collection File is used to create a separator collection for Awards.
![](../images/awardseparator.png) ![](../images/awardseparator.png)

View file

@ -1,6 +1,6 @@
# Chart Separator Collections # Chart Separator Collections
The `separator_chart` Default Collection File is used to create a seperator collection for Charts. The `separator_chart` Default Collection File is used to create a separator collection for Charts.
![](../images/chartseparator.png) ![](../images/chartseparator.png)

View file

@ -70,7 +70,7 @@ work. Any value not specified will use its default value if it has one if not it
| `imdb_list_<<key>>`<sup>1</sup> | **Description:** Adds the Movies in the IMDb List to the specified key's collection. Overrides the [default imdb_list](#imdb-list) for that collection if used.<br>**Values:** List of IMDb List URLs | | | | `imdb_list_<<key>>`<sup>1</sup> | **Description:** Adds the Movies in the IMDb List to the specified key's collection. Overrides the [default imdb_list](#imdb-list) for that collection if used.<br>**Values:** List of IMDb List URLs | | |
| `imdb_search_<<key>>`<sup>1</sup> | **Description:** Adds the Movies in the IMDb Search to the specified key's collection. Overrides the [default imdb_search](#imdb-search) for that collection if used.<br>**Values:** List of IMDb List URLs | | | | `imdb_search_<<key>>`<sup>1</sup> | **Description:** Adds the Movies in the IMDb Search to the specified key's collection. Overrides the [default imdb_search](#imdb-search) for that collection if used.<br>**Values:** List of IMDb List URLs | | |
| `trakt_list_<<key>>`<sup>1</sup> | **Description:** Adds the Movies in the Trakt List to the specified key's collection. Overrides the [default trakt_list](#trakt-list) for that collection if used.<br>**Values:** List of Trakt List URLs | | | | | `trakt_list_<<key>>`<sup>1</sup> | **Description:** Adds the Movies in the Trakt List to the specified key's collection. Overrides the [default trakt_list](#trakt-list) for that collection if used.<br>**Values:** List of Trakt List URLs | | | |
| `mdblist_list_<<key>>`<sup>1</sup> | **Description:** Adds the Movies in the MDb List to the specified key's collection. Overrides the [default mdblist_list](#mdblist-list) for that collection if used.<br>**Values:** List of MDbList URLs | | | | | `mdblist_list_<<key>>`<sup>1</sup> | **Description:** Adds the Movies in the MDb List to the specified key's collection. Overrides the [default mdblist_list](#mdblist-list) for that collection if used.<br>**Values:** List of MDBList URLs | | | |
| `emoji` | **Description:** Controls the Emoji Prefix for all Collections. Set to `""` to remove all emojis.<br>**Values:** Any String | | `emoji` | **Description:** Controls the Emoji Prefix for all Collections. Set to `""` to remove all emojis.<br>**Values:** Any String |
| `emoji_<<key>>`<sup>1</sup> | **Description:** Controls the Emoji Prefix for the specified key's collection. Overrides the [default emoji](#emoji) for that collection if used.<br>**Values:** Any String | | `emoji_<<key>>`<sup>1</sup> | **Description:** Controls the Emoji Prefix for the specified key's collection. Overrides the [default emoji](#emoji) for that collection if used.<br>**Values:** Any String |
| `limit` | **Description:** Changes the Builder Limit for all collections in this file.<br>**Values:** Number Greater than 0 | | `limit` | **Description:** Changes the Builder Limit for all collections in this file.<br>**Values:** Number Greater than 0 |

View file

@ -62,7 +62,7 @@ Radarr/Sonarr.
When `radarr_add_existing`/`sonarr_add_existing` are true the items that exist in the collection/playlist will be added When `radarr_add_existing`/`sonarr_add_existing` are true the items that exist in the collection/playlist will be added
to Radarr/Sonarr. to Radarr/Sonarr.
If your Radarr/Sonarr has different file system mappings from your plex use `radarr_path`/`sonarr_path` along with If your Radarr/Sonarr has different file system mappings from your Plex use `radarr_path`/`sonarr_path` along with
`plex_path` from your [Radarr](../config/radarr.md)/[Sonarr](../config/sonarr.md) global config settings. `plex_path` from your [Radarr](../config/radarr.md)/[Sonarr](../config/sonarr.md) global config settings.
### Radarr Add Settings ### Radarr Add Settings

View file

@ -197,7 +197,7 @@ The `sync_mode: sync` and `collection_order: custom` Setting are recommended sin
| `votes.lte` | Item must have a Number of Votes less than or equal to the given number.<br>**Options:** Any Integer greater than `0`<br>**Example:** `1000` | | `votes.lte` | Item must have a Number of Votes less than or equal to the given number.<br>**Options:** Any Integer greater than `0`<br>**Example:** `1000` |
| `genre` | Item must match all genres given. Can be a comma-separated list.<br>**Options:** `action`, `adventure`, `animation`, `biography`, `comedy`, `documentary`, `drama`, `crime`, `family`, `history`, `news`, `short`, `western`, `sport`, `reality-tv`, `horror`, `fantasy`, `film-noir`, `music`, `romance`, `talk-show`, `thriller`, `war`, `sci-fi`, `musical`, `mystery`, `game-show` | | `genre` | Item must match all genres given. Can be a comma-separated list.<br>**Options:** `action`, `adventure`, `animation`, `biography`, `comedy`, `documentary`, `drama`, `crime`, `family`, `history`, `news`, `short`, `western`, `sport`, `reality-tv`, `horror`, `fantasy`, `film-noir`, `music`, `romance`, `talk-show`, `thriller`, `war`, `sci-fi`, `musical`, `mystery`, `game-show` |
| `genre.any` | Item must match at least one given genre. Can be a comma-separated list.<br>**Options:** `action`, `adventure`, `animation`, `biography`, `comedy`, `documentary`, `drama`, `crime`, `family`, `history`, `news`, `short`, `western`, `sport`, `reality-tv`, `horror`, `fantasy`, `film-noir`, `music`, `romance`, `talk-show`, `thriller`, `war`, `sci-fi`, `musical`, `mystery`, `game-show` | | `genre.any` | Item must match at least one given genre. Can be a comma-separated list.<br>**Options:** `action`, `adventure`, `animation`, `biography`, `comedy`, `documentary`, `drama`, `crime`, `family`, `history`, `news`, `short`, `western`, `sport`, `reality-tv`, `horror`, `fantasy`, `film-noir`, `music`, `romance`, `talk-show`, `thriller`, `war`, `sci-fi`, `musical`, `mystery`, `game-show` |
| `genre.not` | Item must not match any og the given genres. Can be a comma-separated list.<br>**Options:** `action`, `adventure`, `animation`, `biography`, `comedy`, `documentary`, `drama`, `crime`, `family`, `history`, `news`, `short`, `western`, `sport`, `reality-tv`, `horror`, `fantasy`, `film-noir`, `music`, `romance`, `talk-show`, `thriller`, `war`, `sci-fi`, `musical`, `mystery`, `game-show` | | `genre.not` | Item must not match any of the given genres. Can be a comma-separated list.<br>**Options:** `action`, `adventure`, `animation`, `biography`, `comedy`, `documentary`, `drama`, `crime`, `family`, `history`, `news`, `short`, `western`, `sport`, `reality-tv`, `horror`, `fantasy`, `film-noir`, `music`, `romance`, `talk-show`, `thriller`, `war`, `sci-fi`, `musical`, `mystery`, `game-show` |
| `event` | Item must have been nominated for a category at the event given. Can be a comma-separated list.<br>**Options:** `cannes`, `choice`, `spirit`, `sundance`, `bafta`, `oscar`, `emmy`, `golden`, `oscar_picture`, `oscar_director`, `national_film_board_preserved`, `razzie`, or any [IMDb Event ID](https://www.imdb.com/event/all/) (ex. `ev0050888`) | | `event` | Item must have been nominated for a category at the event given. Can be a comma-separated list.<br>**Options:** `cannes`, `choice`, `spirit`, `sundance`, `bafta`, `oscar`, `emmy`, `golden`, `oscar_picture`, `oscar_director`, `national_film_board_preserved`, `razzie`, or any [IMDb Event ID](https://www.imdb.com/event/all/) (ex. `ev0050888`) |
| `event.winning` | Item must have won a category at the event given. Can be a comma-separated list.<br>**Options:** `cannes`, `choice`, `spirit`, `sundance`, `bafta`, `oscar`, `emmy`, `golden`, `oscar_picture`, `oscar_director`, `national_film_board_preserved`, `razzie`, or any [IMDb Event ID](https://www.imdb.com/event/all/) (ex. `ev0050888`) | | `event.winning` | Item must have won a category at the event given. Can be a comma-separated list.<br>**Options:** `cannes`, `choice`, `spirit`, `sundance`, `bafta`, `oscar`, `emmy`, `golden`, `oscar_picture`, `oscar_director`, `national_film_board_preserved`, `razzie`, or any [IMDb Event ID](https://www.imdb.com/event/all/) (ex. `ev0050888`) |
| `imdb_top` | Item must be in the top number of given Movies.<br>**Options:** Any Integer greater than `0` | | `imdb_top` | Item must be in the top number of given Movies.<br>**Options:** Any Integer greater than `0` |

View file

@ -1,16 +1,16 @@
# MdbList Builders # MDBList Builders
You can find items using the features of [MdbList.com](https://mdblist.com/) (MdbList). You can find items using the features of [MDBList.com](https://mdblist.com/) (MDBList).
| Attribute | Description | Works with Movies | Works with Shows | Works with Playlists and Custom Sort | | Attribute | Description | Works with Movies | Works with Shows | Works with Playlists and Custom Sort |
|:--------------------------------|:--------------------------------------------------------------------------|:------------------------------------------:|:------------------------------------------:|:------------------------------------------:| |:--------------------------------|:--------------------------------------------------------------------------|:------------------------------------------:|:------------------------------------------:|:------------------------------------------:|
| [`mdblist_list`](#mdblist-list) | Gets every movie/show in a [MdbList List](https://mdblist.com/toplists/). | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | | [`mdblist_list`](#mdblist-list) | Gets every movie/show in a [MDBList List](https://mdblist.com/toplists/). | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } |
## MdbList List ## MDBList List
Finds every item in a [MdbList List](https://mdblist.com/toplists/). Finds every item in a [MDBList List](https://mdblist.com/toplists/).
The expected input is an MdbList List URL. Multiple values are supported as a list only a comma-separated string will not work. The expected input is an MDBList List URL. Multiple values are supported as a list only a comma-separated string will not work.
The `sync_mode: sync` and `collection_order: custom` Setting are recommended since the lists are continuously updated and in a specific order. The `sync_mode: sync` and `collection_order: custom` Setting are recommended since the lists are continuously updated and in a specific order.
@ -40,9 +40,9 @@ The default `sort_by` when it's not specified is `rank.asc`.
| Option | Description | | Option | Description |
|:----------------------------------------------|:-------------------------------| |:----------------------------------------------|:-------------------------------|
| `rank.asc`<br>`rank.desc` | Sort by MdbList Rank | | `rank.asc`<br>`rank.desc` | Sort by MDBList Rank |
| `score.asc`<br>`score.desc` | Sort by MdbList Score | | `score.asc`<br>`score.desc` | Sort by MDBList Score |
| `score_average.asc`<br>`score_average.desc` | Sort by MdbList Average Score | | `score_average.asc`<br>`score_average.desc` | Sort by MDBList Average Score |
| `released.asc`<br>`released.desc` | Sort by Release Date | | `released.asc`<br>`released.desc` | Sort by Release Date |
| `imdbrating.asc`<br>`imdbrating.desc` | Sort by IMDb Rating | | `imdbrating.asc`<br>`imdbrating.desc` | Sort by IMDb Rating |
| `imdbvotes.asc`<br>`imdbvotes.desc` | Sort by IMDb Votes | | `imdbvotes.asc`<br>`imdbvotes.desc` | Sort by IMDb Votes |

View file

@ -61,15 +61,15 @@ Builders use third-party services to source items to be added to the collection.
!!! builder !!! builder
![MdbList logo](../../../assets/icons/mdblist.png){ align=right } ![MDBList logo](../../../assets/icons/mdblist.png){ align=right }
**[MdbList](../mdblist)** builders grab items based on lists on MdbList.com **[MDBList](../mdblist)** builders grab items based on lists on MDBList.com
[:octicons-home-16: View Builder](../mdblist){ .md-button .md-button--primary } [:octicons-home-16: View Builder](../mdblist){ .md-button .md-button--primary }
??? quicklink "Popular Builders" ??? quicklink "Popular Builders"
- [:octicons-list-ordered-16: MdbList List](../mdblist/#mdblist-list) - Gets every movie/show in a MDbList List. - [:octicons-list-ordered-16: MDBList List](../mdblist/#mdblist-list) - Gets every movie/show in a MDBList List.
!!! builder !!! builder
@ -98,7 +98,7 @@ Builders use third-party services to source items to be added to the collection.
- [:material-television-guide: TVDb Show](../tvdb/#tvdb-show) - Grabs the specified series. - [:material-television-guide: TVDb Show](../tvdb/#tvdb-show) - Grabs the specified series.
- [:material-television-guide: TVDb Movie](../tvdb/#tvdb-movie) - Gets the specified movies. - [:material-television-guide: TVDb Movie](../tvdb/#tvdb-movie) - Gets the specified movies.
- [:material-television-guide: TVDb List](../tvdb/#tvdb-list) - Gets every item in a TVDb List or TVDb Userlist. - [:material-television-guide: TVDb List](../tvdb/#tvdb-list) - Gets every item in a TVDb List or TVDb UserList.
!!! builder !!! builder

View file

@ -9,7 +9,7 @@ You can find items using the features of [Trakt.tv](https://trakt.tv/) (Trakt).
| [`trakt_list`](#trakt-list) | Finds every movie/show in the Trakt List | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | | [`trakt_list`](#trakt-list) | Finds every movie/show in the Trakt List | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } |
| [`trakt_list_details`](#trakt-list) | Finds every movie/show in the Trakt List and updates the collection summary with the list description | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | | [`trakt_list_details`](#trakt-list) | Finds every movie/show in the Trakt List and updates the collection summary with the list description | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } |
| [`trakt_chart`](#trakt-chart) | Finds the movies/shows in the Trakt Chart | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | | [`trakt_chart`](#trakt-chart) | Finds the movies/shows in the Trakt Chart | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } |
| [`trakt_userlist`](#trakt-userlist) | Finds every movie/show in the Trakt Userlist | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | | [`trakt_userlist`](#trakt-userlist) | Finds every movie/show in the Trakt UserList | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } |
| [`trakt_recommendations`](#trakt-recommendations) | Finds the movies/shows in Trakt's Personal Recommendations for your User [Movies](https://trakt.docs.apiary.io/#reference/recommendations/movies/get-movie-recommendations)/[Shows](https://trakt.docs.apiary.io/#reference/recommendations/shows/get-show-recommendations) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | | [`trakt_recommendations`](#trakt-recommendations) | Finds the movies/shows in Trakt's Personal Recommendations for your User [Movies](https://trakt.docs.apiary.io/#reference/recommendations/movies/get-movie-recommendations)/[Shows](https://trakt.docs.apiary.io/#reference/recommendations/shows/get-show-recommendations) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } |
| [`trakt_boxoffice`](#trakt-box-office) | Finds the 10 movies in Trakt's Top Box Office [Movies](https://trakt.tv/movies/boxoffice) list | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | | [`trakt_boxoffice`](#trakt-box-office) | Finds the 10 movies in Trakt's Top Box Office [Movies](https://trakt.tv/movies/boxoffice) list | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } |
@ -128,9 +128,9 @@ collections:
sync_mode: sync sync_mode: sync
``` ```
## Trakt Userlist ## Trakt UserList
Finds every movie/show in the Trakt Userlist. Finds every movie/show in the Trakt UserList.
The `sync_mode: sync` and `collection_order: custom` Setting are recommended since the lists are continuously updated The `sync_mode: sync` and `collection_order: custom` Setting are recommended since the lists are continuously updated
and in a specific order. and in a specific order.

View file

@ -6,8 +6,8 @@ No configuration is required for these builders.
| Attribute | Description | Works with Movies | Works with Shows | Works with Playlists and Custom Sort | | Attribute | Description | Works with Movies | Works with Shows | Works with Playlists and Custom Sort |
|:------------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------:|:------------------------------------------:|:------------------------------------------:| |:------------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------:|:------------------------------------------:|:------------------------------------------:|
| [`tvdb_list`](#tvdb-list) | Finds every item in a [TVDb List](https://www.thetvdb.com/lists) or [TVDb Userlist](https://www.thetvdb.com/lists/custom) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | | [`tvdb_list`](#tvdb-list) | Finds every item in a [TVDb List](https://www.thetvdb.com/lists) or [TVDb UserList](https://www.thetvdb.com/lists/custom) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } |
| [`tvdb_list_details`](#tvdb-list) | Finds every item in a [TVDb List](https://www.thetvdb.com/lists) or [TVDb Userlist](https://www.thetvdb.com/lists/custom) and updates the collection summary and poster with the TVDb list metadata | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | | [`tvdb_list_details`](#tvdb-list) | Finds every item in a [TVDb List](https://www.thetvdb.com/lists) or [TVDb UserList](https://www.thetvdb.com/lists/custom) and updates the collection summary and poster with the TVDb list metadata | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } |
| [`tvdb_show`](#tvdb-show) | Finds the series specified | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | | [`tvdb_show`](#tvdb-show) | Finds the series specified | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } |
| [`tvdb_show_details`](#tvdb-show) | Finds the series specified and updates the collection with the summary, poster, and background from the TVDb series | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | | [`tvdb_show_details`](#tvdb-show) | Finds the series specified and updates the collection with the summary, poster, and background from the TVDb series | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } |
| [`tvdb_movie`](#tvdb-movie) | Finds the movie specified | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | | [`tvdb_movie`](#tvdb-movie) | Finds the movie specified | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } |
@ -15,9 +15,9 @@ No configuration is required for these builders.
## TVDb List ## TVDb List
Finds every item in a [TVDb List](https://www.thetvdb.com/lists) or [TVDb Userlist](https://www.thetvdb.com/lists/custom) Finds every item in a [TVDb List](https://www.thetvdb.com/lists) or [TVDb UserList](https://www.thetvdb.com/lists/custom)
The expected input is a TVDb List URL or TVDb Userlist URL. Multiple values are supported as either a list or a The expected input is a TVDb List URL or TVDb UserList URL. Multiple values are supported as either a list or a
comma-separated string. comma-separated string.
The `sync_mode: sync` and `collection_order: custom` Setting are recommended since the lists are continuously updated The `sync_mode: sync` and `collection_order: custom` Setting are recommended since the lists are continuously updated

View file

@ -319,17 +319,17 @@ Each Special Text Variables has multiple modifiers that can be used to format th
| `imdb_rating` | IMDb Rating | `Movies`, `Shows`, or `Episodes` | | `imdb_rating` | IMDb Rating | `Movies`, `Shows`, or `Episodes` |
| `trakt_user_rating` | Trakt User Rating | `Movies` or `Shows` | | `trakt_user_rating` | Trakt User Rating | `Movies` or `Shows` |
| `omdb_rating` | OMDb Rating | `Movies` or `Shows` | | `omdb_rating` | OMDb Rating | `Movies` or `Shows` |
| `mdb_rating` | MDbList Rating | `Movies` or `Shows` | | `mdb_rating` | MDBList Rating | `Movies` or `Shows` |
| `mdb_average_rating` | MDbList Average Rating | `Movies` or `Shows` | | `mdb_average_rating` | MDBList Average Rating | `Movies` or `Shows` |
| `mdb_imdb_rating` | MDbList IMDb Rating | `Movies` or `Shows` | | `mdb_imdb_rating` | MDBList IMDb Rating | `Movies` or `Shows` |
| `mdb_metacritic_rating` | MDbList Metacritic Rating | `Movies` or `Shows` | | `mdb_metacritic_rating` | MDBList Metacritic Rating | `Movies` or `Shows` |
| `mdb_metacriticuser_rating` | MDbList Metacritic User Rating | `Movies` or `Shows` | | `mdb_metacriticuser_rating` | MDBList Metacritic User Rating | `Movies` or `Shows` |
| `mdb_trakt_rating` | MDbList Trakt Rating | `Movies` or `Shows` | | `mdb_trakt_rating` | MDBList Trakt Rating | `Movies` or `Shows` |
| `mdb_tomatoes_rating` | MDbList Rotten Tomatoes Rating | `Movies` or `Shows` | | `mdb_tomatoes_rating` | MDBList Rotten Tomatoes Rating | `Movies` or `Shows` |
| `mdb_tomatoesaudience_rating` | MDbList Rotten Tomatoes Audience Rating | `Movies` or `Shows` | | `mdb_tomatoesaudience_rating` | MDBList Rotten Tomatoes Audience Rating | `Movies` or `Shows` |
| `mdb_tmdb_rating` | MDbList TMDb Rating | `Movies` or `Shows` | | `mdb_tmdb_rating` | MDBList TMDb Rating | `Movies` or `Shows` |
| `mdb_letterboxd_rating` | MDbList Letterboxd Rating | `Movies` or `Shows` | | `mdb_letterboxd_rating` | MDBList Letterboxd Rating | `Movies` or `Shows` |
| `mdb_myanimelist_rating` | MDbList MyAnimeList Rating | `Movies` or `Shows` | | `mdb_myanimelist_rating` | MDBList MyAnimeList Rating | `Movies` or `Shows` |
| `anidb_rating` | AniDB Rating | `Movies` or `Shows` | | `anidb_rating` | AniDB Rating | `Movies` or `Shows` |
| `anidb_average_rating` | AniDB Average Rating | `Movies` or `Shows` | | `anidb_average_rating` | AniDB Average Rating | `Movies` or `Shows` |
| `anidb_score_rating` | AniDB Score Rating | `Movies` or `Shows` | | `anidb_score_rating` | AniDB Score Rating | `Movies` or `Shows` |

View file

@ -124,8 +124,8 @@ There are multiple types of attributes that can be utilized within a playlist:
### Special Playlist Attributes ### Special Playlist Attributes
| Attribute | Description | Required | | Attribute | Description | Required |
|:------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------:| |:------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------:|
| `libraries` | Determine which libraries the playlist will be built from.<br>**Options:** Comma-separated string or list of library mapping names defined in the `libraries` attribute in the base of your [Configuration File](../overview.md. | :fontawesome-solid-circle-check:{ .green } | | `libraries` | Determine which libraries the playlist will be built from.<br>**Options:** Comma-separated string or list of library mapping names defined in the `libraries` attribute in the base of your [Configuration File](../config/overview.md). | :fontawesome-solid-circle-check:{ .green } |
| `sync_to_users` | Determine which Users have the playlist synced.<br>This will override the global [`playlist_sync_to_users` Setting](../config/settings.md).<br>**Options:** Comma-separated string or list of users, `all` for every user who has server access, or leave blank for just the server owner. | :fontawesome-solid-circle-xmark:{ .red } | | `sync_to_users` | Determine which Users have the playlist synced.<br>This will override the global [`playlist_sync_to_users` Setting](../config/settings.md).<br>**Options:** Comma-separated string or list of users, `all` for every user who has server access, or leave blank for just the server owner. | :fontawesome-solid-circle-xmark:{ .red } |
| `exclude_users` | Determine which Users will be excluded from having the playlist synced.<br>This will override the global [`playlist_excude_users` Setting](../config/settings.md).<br>**Options:** Comma-separated string or list of users, `all` for every user who has server access, or leave blank for just the server owner. | :fontawesome-solid-circle-xmark:{ .red } | | `exclude_users` | Determine which Users will be excluded from having the playlist synced.<br>This will override the global [`playlist_excude_users` Setting](../config/settings.md).<br>**Options:** Comma-separated string or list of users, `all` for every user who has server access, or leave blank for just the server owner. | :fontawesome-solid-circle-xmark:{ .red } |
| `delete_playlist` | Will delete this playlist for the users defined by sync_to_users.<br>**Options:** `true` or `false` | :fontawesome-solid-circle-xmark:{ .red } | | `delete_playlist` | Will delete this playlist for the users defined by sync_to_users.<br>**Options:** `true` or `false` | :fontawesome-solid-circle-xmark:{ .red } |

View file

@ -28,11 +28,11 @@ These are the developers and creators who are an active part of the Kometa commu
| Acknowledgement | Reason | Sponsor the Developer | | Acknowledgement | Reason | Sponsor the Developer |
|:---------------------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------------------------------------------------------------:| |:---------------------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------------------------------------------------------------:|
| [chazlarson](https://github.com/chazlarson/) | Creator of [Media-Scripts](https://github.com/chazlarson/Media-Scripts) which offers supporting functionality to users of Kometa | [Click Here](https://www.google.com/search?q=food+shelf+near+me) | | [chazlarson](https://github.com/chazlarson/) | Creator of [Media-Scripts](https://github.com/chazlarson/Media-Scripts) which offers supporting functionality to users of Kometa | [Click Here](https://www.google.com/search?q=food+shelf+near+me) |
| [linas](https://github.com/linaspurinis) | Creator of [MDBlist.com](https://github.com/deva5610/IMDBList2PlexCollection) which makes creating Kometa compatible lists easy | [Click Here](https://www.patreon.com/mdblist/posts) | | [linas](https://github.com/linaspurinis) | Creator of [MDBList.com](https://github.com/deva5610/IMDbList2PlexCollection) which makes creating Kometa compatible lists easy | [Click Here](https://www.patreon.com/mdblist/posts) |
| [nitsua](https://github.com/austinwbest) | Creator of [Notifiarr](https://github.com/Notifiarr) which integrates Kometa with Discord | [Click Here](https://github.com/sponsors/Notifiarr) | | [nitsua](https://github.com/austinwbest) | Creator of [Notifiarr](https://github.com/Notifiarr) which integrates Kometa with Discord | [Click Here](https://github.com/sponsors/Notifiarr) |
| [ZeroQI](https://github.com/ZeroQI) | Creator of [Absolute Series Scanner](https://github.com/ZeroQI/Absolute-Series-Scanner) and the [HTTP Anidb Metadata Agent (HAMA)](https://github.com/ZeroQI/Hama.bundle) | [Click Here](https://github.com/sponsors/ZeroQI) | | [ZeroQI](https://github.com/ZeroQI) | Creator of [Absolute Series Scanner](https://github.com/ZeroQI/Absolute-Series-Scanner) and the [HTTP AniDB Metadata Agent (HAMA)](https://github.com/ZeroQI/Hama.bundle) | [Click Here](https://github.com/sponsors/ZeroQI) |
| [ScudLee](https://github.com/ScudLee) | Creator of [AniDb Anime Lists](https://github.com/Anime-Lists/anime-lists) | :fontawesome-solid-circle-xmark:{ .red } | | [ScudLee](https://github.com/ScudLee) | Creator of [AniDB Anime Lists](https://github.com/Anime-Lists/anime-lists) | :fontawesome-solid-circle-xmark:{ .red } |
| [Fribb](https://github.com/Fribb) | Creator of the [MyAnimelist.net Metadata Agent](https://github.com/Fribb/MyAnimeList.bundle) which makes matching Anime easy for Kometa users | :fontawesome-solid-circle-xmark:{ .red } | | [Fribb](https://github.com/Fribb) | Creator of the [MyAnimeList.net Metadata Agent](https://github.com/Fribb/MyAnimeList.bundle) which makes matching Anime easy for Kometa users | :fontawesome-solid-circle-xmark:{ .red } |
| [Koltom](https://mediux.pro/) | Creator of [Mediux](https://mediux.pro/) | :fontawesome-solid-circle-xmark:{ .red } | | [Koltom](https://mediux.pro/) | Creator of [Mediux](https://mediux.pro/) | :fontawesome-solid-circle-xmark:{ .red } |
<br> <br>
@ -43,8 +43,8 @@ These are the developers and creators who served as inspiration for Kometa.
| Acknowledgement | Reason | Sponsor the Developer | | Acknowledgement | Reason | Sponsor the Developer |
|:--------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-----------------------------------------------------:| |:--------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-----------------------------------------------------:|
| [JonnyWong16](https://github.com/JonnyWong16) | Creator of the [IMDb Top 250](https://gist.github.com/JonnyWong16/f5b9af386ea58e19bf18c09f2681df23) collection script which served as inspiration for IMDBList2PlexCollection (and for [Tautulli](https://github.com/Tautulli/Tautulli)!) | [Click Here](https://github.com/sponsors/JonnyWong16) | | [JonnyWong16](https://github.com/JonnyWong16) | Creator of the [IMDb Top 250](https://gist.github.com/JonnyWong16/f5b9af386ea58e19bf18c09f2681df23) collection script which served as inspiration for IMDbList2PlexCollection (and for [Tautulli](https://github.com/Tautulli/Tautulli)!) | [Click Here](https://github.com/sponsors/JonnyWong16) |
| [deva5610](https://github.com/deva5610) | Creator of [IMDBList2PlexCollection](https://github.com/deva5610/IMDBList2PlexCollection) which prompted vladimir-tutin to write the original Plex Auto Collections | :fontawesome-solid-circle-xmark:{ .red } | | [deva5610](https://github.com/deva5610) | Creator of [IMDbList2PlexCollection](https://github.com/deva5610/IMDbList2PlexCollection) which prompted vladimir-tutin to write the original Plex Auto Collections | :fontawesome-solid-circle-xmark:{ .red } |
| [vladimir-tutin](https://github.com/vladimir-tutin) | Creator of the original [Plex Auto Collections](https://github.com/vladimir-tutin/Plex-Auto-Collections) which is the inspiration for Kometa. | :fontawesome-solid-circle-xmark:{ .red } | | [vladimir-tutin](https://github.com/vladimir-tutin) | Creator of the original [Plex Auto Collections](https://github.com/vladimir-tutin/Plex-Auto-Collections) which is the inspiration for Kometa. | :fontawesome-solid-circle-xmark:{ .red } |
| [mza921](https://github.com/mza921) and [burkasaurusrex](https://github.com/burkasaurusrex) | Maintaining a forked [Plex Auto Collections](https://github.com/mza921/Plex-Auto-Collections) | :fontawesome-solid-circle-xmark:{ .red } | | [mza921](https://github.com/mza921) and [burkasaurusrex](https://github.com/burkasaurusrex) | Maintaining a forked [Plex Auto Collections](https://github.com/mza921/Plex-Auto-Collections) | :fontawesome-solid-circle-xmark:{ .red } |
| [jkirkcaldy](https://github.com/jkirkcaldy) | Creator of [plex-utills](https://github.com/jkirkcaldy/plex-utills) which served as inspiration for Image Overlay | [Click Here](https://opencollective.com/themainframe) | | [jkirkcaldy](https://github.com/jkirkcaldy) | Creator of [plex-utills](https://github.com/jkirkcaldy/plex-utills) which served as inspiration for Image Overlay | [Click Here](https://opencollective.com/themainframe) |

View file

@ -2,7 +2,7 @@
search: search:
boost: 4 boost: 4
--- ---
# FAQ & Knowledgebase # FAQ & Knowledge Base
This page aims to provide knowledge based on combined user experience, and to answer the frequent questions that we are asked in our [Discord Server](https://kometa.wiki/en/latest/discord/). This page aims to provide knowledge based on combined user experience, and to answer the frequent questions that we are asked in our [Discord Server](https://kometa.wiki/en/latest/discord/).
@ -380,7 +380,7 @@ Your Kometa installation may not be located at the paths referenced below. These
There is nothing that Kometa or our support staff can really do to resolve a 500 error. There is nothing that Kometa or our support staff can really do to resolve a 500 error.
## Knowledgebase ## Knowledge Base
This section aims to provide some insight as to articles/information that we feel is important to document as they may pop up infrequently but often enough to require entry here. This section aims to provide some insight as to articles/information that we feel is important to document as they may pop up infrequently but often enough to require entry here.

View file

@ -17,7 +17,7 @@ These guides will walk you through installing Kometa on your system.
## Explanations ## Explanations
The below guides and recipes have been created to assist users with various aspects of Komets and its companion scripts. The below guides and recipes have been created to assist users with various aspects of Kometa's and its companion scripts.
- [Plex Ratings Explained](ratings.md) - [Plex Ratings Explained](ratings.md)
- [Scheduling Kometa Runs Guide](scheduling.md) - [Scheduling Kometa Runs Guide](scheduling.md)
@ -80,10 +80,10 @@ A lot of these guides are stored on Google Drive as using the traditional wiki p
- Stores the Rainier actor posters - Stores the Rainier actor posters
- [People Images Signature (signature)](https://github.com/Kometa-Team/People-Images-signature) - [People Images Signature (signature)](https://github.com/Kometa-Team/People-Images-signature)
- Stores the Signature actor posters - Stores the Signature actor posters
- [People Images DIIVOY (diiivoy)](https://github.com/Kometa-Team/People-Images-diiivoy) - [People Images DIIIVOY (diiivoy)](https://github.com/Kometa-Team/People-Images-diiivoy)
- Stores the DIIVOY actor posters - Stores the DIIIVOY actor posters
- [People Images DIIVOY Color (diiivoycolor)](https://github.com/Kometa-Team/People-Images-diiivoycolor) - [People Images DIIIVOY Color (diiivoycolor)](https://github.com/Kometa-Team/People-Images-diiivoycolor)
- Stores the DIIVOY Color actor posters - Stores the DIIIVOY Color actor posters
- [People Images Transparent (transparent)](https://github.com/Kometa-Team/People-Images-transparent) - [People Images Transparent (transparent)](https://github.com/Kometa-Team/People-Images-transparent)
- Stores the Transparent actor posters - Stores the Transparent actor posters

View file

@ -202,7 +202,7 @@ The log will show Kometa updating those values.
#### Use Trakt Rating #### Use Trakt Rating
Let's change the Trakt rating to that trakt public rating of `85%` instead, which is available via MDbList: Let's change the Trakt rating to that trakt public rating of `85%` instead, which is available via MDBList:
??? example "Updated config (click to expand)" ??? example "Updated config (click to expand)"

View file

@ -102,13 +102,13 @@ This message shows that your installation appears to be working correctly.
... ...
``` ```
If that doesn't work, stop here until you fix that. Diagnoing and repairing Docker install problems is out of the scope of this walkthrough. If that doesn't work, stop here until you fix that. Diagnosing and repairing Docker install problems is out of the scope of this walkthrough.
--- ---
#### Important note on Docker images #### Important note on Docker images
This tutorial uses the official image, and you should, too. Don't change `kometateam/kometa` to the `linuxserver.io` image or any other; other images may have [idiosyncracies](images.md) that will prevent this walkthrough from working. The official image *will* behave exactly as documented below. Others very possibly won't. This tutorial uses the official image, and you should, too. Don't change `kometateam/kometa` to the `linuxserver.io` image or any other; other images may have [idiosyncrasies](images.md) that will prevent this walkthrough from working. The official image *will* behave exactly as documented below. Others very possibly won't.
The great thing about Docker is that all the setup you'd have to do to run Kometa is already done inside the docker image. The great thing about Docker is that all the setup you'd have to do to run Kometa is already done inside the docker image.

View file

@ -287,7 +287,7 @@ the cronjob starts each time. This can be done by including an init container w
### Including the Init Container in the Cron Job ### Including the Init Container in the Cron Job
NOTE the environment value nameed `JINJA_DEST_FILE` is the resulting name of the generated config file. NOTE the environment value named `JINJA_DEST_FILE` is the resulting name of the generated config file.
``` ```
apiVersion: batch/v1 apiVersion: batch/v1

View file

@ -204,7 +204,7 @@ Later on you can move it elsewhere if you want, but for now put it there. This
``` ```
git pull git pull
``` ```
No need to download a new ZIP, uncompress it, etc. No need to download a new ZIP, decompress it, etc.
Also, if you are asked to [or want to] switch to the latest develop or nightly code, you can do so with: Also, if you are asked to [or want to] switch to the latest develop or nightly code, you can do so with:
``` ```
git checkout develop git checkout develop
@ -634,10 +634,10 @@ deactivate
### I want to use the nightly branch ### I want to use the nightly branch
Follow the instructions for the `develop` branch above, subsituting `nightly` for `develop` Follow the instructions for the `develop` branch above, substituting `nightly` for `develop`
### I want to use the master branch ### I want to use the master branch
Follow the instructions for the `develop` branch above, subsituting `master` for `develop` Follow the instructions for the `develop` branch above, substituting `master` for `develop`
The installation of requirements every time is probably overkill, but it's harmless and ensures that you always get any new versions or new requirements. The installation of requirements every time is probably overkill, but it's harmless and ensures that you always get any new versions or new requirements.

View file

@ -72,7 +72,7 @@ To install a container from docker hub, you will need community applications - a
#### Important note on Docker images #### Important note on Docker images
This tutorial uses the official image, and you should, too. Don't change `kometateam/kometa` to the `linuxserver.io` image or any other. Other images may have [idiosyncracies](images.md) that will prevent this walkthrough from working. The official image *will* behave exactly as documented below. Others very possibly won't. This tutorial uses the official image, and you should, too. Don't change `kometateam/kometa` to the `linuxserver.io` image or any other. Other images may have [idiosyncrasies](images.md) that will prevent this walkthrough from working. The official image *will* behave exactly as documented below. Others very possibly won't.
The great thing about Docker is that all the setup you'd have to do to run Kometa is already done inside the docker image. The great thing about Docker is that all the setup you'd have to do to run Kometa is already done inside the docker image.
@ -98,7 +98,7 @@ You can now close the unRAID terminal and start the Kometa container.
**_From this point forward, you can Console `>_Console` into the running container as it will stay running_** **_From this point forward, you can Console `>_Console` into the running container as it will stay running_**
Open a Console by left-clicking on the running Kometcontainer and selecting `>_Console`. This will open up an interactive session within the container to be able to run the commands we want. Open a Console by left-clicking on the running Kometa Container and selecting `>_Console`. This will open up an interactive session within the container to be able to run the commands we want.
### Create a directory to quiet an error later ### Create a directory to quiet an error later

View file

@ -58,7 +58,7 @@ You will ultimately need an entry here for each of the libraries on which you wa
For now, delete the “TV Shows”, “Anime”, and "Music" sections from the config file and change the name of the “Movies” section to “Movies-NOSUCHLIBRARY": For now, delete the “TV Shows”, “Anime”, and "Music" sections from the config file and change the name of the “Movies” section to “Movies-NOSUCHLIBRARY":
The top bit of your config file should now looke like this: The top bit of your config file should now look like this:
```yaml ```yaml
libraries: libraries:
@ -74,5 +74,5 @@ playlist_files:
This is intended to cause an error for illustration that you will then fix. This is intended to cause an error for illustration that you will then fix.
Be very careful with the indentation and ensure it looks exactly like the above; each line indented using two spaces, NOT TABS, with `playlist_files:` all teh way over on the left. Indentation is significant in YAML. Be very careful with the indentation and ensure it looks exactly like the above; each line indented using two spaces, NOT TABS, with `playlist_files:` all the way over on the left. Indentation is significant in YAML.

View file

@ -2,7 +2,7 @@ Kometa provides an extensive collection of "default" collection files.
These files provide a simple way for you to create collections based on franchises or awards or actors, etc. These files provide a simple way for you to create collections based on franchises or awards or actors, etc.
The default config links to two of them, thse two lines in your config file: The default config links to two of them, these two lines in your config file:
```yaml ```yaml
libraries: libraries:

View file

@ -8,8 +8,8 @@ For best results *with this walkthrough*, your test library will contain:
- At least two comedy movies released since 2012. - At least two comedy movies released since 2012.
- At least two movies from the [IMDB top 250](https://www.imdb.com/chart/top/). - At least two movies from the [IMDB top 250](https://www.imdb.com/chart/top/).
- At least two movies from [IMDB's Popular list](https://www.imdb.com/chart/moviemeter). - At least two movies from [IMDb's Popular list](https://www.imdb.com/chart/moviemeter).
- At least two movies from [IMDB's Lowest Rated](https://www.imdb.com/chart/bottom). - At least two movies from [IMDb's Lowest Rated](https://www.imdb.com/chart/bottom).
- A couple different resolutions among the movies. - A couple different resolutions among the movies.
That will ensure there's something to go into each of the example collections that will be created. That will ensure there's something to go into each of the example collections that will be created.

View file

@ -70,21 +70,21 @@ This section aims to explain some commonly seen event messages that are produced
This table details examples of the most commonly-seen `[CRITICAL]` events and what they mean for the user. This table details examples of the most commonly-seen `[CRITICAL]` events and what they mean for the user.
| Type | Short Info | Description | Recommendation | | Type | Short Info | Description | Recommendation |
|:-----------|:----------------------------------------------------|:------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------| |:-----------|:----------------------------------------------------|:---------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------|
| `CRITICAL` | `Failed to Connect to https://api.themoviedb.org/3` | Current step Kometa was on made an API call to TMDb, but it aborted and moved on | Determine if TMDb was offline and not replying to api requests. Try again and see if it fails again or not. | | `CRITICAL` | `Failed to Connect to https://api.themoviedb.org/3` | Current step Kometa was on made an API call to TMDb, but it aborted and moved on | Determine if TMDb was offline and not replying to API requests. Try again and see if it fails again or not. |
#### ERROR #### ERROR
This table details examples of the most commonly-seen `[ERROR]` events and what they mean for the user. This table details examples of the most commonly-seen `[ERROR]` events and what they mean for the user.
| Type | Short Info | Description | Recommendation | | Type | Short Info | Description | Recommendation |
|:--------|:------------------------------------------------------------------|:---------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| |:--------|:------------------------------------------------------------------|:------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `ERROR` | `Playlist Error: Library: XYZ not defined` | Plex library XYZ is not found | Ensure that your config file has defined the proper library name as found in Plex | | `ERROR` | `Playlist Error: Library: XYZ not defined` | Plex library XYZ is not found | Ensure that your config file has defined the proper library name as found in Plex |
| `ERROR` | `Plex Error: resolution: No matches found with regex pattern XYZ` | While looking for a pattern in Plex, this one was not found | This may be normal and require 0 actions. However, if you expect that Plex should have returned records, check the pattern to ensure it is working properly | | `ERROR` | `Plex Error: resolution: No matches found with regex pattern XYZ` | While looking for a pattern in Plex, this one was not found | This may be normal and require 0 actions. However, if you expect that Plex should have returned records, check the pattern to ensure it is working properly |
| `ERROR` | `Plex Error: No Items found in Plex` | While using the Kometa builder, no items with that criteria were returned from Plex | This may be normal and require 0 actions. However, if you expect that Plex should have returned records, check the builder to ensure it is working properly | | `ERROR` | `Plex Error: No Items found in Plex` | While using the Kometa builder, no items with that criteria were returned from Plex | This may be normal and require 0 actions. However, if you expect that Plex should have returned records, check the builder to ensure it is working properly |
| `ERROR` | `IMDb Error: Failed to parse URL:` | While using the Kometa builder, url does not exist | This may be normal and require 0 actions. However, if you expect that the URL should have returned records, check the url in your browser to ensure it is working properly | | `ERROR` | `IMDb Error: Failed to parse URL:` | While using the Kometa builder, url does not exist | This may be normal and require 0 actions. However, if you expect that the URL should have returned records, check the url in your browser to ensure it is working properly |
| `ERROR` | `Trakt Error: No TVDb ID found for Nightfall (2022)` | Online sources are missing information | These sorts of errors indicate that the thing can't be cross-referenced between sites.</br>For example, at the time of that error, the Trakt record for "Nightfall (2022)" didn't contain a TVDb ID.</br>This could be because the record just hasn't been updated, or because "Nightfall (2022)" is not listed on TVDb.</br>The fix is for someone [like you, perhaps] to go to the relevant site and fill in the missing data. | | `ERROR` | `Trakt Error: No TVDb ID found for Nightfall (2022)` | Online sources are missing information | These sorts of errors indicate that the thing can't be cross-referenced between sites.</br>For example, at the time of that error, the Trakt record for "Nightfall (2022)" didn't contain a TVDb ID.</br>This could be because the record just hasn't been updated, or because "Nightfall (2022)" is not listed on TVDb.</br>The fix is for someone [like you, perhaps] to go to the relevant site and fill in the missing data. |
| `ERROR` | `MdbList Error: Not Found` | Online sources are missing information | These sorts of errors indicate that the thing can't be cross-referenced between sites. For example, at the time of that error, the MDBlist record was trying to get a rating for a media item and could not find it. | | `ERROR` | `MDBList Error: Not Found` | Online sources are missing information | These sorts of errors indicate that the thing can't be cross-referenced between sites. For example, at the time of that error, the MDBList record was trying to get a rating for a media item and could not find it. |
| `ERROR` | `Plex Error: actor: Mel B not found` | Actor not found and hence unable to create the collection | Report error in #kometa-help channel and see if there is a fix. | | `ERROR` | `Plex Error: actor: Mel B not found` | Actor not found and hence unable to create the collection | Report error in #kometa-help channel and see if there is a fix. |
| `ERROR` | `Input Failed` | A token or password is no longer valid for an online source of information | Review the kometa.log for more information | | `ERROR` | `Input Failed` | A token or password is no longer valid for an online source of information | Review the kometa.log for more information |
| `ERROR` | `Collection Error: trakt_list requires Trakt to be configured` | You are using a builder that has not been configured yet. | Review the kometa.log for more information on what went wrong. Refer to the wiki for details on how to set this up (in this case Trakt) | | `ERROR` | `Collection Error: trakt_list requires Trakt to be configured` | You are using a builder that has not been configured yet. | Review the kometa.log for more information on what went wrong. Refer to the wiki for details on how to set this up (in this case Trakt) |
@ -94,7 +94,7 @@ This table details examples of the most commonly-seen `[ERROR]` events and what
This table details examples of the most commonly-seen `[WARNING]` events and what they mean for the user. This table details examples of the most commonly-seen `[WARNING]` events and what they mean for the user.
| Type | Short Info | Description | Recommendation | | Type | Short Info | Description | Recommendation |
|:----------|:-----------------------------------------------------------------|:-----------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| |:----------|:-------------------------------------------------------------------|:----------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `WARNING` | `Convert Warning: No TVDb ID Found for TMDb ID: 15733` | Online sources are missing information | These sorts of errors indicate that the thing can't be cross-referenced between sites.</br>For example, at the time of that error, the TMDb record for "The Two Mrs. Grenvilles" [ID 15733] didn't contain a TVDb ID.</br>This could be because the record just hasn't been updated, or because "The Two Mrs. Grenvilles" is not listed on TVDB.</br>The fix is for someone [like you, perhaps] to go to the relevant site and fill in the missing data. | | `WARNING` | `Convert Warning: No TVDb ID Found for TMDb ID: 15733` | Online sources are missing information | These sorts of errors indicate that the thing can't be cross-referenced between sites.</br>For example, at the time of that error, the TMDb record for "The Two Mrs. Grenvilles" [ID 15733] didn't contain a TVDb ID.</br>This could be because the record just hasn't been updated, or because "The Two Mrs. Grenvilles" is not listed on TVDB.</br>The fix is for someone [like you, perhaps] to go to the relevant site and fill in the missing data. |
| `WARNING` | `Convert Warning: AniDB ID not found for AniList ID: 21400` | Online sources are missing information | These sorts of errors indicate that the thing can't be cross-referenced between sites. The fix is for someone [like you, perhaps] to go to the relevant site and fill in the missing data. | | `WARNING` | `Convert Warning: AniDB ID not found for AniList ID: 21400` | Online sources are missing information | These sorts of errors indicate that the thing can't be cross-referenced between sites. The fix is for someone [like you, perhaps] to go to the relevant site and fill in the missing data. |
| `WARNING` | `Convert Warning: No TVDb ID or IMDb ID found for AniDB ID: 14719` | Online sources are missing information | These sorts of errors indicate that the thing can't be cross-referenced between sites. The fix is for someone [like you, perhaps] to go to the relevant site and fill in the missing data. | | `WARNING` | `Convert Warning: No TVDb ID or IMDb ID found for AniDB ID: 14719` | Online sources are missing information | These sorts of errors indicate that the thing can't be cross-referenced between sites. The fix is for someone [like you, perhaps] to go to the relevant site and fill in the missing data. |
@ -105,7 +105,7 @@ This table details examples of the most commonly-seen `[WARNING]` events and wha
This table details examples of the most commonly-seen `[INFO]` events and what they mean for the user. This table details examples of the most commonly-seen `[INFO]` events and what they mean for the user.
| Type | Short Info | Description | Recommendation | | Type | Short Info | Description | Recommendation |
|:-------|:----------------------------------------------|:--------------------------------------|:------------------------------------------------------------------------------------------------------------------------------| |:-------|:----------------------------------------------|:--------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------|
| `INFO` | `Detail: TMDb_person updated poster to [URL]` | Person image was downloaded from TMDb | May require you to update the people poster image to your style or request it in the style of the Kometa defaults people posters | | `INFO` | `Detail: TMDb_person updated poster to [URL]` | Person image was downloaded from TMDb | May require you to update the people poster image to your style or request it in the style of the Kometa defaults people posters |
### Other Troubleshooting Examples ### Other Troubleshooting Examples

View file

@ -184,25 +184,25 @@ message: 3: YAML # breaks as a : is a special character
"message: 3": YAML # Works as the key string is quoted "message: 3": YAML # Works as the key string is quoted
``` ```
#### Multiline Strings #### Multi-Line Strings
Strings can be interpreted as multiline using the pipe (`|`) character. Strings can be interpreted as multi-line using the pipe (`|`) character.
```yaml ```yaml
message: | message: |
this is this is
a real multiline a real multi-line
message message
``` ```
This would be read as `this is\na real multiline\nmessage` This would be read as `this is\na real multi-line\nmessage`
## Comments ## Comments
YAML file also supports comments, unlike JSON. A comment starts with #. YAML file also supports comments, unlike JSON. A comment starts with #.
```yaml ```yaml
# Strats with a top level Dictionary with keys `libraries` and `settings` # Starts with a top level Dictionary with keys `libraries` and `settings`
libraries: # Value is a Dictionary with keys `Movies` and `TV Shows` libraries: # Value is a Dictionary with keys `Movies` and `TV Shows`
``` ```

View file

@ -4,4 +4,4 @@
See the [Installation Page](../kometa/install/overview.md) for info on how to install Kometa. See the [Installation Page](../kometa/install/overview.md) for info on how to install Kometa.
This guide is assuming you know how to run Kometwith the `--run` run command or the `KOMETA_RUN` environment variable to perform immediate runs This guide is assuming you know how to run Kometa with the `--run` run command or the `KOMETA_RUN` environment variable to perform immediate runs

View file

@ -65,7 +65,7 @@ Now let's use the `sort_title` attribute to reorder these collections slightly
sort_title: "%&'Collection 2" sort_title: "%&'Collection 2"
``` ```
You will often see users using sort titles such as `+++++++_My Collection` or `!010_My Collection` in order to force a specific order of collections. Whilst it may not seem logical at a glance, the ASCII sort order allows a lot of fleixibility for power users to be able to tailor the ordering of collections. You will often see users using sort titles such as `+++++++_My Collection` or `!010_My Collection` in order to force a specific order of collections. Whilst it may not seem logical at a glance, the ASCII sort order allows a lot of flexibility for power users to be able to tailor the ordering of collections.
### Kometa Default Collection Sorting ### Kometa Default Collection Sorting

View file

@ -12,7 +12,7 @@ Then open your config file in an editor that supports the use of JSON schema.
For example, VS Code with the Red Hat YAML extension. For example, VS Code with the Red Hat YAML extension.
This will give you context-sensitve hints and auto-complete for much of the Kometa `config.yml` This will give you context-sensitive hints and auto-complete for much of the Kometa `config.yml`
![image](https://github.com/Kometa-Team/Kometa/assets/3865541/62133e59-ed12-4764-a4da-23595824d4da) ![image](https://github.com/Kometa-Team/Kometa/assets/3865541/62133e59-ed12-4764-a4da-23595824d4da)

View file

@ -183,7 +183,7 @@ nav:
- Tautulli: config/tautulli.md - Tautulli: config/tautulli.md
- Github: config/github.md - Github: config/github.md
- OMDb: config/omdb.md - OMDb: config/omdb.md
- MdbList: config/mdblist.md - MDBList: config/mdblist.md
- Notifiarr: config/notifiarr.md - Notifiarr: config/notifiarr.md
- Gotify: config/gotify.md - Gotify: config/gotify.md
- AniDB: config/anidb.md - AniDB: config/anidb.md
@ -327,7 +327,7 @@ nav:
- Tautulli Builders: files/builders/tautulli.md - Tautulli Builders: files/builders/tautulli.md
- Radarr Builders: files/builders/radarr.md - Radarr Builders: files/builders/radarr.md
- Sonarr Builders: files/builders/sonarr.md - Sonarr Builders: files/builders/sonarr.md
- MdbList Builders: files/builders/mdblist.md - MDBList Builders: files/builders/mdblist.md
- Letterboxd Builders: files/builders/letterboxd.md - Letterboxd Builders: files/builders/letterboxd.md
- ICheckMovies Builders: files/builders/icheckmovies.md - ICheckMovies Builders: files/builders/icheckmovies.md
- BoxOfficeMojo Builders: files/builders/mojo.md - BoxOfficeMojo Builders: files/builders/mojo.md

View file

@ -298,7 +298,7 @@ class AniList:
logger.info(f"Processing AniList Relations: ({data}) {name} ({len(anilist_ids)} Anime)") logger.info(f"Processing AniList Relations: ({data}) {name} ({len(anilist_ids)} Anime)")
elif method == "anilist_userlist": elif method == "anilist_userlist":
anilist_ids = self._userlist(data["username"], data["list_name"], data["sort_by"], data["score"]) anilist_ids = self._userlist(data["username"], data["list_name"], data["sort_by"], data["score"])
logger.info(f"Processing AniList Userlist: {data['list_name']} from {data['username']} sorted by {pretty_user[data['sort_by']]}") logger.info(f"Processing AniList UserList: {data['list_name']} from {data['username']} sorted by {pretty_user[data['sort_by']]}")
else: else:
if method == "anilist_popular": if method == "anilist_popular":
data = {"limit": data, "popularity.gt": 3, "sort_by": "popular"} data = {"limit": data, "popularity.gt": 3, "sort_by": "popular"}

View file

@ -1965,7 +1965,7 @@ class CollectionBuilder:
self.builders.append((method_name, util.parse(self.Type, method_name, method_data, "bool"))) self.builders.append((method_name, util.parse(self.Type, method_name, method_data, "bool")))
def _mdblist(self, method_name, method_data): def _mdblist(self, method_name, method_data):
for mdb_dict in self.config.Mdblist.validate_mdblist_lists(self.Type, method_data): for mdb_dict in self.config.MDBList.validate_mdblist_lists(self.Type, method_data):
self.builders.append((method_name, mdb_dict)) self.builders.append((method_name, mdb_dict))
def _tautulli(self, method_name, method_data): def _tautulli(self, method_name, method_data):
@ -2214,7 +2214,7 @@ class CollectionBuilder:
elif "mojo" in method: elif "mojo" in method:
ids = self.config.BoxOfficeMojo.get_imdb_ids(method, value) ids = self.config.BoxOfficeMojo.get_imdb_ids(method, value)
elif "mdblist" in method: elif "mdblist" in method:
ids = self.config.Mdblist.get_tmdb_ids(method, value, self.library.is_movie if not self.playlist else None) ids = self.config.MDBList.get_tmdb_ids(method, value, self.library.is_movie if not self.playlist else None)
elif "tmdb" in method: elif "tmdb" in method:
ids = self.config.TMDb.get_tmdb_ids(method, value, self.library.is_movie, self.tmdb_region) ids = self.config.TMDb.get_tmdb_ids(method, value, self.library.is_movie, self.tmdb_region)
elif "trakt" in method: elif "trakt" in method:

View file

@ -22,7 +22,7 @@ from modules.plex import Plex
from modules.radarr import Radarr from modules.radarr import Radarr
from modules.sonarr import Sonarr from modules.sonarr import Sonarr
from modules.reciperr import Reciperr from modules.reciperr import Reciperr
from modules.mdblist import Mdblist from modules.mdblist import MDBList
from modules.tautulli import Tautulli from modules.tautulli import Tautulli
from modules.tmdb import TMDb from modules.tmdb import TMDb
from modules.trakt import Trakt from modules.trakt import Trakt
@ -63,9 +63,9 @@ mass_genre_options = {
} }
mass_content_options = { mass_content_options = {
"lock": "Lock Rating", "unlock": "Unlock Rating", "remove": "Remove and Lock Rating", "reset": "Remove and Unlock Rating", "lock": "Lock Rating", "unlock": "Unlock Rating", "remove": "Remove and Lock Rating", "reset": "Remove and Unlock Rating",
"omdb": "Use IMDb Rating through OMDb", "mdb": "Use MdbList Rating", "omdb": "Use IMDb Rating through OMDb", "mdb": "Use MDBList Rating",
"mdb_commonsense": "Use Commonsense Rating through MDbList", "mdb_commonsense0": "Use Commonsense Rating with Zero Padding through MDbList", "mdb_commonsense": "Use Commonsense Rating through MDBList", "mdb_commonsense0": "Use Commonsense Rating with Zero Padding through MDBList",
"mdb_age_rating": "Use MDbList Age Rating", "mdb_age_rating0": "Use MDbList Age Rating with Zero Padding", "mdb_age_rating": "Use MDBList Age Rating", "mdb_age_rating0": "Use MDBList Age Rating with Zero Padding",
"mal": "Use MyAnimeList Rating" "mal": "Use MyAnimeList Rating"
} }
mass_collection_content_options = { mass_collection_content_options = {
@ -90,7 +90,7 @@ mass_original_title_options = {
} }
mass_available_options = { mass_available_options = {
"lock": "Lock Originally Available", "unlock": "Unlock Originally Available", "remove": "Remove and Lock Originally Available", "reset": "Remove and Unlock Originally Available", "lock": "Lock Originally Available", "unlock": "Unlock Originally Available", "remove": "Remove and Lock Originally Available", "reset": "Remove and Unlock Originally Available",
"tmdb": "Use TMDb Release", "omdb": "Use IMDb Release through OMDb", "mdb": "Use MdbList Release", "mdb_digital": "Use MdbList Digital Release", "tvdb": "Use TVDb Release", "tmdb": "Use TMDb Release", "omdb": "Use IMDb Release through OMDb", "mdb": "Use MDBList Release", "mdb_digital": "Use MDBList Digital Release", "tvdb": "Use TVDb Release",
"anidb": "Use AniDB Release", "mal": "Use MyAnimeList Release" "anidb": "Use AniDB Release", "mal": "Use MyAnimeList Release"
} }
mass_image_options = { mass_image_options = {
@ -109,17 +109,17 @@ mass_rating_options = {
"imdb": "Use IMDb Rating", "imdb": "Use IMDb Rating",
"trakt_user": "Use Trakt User Rating", "trakt_user": "Use Trakt User Rating",
"omdb": "Use IMDb Rating through OMDb", "omdb": "Use IMDb Rating through OMDb",
"mdb": "Use MdbList Score", "mdb": "Use MDBList Score",
"mdb_average": "Use MdbList Average Score", "mdb_average": "Use MDBList Average Score",
"mdb_imdb": "Use IMDb Rating through MDbList", "mdb_imdb": "Use IMDb Rating through MDBList",
"mdb_metacritic": "Use Metacritic Rating through MDbList", "mdb_metacritic": "Use Metacritic Rating through MDBList",
"mdb_metacriticuser": "Use Metacritic User Rating through MDbList", "mdb_metacriticuser": "Use Metacritic User Rating through MDBList",
"mdb_trakt": "Use Trakt Rating through MDbList", "mdb_trakt": "Use Trakt Rating through MDBList",
"mdb_tomatoes": "Use Rotten Tomatoes Rating through MDbList", "mdb_tomatoes": "Use Rotten Tomatoes Rating through MDBList",
"mdb_tomatoesaudience": "Use Rotten Tomatoes Audience Rating through MDbList", "mdb_tomatoesaudience": "Use Rotten Tomatoes Audience Rating through MDBList",
"mdb_tmdb": "Use TMDb Rating through MDbList", "mdb_tmdb": "Use TMDb Rating through MDBList",
"mdb_letterboxd": "Use Letterboxd Rating through MDbList", "mdb_letterboxd": "Use Letterboxd Rating through MDBList",
"mdb_myanimelist": "Use MyAnimeList Rating through MDbList", "mdb_myanimelist": "Use MyAnimeList Rating through MDBList",
"anidb_rating": "Use AniDB Rating", "anidb_rating": "Use AniDB Rating",
"anidb_average": "Use AniDB Average", "anidb_average": "Use AniDB Average",
"anidb_score": "Use AniDB Review Dcore", "anidb_score": "Use AniDB Review Dcore",
@ -624,21 +624,21 @@ class ConfigFile:
logger.separator() logger.separator()
self.Mdblist = Mdblist(self) self.MDBList = MDBList(self)
if "mdblist" in self.data: if "mdblist" in self.data:
logger.info("Connecting to Mdblist...") logger.info("Connecting to MDBList...")
try: try:
self.Mdblist.add_key( self.MDBList.add_key(
check_for_attribute(self.data, "apikey", parent="mdblist", throw=True), check_for_attribute(self.data, "apikey", parent="mdblist", throw=True),
check_for_attribute(self.data, "cache_expiration", parent="mdblist", var_type="int", default=60, int_min=1) check_for_attribute(self.data, "cache_expiration", parent="mdblist", var_type="int", default=60, int_min=1)
) )
logger.info("Mdblist Connection Successful") logger.info("MDBList Connection Successful")
except Failed as e: except Failed as e:
if str(e).endswith("is blank"): if str(e).endswith("is blank"):
logger.warning(e) logger.warning(e)
else: else:
logger.error(e) logger.error(e)
logger.info("Mdblist Connection Failed") logger.info("MDBList Connection Failed")
else: else:
logger.info("mdblist attribute not found") logger.info("mdblist attribute not found")
@ -992,8 +992,8 @@ class ConfigFile:
for source in sources: for source in sources:
if source and source == "omdb" and self.OMDb is None: if source and source == "omdb" and self.OMDb is None:
raise Failed(f"{source} without a successful OMDb Connection") raise Failed(f"{source} without a successful OMDb Connection")
if source and str(source).startswith("mdb") and not self.Mdblist.has_key: if source and str(source).startswith("mdb") and not self.MDBList.has_key:
raise Failed(f"{source} without a successful MdbList Connection") raise Failed(f"{source} without a successful MDBList Connection")
if source and str(source).startswith("anidb") and not self.AniDB.is_authorized: if source and str(source).startswith("anidb") and not self.AniDB.is_authorized:
raise Failed(f"{source} without a successful AniDB Connection") raise Failed(f"{source} without a successful AniDB Connection")
if source and str(source).startswith("mal") and self.MyAnimeList is None: if source and str(source).startswith("mal") and self.MyAnimeList is None:

View file

@ -318,7 +318,7 @@ class MyAnimeList:
logger.info(f"Processing MyAnimeList Suggested: {data} Anime") logger.info(f"Processing MyAnimeList Suggested: {data} Anime")
mal_ids = self._suggestions(data) mal_ids = self._suggestions(data)
elif method == "mal_userlist": elif method == "mal_userlist":
logger.info(f"Processing MyAnimeList Userlist: {data['limit']} Anime from {self._username() if data['username'] == '@me' else data['username']}'s {pretty_names[data['status']]} list sorted by {pretty_names[data['sort_by']]}") logger.info(f"Processing MyAnimeList UserList: {data['limit']} Anime from {self._username() if data['username'] == '@me' else data['username']}'s {pretty_names[data['status']]} list sorted by {pretty_names[data['sort_by']]}")
mal_ids = self._userlist(data["username"], data["status"], data["sort_by"], data["limit"]) mal_ids = self._userlist(data["username"], data["status"], data["sort_by"], data["limit"])
else: else:
raise Failed(f"MyAnimeList Error: Method {method} not supported") raise Failed(f"MyAnimeList Error: Method {method} not supported")

View file

@ -71,7 +71,7 @@ class MDbObj:
self.age_rating = data["age_rating"] self.age_rating = data["age_rating"]
class Mdblist: class MDBList:
def __init__(self, config): def __init__(self, config):
self.config = config self.config = config
self.apikey = None self.apikey = None
@ -110,12 +110,12 @@ class Mdblist:
time.sleep(0.2 if self.supporter else 1) time.sleep(0.2 if self.supporter else 1)
response = self.config.get_json(url, params=final_params) response = self.config.get_json(url, params=final_params)
except JSONDecodeError: except JSONDecodeError:
raise Failed("Mdblist Error: JSON Decoding Failed") raise Failed("MDBList Error: JSON Decoding Failed")
if "response" in response and (response["response"] is False or response["response"] == "False"): if "response" in response and (response["response"] is False or response["response"] == "False"):
if response["error"] in ["API Limit Reached!", "API Rate Limit Reached!"]: if response["error"] in ["API Limit Reached!", "API Rate Limit Reached!"]:
self.limit = True self.limit = True
raise LimitReached(f"MdbList Error: {response['error']}") raise LimitReached(f"MDBList Error: {response['error']}")
raise Failed(f"MdbList Error: {response['error']}") raise Failed(f"MDBList Error: {response['error']}")
return response return response
def get_item(self, imdb_id=None, tmdb_id=None, tvdb_id=None, is_movie=True, ignore_cache=False): def get_item(self, imdb_id=None, tmdb_id=None, tvdb_id=None, is_movie=True, ignore_cache=False):
@ -132,7 +132,7 @@ class Mdblist:
params["m"] = "movie" if is_movie else "show" params["m"] = "movie" if is_movie else "show"
key = f"{'tvm' if is_movie else 'tvs'}{tvdb_id}" key = f"{'tvm' if is_movie else 'tvs'}{tvdb_id}"
else: else:
raise Failed("MdbList Error: Either IMDb ID, TVDb ID, or TMDb ID and TMDb Type Required") raise Failed("MDBList Error: Either IMDb ID, TVDb ID, or TMDb ID and TMDb Type Required")
expired = None expired = None
if self.config.Cache and not ignore_cache: if self.config.Cache and not ignore_cache:
mdb_dict, expired = self.config.Cache.query_mdb(key, self.expiration) mdb_dict, expired = self.config.Cache.query_mdb(key, self.expiration)
@ -198,7 +198,7 @@ class Mdblist:
def get_tmdb_ids(self, method, data, is_movie=None): def get_tmdb_ids(self, method, data, is_movie=None):
if method == "mdblist_list": if method == "mdblist_list":
logger.info(f"Processing Mdblist.com List: {data['url']}") logger.info(f"Processing MDBList.com List: {data['url']}")
logger.info(f"Sort By: {data['sort_by']}") logger.info(f"Sort By: {data['sort_by']}")
sort, direction = data["sort_by"].split(".") sort, direction = data["sort_by"].split(".")
params = {"sort": sort, "sortorder": direction} params = {"sort": sort, "sortorder": direction}
@ -216,14 +216,14 @@ class Mdblist:
if (isinstance(response, dict) and "error" in response) or (isinstance(response, list) and response and "error" in response[0]): if (isinstance(response, dict) and "error" in response) or (isinstance(response, list) and response and "error" in response[0]):
err = response["error"] if isinstance(response, dict) else response[0]["error"] err = response["error"] if isinstance(response, dict) else response[0]["error"]
if err in ["empty", "empty or private list"]: if err in ["empty", "empty or private list"]:
raise Failed(f"Mdblist Error: No Items Returned. Lists can take 24 hours to update so try again later.") raise Failed(f"MDBList Error: No Items Returned. Lists can take 24 hours to update so try again later.")
raise Failed(f"Mdblist Error: Invalid Response {response}") raise Failed(f"MDBList Error: Invalid Response {response}")
results = [] results = []
for item in response: for item in response:
if item["mediatype"] in ["movie", "show"]: if item["mediatype"] in ["movie", "show"]:
results.append((item["id"], "tmdb" if item["mediatype"] == "movie" else "tmdb_show")) results.append((item["id"], "tmdb" if item["mediatype"] == "movie" else "tmdb_show"))
return results return results
except JSONDecodeError: except JSONDecodeError:
raise Failed(f"Mdblist Error: Invalid JSON Response received") raise Failed(f"MDBList Error: Invalid JSON Response received")
else: else:
raise Failed(f"Mdblist Error: Method {method} not supported") raise Failed(f"MDBList Error: Method {method} not supported")

View file

@ -229,10 +229,10 @@ class Operations:
nonlocal _mdb_obj nonlocal _mdb_obj
if _mdb_obj is None: if _mdb_obj is None:
_mdb_obj = False _mdb_obj = False
if self.config.Mdblist.limit is False: if self.config.MDBList.limit is False:
if self.library.is_show and tvdb_id: if self.library.is_show and tvdb_id:
try: try:
_mdb_obj = self.config.Mdblist.get_series(tvdb_id) _mdb_obj = self.config.MDBList.get_series(tvdb_id)
except LimitReached as err: except LimitReached as err:
logger.debug(err) logger.debug(err)
except Failed as err: except Failed as err:
@ -242,7 +242,7 @@ class Operations:
raise raise
if self.library.is_movie and tmdb_id: if self.library.is_movie and tmdb_id:
try: try:
_mdb_obj = self.config.Mdblist.get_movie(tmdb_id) _mdb_obj = self.config.MDBList.get_movie(tmdb_id)
except LimitReached as err: except LimitReached as err:
logger.debug(err) logger.debug(err)
except Failed as err: except Failed as err:
@ -252,7 +252,7 @@ class Operations:
raise raise
if imdb_id and not _mdb_obj: if imdb_id and not _mdb_obj:
try: try:
_mdb_obj = self.config.Mdblist.get_imdb(imdb_id) _mdb_obj = self.config.MDBList.get_imdb(imdb_id)
except LimitReached as err: except LimitReached as err:
logger.debug(err) logger.debug(err)
except Failed as err: except Failed as err:

View file

@ -301,10 +301,10 @@ class Overlays:
raise Failed("No Trakt User Rating Found") raise Failed("No Trakt User Rating Found")
elif str(format_var).startswith("mdb"): elif str(format_var).startswith("mdb"):
mdb_item = None mdb_item = None
if self.config.Mdblist.limit is False: if self.config.MDBList.limit is False:
if self.library.is_show and tvdb_id: if self.library.is_show and tvdb_id:
try: try:
mdb_item = self.config.Mdblist.get_series(tvdb_id) mdb_item = self.config.MDBList.get_series(tvdb_id)
except LimitReached as err: except LimitReached as err:
logger.debug(err) logger.debug(err)
except Failed as err: except Failed as err:
@ -314,7 +314,7 @@ class Overlays:
raise raise
if self.library.is_movie and tmdb_id: if self.library.is_movie and tmdb_id:
try: try:
mdb_item = self.config.Mdblist.get_movie(tmdb_id) mdb_item = self.config.MDBList.get_movie(tmdb_id)
except LimitReached as err: except LimitReached as err:
logger.debug(err) logger.debug(err)
except Failed as err: except Failed as err:
@ -324,7 +324,7 @@ class Overlays:
raise raise
if imdb_id and not mdb_item: if imdb_id and not mdb_item:
try: try:
mdb_item = self.config.Mdblist.get_imdb(imdb_id) mdb_item = self.config.MDBList.get_imdb(imdb_id)
except LimitReached as err: except LimitReached as err:
logger.debug(err) logger.debug(err)
except Failed as err: except Failed as err: