diff --git a/.readthedocs.yml b/.readthedocs.yml index 8042f378..515314b6 100644 --- a/.readthedocs.yml +++ b/.readthedocs.yml @@ -5,10 +5,10 @@ version: 2 build: os: ubuntu-22.04 tools: - python: "3.7" + python: "3.11" -sphinx: - configuration: docs/conf.py +mkdocs: + configuration: mkdocs.yml formats: [] diff --git a/VERSION b/VERSION index ecbe860d..ad3a27b9 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.19.1-develop23 +1.19.1-develop24 diff --git a/docs/.meta.yml b/docs/.meta.yml new file mode 100644 index 00000000..e845e004 --- /dev/null +++ b/docs/.meta.yml @@ -0,0 +1 @@ +ᴴₒᴴₒᴴₒ: false diff --git a/docs/404.md b/docs/404.md deleted file mode 100644 index c957f13d..00000000 --- a/docs/404.md +++ /dev/null @@ -1,6 +0,0 @@ -

This is not the page you're looking for.

- -```{image} 404.gif -:alt: -:align: center -``` \ No newline at end of file diff --git a/docs/Makefile b/docs/Makefile deleted file mode 100644 index d4bb2cbb..00000000 --- a/docs/Makefile +++ /dev/null @@ -1,20 +0,0 @@ -# Minimal makefile for Sphinx documentation -# - -# You can set these variables from the command line, and also -# from the environment for the first two. -SPHINXOPTS ?= -SPHINXBUILD ?= sphinx-build -SOURCEDIR = . -BUILDDIR = _build - -# Put it first so that "make" without argument is like "make help". -help: - @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) - -.PHONY: help Makefile - -# Catch-all target: route all unknown targets to Sphinx using the new -# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). -%: Makefile - @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) diff --git a/docs/_static/custom.css b/docs/_static/custom.css deleted file mode 100644 index 3d60b656..00000000 --- a/docs/_static/custom.css +++ /dev/null @@ -1,560 +0,0 @@ -body { - font-size: 18px; - color: #dfe1f2; - background-color: #252525; -} - -div.body { - max-width: 1000px; -} - -pre { - background-color: #0d0d0d; - color: #a9abba; - box-shadow: none; - display: block; - border-color: transparent; -} - -ul, ol { - font-size: 17x; -} - -ol.arabic { - list-style: decimal; - font-size: 17px; -} - -ul .simple { - font-size: 17px; -} - -.highlight .nt { - color: #a9abba; - font-weight: bold; -} - -.highlight .nl { - color: #f57900; -} - -.highlight .c1 { - color: #157059; -} - -.highlight .l { - color: #0ce3ac; -} - -.highlight .s { - color: #0ce3ac; -} - -.highlight .no { - color: #a9abba; -} - -.highlight .k { - color: #a9abba; - font-weight: bold; -} - -.highlight .mi { - color: #a9abba; - font-weight: bold; -} - -.highlight .ow { - color: #a9abba; - font-weight: bold; -} - -.highlight .s1 { - color: #0ce3ac; -} - -.highlight .kn { - color: #a9abba; - font-weight: bold; -} - -.highlight .nn { - color: #a9abba; -} -.highlight .nl { - color: #0ce3ac; - font-weight: bold; -} - -.highlight .p { - color: #a9abba; - font-weight: bold; -} - -.highlight .n { - color: #a9abba; -} - -.highlight .nv { - color: #a9abba; -} - -.highlight .nb { - color: #a9abba; -} -.highlight .kt { - color: #0ce3ac; - font-weight: bold; -} - -.highlight .mf { - color: #a9abba; -} - -.highlight .o { - color: #a9abba; - font-weight: bold; -} - -.highlight .s2 { - color: #0ce3ac; -} - -.tab-set > label { - font-size: 0.75em; -} - -label { - margin-bottom: 0px; -} - -button.copybtn { - position: absolute; - display: flex; - top: .3em; - right: .3em; - width: 1.7em; - height: 1.7em; - opacity: 100; - transition: opacity 0.3s, border .3s, background-color .3s; - user-select: none; - padding: 0; - border: none; - outline: none; - border-radius: 0.4em; - /* The colors that GitHub uses */ - border: transparent 1px solid; - background-color: transparent; - color: #57606a; -} -.highlight button.copybtn:hover { - background-color: transparent; -} - -.highlight button.copybtn:active { - background-color: transparent; -} -button.copybtn.success { - border-color: transparent; - color: #22863a; -} -button.copybtn svg { - stroke: #a9abba; - width: 1.5em; - height: 1.5em; - padding: 0em; -} -.tab-set { - width: auto !important; - border-style: solid; - border-width: 1px; - border-color: #00bfa5; - box-shadow: 0px 3px #282829 - background-color: #293e49; - border-radius: 5px; - background-color: #293e49; -} - -.tab-content { - box-shadow: 0 -0.1rem #0ce3ac; - background-color: #252525; - padding-top: 0px; - padding-right: 15px; - padding-left: 15px; - font-size: 15px; -} - -details { - border-style: solid; - border-width: 1px; - border-color: #00b8d4; - box-shadow: 0px 3px #282829; - border-radius: 5px; -} -details.details-tabs > div { - margin: 0; -} -details.details-tabs[open] > summary { - margin: 0; -} -details[open] > summary { - margin: 0 0 10px 0; -} -details > :not(summary) { - padding: 0 10px 0 10px; -} -details > ul, details > ol { - margin-left: 20px; - margin-right: 20px; -} -.table { - width: auto; - max-width: 100%; - margin-bottom: 21px; - background: #transparent; - border-collapse: collapse; - font-size: 17px -} - -table thead tr { - background-color: #151515; -} - -:root { - --tabs--label-text: #FFFFFF; - --tabs--label-text--hover: #0ce3ac; - --tabs--label-text--active: #0ea5e9; - --tabs--label-text--active--hover: #0ea5e9; - --tabs--label-background: transparent; - --tabs--label-background--hover: transparent; - --tabs--label-background--active: transparent; - --tabs--label-background--active--hover: transparent; - --tabs--label-border: transparent; - --tabs--label-border--hover: #d1d5db; - --tabs--label-border--active: #0ea5e9; - --tabs--label-border--active--hover: #0ea5e9; - --tabs--padding-x: 1.25em; - --tabs--margin-x: 0; - --tabs--border: #e6e6e6; -} - -.text-left { - text-align: left !important; - padding-left: 15px !important; -} -.text-center { - text-align: center !important; -} -.text-right { - text-align: right !important; -} -.caption { - margin: 15px 0 5px 10px; -} -code { - color: #a9abba; - background-color: #0d0d0d !important; -} -td hr, th hr { - visibility: hidden; - margin: 0; -} -table.align-default { - margin-left: inherit; -} -hr { - border-top: 3px solid #bcbcbc; - margin-top: 50px; - margin-bottom: 30px; -} -pre code { - background-color: #bcbcbc; -} -a code { - color: #0cafe3; -} -a { - color: #09a77e; -} -a:hover { - color: #0ce3ac; !important; -} -a code { - color: #09a77e; -} -h1, .h1, { - margin: 0 0 1.25em; -} -h2, .h2, { - margin: 1.6em 0 .64em; -} -h3, .h3, { - margin: 1.6em 0 .8em; -} -h4, .h4, { - margin: 1em 0; - -} - -h5., h6, .h5, .h6 { - margin: 1.25em 0 -} - -h1, .h1 { - color: #4aedc4; -} - -h2, h3, h4, h5, h6, .h2, .h3, .h4, .h5, .h6 { - color: #0ce3ac; -} - -th { - color: #0ce3ac; -} -.dropdown-submenu { - position: relative; -} - -.dropdown-submenu>.dropdown-menu { - top: 0; - left: 100%; - margin-top: -6px; - margin-left: -1px; - -webkit-border-radius: 0 6px 6px 6px; - -moz-border-radius: 0 6px 6px; - border-radius: 0 6px 6px 6px; -} - -.dropdown-submenu:hover>.dropdown-menu { - display: block; -} - -.dropdown-submenu>a:after { - display: block; - content: " "; - float: right; - width: 0; - height: 0; - border-color: transparent; - border-style: solid; - border-width: 5px 0 5px 5px; - border-left-color: #ccc; - margin-top: 5px; - margin-right: -10px; -} - -.dropdown-submenu:hover>a:after { - border-left-color: #fff; -} - -.dropdown-submenu.pull-left { - float: none; -} -.dropdown-submenu.pull-left>.dropdown-menu { - left: -100%; - margin-left: 10px; - -webkit-border-radius: 6px 0 6px 6px; - -moz-border-radius: 6px 0 6px 6px; - border-radius: 6px 0 6px 6px; -} -table tbody tr:nth-child(even) { - background-color: #181818; -} -table tbody tr:nth-child(odd) { - background-color: #1D1D1D; -} -table.clearTable { - margin-top: 5px; - margin-bottom: 5px; -} -table.clearTable td { - padding: 3px 3px 3px 15px; -} -table.clearTable th { - text-align: center; -} -table.clearTable, table.clearTable tbody, table.clearTable tr, table.clearTable td, table.clearTable th { - background-color: rgba(0, 0, 0, 0.0) !important; -} -table.dualTable td, table.dualTable th { - padding-left: 15px !important; -} -.images-index-table { - padding: 0; -} -.images-index-table li { - display: inline-block; -} -.images-inline-link { - padding: 8px 10px; - display: inline-block; - background-color: #181818; - border-radius: 10px; - margin: 0 5px 5px 0; - text-align: center; - line-height: 20px; -} -.images-inline-link code { - font-size: 60%; -} -.image-accordion { - border-radius: 15px; - background-color: #1D1D1D; - color: #0ce3ac; - cursor: pointer; - padding: 18px; - width: 100%; - border: none; - text-align: left; - outline: none; - font-size: 20px; - transition: 0.4s; - margin: 5px 0 0 0; -} -.image-active { - border-radius: 15px 15px 0 0 !important; - background-color: #181818; -} -.image-accordion:hover { - background-color: #181818; -} -.image-panel { - background-color: #181818; - max-height: 0; - overflow: auto hidden; - border-radius: 0 0 15px 15px; - transition: max-height 0.2s ease-out; - padding-left: 10px; - padding-right: 10px; -} -.image-accordion:after { - content: '\25BC'; - font-size: 13px; - color: #777; - float: right; - margin-left: 5px; -} -.image-active:after { - content: "\25B2"; -} -table.image-table { - /* margin: 0 auto; */ - border-collapse: separate; -} -table.image-table div { - margin: 0 10px 0 0; - border-radius: 15px; - padding: 10px 10px 0 10px; - text-align: center; - background-color: #1D1D1D; - line-height: 15px; -} -table.image-table td:last-child div { - margin: 0; -} -table.image-table, table.image-table tbody, table.image-table tr, table.image-table th { - background-color: rgba(0, 0, 0, 0.0) !important; -} -table.image-table img { - border-radius: 15px; - margin: 0 0 15px 0; -} -details { - margin-bottom: 5px; - border-color: #7c4dff; -} -summary { - padding: 6px 12px 6px 22px; - background: #363352; - position: relative; - cursor: pointer; -} -summary:before { - content: ''; - border-width: .4rem; - border-style: solid; - border-color: transparent transparent transparent #fff; - position: absolute; - top: 1.3rem; - left: 1rem; - transform: rotate(0); - transform-origin: .2rem 50%; - transition: .25s transform ease; -} -details[open] > summary:before { - transform: rotate(90deg); -} -details summary::-webkit-details-marker { - display:none; -} - -td br { - margin-bottom: 15px; -} -td p { - margin-bottom: 0 !important; -} -p { - -moz-hyphens: none !important; - -ms-hyphens: none !important; - -webkit-hyphens: none !important; - hyphens: none !important; -} -.dropdown-menu > li > a:hover, .dropdown-menu > li > a:focus { - background-color: #00a379 !important; -} -.navbar-inverse .navbar-brand:hover, .navbar-inverse .navbar-brand:focus, .navbar-inverse .navbar-nav > li > a:hover, .navbar-inverse .navbar-nav > li > a:focus { - color: #222222 !important; -} -.tab-set { - width: auto !important; -} -.highlighted { - background-color: #ac0ce3 !important; - color: #FFFFFF !important; -} -a .logo { - display: block; -} -a:hover .logo { - display: none; -} -a .logo-hover { - display: none; -} -a:hover .logo-hover { - display: block; -} -.tab-content { - box-shadow: 0 -0.1rem #0ce3ac; - padding-top: 10px; - padding-bottom: 10px; -} -.tab-set > label { -} -.tab-set > input:checked + label:hover { -} -.tab-set > input:checked + label { - color: #0ce3ac !important; - border-color: #0ce3ac !important; -} -/* Responsive YT Video Embedding */ -.responsiveYT { - position: relative; - height: 0; - padding-top: 56%; - overflow: hidden; - max-width: 100%; -} -.responsiveYT iframe, -.responsiveYT object, -.responsiveYT embed { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; -} -.responsiveYT .fluid-vids { - position: initial !important -} diff --git a/docs/_templates/navbar.html b/docs/_templates/navbar.html deleted file mode 100644 index c8236f94..00000000 --- a/docs/_templates/navbar.html +++ /dev/null @@ -1,105 +0,0 @@ - diff --git a/docs/home/guides/task-scheduler/02-open-task-scheduler.png b/docs/assets/02-open-task-scheduler.png similarity index 100% rename from docs/home/guides/task-scheduler/02-open-task-scheduler.png rename to docs/assets/02-open-task-scheduler.png diff --git a/docs/home/guides/task-scheduler/03-task-scheduler-main.png b/docs/assets/03-task-scheduler-main.png similarity index 100% rename from docs/home/guides/task-scheduler/03-task-scheduler-main.png rename to docs/assets/03-task-scheduler-main.png diff --git a/docs/home/guides/task-scheduler/04-basic-task-01.png b/docs/assets/04-basic-task-01.png similarity index 100% rename from docs/home/guides/task-scheduler/04-basic-task-01.png rename to docs/assets/04-basic-task-01.png diff --git a/docs/home/guides/task-scheduler/04-basic-task-02.png b/docs/assets/04-basic-task-02.png similarity index 100% rename from docs/home/guides/task-scheduler/04-basic-task-02.png rename to docs/assets/04-basic-task-02.png diff --git a/docs/home/guides/task-scheduler/04-basic-task-03.png b/docs/assets/04-basic-task-03.png similarity index 100% rename from docs/home/guides/task-scheduler/04-basic-task-03.png rename to docs/assets/04-basic-task-03.png diff --git a/docs/home/guides/task-scheduler/04-basic-task-04.png b/docs/assets/04-basic-task-04.png similarity index 100% rename from docs/home/guides/task-scheduler/04-basic-task-04.png rename to docs/assets/04-basic-task-04.png diff --git a/docs/home/guides/task-scheduler/04-basic-task-05.png b/docs/assets/04-basic-task-05.png similarity index 100% rename from docs/home/guides/task-scheduler/04-basic-task-05.png rename to docs/assets/04-basic-task-05.png diff --git a/docs/home/guides/task-scheduler/04-basic-task-06.png b/docs/assets/04-basic-task-06.png similarity index 100% rename from docs/home/guides/task-scheduler/04-basic-task-06.png rename to docs/assets/04-basic-task-06.png diff --git a/docs/home/guides/task-scheduler/04-basic-task-07.png b/docs/assets/04-basic-task-07.png similarity index 100% rename from docs/home/guides/task-scheduler/04-basic-task-07.png rename to docs/assets/04-basic-task-07.png diff --git a/docs/home/guides/task-scheduler/04-basic-task-09.png b/docs/assets/04-basic-task-09.png similarity index 100% rename from docs/home/guides/task-scheduler/04-basic-task-09.png rename to docs/assets/04-basic-task-09.png diff --git a/docs/home/guides/task-scheduler/06-basic-task-02.png b/docs/assets/06-basic-task-02.png similarity index 100% rename from docs/home/guides/task-scheduler/06-basic-task-02.png rename to docs/assets/06-basic-task-02.png diff --git a/docs/home/guides/task-scheduler/06-basic-task-03.png b/docs/assets/06-basic-task-03.png similarity index 100% rename from docs/home/guides/task-scheduler/06-basic-task-03.png rename to docs/assets/06-basic-task-03.png diff --git a/docs/home/guides/task-scheduler/06-basic-task-04.png b/docs/assets/06-basic-task-04.png similarity index 100% rename from docs/home/guides/task-scheduler/06-basic-task-04.png rename to docs/assets/06-basic-task-04.png diff --git a/docs/home/guides/task-scheduler/06-basic-task-05.png b/docs/assets/06-basic-task-05.png similarity index 100% rename from docs/home/guides/task-scheduler/06-basic-task-05.png rename to docs/assets/06-basic-task-05.png diff --git a/docs/home/guides/task-scheduler/06-basic-task-06.png b/docs/assets/06-basic-task-06.png similarity index 100% rename from docs/home/guides/task-scheduler/06-basic-task-06.png rename to docs/assets/06-basic-task-06.png diff --git a/docs/404.gif b/docs/assets/404.gif similarity index 100% rename from docs/404.gif rename to docs/assets/404.gif diff --git a/docs/assets/anidb-1.png b/docs/assets/anidb-1.png new file mode 100644 index 00000000..8ee0c11d Binary files /dev/null and b/docs/assets/anidb-1.png differ diff --git a/docs/assets/anidb-2.png b/docs/assets/anidb-2.png new file mode 100644 index 00000000..2d9afd4e Binary files /dev/null and b/docs/assets/anidb-2.png differ diff --git a/docs/assets/anidb-3.png b/docs/assets/anidb-3.png new file mode 100644 index 00000000..0d337930 Binary files /dev/null and b/docs/assets/anidb-3.png differ diff --git a/docs/assets/anilist.png b/docs/assets/anilist.png new file mode 100644 index 00000000..c815f606 Binary files /dev/null and b/docs/assets/anilist.png differ diff --git a/docs/assets/audio_codec.png b/docs/assets/audio_codec.png new file mode 100644 index 00000000..bef5aa7a Binary files /dev/null and b/docs/assets/audio_codec.png differ diff --git a/docs/assets/audio_codec2.png b/docs/assets/audio_codec2.png new file mode 100644 index 00000000..b936c6dc Binary files /dev/null and b/docs/assets/audio_codec2.png differ diff --git a/docs/assets/audio_language.png b/docs/assets/audio_language.png new file mode 100644 index 00000000..8970881a Binary files /dev/null and b/docs/assets/audio_language.png differ diff --git a/docs/assets/awardother.png b/docs/assets/awardother.png new file mode 100644 index 00000000..c01675dc Binary files /dev/null and b/docs/assets/awardother.png differ diff --git a/docs/assets/awardseparator.png b/docs/assets/awardseparator.png new file mode 100644 index 00000000..c577e0ea Binary files /dev/null and b/docs/assets/awardseparator.png differ diff --git a/docs/assets/bafta.png b/docs/assets/bafta.png new file mode 100644 index 00000000..6f601349 Binary files /dev/null and b/docs/assets/bafta.png differ diff --git a/docs/assets/based.png b/docs/assets/based.png new file mode 100644 index 00000000..bd2bcddb Binary files /dev/null and b/docs/assets/based.png differ diff --git a/docs/assets/basic.png b/docs/assets/basic.png new file mode 100644 index 00000000..331f4400 Binary files /dev/null and b/docs/assets/basic.png differ diff --git a/docs/assets/blur.png b/docs/assets/blur.png new file mode 100644 index 00000000..9defcfb7 Binary files /dev/null and b/docs/assets/blur.png differ diff --git a/docs/assets/cannes.png b/docs/assets/cannes.png new file mode 100644 index 00000000..29d47ec2 Binary files /dev/null and b/docs/assets/cannes.png differ diff --git a/docs/assets/chartother.png b/docs/assets/chartother.png new file mode 100644 index 00000000..546110cb Binary files /dev/null and b/docs/assets/chartother.png differ diff --git a/docs/assets/chartseparator.png b/docs/assets/chartseparator.png new file mode 100644 index 00000000..41fd17d9 Binary files /dev/null and b/docs/assets/chartseparator.png differ diff --git a/docs/assets/choice.png b/docs/assets/choice.png new file mode 100644 index 00000000..8ee67052 Binary files /dev/null and b/docs/assets/choice.png differ diff --git a/docs/home/scripts/cleanup.png b/docs/assets/cleanup.png similarity index 100% rename from docs/home/scripts/cleanup.png rename to docs/assets/cleanup.png diff --git a/docs/assets/collectionless.png b/docs/assets/collectionless.png new file mode 100644 index 00000000..7e3866c9 Binary files /dev/null and b/docs/assets/collectionless.png differ diff --git a/docs/assets/commonsense.png b/docs/assets/commonsense.png new file mode 100644 index 00000000..1db37960 Binary files /dev/null and b/docs/assets/commonsense.png differ diff --git a/docs/assets/content_rating_cs.png b/docs/assets/content_rating_cs.png new file mode 100644 index 00000000..6e1bccb1 Binary files /dev/null and b/docs/assets/content_rating_cs.png differ diff --git a/docs/assets/content_rating_mal.png b/docs/assets/content_rating_mal.png new file mode 100644 index 00000000..3248ca88 Binary files /dev/null and b/docs/assets/content_rating_mal.png differ diff --git a/docs/assets/content_rating_uk.png b/docs/assets/content_rating_uk.png new file mode 100644 index 00000000..bd4766d0 Binary files /dev/null and b/docs/assets/content_rating_uk.png differ diff --git a/docs/assets/content_rating_uk1.png b/docs/assets/content_rating_uk1.png new file mode 100644 index 00000000..29f6dcd1 Binary files /dev/null and b/docs/assets/content_rating_uk1.png differ diff --git a/docs/assets/content_rating_us_movie.png b/docs/assets/content_rating_us_movie.png new file mode 100644 index 00000000..436d646a Binary files /dev/null and b/docs/assets/content_rating_us_movie.png differ diff --git a/docs/assets/content_rating_us_show.png b/docs/assets/content_rating_us_show.png new file mode 100644 index 00000000..8a4ba85f Binary files /dev/null and b/docs/assets/content_rating_us_show.png differ diff --git a/docs/assets/country1.png b/docs/assets/country1.png new file mode 100644 index 00000000..31f67ff5 Binary files /dev/null and b/docs/assets/country1.png differ diff --git a/docs/assets/country2.png b/docs/assets/country2.png new file mode 100644 index 00000000..d011fadd Binary files /dev/null and b/docs/assets/country2.png differ diff --git a/docs/assets/decade.png b/docs/assets/decade.png new file mode 100644 index 00000000..207e408b Binary files /dev/null and b/docs/assets/decade.png differ diff --git a/docs/home/guides/default-collections.png b/docs/assets/default-collections.png similarity index 100% rename from docs/home/guides/default-collections.png rename to docs/assets/default-collections.png diff --git a/docs/assets/direct_play.png b/docs/assets/direct_play.png new file mode 100644 index 00000000..cfb54650 Binary files /dev/null and b/docs/assets/direct_play.png differ diff --git a/docs/home/guides/synology/dsm6-01.png b/docs/assets/dsm6-01.png similarity index 100% rename from docs/home/guides/synology/dsm6-01.png rename to docs/assets/dsm6-01.png diff --git a/docs/home/guides/synology/dsm6-02.png b/docs/assets/dsm6-02.png similarity index 100% rename from docs/home/guides/synology/dsm6-02.png rename to docs/assets/dsm6-02.png diff --git a/docs/home/guides/synology/dsm6-03.png b/docs/assets/dsm6-03.png similarity index 100% rename from docs/home/guides/synology/dsm6-03.png rename to docs/assets/dsm6-03.png diff --git a/docs/home/guides/synology/dsm6-04.png b/docs/assets/dsm6-04.png similarity index 100% rename from docs/home/guides/synology/dsm6-04.png rename to docs/assets/dsm6-04.png diff --git a/docs/home/guides/synology/dsm6-05.png b/docs/assets/dsm6-05.png similarity index 100% rename from docs/home/guides/synology/dsm6-05.png rename to docs/assets/dsm6-05.png diff --git a/docs/home/guides/synology/dsm7-01.png b/docs/assets/dsm7-01.png similarity index 100% rename from docs/home/guides/synology/dsm7-01.png rename to docs/assets/dsm7-01.png diff --git a/docs/home/guides/synology/dsm7-02.png b/docs/assets/dsm7-02.png similarity index 100% rename from docs/home/guides/synology/dsm7-02.png rename to docs/assets/dsm7-02.png diff --git a/docs/home/guides/synology/dsm7-03.png b/docs/assets/dsm7-03.png similarity index 100% rename from docs/home/guides/synology/dsm7-03.png rename to docs/assets/dsm7-03.png diff --git a/docs/home/guides/synology/dsm7-04.png b/docs/assets/dsm7-04.png similarity index 100% rename from docs/home/guides/synology/dsm7-04.png rename to docs/assets/dsm7-04.png diff --git a/docs/home/guides/synology/dsm7-05.png b/docs/assets/dsm7-05.png similarity index 100% rename from docs/home/guides/synology/dsm7-05.png rename to docs/assets/dsm7-05.png diff --git a/docs/home/guides/synology/dsm7-06.png b/docs/assets/dsm7-06.png similarity index 100% rename from docs/home/guides/synology/dsm7-06.png rename to docs/assets/dsm7-06.png diff --git a/docs/home/guides/synology/dsm7-07.png b/docs/assets/dsm7-07.png similarity index 100% rename from docs/home/guides/synology/dsm7-07.png rename to docs/assets/dsm7-07.png diff --git a/docs/home/guides/synology/dsm7-08.png b/docs/assets/dsm7-08.png similarity index 100% rename from docs/home/guides/synology/dsm7-08.png rename to docs/assets/dsm7-08.png diff --git a/docs/assets/emmy.png b/docs/assets/emmy.png new file mode 100644 index 00000000..a14cdaa2 Binary files /dev/null and b/docs/assets/emmy.png differ diff --git a/docs/assets/episode_info.png b/docs/assets/episode_info.png new file mode 100644 index 00000000..661600d2 Binary files /dev/null and b/docs/assets/episode_info.png differ diff --git a/docs/assets/favicon.png b/docs/assets/favicon.png new file mode 100644 index 00000000..947d8f39 Binary files /dev/null and b/docs/assets/favicon.png differ diff --git a/docs/home/guides/finished.png b/docs/assets/finished.png similarity index 100% rename from docs/home/guides/finished.png rename to docs/assets/finished.png diff --git a/docs/assets/flixpatrol.png b/docs/assets/flixpatrol.png new file mode 100644 index 00000000..c52715b3 Binary files /dev/null and b/docs/assets/flixpatrol.png differ diff --git a/docs/assets/flixpatrol1.png b/docs/assets/flixpatrol1.png new file mode 100644 index 00000000..0f4f8085 Binary files /dev/null and b/docs/assets/flixpatrol1.png differ diff --git a/docs/assets/genre.png b/docs/assets/genre.png new file mode 100644 index 00000000..dd4b7031 Binary files /dev/null and b/docs/assets/genre.png differ diff --git a/docs/home/guides/git-install.png b/docs/assets/git-install.png similarity index 100% rename from docs/home/guides/git-install.png rename to docs/assets/git-install.png diff --git a/docs/assets/golden.png b/docs/assets/golden.png new file mode 100644 index 00000000..9799fea8 Binary files /dev/null and b/docs/assets/golden.png differ diff --git a/docs/assets/icon.png b/docs/assets/icon.png new file mode 100644 index 00000000..2fe13596 Binary files /dev/null and b/docs/assets/icon.png differ diff --git a/docs/assets/imdb.png b/docs/assets/imdb.png new file mode 100644 index 00000000..e6009874 Binary files /dev/null and b/docs/assets/imdb.png differ diff --git a/docs/assets/language.png b/docs/assets/language.png new file mode 100644 index 00000000..136cfdfd Binary files /dev/null and b/docs/assets/language.png differ diff --git a/docs/assets/language2.png b/docs/assets/language2.png new file mode 100644 index 00000000..1a0dff6f Binary files /dev/null and b/docs/assets/language2.png differ diff --git a/docs/assets/language3.png b/docs/assets/language3.png new file mode 100644 index 00000000..0fb66b3e Binary files /dev/null and b/docs/assets/language3.png differ diff --git a/docs/assets/language_count.png b/docs/assets/language_count.png new file mode 100644 index 00000000..1b647273 Binary files /dev/null and b/docs/assets/language_count.png differ diff --git a/docs/assets/localhost-fail.png b/docs/assets/localhost-fail.png new file mode 100644 index 00000000..7dea6723 Binary files /dev/null and b/docs/assets/localhost-fail.png differ diff --git a/docs/assets/logo-dark.png b/docs/assets/logo-dark.png new file mode 100644 index 00000000..7407243f Binary files /dev/null and b/docs/assets/logo-dark.png differ diff --git a/docs/assets/logo-full.webp b/docs/assets/logo-full.webp new file mode 100644 index 00000000..4dd9ed0f Binary files /dev/null and b/docs/assets/logo-full.webp differ diff --git a/docs/assets/logo.png b/docs/assets/logo.png new file mode 100644 index 00000000..ec05ba24 Binary files /dev/null and b/docs/assets/logo.png differ diff --git a/docs/assets/logomark.png b/docs/assets/logomark.png new file mode 100644 index 00000000..cf03a804 Binary files /dev/null and b/docs/assets/logomark.png differ diff --git a/docs/assets/mal.png b/docs/assets/mal.png new file mode 100644 index 00000000..68e52f4f Binary files /dev/null and b/docs/assets/mal.png differ diff --git a/docs/assets/mediastinger.png b/docs/assets/mediastinger.png new file mode 100644 index 00000000..3e62b05e Binary files /dev/null and b/docs/assets/mediastinger.png differ diff --git a/docs/home/movie-collection-preview.png b/docs/assets/movie-collection-preview.png similarity index 100% rename from docs/home/movie-collection-preview.png rename to docs/assets/movie-collection-preview.png diff --git a/docs/home/movie-library-preview.png b/docs/assets/movie-library-preview.png similarity index 100% rename from docs/home/movie-library-preview.png rename to docs/assets/movie-library-preview.png diff --git a/docs/assets/movie-overlays1-annotated.png b/docs/assets/movie-overlays1-annotated.png new file mode 100644 index 00000000..cde942d4 Binary files /dev/null and b/docs/assets/movie-overlays1-annotated.png differ diff --git a/docs/assets/movie-overlays2-annotated.png b/docs/assets/movie-overlays2-annotated.png new file mode 100644 index 00000000..ed3753a9 Binary files /dev/null and b/docs/assets/movie-overlays2-annotated.png differ diff --git a/docs/assets/moviecontent_rating_us.png b/docs/assets/moviecontent_rating_us.png new file mode 100644 index 00000000..e1252c0f Binary files /dev/null and b/docs/assets/moviecontent_rating_us.png differ diff --git a/docs/assets/moviefranchise.png b/docs/assets/moviefranchise.png new file mode 100644 index 00000000..ab86dc7e Binary files /dev/null and b/docs/assets/moviefranchise.png differ diff --git a/docs/assets/myanimelist.png b/docs/assets/myanimelist.png new file mode 100644 index 00000000..70575ef0 Binary files /dev/null and b/docs/assets/myanimelist.png differ diff --git a/docs/assets/network.png b/docs/assets/network.png new file mode 100644 index 00000000..76a17e5c Binary files /dev/null and b/docs/assets/network.png differ diff --git a/docs/assets/network1.png b/docs/assets/network1.png new file mode 100644 index 00000000..80be0796 Binary files /dev/null and b/docs/assets/network1.png differ diff --git a/docs/assets/oscars.png b/docs/assets/oscars.png new file mode 100644 index 00000000..25374728 Binary files /dev/null and b/docs/assets/oscars.png differ diff --git a/docs/home/guides/overlays.png b/docs/assets/overlays.png similarity index 100% rename from docs/home/guides/overlays.png rename to docs/assets/overlays.png diff --git a/docs/assets/person_bw.png b/docs/assets/person_bw.png new file mode 100644 index 00000000..f33aef77 Binary files /dev/null and b/docs/assets/person_bw.png differ diff --git a/docs/assets/person_diiivoy.png b/docs/assets/person_diiivoy.png new file mode 100644 index 00000000..5ee7c5c9 Binary files /dev/null and b/docs/assets/person_diiivoy.png differ diff --git a/docs/assets/person_diiivoycolor.png b/docs/assets/person_diiivoycolor.png new file mode 100644 index 00000000..7b35329c Binary files /dev/null and b/docs/assets/person_diiivoycolor.png differ diff --git a/docs/assets/person_rainier.png b/docs/assets/person_rainier.png new file mode 100644 index 00000000..e460a28c Binary files /dev/null and b/docs/assets/person_rainier.png differ diff --git a/docs/assets/person_signature.png b/docs/assets/person_signature.png new file mode 100644 index 00000000..e5c5842f Binary files /dev/null and b/docs/assets/person_signature.png differ diff --git a/docs/assets/playlist.png b/docs/assets/playlist.png new file mode 100644 index 00000000..54222608 Binary files /dev/null and b/docs/assets/playlist.png differ diff --git a/docs/home/guides/qnap/qnap1.png b/docs/assets/qnap1.png similarity index 100% rename from docs/home/guides/qnap/qnap1.png rename to docs/assets/qnap1.png diff --git a/docs/home/guides/qnap/qnap2.png b/docs/assets/qnap2.png similarity index 100% rename from docs/home/guides/qnap/qnap2.png rename to docs/assets/qnap2.png diff --git a/docs/home/guides/qnap/qnap3.png b/docs/assets/qnap3.png similarity index 100% rename from docs/home/guides/qnap/qnap3.png rename to docs/assets/qnap3.png diff --git a/docs/home/guides/qnap/qnap4.png b/docs/assets/qnap4.png similarity index 100% rename from docs/home/guides/qnap/qnap4.png rename to docs/assets/qnap4.png diff --git a/docs/home/guides/qnap/qnap5.png b/docs/assets/qnap5.png similarity index 100% rename from docs/home/guides/qnap/qnap5.png rename to docs/assets/qnap5.png diff --git a/docs/home/guides/qnap/qnap7.png b/docs/assets/qnap7.png similarity index 100% rename from docs/home/guides/qnap/qnap7.png rename to docs/assets/qnap7.png diff --git a/docs/assets/radarr.png b/docs/assets/radarr.png new file mode 100644 index 00000000..f458edfc Binary files /dev/null and b/docs/assets/radarr.png differ diff --git a/docs/metadata/details/radarr.png b/docs/assets/radarr1.png similarity index 100% rename from docs/metadata/details/radarr.png rename to docs/assets/radarr1.png diff --git a/docs/home/guides/ratings/ratings-01.png b/docs/assets/ratings-01.png similarity index 100% rename from docs/home/guides/ratings/ratings-01.png rename to docs/assets/ratings-01.png diff --git a/docs/home/guides/ratings/ratings-02.png b/docs/assets/ratings-02.png similarity index 100% rename from docs/home/guides/ratings/ratings-02.png rename to docs/assets/ratings-02.png diff --git a/docs/home/guides/ratings/ratings-03.png b/docs/assets/ratings-03.png similarity index 100% rename from docs/home/guides/ratings/ratings-03.png rename to docs/assets/ratings-03.png diff --git a/docs/home/guides/ratings/ratings-04.png b/docs/assets/ratings-04.png similarity index 100% rename from docs/home/guides/ratings/ratings-04.png rename to docs/assets/ratings-04.png diff --git a/docs/home/guides/ratings/ratings-05.png b/docs/assets/ratings-05.png similarity index 100% rename from docs/home/guides/ratings/ratings-05.png rename to docs/assets/ratings-05.png diff --git a/docs/home/guides/ratings/ratings-06.png b/docs/assets/ratings-06.png similarity index 100% rename from docs/home/guides/ratings/ratings-06.png rename to docs/assets/ratings-06.png diff --git a/docs/home/guides/ratings/ratings-07.png b/docs/assets/ratings-07.png similarity index 100% rename from docs/home/guides/ratings/ratings-07.png rename to docs/assets/ratings-07.png diff --git a/docs/home/guides/ratings/ratings-08.png b/docs/assets/ratings-08.png similarity index 100% rename from docs/home/guides/ratings/ratings-08.png rename to docs/assets/ratings-08.png diff --git a/docs/home/guides/ratings/ratings-09.png b/docs/assets/ratings-09.png similarity index 100% rename from docs/home/guides/ratings/ratings-09.png rename to docs/assets/ratings-09.png diff --git a/docs/home/guides/ratings/ratings-10.png b/docs/assets/ratings-10.png similarity index 100% rename from docs/home/guides/ratings/ratings-10.png rename to docs/assets/ratings-10.png diff --git a/docs/assets/ratings_operations.png b/docs/assets/ratings_operations.png new file mode 100644 index 00000000..fe541c97 Binary files /dev/null and b/docs/assets/ratings_operations.png differ diff --git a/docs/assets/ratings_overlay.png b/docs/assets/ratings_overlay.png new file mode 100644 index 00000000..ca5f256b Binary files /dev/null and b/docs/assets/ratings_overlay.png differ diff --git a/docs/assets/ratings_overlay_path.png b/docs/assets/ratings_overlay_path.png new file mode 100644 index 00000000..2ade4248 Binary files /dev/null and b/docs/assets/ratings_overlay_path.png differ diff --git a/docs/assets/ratings_source.png b/docs/assets/ratings_source.png new file mode 100644 index 00000000..0e84e4ec Binary files /dev/null and b/docs/assets/ratings_source.png differ diff --git a/docs/assets/ratings_spot.png b/docs/assets/ratings_spot.png new file mode 100644 index 00000000..dc3c0cea Binary files /dev/null and b/docs/assets/ratings_spot.png differ diff --git a/docs/assets/resolution.png b/docs/assets/resolution.png new file mode 100644 index 00000000..79c9d6a3 Binary files /dev/null and b/docs/assets/resolution.png differ diff --git a/docs/assets/resolution1.png b/docs/assets/resolution1.png new file mode 100644 index 00000000..efaef256 Binary files /dev/null and b/docs/assets/resolution1.png differ diff --git a/docs/assets/resolution_standards.png b/docs/assets/resolution_standards.png new file mode 100644 index 00000000..08c1dc7d Binary files /dev/null and b/docs/assets/resolution_standards.png differ diff --git a/docs/assets/ribbon.png b/docs/assets/ribbon.png new file mode 100644 index 00000000..e16cdc9d Binary files /dev/null and b/docs/assets/ribbon.png differ diff --git a/docs/assets/runtimes.png b/docs/assets/runtimes.png new file mode 100644 index 00000000..b376e18d Binary files /dev/null and b/docs/assets/runtimes.png differ diff --git a/docs/assets/seasonal.png b/docs/assets/seasonal.png new file mode 100644 index 00000000..fa9624a4 Binary files /dev/null and b/docs/assets/seasonal.png differ diff --git a/docs/home/guides/separators.jpg b/docs/assets/separators.jpg similarity index 100% rename from docs/home/guides/separators.jpg rename to docs/assets/separators.jpg diff --git a/docs/assets/separators2.jpg b/docs/assets/separators2.jpg new file mode 100644 index 00000000..5bac8026 Binary files /dev/null and b/docs/assets/separators2.jpg differ diff --git a/docs/home/show-collection-preview.png b/docs/assets/show-collection-preview.png similarity index 100% rename from docs/home/show-collection-preview.png rename to docs/assets/show-collection-preview.png diff --git a/docs/home/show-library-preview.png b/docs/assets/show-library-preview.png similarity index 100% rename from docs/home/show-library-preview.png rename to docs/assets/show-library-preview.png diff --git a/docs/assets/showfranchise.png b/docs/assets/showfranchise.png new file mode 100644 index 00000000..3c198b9f Binary files /dev/null and b/docs/assets/showfranchise.png differ diff --git a/docs/assets/sonarr.png b/docs/assets/sonarr.png new file mode 100644 index 00000000..f04376fc Binary files /dev/null and b/docs/assets/sonarr.png differ diff --git a/docs/metadata/details/sonarr.png b/docs/assets/sonarr1.png similarity index 100% rename from docs/metadata/details/sonarr.png rename to docs/assets/sonarr1.png diff --git a/docs/assets/spirit.png b/docs/assets/spirit.png new file mode 100644 index 00000000..e1d1f80b Binary files /dev/null and b/docs/assets/spirit.png differ diff --git a/docs/assets/status.png b/docs/assets/status.png new file mode 100644 index 00000000..62396933 Binary files /dev/null and b/docs/assets/status.png differ diff --git a/docs/assets/streaming.png b/docs/assets/streaming.png new file mode 100644 index 00000000..527dd3d3 Binary files /dev/null and b/docs/assets/streaming.png differ diff --git a/docs/assets/streaming1.png b/docs/assets/streaming1.png new file mode 100644 index 00000000..be99dc86 Binary files /dev/null and b/docs/assets/streaming1.png differ diff --git a/docs/assets/studio.png b/docs/assets/studio.png new file mode 100644 index 00000000..8ae3d4c9 Binary files /dev/null and b/docs/assets/studio.png differ diff --git a/docs/assets/studio_anime.png b/docs/assets/studio_anime.png new file mode 100644 index 00000000..daf69709 Binary files /dev/null and b/docs/assets/studio_anime.png differ diff --git a/docs/assets/subtitle_language.png b/docs/assets/subtitle_language.png new file mode 100644 index 00000000..2397282f Binary files /dev/null and b/docs/assets/subtitle_language.png differ diff --git a/docs/assets/sundance.png b/docs/assets/sundance.png new file mode 100644 index 00000000..13b2dfb9 Binary files /dev/null and b/docs/assets/sundance.png differ diff --git a/docs/home/guides/synology/synology-01.png b/docs/assets/synology-01.png similarity index 100% rename from docs/home/guides/synology/synology-01.png rename to docs/assets/synology-01.png diff --git a/docs/home/guides/synology/synology-02.png b/docs/assets/synology-02.png similarity index 100% rename from docs/home/guides/synology/synology-02.png rename to docs/assets/synology-02.png diff --git a/docs/home/guides/synology/synology-03.png b/docs/assets/synology-03.png similarity index 100% rename from docs/home/guides/synology/synology-03.png rename to docs/assets/synology-03.png diff --git a/docs/home/guides/synology/synology-04.png b/docs/assets/synology-04.png similarity index 100% rename from docs/home/guides/synology/synology-04.png rename to docs/assets/synology-04.png diff --git a/docs/home/guides/synology/synology-05.png b/docs/assets/synology-05.png similarity index 100% rename from docs/home/guides/synology/synology-05.png rename to docs/assets/synology-05.png diff --git a/docs/home/guides/synology/synology-06.png b/docs/assets/synology-06.png similarity index 100% rename from docs/home/guides/synology/synology-06.png rename to docs/assets/synology-06.png diff --git a/docs/assets/tautulli.png b/docs/assets/tautulli.png new file mode 100644 index 00000000..24a9a9e9 Binary files /dev/null and b/docs/assets/tautulli.png differ diff --git a/docs/assets/tmdb.png b/docs/assets/tmdb.png new file mode 100644 index 00000000..b4fe3e70 Binary files /dev/null and b/docs/assets/tmdb.png differ diff --git a/docs/assets/trakt.png b/docs/assets/trakt.png new file mode 100644 index 00000000..6fc6bf60 Binary files /dev/null and b/docs/assets/trakt.png differ diff --git a/docs/assets/trakt1.png b/docs/assets/trakt1.png new file mode 100644 index 00000000..fa5aee41 Binary files /dev/null and b/docs/assets/trakt1.png differ diff --git a/docs/assets/tvshow-poster-annotated.png b/docs/assets/tvshow-poster-annotated.png new file mode 100644 index 00000000..e74602a0 Binary files /dev/null and b/docs/assets/tvshow-poster-annotated.png differ diff --git a/docs/assets/tvshow-poster-episode-annotated.png b/docs/assets/tvshow-poster-episode-annotated.png new file mode 100644 index 00000000..fed5cb6f Binary files /dev/null and b/docs/assets/tvshow-poster-episode-annotated.png differ diff --git a/docs/assets/tvshow-poster-season-annotated.png b/docs/assets/tvshow-poster-season-annotated.png new file mode 100644 index 00000000..33db33de Binary files /dev/null and b/docs/assets/tvshow-poster-season-annotated.png differ diff --git a/docs/assets/universe.png b/docs/assets/universe.png new file mode 100644 index 00000000..2b1f45ea Binary files /dev/null and b/docs/assets/universe.png differ diff --git a/docs/assets/version.png b/docs/assets/version.png new file mode 100644 index 00000000..eef1cb86 Binary files /dev/null and b/docs/assets/version.png differ diff --git a/docs/assets/video_format.png b/docs/assets/video_format.png new file mode 100644 index 00000000..fe99e888 Binary files /dev/null and b/docs/assets/video_format.png differ diff --git a/docs/assets/year.png b/docs/assets/year.png new file mode 100644 index 00000000..69f9606d Binary files /dev/null and b/docs/assets/year.png differ diff --git a/docs/metadata/builders/anidb.md b/docs/builders/anidb.md similarity index 100% rename from docs/metadata/builders/anidb.md rename to docs/builders/anidb.md diff --git a/docs/metadata/builders/anilist.md b/docs/builders/anilist.md similarity index 100% rename from docs/metadata/builders/anilist.md rename to docs/builders/anilist.md diff --git a/docs/metadata/details/arr.md b/docs/builders/details/arr.md similarity index 96% rename from docs/metadata/details/arr.md rename to docs/builders/details/arr.md index d05e702d..e288ccfc 100644 --- a/docs/metadata/details/arr.md +++ b/docs/builders/details/arr.md @@ -2,7 +2,7 @@ ## Radarr Definition Settings -All the following attributes can override the global/library [Radarr](../../config/radarr) attributes which are the default unless otherwise specified. +All the following attributes can override the global/library [Radarr](../../config/radarr.md) attributes which are the default unless otherwise specified. | Attribute | Description & Values | |:--------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| @@ -22,7 +22,7 @@ All the following attributes can override the global/library [Radarr](../../conf ## Sonarr Definition Settings -All the following attributes can override the global/library [Sonarr](../../config/sonarr) attributes which are the default unless otherwise specified. +All the following attributes can override the global/library [Sonarr](../../config/sonarr.md) attributes which are the default unless otherwise specified. | Attribute | Description & Values | |:--------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| @@ -56,7 +56,7 @@ When `radarr_add_missing`/`sonarr_add_missing` are true the items missing from t When `radarr_add_existing`/`sonarr_add_existing` are true the items that exist in the collection/playlist will be added to Radarr/Sonarr. -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)/[Sonarr](../../config/sonarr) global config settings. +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. ### Radarr Add Details diff --git a/docs/metadata/details/definition.md b/docs/builders/details/definition.md similarity index 73% rename from docs/metadata/details/definition.md rename to docs/builders/details/definition.md index 2407fb23..0afb6f1a 100644 --- a/docs/metadata/details/definition.md +++ b/docs/builders/details/definition.md @@ -1,37 +1,41 @@ +--- +search: + boost: 3 +--- # Definition Settings All the following attributes serve various functions as how the definition functions inside of Plex Meta Manager. -| Attribute | Description & Values | -|:-----------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `name` | **Description:** Used to specify the name of the definition in Plex as different than the mapping name.
**Values:** Any String | -| `limit` | **Description:** Used to specify the max number of items for the definition
**Values:** Number greater than 0 | -| `template` | **Description:** Used to specify a template and template variables to use for this definition. See the [Templates Page](../templates) for more information.
**Values:** Dictionary | -| `run_again` | **Description:** Used to try and add all the missing items to the definition again after the daily run.
**Default:** `false`
**Values:** `true` or `false` | -| `sync_mode` | **Description:** Used to change how builders sync with this definition.
**Default:** `sync_mode` [settings value](../../config/settings) in the Configuration File
**Values:**
`append`Only Add Items to the Collection
`sync`Add & Remove Items from the Collection
| -| `minimum_items` | **Description:** Minimum items that must be found to add to a definition.
**Default:** `minimum_items` [settings value](../../config/settings) in the Configuration File
**Values:** number greater than 0 | -| `delete_below_minimum` | **Description:** Deletes the definition if below the minimum.
**Default:** `delete_below_minimum` [settings value](../../config/settings) in the Configuration File
**Values:** `true` or `false` | -| `delete_not_scheduled` | **Description:** Deletes the definition if its skipped because its not scheduled.
**Default:** `delete_not_scheduled` [settings value](../../config/settings) in the Configuration File
**Values:** `true` or `false` | -| `tmdb_region` | **Description:** Sets the region for `tmdb_popular`, `tmdb_now_playing`, `tmdb_top_rated`, and `tmdb_upcoming` | -| `validate_builders` | **Description:** When set to false the definition will not fail if one builder fails.
**Default:** `true`
**Values:** `true` or `false` | -| `cache_builders` | **Description:** Caches the items found by the builders for a number of days. This is useful if you run the same configuration on multiple libraries/servers in one run just set the value to `1`.
**Default:** `0`
**Values:** number 0 or greater | -| `blank_collection` | **Description:** When set to true the collection will be created with no builders and no items added.
**Default:** `false`
**Values:** `true` or `false` | -| `build_collection` | **Description:** When set to false the collection won't be created but items can still be added to Radarr/Sonarr. Does not work for playlists.
**Default:** `true`
**Values:** `true` or `false` | -| `server_preroll` | **Description:** Used to set the `Movie pre-roll video` Text box in Plex under Settings -> Extras.
You can run this with a [schedule](schedule) to change the pre-rolls automatically.
**Values:** Any String | -| `missing_only_released` | **Description:** definition Level `missing_only_released` toggle.
**Default:** `missing_only_released` [settings value](../../config/settings) in the Configuration File
**Values:** `true` or `false` | -| `only_filter_missing` | **Description:** definition Level `only_filter_missing` toggle.
**Default:** `only_filter_missing` [settings value](../../config/settings) in the Configuration File
**Values:** `true` or `false` | -| `show_filtered` | **Description:** definition level `show_filtered` toggle.
**Default:** `show_filtered` [settings value](../../config/settings) in the Configuration File
**Values:** `true` or `false` | -| `show_missing` | **Description:** definition level `show_missing` toggle.
**Default:** `show_missing` [settings value](../../config/settings) in the Configuration File
**Values:** `true` or `false` | -| `save_report` | **Description:** definition level `save_report` toggle.
**Default:** `save_report` [settings value](../../config/settings) in the Configuration File
**Values:** `true` or `false` | -| `ignore_ids` | **Description:** definition level `ignore_ids` which is combined with the library and global `ignore_ids`.
**Default:** `ignore_ids` [settings value](../../config/settings) in the Configuration File
**Values:** List or comma-separated String of TMDb/TVDb IDs | -| `ignore_imdb_ids` | **Description:** definition level `ignore_imdb_ids` which is combined with the library and global `ignore_imdb_ids`.
**Default:** `ignore_imdb_ids` [settings value](../../config/settings) in the Configuration File
**Values:** List or comma-separated String of IMDb IDs | -| `name_mapping` | **Description:** Used to specify the folder name in the [Image Assets Directory](../../home/guides/assets) i.e. if your definition name contains characters that are not allowed in file paths (i.e. for windows `<`, `>`, `:`, `"`, `/`, `\`, `?`, `*` cannot be in the file path), but you want them in your name you can this to specify the name in the file system.
**Values:** Any String | -| `test` | **Description:** When running in Test Mode (`--run-tests` [option](../../home/environmental)) only definitions with `test: true` will be run.
**Default:** `false`
**Values:** `true` or `false` | -| `changes_webhooks` | **Description:** Used to specify a definition changes webhook for just this definition.
**Values:** List of webhooks | -| `sync_to_trakt_list` | **Description:** Used to specify a trakt list you want the definition synced to.
**Values:** Trakt List Slug you want to sync to | -| `sync_missing_to_trakt_list` | **Description:** Used to also sync missing items to the Trakt List specified by `sync_to_trakt_list`.
**Default:** `false`
**Values:** `true` or `false` | -| `run_definition` | **Description:** Used to specify if this definition runs.
Multiple can be used for one definition as a list or comma separated string. One `false` or unmatched library type will cause it to fail.
**Values:** `movie`, `show`, `artist`, `true`, `false` | -| `default_percent` | **Description:** Used to declare the default percent for `episodes`, `seasons`, `tracks`, and `albums` [special filters](../filters.md#special-filters). Default is 50.
**Values:** Integer between 1 and 100 | -| `ignore_blank_results` | **Description:** Used to not have Errors resulting from blank results from builders.
**Default:** `false`
**Values:** `true` or `false` | -| `only_run_on_create` | **Description:** Used to only run the collection definition if the collection doesn't already exist.
**Default:** `false`
**Values:** `true` or `false` | -| `delete_collections_named` | **Description:** Used to delete any collections in your plex named one of the given collections.
**Values:** List of Collection Names to delete | \ No newline at end of file +| Attribute | Description & Values | +|:-----------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| `name` | **Description:** Used to specify the name of the definition in Plex as different than the mapping name.
**Values:** Any String | +| `limit` | **Description:** Used to specify the max number of items for the definition
**Values:** Number greater than 0 | +| `template` | **Description:** Used to specify a template and template variables to use for this definition. See the [Templates Page](../templates.md) for more information.
**Values:** Dictionary | +| `run_again` | **Description:** Used to try and add all the missing items to the definition again after the daily run.
**Default:** `false`
**Values:** `true` or `false` | +| `sync_mode` | **Description:** Used to change how builders sync with this definition.
**Default:** `sync_mode` [settings value](../../config/settings.md) in the Configuration File
**Values:**
`append`Only Add Items to the Collection
`sync`Add & Remove Items from the Collection
| +| `minimum_items` | **Description:** Minimum items that must be found to add to a definition.
**Default:** `minimum_items` [settings value](../../config/settings.md) in the Configuration File
**Values:** number greater than 0 | +| `delete_below_minimum` | **Description:** Deletes the definition if below the minimum.
**Default:** `delete_below_minimum` [settings value](../../config/settings.md) in the Configuration File
**Values:** `true` or `false` | +| `delete_not_scheduled` | **Description:** Deletes the definition if its skipped because its not scheduled.
**Default:** `delete_not_scheduled` [settings value](../../config/settings.md) in the Configuration File
**Values:** `true` or `false` | +| `tmdb_region` | **Description:** Sets the region for `tmdb_popular`, `tmdb_now_playing`, `tmdb_top_rated`, and `tmdb_upcoming` | +| `validate_builders` | **Description:** When set to false the definition will not fail if one builder fails.
**Default:** `true`
**Values:** `true` or `false` | +| `cache_builders` | **Description:** Caches the items found by the builders for a number of days. This is useful if you run the same configuration on multiple libraries/servers in one run just set the value to `1`.
**Default:** `0`
**Values:** number 0 or greater | +| `blank_collection` | **Description:** When set to true the collection will be created with no builders and no items added.
**Default:** `false`
**Values:** `true` or `false` | +| `build_collection` | **Description:** When set to false the collection won't be created but items can still be added to Radarr/Sonarr. Does not work for playlists.
**Default:** `true`
**Values:** `true` or `false` | +| `server_preroll` | **Description:** Used to set the `Movie pre-roll video` Text box in Plex under Settings -> Extras.
You can run this with a [schedule](schedule.md) to change the pre-rolls automatically.
**Values:** Any String | +| `missing_only_released` | **Description:** definition Level `missing_only_released` toggle.
**Default:** `missing_only_released` [settings value](../../config/settings.md) in the Configuration File
**Values:** `true` or `false` | +| `only_filter_missing` | **Description:** definition Level `only_filter_missing` toggle.
**Default:** `only_filter_missing` [settings value](../../config/settings.md) in the Configuration File
**Values:** `true` or `false` | +| `show_filtered` | **Description:** definition level `show_filtered` toggle.
**Default:** `show_filtered` [settings value](../../config/settings.md) in the Configuration File
**Values:** `true` or `false` | +| `show_missing` | **Description:** definition level `show_missing` toggle.
**Default:** `show_missing` [settings value](../../config/settings.md) in the Configuration File
**Values:** `true` or `false` | +| `save_report` | **Description:** definition level `save_report` toggle.
**Default:** `save_report` [settings value](../../config/settings.md) in the Configuration File
**Values:** `true` or `false` | +| `ignore_ids` | **Description:** definition level `ignore_ids` which is combined with the library and global `ignore_ids`.
**Default:** `ignore_ids` [settings value](../../config/settings.md) in the Configuration File
**Values:** List or comma-separated String of TMDb/TVDb IDs | +| `ignore_imdb_ids` | **Description:** definition level `ignore_imdb_ids` which is combined with the library and global `ignore_imdb_ids`.
**Default:** `ignore_imdb_ids` [settings value](../../config/settings.md) in the Configuration File
**Values:** List or comma-separated String of IMDb IDs | +| `name_mapping` | **Description:** Used to specify the folder name in the [Image Assets Directory](../../pmm/install/guides/assets.md) i.e. if your definition name contains characters that are not allowed in file paths (i.e. for windows `<`, `>`, `:`, `"`, `/`, `\`, `?`, `*` cannot be in the file path), but you want them in your name you can this to specify the name in the file system.
**Values:** Any String | +| `test` | **Description:** When running in Test Mode (`--run-tests` [option](../../pmm/essentials//environmental.md)) only definitions with `test: true` will be run.
**Default:** `false`
**Values:** `true` or `false` | +| `changes_webhooks` | **Description:** Used to specify a definition changes webhook for just this definition.
**Values:** List of webhooks | +| `sync_to_trakt_list` | **Description:** Used to specify a trakt list you want the definition synced to.
**Values:** Trakt List Slug you want to sync to | +| `sync_missing_to_trakt_list` | **Description:** Used to also sync missing items to the Trakt List specified by `sync_to_trakt_list`.
**Default:** `false`
**Values:** `true` or `false` | +| `run_definition` | **Description:** Used to specify if this definition runs.
Multiple can be used for one definition as a list or comma separated string. One `false` or unmatched library type will cause it to fail.
**Values:** `movie`, `show`, `artist`, `true`, `false` | +| `default_percent` | **Description:** Used to declare the default percent for `episodes`, `seasons`, `tracks`, and `albums` [special filters](../filters.md#special-filters). Default is 50.
**Values:** Integer between 1 and 100 | +| `ignore_blank_results` | **Description:** Used to not have Errors resulting from blank results from builders.
**Default:** `false`
**Values:** `true` or `false` | +| `only_run_on_create` | **Description:** Used to only run the collection definition if the collection doesn't already exist.
**Default:** `false`
**Values:** `true` or `false` | +| `delete_collections_named` | **Description:** Used to delete any collections in your plex named one of the given collections.
**Values:** List of Collection Names to delete |[environmental.md](..%2F..%2Fpmm%2Fessentials%2Fenvironmental.md) \ No newline at end of file diff --git a/docs/metadata/details/display.png b/docs/builders/details/display.png similarity index 100% rename from docs/metadata/details/display.png rename to docs/builders/details/display.png diff --git a/docs/metadata/details/item_metadata.md b/docs/builders/details/item_metadata.md similarity index 99% rename from docs/metadata/details/item_metadata.md rename to docs/builders/details/item_metadata.md index 4660846b..cfd2b942 100644 --- a/docs/metadata/details/item_metadata.md +++ b/docs/builders/details/item_metadata.md @@ -1,3 +1,7 @@ +--- +search: + boost: 3 +--- # Item Metadata Updates All the following attributes update various details of the metadata for every item in the collection. diff --git a/docs/metadata/details/metadata.md b/docs/builders/details/metadata.md similarity index 87% rename from docs/metadata/details/metadata.md rename to docs/builders/details/metadata.md index 9bac9012..ca01edc7 100644 --- a/docs/metadata/details/metadata.md +++ b/docs/builders/details/metadata.md @@ -4,25 +4,25 @@ All the following attributes update various details of the definition's Metadata **Only `tmdb_person` works with Playlists.** -| Attribute | Description & Values | -|:-----------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `tmdb_person` | **Description:** Changes summary and poster to a TMDb Person's biography and profile to the first specified person as well as allow the people specified to be used in [Plex Searches](../builders/plex.md#plex-search).
**Values:** TMDb Person ID or Actor Name (Will pull the first ID from the TMDb search results) (List or Comma-separated string) | -| `tmdb_person_offset` | **Description:** Offsets which search results are used by `tmdb_person`.
**Values:** Any number greater than 0
**Default:** 0 | -| `tmdb_birthday` | **Description:** Controls if the Definition is run based on `tmdb_person`'s Birthday. Has 3 possible attributes `this_month`, `before` and `after`.
**Values:**
`this_month`Run's if Birthday is in current Month`true`/`false`
`before`Run if X Number of Days before the BirthdayNumber 0 or greater
`after`Run if X Number of Days after the BirthdayNumber 0 or greater
| -| `sort_title` | **Description:** Changes the sort title.
You can "promote" certain collections to the top of a library by creating a sort title starting with a `+` or "demote" certain collections to the bottom of a library by creating a sort title starting with a `~`.
**Values:** Text to change Sort Title | -| `content_rating` | **Description:** Changes the content rating.
**Values:** Text to change Content Rating | -| `label` | **Description:** Appends new labels.
**Values:** Comma-separated string of labels to append | -| `label.remove` | **Description:** Removes existing labels from the collection.
**Values:** Comma-separated string of labels to remove | -| `label.sync` | **Description:** Matches the labels of the collection to the labels provided (Leave blank to remove all labels)
**Values:** Comma-separated string of labels to sync | -| `collection_mode` | **Description:** Changes the Collection Mode
**Values:**
`default`Library default
`hide`Hide Collection
`hide_items`Hide Items in this Collection
`show_items`Show this Collection and its Items
| -| `collection_order` | **Description:** Changes the Collection Order
**Normal Collections Only**
When using `custom.asc`/`custom.desc` you can only have a single builder in the collection.
**Values:**
`release`Order Collection by Release Dates
`alpha`Order Collection Alphabetically
`custom.asc`/`custom.desc`Order Collection Via the Builder Order ascending or descending
[Any `plex_search` Sort Option](../builders/plex.md#sort-options)Order Collection by any `plex_search` Sort Option
| -| `collection_filtering` | **Description:** Changes the Collection Filtering
**Smart Collections Only**
**Values:**
`admin`Always the server admin user
`user`User currently viewing the content
| -| `builder_level` | **Description:** Make season, episode, album or track collections/overlays from `plex_all`, `plex_search`, `trakt_list`, or `imdb_list` Builders and Filters
**Values:**
`season`Collection contains seasons
`episode`Collection contains episodes
`album`Collection contains albums
`track`Collection contains tracks
| -| `visible_library` | **Description:** Changes collection visible on Library Recommended Tab (Only works with Plex Pass)
**Values:**
`true`Visible
`false`Not Visible
[Any `schedule` Option](schedule)Visible When Scheduled
| -| `visible_home` | **Description:** Changes collection visible on Home Tab (Only works with Plex Pass)
**Values:**
`true`Visible
`false`Not Visible
[Any `schedule` Option](schedule)Visible When Scheduled
| -| `visible_shared` | **Description:** Changes collection visible on Shared Users' Home Tab (Only works with Plex Pass)
**Values:**
`true`Visible
`false`Not Visible
[Any `schedule` Option](schedule)Visible When Scheduled
| -| `url_theme` | **Description:** Changes the Collection Theme to the URL provided.
**Values:** URL to mp3 file | -| `file_theme` | **Description:** Changes the Collection Theme to the file location provided.
**Values:** Path to mp3 file | +| Attribute | Description & Values | +|:-----------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| `tmdb_person` | **Description:** Changes summary and poster to a TMDb Person's biography and profile to the first specified person as well as allow the people specified to be used in [Plex Searches](../plex.md#plex-search).
**Values:** TMDb Person ID or Actor Name (Will pull the first ID from the TMDb search results) (List or Comma-separated string) | +| `tmdb_person_offset` | **Description:** Offsets which search results are used by `tmdb_person`.
**Values:** Any number greater than 0
**Default:** 0 | +| `tmdb_birthday` | **Description:** Controls if the Definition is run based on `tmdb_person`'s Birthday. Has 3 possible attributes `this_month`, `before` and `after`.
**Values:**
`this_month`Run's if Birthday is in current Month`true`/`false`
`before`Run if X Number of Days before the BirthdayNumber 0 or greater
`after`Run if X Number of Days after the BirthdayNumber 0 or greater
| +| `sort_title` | **Description:** Changes the sort title.
You can "promote" certain collections to the top of a library by creating a sort title starting with a `+` or "demote" certain collections to the bottom of a library by creating a sort title starting with a `~`.
**Values:** Text to change Sort Title | +| `content_rating` | **Description:** Changes the content rating.
**Values:** Text to change Content Rating | +| `label` | **Description:** Appends new labels.
**Values:** Comma-separated string of labels to append | +| `label.remove` | **Description:** Removes existing labels from the collection.
**Values:** Comma-separated string of labels to remove | +| `label.sync` | **Description:** Matches the labels of the collection to the labels provided (Leave blank to remove all labels)
**Values:** Comma-separated string of labels to sync | +| `collection_mode` | **Description:** Changes the Collection Mode
**Values:**
`default`Library default
`hide`Hide Collection
`hide_items`Hide Items in this Collection
`show_items`Show this Collection and its Items
| +| `collection_order` | **Description:** Changes the Collection Order
**Normal Collections Only**
When using `custom.asc`/`custom.desc` you can only have a single builder in the collection.
**Values:**
`release`Order Collection by Release Dates
`alpha`Order Collection Alphabetically
`custom.asc`/`custom.desc`Order Collection Via the Builder Order ascending or descending
[Any `plex_search` Sort Option](../plex.md#sort-options)Order Collection by any `plex_search` Sort Option
| +| `collection_filtering` | **Description:** Changes the Collection Filtering
**Smart Collections Only**
**Values:**
`admin`Always the server admin user
`user`User currently viewing the content
| +| `builder_level` | **Description:** Make season, episode, album or track collections/overlays from `plex_all`, `plex_search`, `trakt_list`, or `imdb_list` Builders and Filters
**Values:**
`season`Collection contains seasons
`episode`Collection contains episodes
`album`Collection contains albums
`track`Collection contains tracks
| +| `visible_library` | **Description:** Changes collection visible on Library Recommended Tab (Only works with Plex Pass)
**Values:**
`true`Visible
`false`Not Visible
[Any `schedule` Option](schedule.md)Visible When Scheduled
| +| `visible_home` | **Description:** Changes collection visible on Home Tab (Only works with Plex Pass)
**Values:**
`true`Visible
`false`Not Visible
[Any `schedule` Option](schedule.md)Visible When Scheduled
| +| `visible_shared` | **Description:** Changes collection visible on Shared Users' Home Tab (Only works with Plex Pass)
**Values:**
`true`Visible
`false`Not Visible
[Any `schedule` Option](schedule.md)Visible When Scheduled
| +| `url_theme` | **Description:** Changes the Collection Theme to the URL provided.
**Values:** URL to mp3 file | +| `file_theme` | **Description:** Changes the Collection Theme to the file location provided.
**Values:** Path to mp3 file | * Here's an example of how the collections can look on the Home Page. @@ -49,7 +49,7 @@ All the following attributes update the poster of the collection/playlist from v **All of these details work with Playlists.** -If no poster is specified the script will look in the library's [Image Asset Directories](../../home/guides/assets) for a folder named either the collection/playlist name or the `name_mapping` if specified and look for a `poster.ext` file in that folder (replacing .ext with the image extension). +If no poster is specified the script will look in the library's [Image Asset Directories](../../pmm/install/guides/assets.md) for a folder named either the collection/playlist name or the `name_mapping` if specified and look for a `poster.ext` file in that folder (replacing .ext with the image extension). | Attribute | Description & Values | |:-------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| @@ -67,7 +67,7 @@ All the following attributes update the background of the collection/playlist fr **All of these details work with Playlists.** -If no background is specified the script will look in the library's [Image Asset Directories](../../home/guides/assets) for a folder named either the collection/playlist name or the `name_mapping` if specified and look for a `background.ext` file in that folder (replacing .ext with the image extension). +If no background is specified the script will look in the library's [Image Asset Directories](../../pmm/install/guides/assets.md) for a folder named either the collection/playlist name or the `name_mapping` if specified and look for a `background.ext` file in that folder (replacing .ext with the image extension). | Attribute | Description & Values | |:------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| diff --git a/docs/builders/details/radarr.png b/docs/builders/details/radarr.png new file mode 100644 index 00000000..d95bad1c Binary files /dev/null and b/docs/builders/details/radarr.png differ diff --git a/docs/metadata/details/schedule.md b/docs/builders/details/schedule.md similarity index 98% rename from docs/metadata/details/schedule.md rename to docs/builders/details/schedule.md index 9fea4971..e4254f60 100644 --- a/docs/metadata/details/schedule.md +++ b/docs/builders/details/schedule.md @@ -23,7 +23,7 @@ The scheduling options are: | All | Requires that all comma separated scheduling options inside its brackets be meet in order to run | all[Options] | `all[weekly(sunday), hourly(17)]` | * `daily` is the default when `schedule` is not specified. -* You can run the script multiple times per day but using the `--time` command line argument detailed on the [Run Commands & Environmental Variables Page](../../home/environmental.md#time-to-run). +* You can run the script multiple times per day but using the `--time` command line argument detailed on the [Run Commands & Environmental Variables Page](../../pmm/essentials/environmental.md#time-to-run). * You can have multiple scheduling options as a list. * You can use the `delete_not_scheduled` setting to delete Collections that are skipped due to not being scheduled. diff --git a/docs/builders/details/sonarr.png b/docs/builders/details/sonarr.png new file mode 100644 index 00000000..dce2ff2c Binary files /dev/null and b/docs/builders/details/sonarr.png differ diff --git a/docs/builders/filters.md b/docs/builders/filters.md new file mode 100644 index 00000000..7329c040 --- /dev/null +++ b/docs/builders/filters.md @@ -0,0 +1,299 @@ +# Filters + +Filters allow for you to filter every item added to the collection/overlay/playlist from every builder using the `filters` attribute. + +## Using Filters + +Filters cannot do anything alone they require the use of at least one [Builder](../metadata/builders.md) to function. +You can have multiple filters in each set but an item must match at least one value from **each** filter to not be ignored. The values for each must match what Plex has including special characters in order to match. + +```yaml +filters: + genre: Action + country: Germany +``` + +Anything that doesn't have both the Genre `Action` and the Country `Germany` will be ignored. + +Multiple Filter Sets can be given as a list. With multiple sets only one of the sets must pass for the item to not be ignored. + +```yaml +filters: + - genre: Action + country: Germany + - genre: Comedy + country: France +``` + +Anything that doesn't have either both the Genre `Action` and the Country `Germany` or the Genre `Comedy` and the Country `France` will be ignored. + +All filter options are listed below. To display items filtered out add `show_filtered: true` to the definition. + +You can use the `plex_all: true` builder to filter from your entire library. + +**Filters can be very slow. Try to build or narrow your items using [Plex Search](plex.md#plex-search) or another [Builder](../metadata/builders.md) if possible.** +[definition.md](details%2Fdefinition.md) +## Table Annotations + +**1** Filters using the special `episodes`/`tracks` [filter](#special-filters) with the [default percent](details/definition.md). + +**2** Also filters out missing movies/shows from being added to Radarr/Sonarr. These Values also cannot use the `count` modifiers. + +**3** You can use `current_year` to have PMM use the current years value. This can be combined with a `-#` at the end to subtract that number of years. i.e. `current-2` + +**4** The actual numbers are pulled from the [PMM-Mediastingers](https://github.com/meisnate12/PMM-Mediastingers) Repo. + +**5** Also is a Tag Filter and can use all of those modifiers. + +## String Filters + +String filters can be used with either no modifier or with `.not`, `.is`, `.isnot`, `.begins`, `.ends`, or `.regex`. + +String filters can take multiple values **only as a list**. + +### Modifier + +| String Modifier | Description | +|:----------------|:-------------------------------------------------------------------------------| +| No Modifier | Matches every item where the attribute contains the given string | +| `.not` | Matches every item where the attribute does not contain the given string | +| `.is` | Matches every item where the attribute exactly matches the given string | +| `.isnot` | Matches every item where the attribute does not exactly match the given string | +| `.begins` | Matches every item where the attribute begins with the given string | +| `.ends` | Matches every item where the attribute ends with the given string | +| `.regex` | Matches every item where the attribute matches the regex given | + +### Attribute + +| String Filter | Description | Movies | Shows | Seasons | Episodes | Artists | Albums | Track | +|:---------------------------------------------------|:-----------------------------------------|:--------:|:---------------------------------------------:|:---------------------------------------------:|:---------:|:---------------------------------------------:|:---------------------------------------------:|:--------:| +| `title` | Uses the title attribute to match | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | +| `tmdb_title`**[2](#table-annotations)** | Uses the title from TMDb to match | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | +| `summary` | Uses the summary attribute to match | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | +| `studio` | Uses the studio attribute to match | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | +| `edition` | Uses the edition attribute to match | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | +| `record_label` | Uses the record label attribute to match | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | +| `folder` | Uses the item's folder to match | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | +| `filepath` | Uses the item's filepath to match | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green }**[1](#table-annotations)** | :fontawesome-solid-circle-check:{ .green }**[1](#table-annotations)** | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green }**[1](#table-annotations)** | :fontawesome-solid-circle-check:{ .green }**[1](#table-annotations)** | :fontawesome-solid-circle-check:{ .green } | +| `audio_track_title` | Uses the audio track titles to match | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green }**[1](#table-annotations)** | :fontawesome-solid-circle-check:{ .green }**[1](#table-annotations)** | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green }**[1](#table-annotations)** | :fontawesome-solid-circle-check:{ .green }**[1](#table-annotations)** | :fontawesome-solid-circle-check:{ .green } | +| `video_codec` | Uses the video codec tags to match | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green }**[1](#table-annotations)** | :fontawesome-solid-circle-check:{ .green }**[1](#table-annotations)** | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | +| `video_profile` | Uses the video profile tags to match | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green }**[1](#table-annotations)** | :fontawesome-solid-circle-check:{ .green }**[1](#table-annotations)** | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | +| `audio_codec` | Uses the audio codec tags to match | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green }**[1](#table-annotations)** | :fontawesome-solid-circle-check:{ .green }**[1](#table-annotations)** | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | +| `audio_profile` | Uses the audio profile tags to match | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green }**[1](#table-annotations)** | :fontawesome-solid-circle-check:{ .green }**[1](#table-annotations)** | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | + +## Tag Filters + +Tag filters can be used with either no modifier or with `.not`. + +Tag filters can take multiple values as a **list or a comma-separated string**. + +### Modifier + +| Tag Modifier | Description | +|:-------------|:------------------------------------------------------------------------------------------| +| No Modifier | Matches every item where the attribute matches the given string | +| `.not` | Matches every item where the attribute does not match the given string | +| `.regex` | Matches every item where one value of this attribute matches the regex. | +| `.count_lt` | Matches every item where the attribute count is less than the given number | +| `.count_lte` | Matches every item where the attribute count is less than the given number | +| `.count_gt` | Matches every item where the attribute count is greater than the given number | +| `.count_gte` | Matches every item where the attribute count is greater than or equal to the given number | + +### Attribute + +| Tag Filters | Description | Movies | Shows | Seasons | Episodes | Artists | Albums | Track | +|:-------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------|:--------:|:---------------------------------------------:|:---------------------------------------------:|:--------:|:--------:|:--------:|:--------:| +| `actor` | Uses the actor tags to match | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | +| `collection` | Uses the collection tags to match | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | +| `content_rating` | Uses the content rating tags to match | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | +| `network` | Uses the network tags to match | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | +| `country` | Uses the country tags to match | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | +| `director` | Uses the director tags to match | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | +| `genre` | Uses the genre tags to match | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | +| `label` | Uses the label tags to match | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | +| `producer` | Uses the actor tags to match | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | +| `year`**[3](#table-annotations)** | Uses the year tag to match | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | +| `writer` | Uses the writer tags to match | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | +| `resolution` | Uses the resolution tag to match | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green }**[1](#table-annotations)** | :fontawesome-solid-circle-check:{ .green }**[1](#table-annotations)** | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | +| `audio_language` | Uses the audio language tags to match | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green }**[1](#table-annotations)** | :fontawesome-solid-circle-check:{ .green }**[1](#table-annotations)** | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | +| `subtitle_language` | Uses the subtitle language tags to match | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green }**[1](#table-annotations)** | :fontawesome-solid-circle-check:{ .green }**[1](#table-annotations)** | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | +| `tmdb_genre`**[2](#table-annotations)** | Uses the genres from TMDb to match | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | +| `tmdb_keyword`**[2](#table-annotations)** | Uses the keywords from TMDb to match | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | +| `origin_country`**[2](#table-annotations)** | Uses TMDb origin country [ISO 3166-1 alpha-2 codes](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) to match
Example: `origin_country: us` | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | +| `imdb_keyword`**[2](#table-annotations)** | Uses the keywords from IMDb to match See [Special](#special-filters) for more attributes | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | + +## Boolean Filters + +Boolean Filters have no modifiers. + +### Attribute + +| Boolean Filters | Description | Movies | Shows | Seasons | Episodes | Artists | Albums | Track | +|:-------------------|:---------------------------------------------------------------------------------------------------------|:-------:|:---------------------------------------------:|:---------------------------------------------:|:--------:|:--------:|:--------:|:--------:| +| `has_collection` | Matches every item that has or does not have a collection | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | +| `has_edition` | Matches every item that has or does not have an edition | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | +| `has_stinger` | Matches every item that has a [media stinger](http://www.mediastinger.com/) (After/During Credits Scene) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | +| `has_dolby_vision` | Matches every item that has or does not have a dolby vision | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green }**[1](#table-annotations)** | :fontawesome-solid-circle-check:{ .green }**[1](#table-annotations)** | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | +| `has_overlay` | Matches every item that has or does not have an overlay | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | + +## Date Filters + +Date filters can be used with either no modifier or with `.not`, `.before`, `.after`, or `.regex`. + +Date filters can **NOT** take multiple values. + +### Modifier + +| Date Modifier | Description | Format | +|:--------------|:----------------------------------------------------------------------|:--------------------------------------------------------------------------:| +| No Modifier | Matches every item where the date attribute is in the last X days | **Format:** number of days
e.g. `30` | +| `.not` | Matches every item where the date attribute is not in the last X days | **Format:** number of days
e.g. `30` | +| `.before` | Matches every item where the date attribute is before the given date | **Format:** MM/DD/YYYY or `today` for the current day
e.g. `01/01/2000` | +| `.after` | Matches every item where the date attribute is after the given date | **Format:** MM/DD/YYYY or `today` for the current day
e.g. `01/01/2000` | +| `.regex` | Matches every item where the attribute matches the regex given | N/A | + +### Attribute + +| Date Filters | Description | Movies | Shows | Seasons | Episodes | Artists | Albums | Track | +|:----------------------------------------------------------------|:-------------------------------------------------------------------------------|:--------:|:-------:|:--------:|:--------:|:--------:|:--------:|:--------:| +| `release` | Uses the release date attribute (originally available) to match | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | +| `added` | Uses the date added attribute to match | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | +| `last_played` | Uses the date last played attribute to match | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | +| `first_episode_aired`**[2](#table-annotations)** | Uses the first episode aired date to match | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | +| `last_episode_aired`**[2](#table-annotations) | Uses the last episode aired date to match | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | +| `last_episode_aired_or_never`[2](#table-annotations) | Similar to `last_episode_aired` but also includes those that haven't aired yet | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | + +## Number Filters + +Number filters must use `.gt`, `.gte`, `.lt`, or `.lte` as a modifier. + +Number filters can **NOT** take multiple values. + +### Modifier + +| Number Modifier | Description | Format | +|:----------------|:-------------------------------------------------------------------------------------------|:-------------------------------------------------:| +| No Modifier | Matches every item where the number attribute is equal to the given number | **Format:** number
e.g. `30`, `1995`, or `7.5` | +| `.not` | Matches every item where the number attribute is not equal to the given number | **Format:** number
e.g. `30`, `1995`, or `7.5` | +| `.gt` | Matches every item where the number attribute is greater than the given number | **Format:** number
e.g. `30`, `1995`, or `7.5` | +| `.gte` | Matches every item where the number attribute is greater than or equal to the given number | **Format:** number
e.g. `30`, `1995`, or `7.5` | +| `.lt` | Matches every item where the number attribute is less than the given number | **Format:** number
e.g. `30`, `1995`, or `7.5` | +| `.lte` | Matches every item where the number attribute is less than or equal to the given number | **Format:** number
e.g. `30`, `1995`, or `7.5` | + +### Attribute + +| Number Filters | Description | Movies | Shows | Seasons | Episodes | Artists | Albums | Track | +|:----------------------------------------------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-------:|:---------------------------------------------:|:---------------------------------------------:|:--------:|:---------------------------------------------:|:---------------------------------------------:|:--------:| +| `year`**[3](#table-annotations)** | Uses the year attribute to match
minimum: `1` | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | +| `tmdb_year`**[2](#table-annotations)****[3](#table-annotations)** | Uses the year on TMDb to match
minimum: `1` | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | +| `critic_rating` | Uses the critic rating attribute to match
`0.0` - `10.0` | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | +| `audience_rating` | Uses the audience rating attribute to match
`0.0` - `10.0` | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | +| `user_rating` | Uses the user rating attribute to match
`0.0` - `10.0` | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | +| `tmdb_vote_count`**[2](#table-annotations)** | Uses the tmdb vote count to match
minimum: `1` | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | +| `tmdb_vote_average`**[2](#table-annotations)** | Uses the tmdb vote average rating to match
minimum: `0.0` | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | +| `plays` | Uses the plays attribute to match
minimum: `1` | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | +| `duration` | Uses the duration attribute to match using minutes
minimum: `0.0` | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | +| `channels` | Uses the audio channels attribute to match
minimum: `0` | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green }**[1](#table-annotations)** | :fontawesome-solid-circle-check:{ .green }**[1](#table-annotations)** | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | +| `height` | Uses the height attribute to match
minimum: `0` | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green }**[1](#table-annotations)** | :fontawesome-solid-circle-check:{ .green }**[1](#table-annotations)** | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | +| `width` | Uses the width attribute to match
minimum: `0` | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green }**[1](#table-annotations)** | :fontawesome-solid-circle-check:{ .green }**[1](#table-annotations)** | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | +| `aspect` | Uses the aspect attribute to match
minimum: `0.0` | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green }**[1](#table-annotations)** | :fontawesome-solid-circle-check:{ .green }**[1](#table-annotations)** | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | +| `versions` | Uses the number of versions found to match
minimum: `0` | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green }**[1](#table-annotations)** | :fontawesome-solid-circle-check:{ .green }**[1](#table-annotations)** | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green }**[1](#table-annotations)** | :fontawesome-solid-circle-check:{ .green }**[1](#table-annotations)** | :fontawesome-solid-circle-check:{ .green } | +| `stinger_rating`**[4](#table-annotations)** | Uses the [media stinger](http://www.mediastinger.com/) rating to match. The media stinger rating is if the after/during credits scene is worth staying for.
minimum: `0` | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | + +## Special Filters + +Special Filters each have their own set of rules for how they're used. + +### Attribute + +| Special Filters | Description | Movies | Shows | Seasons | Episodes | Artists | Albums | Track | +|:---------------------------------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:--------:|:--------:|:--------:|:--------:|:--------:|:--------:|:--------:| +| `history` | Uses the release date attribute (originally available) to match dates throughout history
`day`: Match the Day and Month to Today's Date
`month`: Match the Month to Today's Date
`1-30`: Match the Day and Month to Today's Date or `1-30` days before Today's Date | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | +| `episodes` | Uses the item's episodes attributes to match
Use the `percentage` attribute given a number between 0-100 to determine the percentage of an items episodes that must match the sub-filter. | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | +| `seasons` | Uses the item's seasons attributes to match
Use the `percentage` attribute given a number between 0-100 to determine the percentage of an items seasons that must match the sub-filter. | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | +| `tracks` | Uses the item's tracks attributes to match
Use the `percentage` attribute given a number between 0-100 to determine the percentage of an items tracks that must match the sub-filter. | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | +| `albums` | Uses the item's albums attributes to match
Use the `percentage` attribute given a number between 0-100 to determine the percentage of an items albums that must match the sub-filter. | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | +| `original_language`**[2](#table-annotations)**
`original_language.not`**[2](#table-annotations)** | Uses TMDb original language [ISO 639-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) to match
Example: `original_language: en, ko` | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | +| `tmdb_status`**[2](#table-annotations)**
`tmdb_status.not`**[2](#table-annotations)** | Uses TMDb Status to match
**Values:** `returning`, `planned`, `production`, `ended`, `canceled`, `pilot` | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | +| `tmdb_type`**[2](#table-annotations)**
`tmdb_type.not`**[2](#table-annotations)** | Uses TMDb Type to match
**Values:** `documentary`, `news`, `production`, `miniseries`, `reality`, `scripted`, `talk_show`, `video` | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | +| `imdb_keyword`**[2](#table-annotations)****[5](#table-annotations)** | Uses the keywords from IMDb to match
`keywords`: list of keywords to match
`minimum_votes`: minimum number of votes keywords must have
`minimum_relevant`: minimum number of relevant votes keywords must have
`minimum_percentage`: minimum percentage of relevant votes keywords must have | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | + +## Collection Filter Examples + +A few examples are listed below: + +```yaml +collections: + 1080p Documentaries: + plex_search: + all: + genre: Documentary + summary: A collection of 1080p Documentaries + filters: + resolution: 1080 +``` +```yaml +collections: + Daniel Craig only James Bonds: + imdb_list: https://www.imdb.com/list/ls006405458/ + filters: + actor: Daniel Craig +``` +```yaml +collections: + French Romance: + plex_search: + all: + genre: Romance + filters: + audio_language: Français +``` +```yaml +collections: + Romantic Comedies: + plex_search: + all: + genre: Romance + filters: + genre: Comedy +``` +```yaml +collections: + 9.0 Movies: + plex_all: true + filters: + rating.gte: 9 +``` +```yaml +collections: + Summer 2020 Movies: + plex_all: true + filters: + release.after: 5/1/2020 + release.before: 8/31/2020 +``` +```yaml +collections: + Movies Released in the Last 180 Days: + plex_all: true + filters: + release: 180 +``` +```yaml +collections: + Good Adam Sandler Romantic Comedies: + plex_search: + all: + genre: Romance + actor: Adam Sandler + filters: + genre: Comedy + rating.gte: 7 +``` +```yaml +collections: + Movies with Commentary: + plex_all: true + filters: + audio_track_title: Commentary +``` diff --git a/docs/metadata/builders/flixpatrol.md b/docs/builders/flixpatrol.md similarity index 100% rename from docs/metadata/builders/flixpatrol.md rename to docs/builders/flixpatrol.md diff --git a/docs/metadata/builders/icheckmovies.md b/docs/builders/icheckmovies.md similarity index 100% rename from docs/metadata/builders/icheckmovies.md rename to docs/builders/icheckmovies.md diff --git a/docs/metadata/builders/imdb.md b/docs/builders/imdb.md similarity index 100% rename from docs/metadata/builders/imdb.md rename to docs/builders/imdb.md diff --git a/docs/metadata/builders/letterboxd.md b/docs/builders/letterboxd.md similarity index 100% rename from docs/metadata/builders/letterboxd.md rename to docs/builders/letterboxd.md diff --git a/docs/metadata/builders/mdblist.md b/docs/builders/mdblist.md similarity index 100% rename from docs/metadata/builders/mdblist.md rename to docs/builders/mdblist.md diff --git a/docs/metadata/builders/myanimelist.md b/docs/builders/myanimelist.md similarity index 99% rename from docs/metadata/builders/myanimelist.md rename to docs/builders/myanimelist.md index b7e7cb66..77d075f0 100644 --- a/docs/metadata/builders/myanimelist.md +++ b/docs/builders/myanimelist.md @@ -2,7 +2,7 @@ You can find anime using the features of [MyAnimeList.net](https://myanimelist.net/) (MyAnimeList). -[Configuring MyAnimeList](../../config/myanimelist) in the config is required for any of these builders. +[Configuring MyAnimeList](../config/myanimelist.md) in the config is required for any of these builders. | Attribute | Description | Works with Movies | Works with Shows | Works with Playlists and Custom Sort | |:----------------------------------------------|:------------------------------------------------------------------------------------------------------------------------|:-----------------:|:----------------:|:------------------------------------:| diff --git a/docs/metadata/builders/plex.md b/docs/builders/plex.md similarity index 96% rename from docs/metadata/builders/plex.md rename to docs/builders/plex.md index 94e8e828..ee7948cb 100644 --- a/docs/metadata/builders/plex.md +++ b/docs/builders/plex.md @@ -4,17 +4,17 @@ This builder finds its items by using the features of Plex. No configuration is required for these builders. -| Attribute | Description | Works with Movies | Works with Shows | Works with Playlists and Custom Sort | -|:----------------------------------------------|:-------------------------------------------------------------------------|:-----------------:|:----------------:|:------------------------------------:| -| [`plex_all`](#plex-all) | Gets every movie/show in your library. Useful with [Filters](../filters) | ✅ | ✅ | ❌ | -| [`plex_watchlist`](#plex-watchlist) | Gets every movie/show in your Watchlist. | ✅ | ✅ | ✅ | -| [`plex_pilots`](#plex-pilots) | Gets the first episode of every show in your library | ❌ | ✅ | ✅ | -| [`plex_collectionless`](#plex-collectionless) | Gets every movie/show that is not in a collection | ✅ | ✅ | ❌ | -| [`plex_search`](#plex-search) | Gets every movie/show based on the search parameters provided | ✅ | ✅ | ✅ | +| Attribute | Description | Works with Movies | Works with Shows | Works with Playlists and Custom Sort | +|:----------------------------------------------|:-----------------------------------------------------------------------------|:-----------------:|:----------------:|:------------------------------------:| +| [`plex_all`](#plex-all) | Gets every movie/show in your library. Useful with [Filters](filters.md) | ✅ | ✅ | ❌ | +| [`plex_watchlist`](#plex-watchlist) | Gets every movie/show in your Watchlist. | ✅ | ✅ | ✅ | +| [`plex_pilots`](#plex-pilots) | Gets the first episode of every show in your library | ❌ | ✅ | ✅ | +| [`plex_collectionless`](#plex-collectionless.md) | Gets every movie/show that is not in a collection | ✅ | ✅ | ❌ | +| [`plex_search`](#plex-search) | Gets every movie/show based on the search parameters provided | ✅ | ✅ | ✅ | ## Plex All -Finds every item in your library. Useful with [Filters](../filters). +Finds every item in your library. Useful with [Filters](filters.md). The expected input is either true or false. @@ -110,7 +110,7 @@ like Plex's [Advanced Filters](https://support.plex.tv/articles/201273953-collec Inside the base attribute you can use any search below or nest more `any` or `all`. You can have as many nested `any` or `all` next to each other as you want. If using multiple `any` or `all` you will have to do so in the form of a list. -**Note: To search by `season`, `episode`, `album`, or `track` you must use the `builder_level` [Detail](../details/metadata) to change the type of items the collection holds.** +**Note: To search by `season`, `episode`, `album`, or `track` you must use the `builder_level` [Detail](details/metadata.md) to change the type of items the collection holds.** There are a couple other attributes you can have at the top level only along with the base attribute are: diff --git a/docs/metadata/builders/radarr.md b/docs/builders/radarr.md similarity index 95% rename from docs/metadata/builders/radarr.md rename to docs/builders/radarr.md index 0219549c..2103cbae 100644 --- a/docs/metadata/builders/radarr.md +++ b/docs/builders/radarr.md @@ -2,7 +2,7 @@ You can find items in your Plex using the features of [Radarr](https://radarr.video/). -[Configuring Radarr](../../config/radarr) in the config is required for any of these builders. +[Configuring Radarr](../config/radarr.md) in the config is required for any of these builders. | Attribute | Description | Works with Movies | Works with Shows | Works with Playlists and Custom Sort | |:------------------------------------|:---------------------------------------------|:-----------------:|:----------------:|:------------------------------------:| diff --git a/docs/metadata/builders/reciperr.md b/docs/builders/reciperr.md similarity index 100% rename from docs/metadata/builders/reciperr.md rename to docs/builders/reciperr.md diff --git a/docs/metadata/builders/smart.md b/docs/builders/smart.md similarity index 99% rename from docs/metadata/builders/smart.md rename to docs/builders/smart.md index 4e0d4104..0bd681c1 100644 --- a/docs/metadata/builders/smart.md +++ b/docs/builders/smart.md @@ -46,7 +46,7 @@ like Plex's [Advanced Filters](https://support.plex.tv/articles/201273953-collec Inside the base attribute you can use any filter below or nest more `any` or `all`. You can have as many nested `any` or `all` next to each other as you want. If using multiple `any` or `all` you will have to do so in the form of a list. -**Note: To search by `season`, `episode`, `album`, or `track` you must use the `builder_level` [Detail](../details/metadata) to change the type of items the collection holds.** +**Note: To search by `season`, `episode`, `album`, or `track` you must use the `builder_level` [Detail](details/metadata.md) to change the type of items the collection holds.** There are a couple other attributes you can have at the top level only along with the base attribute are: diff --git a/docs/metadata/builders/sonarr.md b/docs/builders/sonarr.md similarity index 95% rename from docs/metadata/builders/sonarr.md rename to docs/builders/sonarr.md index 59c8462d..4bd1abf6 100644 --- a/docs/metadata/builders/sonarr.md +++ b/docs/builders/sonarr.md @@ -2,7 +2,7 @@ You can find items in your Plex using the features of [Sonarr](https://sonarr.tv/). -[Configuring Sonarr](../../config/sonarr) in the config is required for any of these builders. +[Configuring Sonarr](../config/sonarr.md) in the config is required for any of these builders. | Attribute | Description | Works with Movies | Works with Shows | Works with Playlists and Custom Sort | |:------------------------------------|:---------------------------------------------|:-----------------:|:----------------:|:------------------------------------:| diff --git a/docs/metadata/builders/stevenlu.md b/docs/builders/stevenlu.md similarity index 100% rename from docs/metadata/builders/stevenlu.md rename to docs/builders/stevenlu.md diff --git a/docs/metadata/builders/tautulli.md b/docs/builders/tautulli.md similarity index 97% rename from docs/metadata/builders/tautulli.md rename to docs/builders/tautulli.md index 81e2c37f..fefe736e 100644 --- a/docs/metadata/builders/tautulli.md +++ b/docs/builders/tautulli.md @@ -2,7 +2,7 @@ You can find items in your Plex using the features of [Tautulli](https://tautulli.com/). -[Configuring Tautulli](../../config/tautulli) in the config is required for any of these builders. +[Configuring Tautulli](../config/tautulli.md) in the config is required for any of these builders. It has watch analytics that can show the most watched or most popular Movies/Shows in each Library. diff --git a/docs/builders/templates.md b/docs/builders/templates.md new file mode 100644 index 00000000..88e07b17 --- /dev/null +++ b/docs/builders/templates.md @@ -0,0 +1,247 @@ +# Templates + +Collection, Playlist, Metadata, and Overlay Definitions often share a lot of common or generalizable configuration details. Templates allow you to define these details so they can be used across multiple definitions. + +For example, an actor collection might look like this: + +```yaml +collections: + Bruce Lee: + plex_search: + all: + actor: tmdb + tmdb_person: 19429 + sort_title: "!_Bruce Lee" + sync_mode: sync + collection_order: release +``` + +Note: The `sort_title` in these examples is wrapped in quotes because it contains a character [`!`] which has [syntactic meaning in YAML files](../pmm/essentials/yaml.md#string-literals). This "quoting special characters" is a general YAML requirement, not something specific to `sort_title`. + +Then you add another: + +```yaml +collections: + Bruce Lee: + plex_search: + all: + actor: tmdb + tmdb_person: 19429 + sort_title: "!_Bruce Lee" + sync_mode: sync + collection_order: release + Chris Pratt: + plex_search: + all: + actor: tmdb + tmdb_person: 73457 + sort_title: "!_Chris Pratt" + sync_mode: sync + collection_order: release +``` + +You could keep going in this way, but there's a lot of repetition there. Both of these collections have the same `sync_mode`, `collection_order`, and `actor` settings; the other two details, `tmdb_person` and `sort_title`, depend on a value defined in the collection. + +Those repetitive aspects can be moved into a template and leveraged by multiple collections. + +## Template Variables + +Template Variables are used to define the data that going to be changing in the template. + +For example, a template for those two collections might look like this: + +```yaml +templates: + Actor: + plex_search: + all: + actor: tmdb + tmdb_person: <> + sort_title: "!_<>" + sync_mode: sync + collection_order: release +``` + +The only things that change are the ID that is used with `tmdb_person` and the name of the collection that is used in `sort_title`. + +Those two things surrounded by `<< >>` are "template variables" that you can define for any collection using this template, like this: + +```yaml +collections: + Chris Pratt: + template: + name: Actor + person: 73457 +``` + +or to do it in a single line you can do this + +```yaml +collections: + Bruce Lee: + template: {name: Actor, person: 19429} +``` + +Note that we provide the template name `Actor` and the value to insert in the place of `<>`. The `<>` is a template variable that is always available and doesn't have to be called out like `<>`. + +Inside a template, you can use all the Builders, Details, and [Filters](filters.md) attributes that you can give collections/playlists [except `template`; templates cannot be nested]. + +The names of template variables that you define are arbitrary. In the example above, `<>` could have been `<>` or `<>` or anything else. The only thing that matters is that in the template definition you surround them with `<< >>` and in the collection definition you spell it correctly. + +To use a template with a collection definition you use the `template` attribute. The only required attribute under `template` is `name` which must correspond exactly to the template mapping name. Any other attributes under `template` are considered template variables whose names correspond exactly with the template variable name surrounded by `<<` and `>>` in the templates. These template variables will replace any part of any value that contains the template variable name surrounded by `<<` and `>>` in the template with the specified template variable's value. + +Here's the full example Actor template and two different ways to use it, as it would appear in a metadata file. + +```yaml +templates: + Actor: + plex_search: + all: + actor: tmdb + tmdb_person: <> + sort_title: "!_<>" + sync_mode: sync + collection_order: release +collections: + Bruce Lee: + template: {name: Actor, person: 19429} + Chris Pratt: + template: + name: Actor + person: 73457 +``` + +## Multi-Template Variables + +When using multiple Templates in a single definition you can send the same variable to all templates by using the `variables` attribute. + +```yaml +templates: + Actor: + plex_search: + all: + actor: tmdb + tmdb_person: <> + sort_title: "!_<>" + Common: + summary: "Movies that <> (TMDb ID: <>) are in" + sync_mode: sync + collection_order: release +collections: + Bruce Lee: + variables: {person: 19429} + template: [{name: Actor}, {name: Common}] + Chris Pratt: + variables: + person: 19429 + template: + - name: Actor + - name: Common +``` + +## Special Template Attributes + +There are some attributes unique to `templates`; `default`, `optional`, `conditionals`, and `move_prefix`. + +* `default` can set default values for template variables to be used if they're not specified in the call. +* `optional` can specify variables that if not specified on the template call will cause any attribute using one of those variables to be ignored in the template. You can make any template variable optional per collection by setting it to `null`. +* `conditionals` can specify variables based on conditions set by the user. See more [here](#conditionals.md) +* `move_prefix` can be given a list or comma-separated string of prefixes to move to the end of the collection/playlist name for sorting. + i.e. If you have `move_prefix: The` and a collection is called `The Avengers` then `<>` is replaced with `Avengers, The` instead of `The Avengers` for that collection. + +Every template call is given these template variables. + +* Either `<>`, `<>`, or `<>` which is the name of the definition. +* `<>` is the original mapping name for the definition in the YAML file. +* Either `<>` or `<>` which is the name of the definition after `move_prefix` is applied. +* `<>` which is the library type +* `<>` which is the name of the library +* All Template Variables can append `_encoded` to the variable name to use a URL encode version of the variable. ex. `<>` + +### Conditionals + +Each conditional is identified by its mapping name and has one required attribute; `conditions` and one optional attribute; `default`. + +`default` is the default value for the variable when no condition is met. If default is not specified the variable becomes an optional variable. + +`conditions` is a list of sets of conditions where if all conditions are met then the variable will be the `value` specified in that condition. + +Each set of conditions must have the `value` attribute which is the value of the variable if the condition is met. + +All other attribute pairs in the set of conditions will check some condition of the value of the attribute key: + +* If the attribute key ends with `.not` the value must not equal the attribute value or not be in the list of attribute values. +* If the attribute key ends with `.exists` and the attribute value is `true` then the attribute key must be a given template variable and if the value is anything else then the attribute key must not be a given template variable. +* Otherwise, the value must equal the attribute value or be in the list of attribute values. + +Here's an example from the [PMM Default ratings file](https://github.com/meisnate12/Plex-Meta-Manager/blob/master/defaults/overlays/ratings.yml). + +```yaml +templates: + Rating: + conditionals: + rating1_horizontal_offset: + default: 30 # If no condition sets below are meet + conditions: + - side: [top, bottom] + rating2: none + rating3: none + value: 0 # If side is 'top' or 'bottom' and rating2 is 'none' and rating3 is 'none' + - side: [top, bottom] + rating2: none + value: -165 # If side is 'top' or 'bottom' and rating2 is 'none' and no previous conditions are meet + - side: [top, bottom] + rating3: none + value: -165 # If side is 'top' or 'bottom' rating3 is 'none' and no previous conditions are meet + - side: [top, bottom] + value: -335 # If side is 'top' or 'bottom' and no previous conditions are meet +``` + +## Advanced Example + +Here's an example IMDb Genre template and two different ways to call it. + +```yaml +templates: + IMDb Genre: + default: + title: feature + limit: 100 + optional: + - poster_id + imdb_list: + - url: https://www.imdb.com/search/title/?title_type=<>&release_date=1990-01-01,&user_rating=5.0,10.0&num_votes=100000,&genres=<<genre>> + limit: <<limit>> + - url: https://www.imdb.com/search/title/?title_type=<<title>>&release_date=1990-01-01,&user_rating=5.0,10.0&num_votes=100000,&genres=<<genre>>&sort=user_rating,desc + limit: <<limit>> + sort_title: "!_<<collection_name>>" + url_poster: https://theposterdb.com/api/assets/<<poster_id>> + sync_mode: sync + collection_order: alpha +collections: + Action: + template: + name: IMDb Genre + genre: action + summary: Action film is a genre wherein physical action takes precedence in the storytelling. The film will often have continuous motion and action including physical stunts, chases, fights, battles, and races. The story usually revolves around a hero that has a goal, but is facing incredible odds to obtain it. + Comedy: + template: {name: IMDb Genre, genre: comedy, poster_id: 69200} + summary: Comedy is a genre of film that uses humor as a driving force. The aim of a comedy film is to illicit laughter from the audience through entertaining stories and characters. Although the comedy film may take on some serious material, most have a happy ending. Comedy film has the tendency to become a hybrid sub-genre because humor can be incorporated into many other genres. Comedies are more likely than other films to fall back on the success and popularity of an individual star. + Romantic Comedy: + template: {name: IMDb Genre, genre: "romance,comedy", limit: 200} + summary: Romantic Comedy is a genre that attempts to catch the viewer’s heart with the combination of love and humor. This sub-genre is light-hearted and usually places the two protagonists in humorus situation. Romantic-Comedy film revolves around a romantic ideal, such as true love. In the end, the ideal triumphs over the situation or obstacle, thus creating a happy ending. + filters: + genre: Comedy +``` + +Check out the example files in the [Plex Meta Manager Configs Repository](https://github.com/meisnate12/Plex-Meta-Manager-Configs/tree/master/meisnate12) for more uses and examples. + +## External Templates + +To load external templates located in another file you can use the `external_templates` attribute by specifying the path type and path of the files that will be executed. See [Path Types](../config/paths.md) for how to define them. + +```yaml +external_templates: + - file: config/templates.yml + - pmm: templates +``` diff --git a/docs/metadata/builders/tmdb.md b/docs/builders/tmdb.md similarity index 99% rename from docs/metadata/builders/tmdb.md rename to docs/builders/tmdb.md index db069f85..f097fd10 100644 --- a/docs/metadata/builders/tmdb.md +++ b/docs/builders/tmdb.md @@ -436,7 +436,7 @@ The `sync_mode: sync` and `collection_order: custom` Details are recommended sin | Movie Parameters | Description | |:--------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `limit` | Specify how many movies you want returned by the query.<br>**Type:** Integer<br>**Default:** 100 | -| `region` | Specify a [ISO 3166-1 code](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes) to filter release dates. Must be uppercase. Will use the `region` specified in the [TMDb Config](../../config/tmdb) by default.<br>**Type:** `^[A-Z]{2}$` | +| `region` | Specify a [ISO 3166-1 code](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes) to filter release dates. Must be uppercase. Will use the `region` specified in the [TMDb Config](../config/tmdb.md) by default.<br>**Type:** `^[A-Z]{2}$` | | `sort_by` | Choose from one of the many available sort options.<br>**Type:** Any [sort options](#sort-options) below<br>**Default:** `popularity.desc` | | `certification_country` | Used in conjunction with the certification parameter, use this to specify a country with a valid certification.<br>**Type:** String | | `certification` | Filter results with a valid certification from the `certification_country` parameter.<br>**Type:** String | diff --git a/docs/metadata/builders/trakt.md b/docs/builders/trakt.md similarity index 99% rename from docs/metadata/builders/trakt.md rename to docs/builders/trakt.md index fd000518..cdb83190 100644 --- a/docs/metadata/builders/trakt.md +++ b/docs/builders/trakt.md @@ -2,7 +2,7 @@ You can find items using the features of [Trakt.tv](https://trakt.tv/) (Trakt). -[Configuring Trakt](../../config/trakt) in the config is required for any of these builders. +[Configuring Trakt](../config/trakt.md) in the config is required for any of these builders. | Attribute | Description | Works with Movies | Works with Shows | Works with Playlists and Custom Sort | |:--------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-----------------:|:----------------:|:------------------------------------:| diff --git a/docs/metadata/builders/tvdb.md b/docs/builders/tvdb.md similarity index 100% rename from docs/metadata/builders/tvdb.md rename to docs/builders/tvdb.md diff --git a/docs/conf.py b/docs/conf.py deleted file mode 100644 index 73c9c7cc..00000000 --- a/docs/conf.py +++ /dev/null @@ -1,586 +0,0 @@ -# Configuration file for the Sphinx documentation builder. -# -# This file only contains a selection of the most common options. For a full -# list see the documentation: -# https://www.sphinx-doc.org/en/master/usage/configuration.html - -# -- Path setup -------------------------------------------------------------- - -import datetime -import sys -from os.path import abspath, dirname - -# If extensions (or modules to document with autodoc) are in another directory, -# add these directories to sys.path here. If the directory is relative to the -# documentation root, use os.path.abspath to make it absolute, like shown here. -# -# import os -import sphinx_bootstrap_theme - -path = dirname(abspath(__file__)) -sys.path.append(path) - - -# -- Project information ----------------------------------------------------- - -project = "Plex Meta Manager Wiki" -author = "Nathan Taggart" -copyright = f"{datetime.datetime.now().year}" - -# The full version, including alpha/beta/rc tags -with open("../VERSION") as f: - release = f.readline() - - -# -- General configuration --------------------------------------------------- - -# Add any Sphinx extension module names here, as strings. They can be -# extensions coming with Sphinx (named "sphinx.ext.*") or your custom -# ones. -extensions = [ - 'sphinx.ext.autodoc', - 'sphinx.ext.coverage', - 'sphinx.ext.viewcode', - 'sphinx.ext.napoleon', - 'sphinx.ext.todo', - 'myst_parser', - 'sphinx_inline_tabs', - 'sphinx_copybutton', - 'sphinx_reredirects', - 'sphinx_design', - 'notfound.extension' -] - -source_suffix = ['.rst', '.md'] -myst_heading_anchors = 4 -myst_enable_extensions = ["colon_fence"] - -# -- Napoleon Settings ----------------------------------------------------- -napoleon_google_docstring = True -napoleon_numpy_docstring = False -napoleon_include_init_with_doc = False -napoleon_include_private_with_doc = False -napoleon_include_special_with_doc = False -napoleon_use_admonition_for_examples = False -napoleon_use_admonition_for_notes = False -napoleon_use_admonition_for_references = False -napoleon_use_ivar = True -napoleon_use_param = True -napoleon_use_rtype = True -napoleon_use_keyword = True -autodoc_member_order = 'bysource' -add_module_names = False - -master_doc = 'index' - -# Add any paths that contain templates here, relative to this directory. -templates_path = ["_templates"] - -# List of patterns, relative to source directory, that match files and -# directories to ignore when looking for source files. -# This pattern also affects html_static_path and html_extra_path. -exclude_patterns = ["_build", "Thumbs.db", ".DS_Store"] - - -# -- Options for HTML output ------------------------------------------------- - -# The theme to use for HTML and HTML Help pages. See the documentation for -# a list of builtin themes. -# -# html_theme = "nature" -html_theme = "bootstrap" -html_theme_path = sphinx_bootstrap_theme.get_html_theme_path() -# (Optional) Logo. Should be small enough to fit the navbar (ideally 24x24). -# Path should be relative to the ``_static`` files directory. -html_logo = "_static/logo-white.png" -html_favicon = "_static/favicon.png" - -html_copy_source = False -html_show_sourcelink = False - -# Redirect URLs -# "<source>": "<target>" -redirects = { - "redact": "https://regex101.com/r/DMo1DQ/latest", - "home/guides/alternative-docker": "images.html", - "home/guides/defaults": "../../defaults/guide.html", - "metadata/details/setting": "definition.html", - "metadata/details/details": "update.html", - "malauth": "https://replit.com/@chazlarson/MALAuth", - "traktauth": "https://replit.com/@chazlarson/TraktAuth", - "defaults/movie/universe": "../../both/universe.html", - "discord": "https://discord.gg/FNqqw5jRSz", -} - -# Theme options are theme-specific and customize the look and feel of a -# theme further. - -html_theme_options = { - # Tab name for entire site. (Default: "Site") - 'navbar_site_name': "Table of Contents", - - # A list of tuples containing pages or urls to link to. - # Valid tuples should be in the following forms: - # (name, page) # a link to a page - # (name, "/aa/bb", 1) # a link to an arbitrary relative url - # (name, "http://example.com", True) # arbitrary absolute url - # Note the "1" or "True" value above as the third argument to indicate - # an arbitrary url. - 'navbar_links': [ - ("_menu", "Essentials", [ - ("Plex Meta Manager", "index"), - ("_divider", ), - ("_menu", "Installation", "home/installation", [ - ("Installing Plex Meta Manager", "home/installation"), - ("_divider", ), - ("Local Walkthrough", "home/guides/local"), - ("Docker Walkthrough", "home/guides/docker"), - ("Docker Images", "home/guides/images"), - ("_divider", ), - ("unRAID Walkthrough", "home/guides/unraid"), - ("Kubernetes Walkthrough", "home/guides/kubernetes"), - ("QNAP Walkthrough", "home/guides/qnap"), - ("Synology Walkthrough", "home/guides/synology"), - ]), - ("Log Files", "home/logs"), - ("Run Commands & Environment Variables", "home/environmental"), - ("Knowledgebase/FAQ", "home/kb"), - ("_menu", "Companion Scripts", "home/scripts", [ - ("Companion Scripts", "home/scripts"), - ("_divider", ), - ("PMM Overlay Reset", "home/scripts/overlay-reset"), - ("Plex Image Cleanup", "home/scripts/image-cleanup"), - ]), - ("_divider", ), - ("YAML File Guide", "home/guides/yaml"), - ("Ratings Explained", "home/guides/ratings"), - ("Scheduling Guide", "home/guides/scheduling"), - ("Image Asset Directory Guide", "home/guides/assets"), - ("Formula 1 Metadata Guide", "home/guides/formula"), - ("_divider", ), - ("Feature Requests", "https://features.metamanager.wiki/"), - ("Bugs/Issues", "https://github.com/meisnate12/Plex-Meta-Manager/issues"), - ("User Configs Repository", "https://github.com/meisnate12/Plex-Meta-Manager-Configs"), - ("Discord Server", "https://discord.gg/gYU8wATxKw"), - ("Donate/Sponsor", "https://github.com/sponsors/meisnate12"), - ("Acknowledgements", "home/acknowledgements"), - ]), - ("_menu", "Config", [ - ("Config File", "config/configuration"), - ("_divider", ), - ("Libraries", "config/libraries"), - ("Playlists", "config/playlists"), - ("Path Types", "config/paths"), - ("_menu", "Library Operations", "config/operations", [ - ("Assets For All", "config/operations", "#assets-for-all"), - ("Delete Collections", "config/operations", "#delete-collections"), - ("Mass Genre Update", "config/operations", "#mass-genre-update"), - ("Mass Content Rating Update", "config/operations", "#mass-content-rating-update"), - ("Mass Original Title Update", "config/operations", "#mass-original-title-update"), - ("Mass Studio Update", "config/operations", "#mass-studio-update"), - ("Mass Originally Available Update", "config/operations", "#mass-originally-available-update"), - ("Mass * Rating Update", "config/operations", "#mass--rating-update"), - ("Mass Episode * Rating Update", "config/operations", "#mass-episode--rating-update"), - ("Mass Poster Update", "config/operations", "#mass-poster-update"), - ("Mass Background Update", "config/operations", "#mass-background-update"), - ("Mass IMDb Parental Labels", "config/operations", "#mass-imdb-parental-labels"), - ("Mass Collection Mode", "config/operations", "#mass-collection-mode"), - ("Update Blank Track Titles", "config/operations", "#update-blank-track-titles"), - ("Remove Title Parentheses", "config/operations", "#remove-title-parentheses"), - ("Split Duplicates", "config/operations", "#split-duplicates"), - ("Radarr Add All", "config/operations", "#radarr-add-all"), - ("Radarr Remove By Tag", "config/operations", "#radarr-remove-by-tag"), - ("Sonarr Add All", "config/operations", "#sonarr-add-all"), - ("Sonarr Remove By Tag", "config/operations", "#sonarr-remove-by-tag"), - ("Genre Mapper", "config/operations", "#genre-mapper"), - ("Content Rating Mapper", "config/operations", "#content-rating-mapper"), - ("Metadata Backup", "config/operations", "#metadata-backup"), - ]), - ("Settings", "config/settings"), - ("Webhooks", "config/webhooks"), - ("_divider", ), - ("Plex", "config/plex"), - ("Tautulli", "config/tautulli"), - ("Radarr", "config/radarr"), - ("Sonarr", "config/sonarr"), - ("Notifiarr", "config/notifiarr"), - ("_divider", ), - ("TMDb", "config/tmdb"), - ("Trakt", "config/trakt"), - ("MdbList", "config/mdblist"), - ("OMDb", "config/omdb"), - ("GitHub", "config/github"), - ("AniDB", "config/anidb"), - ("MyAnimeList", "config/myanimelist"), - ]), - ("_menu", "Defaults", [ - ("Defaults Usage Guide", "defaults/guide"), - ("Defaults Files", "defaults/files"), - ("_divider", ), - ("_menu", "Collections", "defaults/collections", [ - ("Collections", "defaults/collections"), - ("Shared Variables", "defaults/collection_variables"), - ("_divider", ), - ("Separators", "defaults/separators"), - ("_menu", "Award", "defaults/collections", "#award-collections", [ - ("Awards Separator", "defaults/award/separator"), - ("_divider",), - ("Academy Awards (Oscars)", "defaults/award/oscars"), - ("British Academy of Film Awards", "defaults/award/bafta"), - ("Cannes Film Festival Awards", "defaults/award/cannes"), - ("Critics Choice Awards", "defaults/award/choice"), - ("Emmy Awards", "defaults/award/emmy"), - ("Golden Globe Awards", "defaults/award/golden"), - ("Independent Spirit Awards", "defaults/award/spirit"), - ("Sundance Film Festival Awards", "defaults/award/sundance"), - ("Other Awards", "defaults/award/other"), - ]), - ("_menu", "Chart", "defaults/collections", "#chart-collections", [ - ("Chart Separator", "defaults/chart/separator"), - ("_divider",), - ("Basic Charts", "defaults/chart/basic"), - ("Tautulli Charts", "defaults/chart/tautulli"), - ("IMDb Charts", "defaults/chart/imdb"), - ("TMDb Charts", "defaults/chart/tmdb"), - ("Trakt Charts", "defaults/chart/trakt"), - ("Flixpatrol Charts", "defaults/chart/flixpatrol"), - ("AniList Charts", "defaults/chart/anilist"), - ("MyAnimeList Charts", "defaults/chart/myanimelist"), - ("Other Charts", "defaults/chart/other"), - ]), - ("_menu", "Content", "defaults/collections", "#content-collections", [ - ("Genres", "defaults/both/genre"), - ("Franchises (Movie)", "defaults/movie/franchise"), - ("Franchises (TV)", "defaults/show/franchise"), - ("Universes", "defaults/both/universe"), - ("Based On...", "defaults/both/based"), - ]), - ("_menu", "Content Rating", "defaults/collections", "#content-rating-collections", [ - ("US Content Ratings (Movie)", "defaults/movie/content_rating_us"), - ("US Content Ratings (TV)", "defaults/show/content_rating_us"), - ("UK Content Ratings", "defaults/both/content_rating_uk"), - ("MyAnimeList Content Ratings", "defaults/both/content_rating_mal"), - ("Common Sense Media Content Ratings", "defaults/both/content_rating_cs"), - ]), - ("_menu", "Location", "defaults/collections", "#location-collections", [ - ("Countries (Movie)", "defaults/movie/country"), - ("Countries (TV)", "defaults/show/country"), - ("Regions (Movie)", "defaults/movie/region"), - ("Regions (TV)", "defaults/show/region"), - ("Continents (Movie)", "defaults/movie/continent"), - ("Continents (TV)", "defaults/show/continent"), - ]), - ("_menu", "Media", "defaults/collections", "#media-collections", [ - ("Aspect Ratios", "defaults/both/aspect"), - ("Resolutions", "defaults/both/resolution"), - ("Audio Languages", "defaults/both/audio_language"), - ("Subtitle Languages", "defaults/both/subtitle_language"), - ]), - ("_menu", "Production", "defaults/collections", "#production-collections", [ - ("Networks", "defaults/show/network"), - ("Streaming", "defaults/both/streaming"), - ("Studios", "defaults/both/studio"), - ]), - ("_menu", "People", "defaults/collections", "#people-collections", [ - ("Actors", "defaults/both/actor"), - ("Directors", "defaults/movie/director"), - ("Producers", "defaults/movie/producer"), - ("Writers", "defaults/movie/writer"), - ]), - ("_menu", "Time", "defaults/collections", "#time-collections", [ - ("Seasonal", "defaults/movie/seasonal"), - ("Years", "defaults/both/year"), - ("Decades (Movie)", "defaults/movie/decade"), - ("Decades (TV)", "defaults/show/decade"), - ]), - ("_menu", "Utility", "defaults/collections", "#utility-collections", [ - ("Collectionless", "defaults/both/collectionless"), - ]), - ]), - ("Playlists", "defaults/playlist"), - ("_menu", "Overlays", "defaults/overlays", [ - ("Overlays", "defaults/overlays"), - ("Shared Variables", "defaults/overlay_variables"), - ("_divider", ), - ("_menu", "Chart", "defaults/overlays", "#chart-overlays", [ - ("FlixPatrol Top", "defaults/overlays/flixpatrol"), - ("Ribbon", "defaults/overlays/ribbon"), - ]), - ("_menu", "Content", "defaults/overlays", "#content-overlays", [ - ("Episode Info", "defaults/overlays/episode_info"), - ("MediaStinger", "defaults/overlays/mediastinger"), - ("Ratings", "defaults/overlays/ratings"), - ("Status", "defaults/overlays/status"), - ]), - ("_menu", "Content Rating", "defaults/overlays", "#content-rating-overlays", [ - ("US Content Ratings (Movie)", "defaults/overlays/content_rating_us_movie"), - ("US Content Ratings (Show)", "defaults/overlays/content_rating_us_show"), - ("UK Content Ratings", "defaults/overlays/content_rating_uk"), - ("Common Sense Age Ratings", "defaults/overlays/commonsense"), - ]), - ("_menu", "Media", "defaults/overlays", "#media-overlays", [ - ("Aspect Ratio", "defaults/overlays/aspect"), - ("Audio Codec", "defaults/overlays/audio_codec"), - ("Audio/Subtitle Language Count", "defaults/overlays/language_count"), - ("Audio/Subtitle Language Flags", "defaults/overlays/languages"), - ("Resolution/Edition", "defaults/overlays/resolution"), - ("Runtimes", "defaults/overlays/runtimes"), - ("Versions", "defaults/overlays/versions"), - ("Video Format", "defaults/overlays/video_format"), - ]), - ("_menu", "Production", "defaults/overlays", "#production-overlays", [ - ("Networks", "defaults/overlays/network"), - ("Streaming", "defaults/overlays/streaming"), - ("Studios", "defaults/overlays/studio"), - ]), - ("_menu", "Utility", "defaults/overlays", "#utility-overlays", [ - ("Direct Play Only", "defaults/overlays/direct_play"), - ]), - ]), - ]), - ("_menu", "Files", [ - ("Metadata Files", "metadata/metadata"), - ("Overlay Files", "metadata/overlay"), - ("Playlist Files", "metadata/playlist"), - ("_divider", ), - ("Templates", "metadata/templates"), - ("Filters", "metadata/filters"), - ("_menu", "Dynamic Collections", "metadata/dynamic", [ - ("Dynamic Collections", "metadata/dynamic"), - ("_divider", ), - ("_menu", "TMDb Dynamic Collections", "metadata/dynamic", [ - ("TMDb Collection", "metadata/dynamic", "#tmdb-collection"), - ("TMDb Popular People", "metadata/dynamic", "#tmdb-popular-people"), - ("Original Language", "metadata/dynamic", "#original-language"), - ("Origin Country", "metadata/dynamic", "#origin-country"), - ]), - ("_menu", "Trakt Dynamic Collections", "metadata/dynamic", [ - ("Trakt User Lists", "metadata/dynamic", "#trakt-user-lists"), - ("Trakt Liked Lists", "metadata/dynamic", "#trakt-liked-lists"), - ("Trakt People Lists", "metadata/dynamic", "#trakt-people-lists"), - ]), - ("_menu", "Plex Dynamic Collections", "metadata/dynamic", [ - ("Actor", "metadata/dynamic", "#actor"), - ("Director", "metadata/dynamic", "#director"), - ("Writer", "metadata/dynamic", "#writer"), - ("Producer", "metadata/dynamic", "#producer"), - ("Genre", "metadata/dynamic", "#genre"), - ("Album Genre", "metadata/dynamic", "#album-genre"), - ("Content Rating", "metadata/dynamic", "#content-rating"), - ("Year", "metadata/dynamic", "#year"), - ("Decade", "metadata/dynamic", "#decade"), - ("Country", "metadata/dynamic", "#country"), - ("Resolution", "metadata/dynamic", "#resolution"), - ("Subtitle Language", "metadata/dynamic", "#subtitle-language"), - ("Audio Language", "metadata/dynamic", "#audio-language"), - ("Studio", "metadata/dynamic", "#studio"), - ("Edition", "metadata/dynamic", "#edition"), - ("Network", "metadata/dynamic", "#network"), - ("Mood", "metadata/dynamic", "#mood"), - ("Album Mood", "metadata/dynamic", "#album-mood"), - ("Track Mood", "metadata/dynamic", "#track-mood"), - ("Style", "metadata/dynamic", "#style"), - ("Album Style", "metadata/dynamic", "#album-style"), - ]), - ("Number", "metadata/dynamic", "#number"), - ("Custom", "metadata/dynamic", "#custom"), - ]), - ("_menu", "Editing Media Metadata", "", [ - ("Editing Movie Metadata", "metadata/metadata/movie"), - ("Editing TV Metadata", "metadata/metadata/show"), - ("Editing Music Metadata", "metadata/metadata/music"), - ]), - ("_menu", "Builders", "metadata/builders", [ - ("Builders", "metadata/builders"), - ("_divider", ), - ("_menu", "Plex Builders", "metadata/builders/plex", [ - ("Plex All", "metadata/builders/plex", "#plex-all"), - ("Plex Watchlist", "metadata/builders/plex", "#plex-watchlist"), - ("Plex Pilots", "metadata/builders/plex", "#plex-pilots"), - ("Plex Collectionless", "metadata/builders/plex", "#plex-collectionless"), - ("Plex Search", "metadata/builders/plex", "#plex-search"), - ]), - ("_menu", "Smart Builders", "metadata/builders/smart", [ - ("Smart Label", "metadata/builders/smart", "#smart-label"), - ("Smart Filter", "metadata/builders/smart", "#smart-filter"), - ]), - ("_menu", "TMDb Builders", "metadata/builders/tmdb", [ - ("TMDb Collection", "metadata/builders/tmdb", "#tmdb-collection"), - ("TMDb List", "metadata/builders/tmdb", "#tmdb-list"), - ("TMDb Actor", "metadata/builders/tmdb", "#tmdb-actor"), - ("TMDb Crew", "metadata/builders/tmdb", "#tmdb-crew"), - ("TMDb Director", "metadata/builders/tmdb", "#tmdb-director"), - ("TMDb Producer", "metadata/builders/tmdb", "#tmdb-producer"), - ("TMDb Writer", "metadata/builders/tmdb", "#tmdb-writer"), - ("TMDb Movie", "metadata/builders/tmdb", "#tmdb-movie"), - ("TMDb Show", "metadata/builders/tmdb", "#tmdb-show"), - ("TMDb Company", "metadata/builders/tmdb", "#tmdb-company"), - ("TMDb Network", "metadata/builders/tmdb", "#tmdb-network"), - ("TMDb Keyword", "metadata/builders/tmdb", "#tmdb-keyword"), - ("TMDb Popular", "metadata/builders/tmdb", "#tmdb-popular"), - ("TMDb Now Playing", "metadata/builders/tmdb", "#tmdb-now-playing"), - ("TMDb Top Rated", "metadata/builders/tmdb", "#tmdb-top-rated"), - ("TMDb Upcoming", "metadata/builders/tmdb", "#tmdb-upcoming"), - ("TMDb Airing Today", "metadata/builders/tmdb", "#tmdb-airing-today"), - ("TMDb On the Air", "metadata/builders/tmdb", "#tmdb-on-the-air"), - ("TMDb Trending Daily", "metadata/builders/tmdb", "#tmdb-trending-daily"), - ("TMDb Trending Weekly", "metadata/builders/tmdb", "#tmdb-trending-weekly"), - ("TMDb Discover", "metadata/builders/tmdb", "#tmdb-discover"), - ]), - ("_menu", "TVDb Builders", "metadata/builders/tvdb", [ - ("TVDb List", "metadata/builders/tvdb", "#tvdb-list"), - ("TVDb Movie", "metadata/builders/tvdb", "#tvdb-movie"), - ("TVDb Show", "metadata/builders/tvdb", "#tvdb-show"), - ]), - ("_menu", "IMDb Builders", "metadata/builders/imdb", [ - ("IMDb ID", "metadata/builders/imdb", "#imdb-id"), - ("IMDb Chart", "metadata/builders/imdb", "#imdb-chart"), - ("IMDb List", "metadata/builders/imdb", "#imdb-list"), - ("IMDb Watchlist", "metadata/builders/imdb", "#imdb-watchlist"), - ]), - ("_menu", "Trakt Builders", "metadata/builders/trakt", [ - ("Trakt List", "metadata/builders/trakt", "#trakt-list"), - ("Trakt Chart", "metadata/builders/trakt", "#trakt-chart"), - ("Trakt Userlist", "metadata/builders/trakt", "#trakt-userlist"), - ("Trakt Recommendations", "metadata/builders/trakt", "#trakt-recommendations"), - ("Trakt Box Office", "metadata/builders/trakt", "#trakt-box-office"), - ]), - ("_menu", "Tautulli Builders", "metadata/builders/tautulli", [ - ("Tautulli Popular/Watched", "metadata/builders/tautulli", "#tautulli-popular-watched"), - ]), - ("_menu", "Radarr Builders", "metadata/builders/radarr", [ - ("Radarr All", "metadata/builders/radarr", "#radarr-all"), - ("Radarr Taglist", "metadata/builders/radarr", "#radarr-taglist"), - ]), - ("_menu", "Sonarr Builders", "metadata/builders/sonarr", [ - ("Sonarr All", "metadata/builders/sonarr", "#sonarr-all"), - ("Sonarr Taglist", "metadata/builders/sonarr", "#sonarr-taglist"), - ]), - ("_menu", "MdbList Builders", "metadata/builders/mdblist", [ - ("MdbList List", "metadata/builders/mdblist", "#mdblist-list"), - ]), - ("_menu", "Letterboxd Builders", "metadata/builders/letterboxd", [ - ("Letterboxd List", "metadata/builders/letterboxd", "#letterboxd-list"), - ]), - ("_menu", "ICheckMovies Builders", "metadata/builders/icheckmovies", [ - ("ICheckMovies List", "metadata/builders/icheckmovies", "#icheckmovies-list"), - ]), - ("_menu", "FlixPatrol Builders", "metadata/builders/flixpatrol", [ - ("FlixPatrol Top Platform", "metadata/builders/flixpatrol", "#flixpatrol-top"), - ]), - ("_menu", "Reciperr Builders", "metadata/builders/reciperr", [ - ("Reciperr List", "metadata/builders/reciperr", "#reciperr-list"), - ]), - ("_menu", "StevenLu Builders", "metadata/builders/stevenlu", [ - ("StevenLu List", "metadata/builders/stevenlu", "#stevenlu-s-popular-movies-list"), - ]), - ("_menu", "AniDB Builders", "metadata/builders/anidb", [ - ("AniDB ID", "metadata/builders/anidb", "#anidb-id"), - ("AniDB Relation", "metadata/builders/anidb", "#anidb-relation"), - ("AniDB Popular", "metadata/builders/anidb", "#anidb-popular"), - ("AniDB Tag", "metadata/builders/anidb", "#anidb-tag"), - ]), - ("_menu", "AniList Builders", "metadata/builders/anilist", [ - ("AniList Top Rated", "metadata/builders/anilist", "#anilist-top-rated"), - ("AniList Anilist Popular", "metadata/builders/anilist", "#anilist-anilist-popular"), - ("AniList Trending", "metadata/builders/anilist", "#anilist-trending"), - ("AniList Relations", "metadata/builders/anilist", "#anilist-relations"), - ("AniList Studio", "metadata/builders/anilist", "#anilist-studio"), - ("AniList ID", "metadata/builders/anilist", "#anilist-id"), - ("AniList UserList", "metadata/builders/anilist", "#anilist-userlist"), - ("AniList Search", "metadata/builders/anilist", "#anilist-search"), - ]), - ("_menu", "MyAnimeList Builders", "metadata/builders/myanimelist", [ - ("MyAnimeList Search", "metadata/builders/myanimelist", "#myanimelist-search"), - ("MyAnimeList Top All", "metadata/builders/myanimelist", "#myanimelist-top-all"), - ("MyAnimeList Top Airing", "metadata/builders/myanimelist", "#myanimelist-top-airing"), - ("MyAnimeList Top Upcoming", "metadata/builders/myanimelist", "#myanimelist-top-upcoming"), - ("MyAnimeList Top TV Series", "metadata/builders/myanimelist", "#myanimelist-top-tv-series"), - ("MyAnimeList Top Movies", "metadata/builders/myanimelist", "#myanimelist-top-movies"), - ("MyAnimeList Top OVA Series", "metadata/builders/myanimelist", "#myanimelist-top-ova-series"), - ("MyAnimeList Top Specials", "metadata/builders/myanimelist", "#myanimelist-top-specials"), - ("MyAnimeList Most Popular", "metadata/builders/myanimelist", "#myanimelist-most-popular"), - ("MyAnimeList Most Favorited", "metadata/builders/myanimelist", "#myanimelist-most-favorited"), - ("MyAnimeList Suggested", "metadata/builders/myanimelist", "#myanimelist-suggested"), - ("MyAnimeList ID", "metadata/builders/myanimelist", "#myanimelist-id"), - ("MyAnimeList UserList", "metadata/builders/myanimelist", "#myanimelist-userlist"), - ("MyAnimeList Seasonal", "metadata/builders/myanimelist", "#myanimelist-seasonal"), - ]), - ]), - ("_menu", "Settings/Updates", "metadata/update", [ - ("Settings/Updates", "metadata/update"), - ("_divider",), - ("Definition Settings", "metadata/details/definition"), - ("Schedule Settings", "metadata/details/schedule"), - ("Radarr/Sonarr Definition Settings", "metadata/details/arr"), - ("Collection/Playlist Metadata Updates", "metadata/details/metadata"), - ("Item Metadata Updates", "metadata/details/item_metadata"), - ]) - ]), - ("❤", "https://github.com/sponsors/meisnate12", True), - ], - - # Render the next and previous page links in navbar. (Default: true) - 'navbar_sidebarrel': False, - - # Render the current pages TOC in the navbar. (Default: true) - 'navbar_pagenav': False, - - # Tab name for the current pages TOC. (Default: "Page") - 'navbar_pagenav_name': "Sections", - - # Global TOC depth for "site" navbar tab. (Default: 1) - # Switching to -1 shows all levels. - 'globaltoc_depth': 2, - - # Include hidden TOCs in Site navbar? - # - # Note: If this is "false", you cannot have mixed ``:hidden:`` and - # non-hidden ``toctree`` directives in the same page, or else the build - # will break. - # - # Values: "true" (default) or "false" - 'globaltoc_includehidden': "true", - - # HTML navbar class (Default: "navbar") to attach to <div> element. - # For black navbar, do "navbar navbar-inverse" - 'navbar_class': "navbar navbar-inverse", - - # Fix navigation bar to top of page? - # Values: "true" (default) or "false" - 'navbar_fixed_top': "true", - - # Location of link to source. - # Options are "nav" (default), "footer" or anything else to exclude. - 'source_link_position': "nav", - - # Bootswatch (http://bootswatch.com/) theme. - # - # Options are nothing (default) or the name of a valid theme - # such as "cosmo" or "sandstone". - # - # The set of valid themes depend on the version of Bootstrap - # that's used (the next config option). - # - # Currently, the supported themes are: - # - Bootstrap 2: https://bootswatch.com/2 - # - Bootstrap 3: https://bootswatch.com/3 - 'bootswatch_theme': "darkly", - - # Choose Bootstrap version. - # Values: "3" (default) or "2" (in quotes) - 'bootstrap_version': "3", -} - -# Add any paths that contain custom static files (such as style sheets) here, -# relative to this directory. They are copied after the builtin static files, -# so a file named "default.css" will overwrite the builtin "default.css". -html_static_path = ["_static"] - -html_css_files = [ - "custom.css", - "https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.2.1/css/all.min.css" -] - -def setup(app): - app.add_css_file("custom.css") diff --git a/docs/config/anidb.md b/docs/config/anidb.md index 0c62f766..8f43574b 100644 --- a/docs/config/anidb.md +++ b/docs/config/anidb.md @@ -23,12 +23,12 @@ anidb: | Attribute | Allowed Values | Default | Required | |:-------------------|:----------------------------------------------------------------------------------------------|:--------|:--------:| -| `client` | AniDB Client Name | N/A | ❌ | -| `version` | AniDB Client Version | N/A | ❌ | -| `language` | [ISO 639-1 Code](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) of the User Language. | en | ❌ | -| `cache_expiration` | Number of days before each cache mapping expires and has to be re-cached. | 60 | ❌ | -| `username` | AniDB Username | N/A | ❌ | -| `password` | AniDB Password | N/A | ❌ | +| `client` | AniDB Client Name | N/A | :fontawesome-solid-circle-xmark:{ .red } | +| `version` | AniDB Client Version | N/A | :fontawesome-solid-circle-xmark:{ .red } | +| `language` | [ISO 639-1 Code](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) of the User Language. | en | :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 } | +| `username` | AniDB Username | N/A | :fontawesome-solid-circle-xmark:{ .red } | +| `password` | AniDB Password | N/A | :fontawesome-solid-circle-xmark:{ .red } | * To get a Client Name and Client Version please follow the following steps. diff --git a/docs/config/config.yml.template b/docs/config/config.yml.template new file mode 100644 index 00000000..a9afd078 --- /dev/null +++ b/docs/config/config.yml.template @@ -0,0 +1,152 @@ +## This file is a template remove the .template to use the file + +libraries: # This is called out once within the config.yml file + Movies: # These are names of libraries in your Plex + metadata_path: + - pmm: basic # This is a file within PMM's defaults folder + - pmm: imdb # This is a file within PMM's defaults folder + # see the wiki for how to use local files, folders, URLs, or files from git + overlay_path: + - remove_overlays: false # Set this to true to remove all overlays + - pmm: ribbon # This is a file within PMM's defaults folder + # see the wiki for how to use local files, folders, URLs, or files from git + TV Shows: + metadata_path: + - pmm: basic # This is a file within PMM's defaults folder + - pmm: imdb # This is a file within PMM's defaults folder + # see the wiki for how to use local files, folders, URLs, or files from git + overlay_path: + - remove_overlays: false # Set this to true to remove all overlays + - pmm: ribbon # This is a file within PMM's defaults folder + # see the wiki for how to use local files, folders, URLs, or files from git + Anime: + metadata_path: + - pmm: basic # This is a file within PMM's defaults folder + - pmm: anilist # This is a file within PMM's defaults folder + # see the wiki for how to use local files, folders, URLs, or files from git + Music: + metadata_path: + - file: config/Music.yml # This is a local file THAT YOU MIGHT CREATE +playlist_files: + - pmm: playlist # This is a file within PMM's defaults folder + template_variables: + libraries: Movies, TV Shows # list of libraries that you want the PMM Defaults playlists to look at + # see the wiki for how to use local files, folders, URLs, or files from git +settings: + cache: true + cache_expiration: 60 + asset_directory: config/assets + asset_folders: true + asset_depth: 0 + create_asset_folders: false + prioritize_assets: false + dimensional_asset_rename: false + download_url_assets: false + show_missing_season_assets: false + show_missing_episode_assets: false + show_asset_not_needed: true + sync_mode: append + minimum_items: 1 + default_collection_order: + delete_below_minimum: true + delete_not_scheduled: false + run_again_delay: 2 + missing_only_released: false + only_filter_missing: false + show_unmanaged: true + show_unconfigured: true + show_filtered: false + show_options: false + show_missing: true + show_missing_assets: true + save_report: false + tvdb_language: eng + ignore_ids: + ignore_imdb_ids: + item_refresh_delay: 0 + playlist_sync_to_users: all + playlist_exclude_users: + playlist_report: false + verify_ssl: true + custom_repo: + check_nightly: false +webhooks: # Can be individually specified per library as well + error: + version: + run_start: + run_end: + changes: +plex: # Can be individually specified per library as well; REQUIRED for Plex Meta Manager to run + url: http://192.168.1.12:32400 + token: #################### + timeout: 60 + clean_bundles: false + empty_trash: false + optimize: false +tmdb: # REQUIRED for Plex Meta Manager to run + apikey: ################################ + language: en +tautulli: # Can be individually specified per library as well + url: http://192.168.1.12:8181 + apikey: ################################ +omdb: + apikey: ######## + cache_expiration: 60 +mdblist: + apikey: ######################### + cache_expiration: 60 +notifiarr: + apikey: #################################### +anidb: # Not required for AniDB builders unless you want mature content + username: ###### + password: ###### +radarr: # Can be individually specified per library as well + url: http://192.168.1.12:7878 + token: ################################ + add_missing: false + add_existing: false + root_folder_path: S:/Movies + monitor: true + availability: announced + quality_profile: HD-1080p + tag: + search: false + radarr_path: + plex_path: +sonarr: # Can be individually specified per library as well + url: http://192.168.1.12:8989 + token: ################################ + add_missing: false + add_existing: false + root_folder_path: "S:/TV Shows" + monitor: all + quality_profile: HD-1080p + language_profile: English + series_type: standard + season_folder: true + tag: + search: false + cutoff_search: false + sonarr_path: + plex_path: +trakt: + client_id: #################### + client_secret: #################### + pin: + authorization: + # everything below is autofilled by Plex Meta Manager + access_token: + token_type: + expires_in: + refresh_token: + scope: public + created_at: +mal: + client_id: #################### + client_secret: #################### + authorization: + # everything below is autofilled by Plex Meta Manager + access_token: + token_type: + expires_in: + refresh_token: diff --git a/docs/config/configuration.md b/docs/config/configuration.md index b6a9b04b..638a5a5a 100644 --- a/docs/config/configuration.md +++ b/docs/config/configuration.md @@ -8,30 +8,24 @@ A template Configuration File can be found in the [GitHub Repo](https://github.c This table outlines the third-party services that Plex Meta Manager can make use of. Each service has specific requirements for setup that can be found by clicking the links within the table. -| Attribute | Required | -|:------------------------------|:----------------------------------------| -| [`libraries`](libraries) | ✅ | -| [`playlist_files`](playlists) | ❌ | -| [`settings`](settings) | ❌ | -| [`webhooks`](webhooks) | ❌ | -| [`plex`](plex) | ✅ <br/>Either here or per library | -| [`tmdb`](tmdb) | ✅ | -| [`github`](github) | ❌ | -| [`tautulli`](tautulli) | ❌ | -| [`omdb`](omdb) | ❌ | -| [`notifiarr`](notifiarr) | ❌ | -| [`anidb`](anidb) | ❌ | -| [`radarr`](radarr) | ❌ | -| [`sonarr`](sonarr) | ❌ | -| [`trakt`](trakt) | ❌ | -| [`mal`](myanimelist) | ❌ | +| Attribute | Required | +|:---------------------------------|:----------------------------------------------------------------------| +| [`libraries`](libraries.md) | :fontawesome-solid-circle-check:{ .green } | +| [`playlist_files`](playlists.md) | :fontawesome-solid-circle-xmark:{ .red } | +| [`settings`](settings.md) | :fontawesome-solid-circle-xmark:{ .red } | +| [`webhooks`](webhooks.md) | :fontawesome-solid-circle-xmark:{ .red } | +| [`plex`](plex.md) | :fontawesome-solid-circle-check:{ .green } Either here or per library | +| [`tmdb`](tmdb.md) | :fontawesome-solid-circle-check:{ .green } | +| [`github`](github.md) | :fontawesome-solid-circle-xmark:{ .red } | +| [`tautulli`](tautulli.md) | :fontawesome-solid-circle-xmark:{ .red } | +| [`omdb`](omdb.md) | :fontawesome-solid-circle-xmark:{ .red } | +| [`notifiarr`](notifiarr.md) | :fontawesome-solid-circle-xmark:{ .red } | +| [`anidb`](anidb.md) | :fontawesome-solid-circle-xmark:{ .red } | +| [`radarr`](radarr.md) | :fontawesome-solid-circle-xmark:{ .red } | +| [`sonarr`](sonarr.md) | :fontawesome-solid-circle-xmark:{ .red } | +| [`trakt`](trakt.md) | :fontawesome-solid-circle-xmark:{ .red } | +| [`mal`](myanimelist.md) | :fontawesome-solid-circle-xmark:{ .red } | ## Configuration File Example -This example outlines what a "standard" config.yml file might look like when in use. - -```{literalinclude} ../../config/config.yml.template ---- -language: yaml ---- -``` \ No newline at end of file +This example outlines what a "standard" config.yml file might look like when in use. \ No newline at end of file diff --git a/docs/config/libraries.md b/docs/config/libraries.md index 8054f19a..1dfa5f68 100644 --- a/docs/config/libraries.md +++ b/docs/config/libraries.md @@ -1,8 +1,13 @@ +--- +search: + boost: 5 +--- + # Library Attributes ## Library Attributes -Within the [Configuration File](configuration), the `libraries` attribute specifies the Plex libraries that the user wants Plex Meta Manager to act on. +Within the [Configuration File](configuration.md), the `libraries` attribute specifies the Plex libraries that the user wants Plex Meta Manager to act on. Attributes are used to instruct Plex Meta Manager what actions to take, such as "load the following libraries" or "execute the following Collection Definition files". These attributes can be specified individually per library, or can be inherited from the global value if it has been set. If an attribute is specified at both the library and global level, then the library level attribute will take priority. @@ -10,115 +15,112 @@ Attributes are used to instruct Plex Meta Manager what actions to take, such as This example is an advanced version of the library mappings which highlights some attributes being set at the global level, and some being set at the library level: -<details> - <summary>Click to Expand</summary> - -In this example, the `"TV Shows On Second Plex"` library has a library-level `plex` configuration, which takes priority over the `plex` configuration set at the global level. <br> - -The `"Anime"` library also has a library-level `radarr` configuration, which takes priority over the `radarr` configuration set at the global level. - -```yaml -libraries: - Movies: - metadata_path: - - file: config/Movies.yml - - pmm: imdb - - pmm: studio - - pmm: genre - - pmm: actor - operations: - mass_critic_rating_update: tmdb - split_duplicates: true - TV Shows: - metadata_path: - - file: config/TV Shows.yml - - pmm: tmdb - - pmm: network - overlay_path: - - remove_overlays: false - - file: config/Overlays.yml - TV Shows On Second Plex: - library_name: TV Shows +???+ example "Example Library Mappings" + + In this example, the `"TV Shows On Second Plex"` library has a library-level `plex` configuration, which takes priority over the `plex` configuration set at the global level. + + The `"Anime"` library also has a library-level `radarr` configuration, which takes priority over the `radarr` configuration set at the global level. + + ```yaml + libraries: + Movies: + metadata_path: + - file: config/Movies.yml + - pmm: imdb + - pmm: studio + - pmm: genre + - pmm: actor + operations: + mass_critic_rating_update: tmdb + split_duplicates: true + TV Shows: + metadata_path: + - file: config/TV Shows.yml + - pmm: tmdb + - pmm: network + overlay_path: + - remove_overlays: false + - file: config/Overlays.yml + TV Shows On Second Plex: + library_name: TV Shows + plex: + url: http://192.168.1.98:32400 + token: #################### + metadata_path: + - file: config/TV Shows.yml + - pmm: tmdb + - pmm: network + Anime: + metadata_path: + - file: config/Anime.yml + - pmm: myanimelist + radarr: + url: http://192.168.1.45:7878 + token: ################################ + root_folder_path: S:/Anime + settings: + asset_directory: config/assets/anime plex: - url: http://192.168.1.98:32400 + url: http://192.168.1.12:32400 token: #################### - metadata_path: - - file: config/TV Shows.yml - - pmm: tmdb - - pmm: network - Anime: - metadata_path: - - file: config/Anime.yml - - pmm: myanimelist radarr: - url: http://192.168.1.45:7878 + url: http://192.168.1.12:7878 token: ################################ - root_folder_path: S:/Anime - settings: - asset_directory: config/assets/anime -plex: - url: http://192.168.1.12:32400 - token: #################### -radarr: - url: http://192.168.1.12:7878 - token: ################################ - add: true - root_folder_path: S:/Movies - monitor: true - availability: announced - quality_profile: HD-1080p - tag: pmm - search: false -``` -</details> + add: true + root_folder_path: S:/Movies + monitor: true + availability: announced + quality_profile: HD-1080p + tag: pmm + search: false + ``` ### Attributes The available attributes for each library are as follows: -| Attribute | Values | Default | Required | -|:----------------------------------------------------|:------------------------------------------------------------------------------------------------------|:--------------------------------------|:-------------------------------:| -| [`library_name`](#library-name) | Library name (required only when trying to use multiple libraries with the same name) | Base Attribute Name | ❌ | -| [`metadata_path`](#metadata-path) | Location of Metadata YAML files | `/config/<<MAPPING_NAME>>.yml` | ❌ | -| [`overlay_path`](#overlay-path) | Location of Overlay YAML files | None | ❌ | -| [`report_path`](#report-path) | Location to create the YAML file listing added, removed, filtered, and missing items for this library | `/config/<<MAPPING_NAME>>_report.yml` | ❌ | -| [`template_variables`](#library-template-variables) | Library template variables to be applied to every Metadata and Overlay file run. | N/A | ❌ | -| [`schedule`](../metadata/details/schedule) | Use any [schedule option](../metadata/details/schedule) to control when this library is run. | daily | ❌ | -| [`operations`](operations) | Library Operations to run | N/A | ❌ | -| [`settings`](settings) | Any `setting` attribute that overrides a global value | global | ❌ | -| [`plex`](plex) | Any `plex` attribute that overrides a global value | global | ✅ Either here or globally | -| [`radarr`](radarr) | Any `radarr` attribute that overrides a global value | global | ❌ | -| [`sonarr`](sonarr) | Any `sonarr` attribute that overrides a global value | global | ❌ | -| [`tautulli`](tautulli) | Any `tautulli` attribute that overrides a global value | global | ❌ | +| Attribute | Values | Default | Required | +|:-------------------------------------------------------|:------------------------------------------------------------------------------------------------------|:--------------------------------------|:------------------------------------------------------------------:| +| [`library_name`](#library-name) | Library name (required only when trying to use multiple libraries with the same name) | Base Attribute Name | :fontawesome-solid-circle-xmark:{ .red } | +| [`metadata_path`](#metadata-path) | Location of Metadata YAML files | `/config/<<MAPPING_NAME>>.yml` | :fontawesome-solid-circle-xmark:{ .red } | +| [`overlay_path`](#overlay-path) | Location of Overlay YAML files | None | :fontawesome-solid-circle-xmark:{ .red } | +| [`report_path`](#report-path) | Location to create the YAML file listing added, removed, filtered, and missing items for this library | `/config/<<MAPPING_NAME>>_report.yml` | :fontawesome-solid-circle-xmark:{ .red } | +| [`template_variables`](#library-template-variables) | Library template variables to be applied to every Metadata and Overlay file run. | N/A | :fontawesome-solid-circle-xmark:{ .red } | +| [`schedule`](../builders/details/schedule.md) | Use any [schedule option](../builders/details/schedule.md) to control when this library is run. | daily | :fontawesome-solid-circle-xmark:{ .red } | +| [`operations`](operations.md) | Library Operations to run | N/A | :fontawesome-solid-circle-xmark:{ .red } | +| [`settings`](settings.md) | Any `setting` attribute that overrides a global value | global | :fontawesome-solid-circle-xmark:{ .red } | +| [`plex`](plex.md) | Any `plex` attribute that overrides a global value | global | :fontawesome-solid-circle-check:{ .green } Either here or globally | +| [`radarr`](radarr.md) | Any `radarr` attribute that overrides a global value | global | :fontawesome-solid-circle-xmark:{ .red } | +| [`sonarr`](sonarr.md) | Any `sonarr` attribute that overrides a global value | global | :fontawesome-solid-circle-xmark:{ .red } | +| [`tautulli`](tautulli.md) | Any `tautulli` attribute that overrides a global value | global | :fontawesome-solid-circle-xmark:{ .red } | ### Library Name Each library that the user wants Plex Meta Manager to interact with must be documented with a library attribute. A library attribute is represented by the mapping name (i.e. `Movies` or `TV Shows`), this must have a unique name that correlates with a library of the same name within the Plex Media Server. In the situation that two servers are being connected to which both have libraries of the same name, the `library_name` attribute can be utilized to specify the real Library Name, whilst the library attribute's mapping name can be made into a placeholder. This is showcased below: -<details> - <summary>Example</summary> -```yaml -libraries: - Movies01: - library_name: Movies - Movies02: - library_name: Movies +???+ Library Name Example + + ```yaml + libraries: + Movies01: + library_name: Movies + Movies02: + library_name: Movies + plex: + url: http://192.168.1.35:32400 + token: #################### + TV Shows: + Anime: plex: - url: http://192.168.1.35:32400 + url: http://192.168.1.12:32400 token: #################### - TV Shows: - Anime: -plex: - url: http://192.168.1.12:32400 - token: #################### -``` - -* In this example, `"Movies01"`, `"TV Shows"`, and `"Anime"` will all use the global plex server (http://192.168.1.12:32400) which is defined using the global `plex` mapping. `"Movies02"` will use the plex server http://192.168.1.35:32400 which is defined under its `plex` mapping over the global mapping. -</details> + ``` + + * In this example, `"Movies01"`, `"TV Shows"`, and `"Anime"` will all use the global plex server (http://192.168.1.12:32400) which is defined using the global `plex` mapping. `"Movies02"` will use the plex server http://192.168.1.35:32400 which is defined under its `plex` mapping over the global mapping. ### Metadata Path -The `metadata_path` attribute is used to define [Metadata Files](../metadata/metadata) by specifying the path type and path of the files that will be executed against the parent library. See [Path Types](paths) for how to define them. +The `metadata_path` attribute is used to define [Metadata Files](../metadata/metadata.md) by specifying the path type and path of the files that will be executed against the parent library. See [Path Types](paths.md) for how to define them. ```yaml libraries: @@ -129,7 +131,7 @@ libraries: - pmm: network ``` -By default, when `metadata_path` is missing the script will look within the root PMM directory for a metadata file called `<MAPPING_NAME>.yml`. In this example, Plex Meta Manager will look for a file named `TV Shows.yml`. +By default, when `metadata_path` is missing Plex Meta Manager will look within the root PMM directory for a metadata file called `<MAPPING_NAME>.yml`. In this example, Plex Meta Manager will look for a file named `TV Shows.yml`. ```yaml libraries: @@ -138,7 +140,7 @@ libraries: ### Overlay Path -The `overlay_path` attribute is used to define [Overlay Files](../metadata/overlay) by specifying the path type and path of the files that will be executed against the parent library. See [Path Types](paths) for how to define them. +The `overlay_path` attribute is used to define [Overlay Files](../metadata/overlay.md) by specifying the path type and path of the files that will be executed against the parent library. See [Path Types](paths.md) for how to define them. ```yaml libraries: @@ -149,73 +151,79 @@ libraries: - file: config/Overlays.yml ``` -#### Special Overlay Path Calls +### Special Overlay Path Calls -<details> - <summary>Remove Overlays</summary> +#### Remove Overlays +This will remove all overlays from your library, but will not delete the overlaid images from your system, resulting in [image bloat](../pmm/essentials/scripts/image-cleanup.md). + You can remove overlays from a library by adding `remove_overlays: true` to `overlay_path`. This will remove all overlays when run and not generate new ones. -```yaml -libraries: - TV Shows: - metadata_path: - - file: config/TV Shows.yml - overlay_path: - - remove_overlays: true - - file: config/Overlays.yml -``` -</details> +???+ warning "Proceed with Caution" -<details> - <summary>Reapply Overlays</summary> + ```yaml + libraries: + TV Shows: + metadata_path: + - file: config/TV Shows.yml + overlay_path: + - remove_overlays: true + - file: config/Overlays.yml + ``` -You can reapply overlays from a library by adding `reapply_overlays: true` to `overlay_path`. This will reapply overlays to every item in your library. +#### Reapply Overlays -```yaml -libraries: - TV Shows: - metadata_path: - - file: config/TV Shows.yml - overlay_path: - - reapply_overlays: true - - file: config/Overlays.yml -``` -</details> +This will reapply all overlays on each run until this attribute is set to `false`, which will result in [image bloat](../pmm/essentials/scripts/image-cleanup.md). -<details> - <summary>Reset Overlays</summary> +You can reapply overlays from a library by adding `reapply_overlays: true` to `overlay_path`. This will reapply overlays to every item in your library. -You can reset overlays from a library by adding `reset_overlays` to `overlay_path` and setting it to either `tmdb` or `plex` depending on where you want to source the images from. This will use the reset image when overlaying items in your library. +???+ danger Proceed with Caution -```yaml -libraries: - TV Shows: - metadata_path: - - file: config/TV Shows.yml - overlay_path: - - reset_overlays: plex - - file: config/Overlays.yml -``` -</details> + ```yaml + libraries: + TV Shows: + metadata_path: + - file: config/TV Shows.yml + overlay_path: + - reapply_overlays: true + - file: config/Overlays.yml + ``` -<details> - <summary>Schedule Overlays</summary> +#### Reset Overlays -You can schedule all overlays from a library by adding `schedule` to `overlay_path` and setting it to [Any Schedule Option](../metadata/details/schedule). +This will reset all posters to the desired source on each run until this attribute is set to `false`, and will reapply all overlays on each run, which will result in [image bloat](../pmm/essentials/scripts/image-cleanup.md). -**You cannot schedule individual Overlay Files.** +You can reset overlays from a library by adding `reset_overlays` to `overlay_path` and setting it to either `tmdb` or `plex` depending on where you want to source the images from. This will use the reset image when overlaying items in your library. -```yaml -libraries: - TV Shows: - metadata_path: - - file: config/TV Shows.yml - overlay_path: - - schedule: weekly(sunday) - - file: config/Overlays.yml -``` -</details> +???+ danger "Proceed with Caution" + + ```yaml + libraries: + TV Shows: + metadata_path: + - file: config/TV Shows.yml + overlay_path: + - reset_overlays: plex + - file: config/Overlays.yml + ``` + +### Schedule Overlays + +You can schedule all overlays from a library by adding `schedule` to `overlay_path` and setting it to [Any Schedule Option](../builders/details/schedule.md). + +You cannot schedule individual Overlay Files, as any unscheduled overlay file will be removed each time PMM is run. + +???+ tip "Example" + + ```yaml + libraries: + TV Shows: + metadata_path: + - file: config/TV Shows.yml + overlay_path: + - schedule: weekly(sunday) + - file: config/Overlays.yml + ``` ### Report Path diff --git a/docs/config/mdblist.md b/docs/config/mdblist.md index 9ba5ce56..093c6a72 100644 --- a/docs/config/mdblist.md +++ b/docs/config/mdblist.md @@ -13,8 +13,8 @@ mdblist: | Attribute | Allowed Values | Default | Required | |:-------------------|:--------------------------------------------------------------------------|:--------|:--------:| -| `apikey` | MdbList API Key | N/A | ✅ | -| `cache_expiration` | Number of days before each cache mapping expires and has to be re-cached. | 60 | ❌ | +| `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 } | * The MdbList apikey can be found [here](https://mdblist.com/preferences/). diff --git a/docs/config/myanimelist.md b/docs/config/myanimelist.md index 8244bb29..8219f590 100644 --- a/docs/config/myanimelist.md +++ b/docs/config/myanimelist.md @@ -19,13 +19,13 @@ mal: | Attribute | Allowed Values | Required | |:----------------|:--------------------------------------|:--------:| -| `client_id` | MyAnimeList Application Client ID | ✅ | -| `client_secret` | MyAnimeList Application Client Secret | ✅ | -| `localhost_url` | MyAnimeList Authorization URL | ❌ | +| `client_id` | MyAnimeList Application Client ID | :fontawesome-solid-circle-check:{ .green } | +| `client_secret` | MyAnimeList Application Client Secret | :fontawesome-solid-circle-check:{ .green } | +| `localhost_url` | MyAnimeList Authorization URL | :fontawesome-solid-circle-xmark:{ .red } | -* All other attributes will be filled in by the script. +* All other attributes will be filled in by Plex Meta Manager. -* To connect to MyAnimeList.net you must create a MyAnimeList application and supply the script the `client id` and `client secret` provided, please do the following: +* To connect to MyAnimeList.net you must create a MyAnimeList application and supply Plex Meta Manager the `client id` and `client secret` provided, please do the following: 1. [Click here to create a MyAnimeList API application.](https://myanimelist.net/apiconfig/create) 2. Enter an `App Name` for the application. Ex. `Plex Meta Manager` 3. Select `web` for `App Type`. @@ -44,10 +44,14 @@ mal: https://myanimelist.net/v1/oauth2/authorize?response_type=code&client_id=CLIENT_ID&code_challenge=k_UHwN_eHAPQVXiceC-rYGkozKqrJmKxPUIUOBIKo1noq_4XGRVCViP_dGcwB-fkPql8f56mmWj5aWCa2HDeugf6sRvnc9Rjhbb1vKGYLY0IwWsDNXRqXdksaVGJthux ``` 15. You should see a page that looks like this + ![MAL Details](mal.png) + Click "Allow" 16. You will be taken to a page that will not load. That's fine and expected. + ![Localhost Failure](localhost-fail.png) + 17. Copy the URL, which will be `localhost/?code=BLAH` and paste in your config file next to `localhost_url`. NOTE: If you do not see an error as above but instead get taken to some seemingly random website, you probably have a webserver running on your local computer, probably from some sort of tutorial if you don't recall having set one up. For example, some Docker tutorials have you start up local web servers. You will need to stop that web server while you're doing this in order to grab that localhost URL. @@ -57,7 +61,7 @@ mal: You can record just your `client_id` and `client_secret` and pmm will create the url for you described below. -* On the first run, the script will walk the user through the OAuth flow by producing a MyAnimeList URL for the user to follow. After following the URL login to MyAnimeList.net and authorize the application by clicking the `Allow` button which will redirect the user to `http://localhost/`. Copy the entire URL and paste it into the script and if the URL is correct then the script will populate the `authorization` sub-attributes to use in subsequent runs. +* On the first run, Plex Meta Manager will walk the user through the OAuth flow by producing a MyAnimeList URL for the user to follow. After following the URL login to MyAnimeList.net and authorize the application by clicking the `Allow` button which will redirect the user to `http://localhost/`. Copy the entire URL and paste it into Plex Meta Manager and if the URL is correct then Plex Meta Manager will populate the `authorization` sub-attributes to use in subsequent runs. On first run: ``` @@ -100,7 +104,7 @@ To authenticate MyAnimeList the first time, you need run the container with the <h4>OAuth Flow using unRAID Docker</h4> -Directions on how to authenticate MyAnimeList on unRAID can be found on the [unRAID Walkthrough](../home/guides/unraid.md#advanced-installation-authenticating-trakt-or-myanimelist) page. +Directions on how to authenticate MyAnimeList on unRAID can be found on the [unRAID Walkthrough](../pmm/install/guides/unraid.md#advanced-installation-authenticating-trakt-or-myanimelist) page. ## Online Authorization Script diff --git a/docs/config/notifiarr.md b/docs/config/notifiarr.md index 1299fbfb..31602575 100644 --- a/docs/config/notifiarr.md +++ b/docs/config/notifiarr.md @@ -1,6 +1,6 @@ # Notifiarr Attributes -Configuring [Notifiarr](https://notifiarr.com) is optional but can allow you to send the [webhooks](webhooks) straight to notifiarr. +Configuring [Notifiarr](https://notifiarr.com) is optional but can allow you to send the [webhooks](webhooks.md) straight to notifiarr. A `notifiarr` mapping is in the root of the config file. @@ -13,9 +13,9 @@ notifiarr: | Attribute | Allowed Values | Required | |:----------|:-----------------------------------------|:--------:| -| `apikey` | Notifiarr API Key | ✅ | +| `apikey` | Notifiarr API Key | :fontawesome-solid-circle-check:{ .green } | -Once you have added the apikey your config.yml you have to add `notifiarr` to any [webhook](webhooks) to send that notification to Notifiarr. +Once you have added the apikey your config.yml you have to add `notifiarr` to any [webhook](webhooks.md) to send that notification to Notifiarr. ```yaml webhooks: diff --git a/docs/config/omdb.md b/docs/config/omdb.md index e3f47f48..5f1ce47f 100644 --- a/docs/config/omdb.md +++ b/docs/config/omdb.md @@ -13,8 +13,8 @@ omdb: | Attribute | Allowed Values | Default | Required | |:-------------------|:---------------------------------------------------------------------------|:--------|:--------:| -| `apikey` | OMDb API Key | N/A | ✅ | -| `cache_expiration` | Number of days before each cache mapping expires and has to be re-cached. | 60 | ❌ | +| `apikey` | OMDb 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 } | * The OMDb apikey can be generated [here](http://www.omdbapi.com/apikey.aspx). diff --git a/docs/config/operations.md b/docs/config/operations.md index 2756b425..c3a277a0 100644 --- a/docs/config/operations.md +++ b/docs/config/operations.md @@ -1,3 +1,7 @@ +--- +search: + boost: 4 +--- # Library Operations There are a variety of Library Operations that can be utilized in a library. @@ -18,29 +22,29 @@ The available attributes for the operations attribute are as follows | Attribute | Description | Movies | Shows | Music | |:----------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------|:----------:|:--------:|:--------:| -| [Assets For All](#assets-for-all) | Search in assets for images for every item in your library. | ✅ | ✅ | ✅ | -| [Delete Collections](#delete-collections) | Deletes collections based on a set of given attributes. | ✅ | ✅ | ✅ | -| [Mass Genre Update](#mass-genre-update) | Updates every item's genres in the library to the chosen site's genres. | ✅ | ✅ | ✅ | -| [Mass Content Rating Update](#mass-content-rating-update) | Updates every item's content rating in the library to the chosen site's content rating. | ✅ | ✅ | ❌ | -| [Mass Original Title Update](#mass-original-title-update) | Updates every item's original title in the library to the chosen site's original title. | ✅ | ✅ | ❌ | -| [Mass Studio Update](#mass-studio-update) | Updates every item's studio in the library to the chosen site's studio. | ✅ | ✅ | ❌ | -| [Mass Originally Available Update](#mass-originally-available-update) | Updates every item's originally available date in the library to the chosen site's date. | ✅ | ✅ | ❌ | -| [Mass * Rating Update](#mass--rating-update) | Updates every item's audience/critic/user rating in the library to the chosen site's rating. | ✅ | ✅ | ❌ | -| [Mass Episode * Rating Update](#mass-episode--rating-update) | Updates every item's episode's audience/critic/user rating in the library to the chosen site's rating. | ❌ | ✅ | ❌ | -| [Mass Poster Update](#mass-poster-update) | Updates every item's poster to the chosen sites poster. Will fallback to `plex` if the given option fails. Assets will be used over anything else. | ✅ | ✅ | ❌ | -| [Mass Background Update](#mass-background-update) | Updates every item's background to the chosen sites background. Will fallback to `plex` if the given option fails. Assets will be used over anything else. | ✅ | ✅ | ❌ | -| [Mass IMDb Parental Labels](#mass-imdb-parental-labels) | Updates every item's labels in the library to match the IMDb Parental Guide. | ✅ | ❌ | ❌ | -| [Mass Collection Mode](#mass-collection-mode) | Updates every Collection in your library to the specified Collection Mode. | ✅ | ❌ | ❌ | -| [Update Blank Track Titles](#update-blank-track-titles) | Search though every track in a music library and replace any blank track titles with the tracks sort title. | ❌ | ❌ | ✅ | -| [Remove Title Parentheses](#remove-title-parentheses) | Search through every title and remove all ending parentheses in an items title if the title is not locked. | ✅ | ✅ | ❌ | -| [Split Duplicates](#split-duplicates) | Splits all duplicate movies/shows found in this library. | ✅ | ✅ | ❌ | -| [Radarr Add All](#radarr-add-all) | Adds every item in the library to Radarr. | ✅ | ❌ | ❌ | -| [Radarr Remove By Tag](#radarr-remove-by-tag) | Removes every item from Radarr with the Tags given. | ✅ | ❌ | ❌ | -| [Sonarr Add All](#sonarr-add-all) | Adds every item in the library to Sonarr. | ❌ | ✅ | ❌ | -| [Sonarr Remove By Tag](#sonarr-remove-by-tag) | Removes every item from Sonarr with the Tags given. | ❌ | ✅ | ❌ | -| [Genre Mapper](#genre-mapper) | Allows genres to be changed to other genres or be removed from every item in your library. | ✅ | ✅ | ❌ | -| [Content Rating Mapper](#content-rating-mapper) | Allows content ratings to be changed to other content ratings or be removed from every item in your library. | ✅ | ✅ | ❌ | -| [Metadata Backup](#metadata-backup) | Creates/Maintains a PMM [Metadata File](../metadata/metadata) with a full `metadata` mapping based on the library's items locked attributes. | ✅ | ✅ | ✅ | +| [Assets For All](#assets-for-all) | Search in assets for images for every item in your library. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | +| [Delete Collections](#delete-collections) | Deletes collections based on a set of given attributes. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | +| [Mass Genre Update](#mass-genre-update) | Updates every item's genres in the library to the chosen site's genres. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | +| [Mass Content Rating Update](#mass-content-rating-update) | Updates every item's content rating in the library to the chosen site's content rating. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | +| [Mass Original Title Update](#mass-original-title-update) | Updates every item's original title in the library to the chosen site's original title. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | +| [Mass Studio Update](#mass-studio-update) | Updates every item's studio in the library to the chosen site's studio. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | +| [Mass Originally Available Update](#mass-originally-available-update) | Updates every item's originally available date in the library to the chosen site's date. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | +| [Mass * Rating Update](#mass--rating-update) | Updates every item's audience/critic/user rating in the library to the chosen site's rating. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | +| [Mass Episode * Rating Update](#mass-episode--rating-update) | Updates every item's episode's audience/critic/user rating in the library to the chosen site's rating. | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | +| [Mass Poster Update](#mass-poster-update) | Updates every item's poster to the chosen sites poster. Will fallback to `plex` if the given option fails. Assets will be used over anything else. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | +| [Mass Background Update](#mass-background-update) | Updates every item's background to the chosen sites background. Will fallback to `plex` if the given option fails. Assets will be used over anything else. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | +| [Mass IMDb Parental Labels](#mass-imdb-parental-labels) | Updates every item's labels in the library to match the IMDb Parental Guide. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | +| [Mass Collection Mode](#mass-collection-mode) | Updates every Collection in your library to the specified Collection Mode. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | +| [Update Blank Track Titles](#update-blank-track-titles) | Search though every track in a music library and replace any blank track titles with the tracks sort title. | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | +| [Remove Title Parentheses](#remove-title-parentheses) | Search through every title and remove all ending parentheses in an items title if the title is not locked. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | +| [Split Duplicates](#split-duplicates) | Splits all duplicate movies/shows found in this library. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | +| [Radarr Add All](#radarr-add-all) | Adds every item in the library to Radarr. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | +| [Radarr Remove By Tag](#radarr-remove-by-tag) | Removes every item from Radarr with the Tags given. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | +| [Sonarr Add All](#sonarr-add-all) | Adds every item in the library to Sonarr. | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | +| [Sonarr Remove By Tag](#sonarr-remove-by-tag) | Removes every item from Sonarr with the Tags given. | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | +| [Genre Mapper](#genre-mapper) | Allows genres to be changed to other genres or be removed from every item in your library. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | +| [Content Rating Mapper](#content-rating-mapper) | Allows content ratings to be changed to other content ratings or be removed from every item in your library. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | +| [Metadata Backup](#metadata-backup) | Creates/Maintains a PMM [Metadata File](../metadata/metadata.md) with a full `metadata` mapping based on the library's items locked attributes. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | ## Assets For All @@ -62,7 +66,7 @@ Deletes collections based on a set of given attributes. The Collection must matc |:-------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `managed` | **Values:**<br>`true`: Collection must be a Managed Collection to be deleted (the collection has the `PMM` label)<br>`false`: Collection must be an Unmanaged Collection to be deleted (the collection does not have the `PMM` label) | | `configured` | **Values:**<br>`true`: Collection must be a Configured Collection to be deleted (collection is in the config file of the specific PMM run)<br>`false`: Collection must be an Unconfigured Collection to be deleted (collection is not in the config file of the specific PMM run).<br>**The collection does not need to be scheduled to be considered configured and only needs to be in the config file.** | -| `less` | Collection must contain less then the given number of items to be deleted.<br>**Values:** Number Greater than 0 | +| `less` | Collection must contain less then the given number of items to be deleted.<br>**Values:** Number Greater then 0 | **Example:** @@ -187,7 +191,9 @@ Updates every item's originally available date in the library to the chosen site Updates every item's audience/critic/user rating in the library to the chosen site's rating. -IMPORTANT NOTE: This does not affect the icons displayed in the Plex UI. This will place the number of your choice in the relevant field in the Plex database. In other words, if Plex is configured to use Rotten Tomatoes ratings, then no matter what happens with this mass rating update operation, the icons in the Plex UI will remain Rotten Tomatoes. The human who decided to put TMDB ratings in the critic slot and Letterboxd ratings in the audience slot is the only party who knows that the ratings are no longer Rotten Tomatoes. One primary use of this feature is to put ratings overlays on posters. More information on what PMM can do with these ratings can be found [here](../home/guides/ratings). +???+ warning "Important Note" + + This does not affect the icons displayed in the Plex UI. This will place the number of your choice in the relevant field in the Plex database. In other words, if Plex is configured to use Rotten Tomatoes ratings, then no matter what happens with this mass rating update operation, the icons in the Plex UI will remain Rotten Tomatoes. The human who decided to put TMDB ratings in the critic slot and Letterboxd ratings in the audience slot is the only party who knows that the ratings are no longer Rotten Tomatoes. One primary use of this feature is to put ratings overlays on posters. More information on what PMM can do with these ratings can be found [here](../pmm/install/guides/ratings.md). **Attribute:** `mass_audience_rating_update`/`mass_critic_rating_update`/`mass_user_rating_update` @@ -344,7 +350,7 @@ Splits all duplicate movies/shows found in this library. ## Radarr Add All -Adds every item in the library to Radarr. The existing paths in plex will be used as the root folder of each item, if the paths in Plex are not the same as your Radarr paths you can use the `plex_path` and `radarr_path` [Radarr](radarr) details to convert the paths. +Adds every item in the library to Radarr. The existing paths in plex will be used as the root folder of each item, if the paths in Plex are not the same as your Radarr paths you can use the `plex_path` and `radarr_path` [Radarr](radarr.md) details to convert the paths. **Attribute:** `radarr_add_all` @@ -360,7 +366,7 @@ Removes every item from Radarr with the Tags given. ## Sonarr Add All -Adds every item in the library to Sonarr. The existing paths in plex will be used as the root folder of each item, if the paths in Plex are not the same as your Sonarr paths you can use the `plex_path` and `sonarr_path` [Sonarr](sonarr) details to convert the paths. +Adds every item in the library to Sonarr. The existing paths in plex will be used as the root folder of each item, if the paths in Plex are not the same as your Sonarr paths you can use the `plex_path` and `sonarr_path` [Sonarr](sonarr.md) details to convert the paths. **Attribute:** `sonarr_add_all` @@ -450,7 +456,7 @@ This example will change go through every item in your library and change the co ## Metadata Backup -Creates/Maintains a Plex Meta Manager [Metadata File](../metadata/metadata) with a full `metadata` mapping based on the library's items locked attributes. +Creates/Maintains a Plex Meta Manager [Metadata File](../metadata/metadata.md) with a full `metadata` mapping based on the library's items locked attributes. If you point to an existing Metadata File then PMM will Sync the changes to the file, so you won't lose non plex changes in the file. diff --git a/docs/config/paths.md b/docs/config/paths.md index f8350501..7768e7c8 100644 --- a/docs/config/paths.md +++ b/docs/config/paths.md @@ -8,10 +8,11 @@ The path types are outlined as follows: * `- file:` refers to a metadata file which is located within the system that PMM is being run from. * `- folder:` refers to a directory containing metadata files which is located within the system that PMM is being run from. +* `- pmm:` refers to a [PMM Defaults](/defaults/guide.md builders/overlay/playlist file. * `- url:` refers to a metadata file which is hosted publicly on the internet. * `- git:` refers to a metadata file which is hosted on the [Configs Repo](https://github.com/meisnate12/Plex-Meta-Manager-Configs). * `- repo:` refers to a metadata file which is hosted on a custom repository specified by the user with the [`custom_repo` Setting Attribute](settings.md#custom-repo). -* `- pmm:` refers to a metadata file which is part of the built-in [default metadata files](../defaults/guide.md). + ## Examples @@ -47,7 +48,7 @@ You can have some control of yaml files from inside your Configuration file by u ### Template Variables -You can define [Template Variables](../metadata/templates.md#template-variables) that will be added to every template in the associated YAML file by adding the `template_variables` attribute to the dictionary defining the file. +You can define [Template Variables](../builders/templates.md#template-variables) that will be added to every template in the associated YAML file by adding the `template_variables` attribute to the dictionary defining the file. #### Example @@ -75,7 +76,7 @@ What these variables will do depends on how they're defined in the Metadata File Each [`metadata_path`](libraries.md#metadata-path), [`overlay_path`](libraries.md#overlay-path), or [`playlist_files`](libraries.md#metadata-path) can be scheduled by adding the `schedule` attribute to the dictionary defining the file. -Below is an example of a scheduled Metadata File, Overlay File, and Playlist File: +Below is an example of a scheduled Metadata File and Playlist File: ```yaml libraries: @@ -85,9 +86,6 @@ libraries: schedule: weekly(friday) - pmm: actors schedule: weekly(saturday) - overlay_path: - - pmm: imdb - schedule: weekly(monday) playlist_files: - file: config/Playlists.yml schedule: weekly(sunday) @@ -116,116 +114,120 @@ playlist_files: ## Metadata Path -The [`metadata_path`](libraries.md#metadata-path) attribute is defined under the [`libraries`](libraries) attribute in your [Configuration File](configuration). +The [`metadata_path`](libraries.md#metadata-path) attribute is defined under the [`libraries`](libraries.md) attribute in your [Configuration File](configuration.md. -<details> - <summary>Example</summary> +??? example + + In this example, multiple metadata file path types are defined for the `"TV Shows"` library: + + ```yaml + libraries: + TV Shows: + metadata_path: + - file: config/TVShows.yml + - folder: config/TV Shows/ + - pmm: tmdb + - repo: charts + - url: https://somewhere.com/PopularTV.yml + ``` + + Within the above example, PMM will: -In this example, multiple metadata file path types are defined for the `"TV Shows"` library: + * First, look within the root of the PMM directory (also known as `config/`) for a metadata file named `TVShows.yml`. If this file does not exist, PMM will skip the entry and move to the next one in the list. -```yaml -libraries: - TV Shows: - metadata_path: - - file: config/TVShows.yml - - folder: config/TV Shows/ - - pmm: tmdb - - repo: charts - - url: https://somewhere.com/PopularTV.yml -``` + * Then, look within the root of the PMM directory (also known as `config/`) for a directory called `TV Shows`, and then load any metadata files within that directory. -Within the above example, PMM will: + * Then, look in the [defaults folder](https://github.com/meisnate12/Plex-Meta-Manager/tree/master/defaults) within the local PMM folder [or docker container] for a file called `tmdb.yml` which it finds [here](https://github.com/meisnate12/Plex-Meta-Manager/blob/master/defaults/chart/tmdb.yml). -* First, look within the root of the PMM directory (also known as `config/`) for a metadata file named `TVShows.yml`. If this file does not exist, PMM will skip the entry and move to the next one in the list. -* Then, look within the root of the PMM directory (also known as `config/`) for a directory called `TV Shows`, and then load any metadata files within that directory. -* Then, look in the [defaults folder](https://github.com/meisnate12/Plex-Meta-Manager/tree/master/defaults) within the local PMM folder [or docker container] for a file called `tmdb.yml` which it finds [here](https://github.com/meisnate12/Plex-Meta-Manager/blob/master/defaults/chart/tmdb.yml). -* Then, look within the Custom Defined Repo for a file called `charts.yml`. -* Finally, load the metadata file located at `https://somewhere.com/PopularTV.yml` + * Then, look within the Custom Defined Repo for a file called `charts.yml`. -</details> + * Finally, load the metadata file located at `https://somewhere.com/PopularTV.yml` ## Overlay Path -The [`overlay_path`](libraries.md#overlay-path) attribute is defined under the [`libraries`](libraries) attribute in your [Configuration File](configuration). +The [`overlay_path`](libraries.md#overlay-path) attribute is defined under the [`libraries`](libraries.md) attribute in your [Configuration File](configuration.md. -<details> - <summary>Example</summary> +??? example -In this example, multiple overlay file path types are defined for the `"TV Shows"` library: + In this example, multiple overlay file path types are defined for the `"TV Shows"` library: + + ```yaml + libraries: + TV Shows: + overlay_path: + - file: config/overlays.yml + - folder: config/overlay configs/ + - pmm: imdb + - repo: overlays + - url: https://somewhere.com/Overlays.yml + ``` -```yaml -libraries: - TV Shows: - overlay_path: - - file: config/overlays.yml - - folder: config/overlay configs/ - - pmm: imdb - - repo: overlays - - url: https://somewhere.com/Overlays.yml -``` + Within the above example, PMM will: + + * First, look within the root of the PMM directory (also known as `config/`) for a metadata file named `overlays.yml`. If this file does not exist, PMM will skip the entry and move to the next one in the list. -Within the above example, PMM will: + * Then, look within the root of the PMM directory (also known as `config/`) for a directory called `overlay configs`, and then load any metadata files within that directory. -* First, look within the root of the PMM directory (also known as `config/`) for a metadata file named `overlays.yml`. If this file does not exist, PMM will skip the entry and move to the next one in the list. -* Then, look within the root of the PMM directory (also known as `config/`) for a directory called `overlay configs`, and then load any metadata files within that directory. -* Then, look in the [defaults folder](https://github.com/meisnate12/Plex-Meta-Manager/tree/master/defaults) within the local PMM folder [or docker container] for a file called `imdb.yml`. -* Then, look within the Custom Defined Repo for a file called `overlays.yml`. -* Finally, load the metadata file located at `https://somewhere.com/Overlays.yml` + * Then, look in the [defaults folder](https://github.com/meisnate12/Plex-Meta-Manager/tree/master/defaults) within the local PMM folder [or docker container] for a file called `imdb.yml`. -</details> + * Then, look within the Custom Defined Repo for a file called `overlays.yml`. + + * Finally, load the metadata file located at `https://somewhere.com/Overlays.yml` ## Playlist Files -The [`playlist_files`](playlists) at the top level in your [Configuration File](configuration). +The [`playlist_files`](playlists.md) at the top level in your [Configuration File](configuration.md. -<details> - <summary>Example</summary> +??? example -In this example, multiple `playlist_files` attribute path types are defined: + In this example, multiple `playlist_files` attribute path types are defined: + + ```yaml + playlist_files: + - file: config/playlists.yml + - folder: config/Playlists/ + - pmm: playlist + - repo: playlists + - url: https://somewhere.com/Playlists.yml + ``` + + Within the above example, PMM will: -```yaml -playlist_files: - - file: config/playlists.yml - - folder: config/Playlists/ - - pmm: playlist - - repo: playlists - - url: https://somewhere.com/Playlists.yml -``` + * First, look within the root of the PMM directory (also known as `config/`) for a playlist file named `Playlists.yml`. If this file does not exist, PMM will skip the entry and move to the next one in the list. -Within the above example, PMM will: + * Then, look within the root of the PMM directory (also known as `config/`) for a directory called `Playlists`, and then load any playlist files within that directory. -* First, look within the root of the PMM directory (also known as `config/`) for a playlist file named `Playlists.yml`. If this file does not exist, PMM will skip the entry and move to the next one in the list. -* Then, look within the root of the PMM directory (also known as `config/`) for a directory called `Playlists`, and then load any playlist files within that directory. -* Then, look in the [defaults folder](https://github.com/meisnate12/Plex-Meta-Manager/tree/master/defaults) within the local PMM folder [or docker container] for a file called `playlist.yml` which it finds [here](https://github.com/meisnate12/Plex-Meta-Manager/blob/master/defaults/playlist.yml). -* Then, look within the Custom Defined Repo for a file called `playlists.yml`. -* Finally, load the playlist file located at `https://somewhere.com/Playlists.yml` + * Then, look in the [defaults folder](https://github.com/meisnate12/Plex-Meta-Manager/tree/master/defaults) within the local PMM folder [or docker container] for a file called `playlist.yml` which it finds [here](https://github.com/meisnate12/Plex-Meta-Manager/blob/master/defaults/playlist.yml). -</details> + * Then, look within the Custom Defined Repo for a file called `playlists.yml`. -## External Templates + * Finally, load the playlist file located at `https://somewhere.com/Playlists.yml` -The [`external_templates`](../metadata/templates.md#external-templates) attribute is defined at the top level in your [Metadata File](../metadata/metadata). +## External Templates -<details> - <summary>Example</summary> +The [`external_templates`](../builders/templates.md#external-templates) attribute is defined at the top level in your [Metadata File](../builders/details/metadata.md). +[metadata.md](..%2Fbuilders%2Fdetails%2Fmetadata.md) +??? example + + In this example, multiple external template file path types are defined: + + ```yaml + external_templates: + - file: config/templates.yml + - folder: config/templates/ + - url: https://somewhere.com/templates.yml + - pmm: templates + - repo: templates + ``` + + Within the above example, PMM will: -In this example, multiple external template file path types are defined: + * First, look within the root of the PMM directory (also known as `config/`) for a metadata file named `templates.yml`. If this file does not exist, PMM will skip the entry and move to the next one in the list. -```yaml -external_templates: - - file: config/templates.yml - - folder: config/templates/ - - url: https://somewhere.com/templates.yml - - pmm: templates - - repo: templates -``` + * Then, look within the root of the PMM directory (also known as `config/`) for a directory called `templates`, and then load any metadata files within that directory. -Within the above example, PMM will: + * Then, load the metadata file located at `https://somewhere.com/templates.yml`. -* First, look within the root of the PMM directory (also known as `config/`) for a metadata file named `templates.yml`. If this file does not exist, PMM will skip the entry and move to the next one in the list. -* Then, look within the root of the PMM directory (also known as `config/`) for a directory called `templates`, and then load any metadata files within that directory. -* Then, load the metadata file located at `https://somewhere.com/templates.yml`. -* Then, look in the [defaults folder](https://github.com/meisnate12/Plex-Meta-Manager/tree/master/defaults) within the local PMM folder [or docker container] for a file called `templates.yml` which it finds [here](https://github.com/meisnate12/Plex-Meta-Manager/blob/master/defaults/templates.yml). -* Finally, look at the within the Custom Defined Repo for a file called `templates.yml`. + * Then, look in the [defaults folder](https://github.com/meisnate12/Plex-Meta-Manager/tree/master/defaults) within the local PMM folder [or docker container] for a file called `templates.yml` which it finds [here](https://github.com/meisnate12/Plex-Meta-Manager/blob/master/defaults/templates.yml). -</details> + * Finally, look at the within the Custom Defined Repo for a file called `templates.yml`. diff --git a/docs/config/playlists.md b/docs/config/playlists.md index fc6ce3f8..8480acaf 100644 --- a/docs/config/playlists.md +++ b/docs/config/playlists.md @@ -1,10 +1,10 @@ # Playlist Files Attributes -As playlists are not tied to one specific library and can combine media from multiple libraries, they require their own special [Playlist Files](../metadata/playlist) to work. +As playlists are not tied to one specific library and can combine media from multiple libraries, they require their own special [Playlist Files](../metadata/playlist.md) to work. -Within the [Config File](configuration), the `playlist_files` attribute specifies the [path type](paths) and path of the [Playlist Files](../metadata/playlist) that the user wants Plex Meta Manager to act on. +Within the [Config File](configuration.md, the `playlist_files` attribute specifies the [path type](paths.md) and path of the [Playlist Files](../metadata/playlist.md) that the user wants Plex Meta Manager to act on. -**The libraries used in the playlist attribute `libraries` must be defined under the `libraries` attribute of the [Config File](configuration).** +**The libraries used in the playlist attribute `libraries` must be defined under the `libraries` attribute of the [Config File](configuration.md.** ```yaml playlist_files: @@ -16,9 +16,6 @@ playlist_files: This example is an advanced version of the playlist mappings with accompanying library mappings: -<details> - <summary>Click to Expand</summary> - ```yaml libraries: Movies: @@ -43,4 +40,3 @@ playlist_files: - file: config/playlists.yml - pmm: playlist ``` -</details> diff --git a/docs/config/plex.md b/docs/config/plex.md index ef6a3f44..6acd1227 100644 --- a/docs/config/plex.md +++ b/docs/config/plex.md @@ -1,3 +1,7 @@ +--- +search: + boost: 3 +--- # Plex Attributes Configuring [Plex](https://www.plex.tv/) is required in order to connect to your libraries. diff --git a/docs/config/radarr.md b/docs/config/radarr.md index de9e2178..3ec5c9fc 100644 --- a/docs/config/radarr.md +++ b/docs/config/radarr.md @@ -1,3 +1,7 @@ +--- +search: + boost: 3 +--- # Radarr Attributes Configuring [Radarr](https://radarr.video/) is optional but will allow you to send movies to a Radarr instance when they're found missing while updating a library's collections. @@ -32,16 +36,16 @@ radarr: |:-------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------|:--------:| | `url` | Radarr URL (Including URL Base if set).<br>**Example:** http://192.168.1.12:32788 | N/A | ✅ | | `token` | Radarr API Token. | N/A | ✅ | -| `add_missing` | Adds all missing movies found from all collections to Radarr.<br>Use the `radarr_add_missing` [Radarr Details](../metadata/details/arr.md#radarr-definition-settings) in the collection definition to add missing per collection.<br>**boolean:** true or false | false | ❌ | -| `add_existing` | Adds all existing movies in collections to Radarr.<br>Use the `radarr_add_existing` [Radarr Details](../metadata/details/arr.md#radarr-definition-settings) in the collection definition to add existing per collection.<br>**boolean:** true or false | false | ❌ | -| `upgrade_existing` | Upgrades all existing movies in collections to match the Quality Profile of the collection.<br>Use the `radarr_upgrade_existing` [Radarr Details](../metadata/details/arr.md#radarr-definition-settings) in the collection definition to upgrade the Quality Profile per collection.<br>**boolean:** true or false | false | ❌ | -| `ignore_cache` | Ignores PMM's cache when adding items to Radarr.<br>Use the `radarr_ignore_cache` [Radarr Details](../metadata/details/arr.md#radarr-definition-settings) in the collection definition to ignore per collection.<br>**boolean:** true or false | false | ❌ | -| `root_folder_path` | Default Root Folder Path to use when adding new movies.<br>Use the `radarr_folder` [Radarr Details](../metadata/details/arr.md#radarr-definition-settings) in the collection definition to set the Root Folder per collection. | N/A | ✅ | -| `monitor` | Monitor the movie when adding new movies.<br>Use the `radarr_monitor` [Radarr Details](../metadata/details/arr.md#radarr-definition-settings) in the collection definition to set the Monitor value per collection.<br>**Options:** `true`, `false` | true | ❌ | -| `availability` | Default Minimum Availability to use when adding new movies.<br>Use the `radarr_availability` [Radarr Details](../metadata/details/arr.md#radarr-definition-settings) in the collection definition to set the Availability per collection.<br>**Options:** `announced`, `cinemas`, `released`, `db` | `announced` | ✅ | -| `quality_profile` | Default Quality Profile to use when adding new movies.<br>Use the `radarr_quality` [Radarr Details](../metadata/details/arr.md#radarr-definition-settings) in the collection definition to set the Quality Profile per collection. | N/A | ✅ | -| `tag` | Default list or comma-separated string of tags to use when adding new movies.<br>Use the `radarr_tag` [Radarr Details](../metadata/details/arr.md#radarr-definition-settings) in the collection definition to set the Tags per collection. | ` ` | ❌ | -| `search` | Start search for missing movie when adding new movies.<br>Use the `radarr_search` [Radarr Details](../metadata/details/arr.md#radarr-definition-settings) in the collection definition to set the search value per collection.<br>**boolean:** true or false | false | ❌ | +| `add_missing` | Adds all missing movies found from all collections to Radarr.<br>Use the `radarr_add_missing` [Radarr Details](../builders/details/arr.md#) in the collection definition to add missing per collection.<br>**boolean:** true or false | false | ❌ | +| `add_existing` | Adds all existing movies in collections to Radarr.<br>Use the `radarr_add_existing` [Radarr Details](../builders/details/arr.md#radarr-definition-settings) in the collection definition to add existing per collection.<br>**boolean:** true or false | false | ❌ | +| `upgrade_existing` | Upgrades all existing movies in collections to match the Quality Profile of the collection.<br>Use the `radarr_upgrade_existing` [Radarr Details](../builders/details/arr.md#radarr-definition-settings) in the collection definition to upgrade the Quality Profile per collection.<br>**boolean:** true or false | false | ❌ | +| `ignore_cache` | Ignores PMM's cache when adding items to Radarr.<br>Use the `radarr_ignore_cache` [Radarr Details](../builders/details/arr.md#radarr-definition-settings) in the collection definition to ignore per collection.<br>**boolean:** true or false | false | ❌ | +| `root_folder_path` | Default Root Folder Path to use when adding new movies.<br>Use the `radarr_folder` [Radarr Details](../builders/details/arr.md#radarr-definition-settings) in the collection definition to set the Root Folder per collection. | N/A | ✅ | +| `monitor` | Monitor the movie when adding new movies.<br>Use the `radarr_monitor` [Radarr Details](../builders/details/arr.md#radarr-definition-settings) in the collection definition to set the Monitor value per collection.<br>**Options:** `true`, `false` | true | ❌ | +| `availability` | Default Minimum Availability to use when adding new movies.<br>Use the `radarr_availability` [Radarr Details](../builders/details/arr.md#radarr-definition-settings) in the collection definition to set the Availability per collection.<br>**Options:** `announced`, `cinemas`, `released`, `db` | `announced` | ✅ | +| `quality_profile` | Default Quality Profile to use when adding new movies.<br>Use the `radarr_quality` [Radarr Details](../builders/details/arr.md#radarr-definition-settings) in the collection definition to set the Quality Profile per collection. | N/A | ✅ | +| `tag` | Default list or comma-separated string of tags to use when adding new movies.<br>Use the `radarr_tag` [Radarr Details](../builders/details/arr.md#radarr-definition-settings) in the collection definition to set the Tags per collection. | ` ` | ❌ | +| `search` | Start search for missing movie when adding new movies.<br>Use the `radarr_search` [Radarr Details](../builders/details/arr.md#radarr-definition-settings) in the collection definition to set the search value per collection.<br>**boolean:** true or false | false | ❌ | | `plex_path` | When using `add_existing` or `radarr_add_all` Convert this part of the path to `radarr_path`. | ` ` | ❌ | | `radarr_path` | When using `add_existing` or `radarr_add_all` Convert the `plex_path` part of the path to this. | ` ` | ❌ | @@ -49,7 +53,7 @@ radarr: * The `quality_profile` must be the exact name of the desired quality profile, including all spaces and capitalization. -* You can set most attributes per collection by using the [Radarr Details](../metadata/details/arr.md#radarr-definition-settings) in the collection definition. +* You can set most attributes per collection by using the [Radarr Details](../builders/details/arr.md#radarr-definition-settings) in the collection definition. ![Radarr Details](radarr.png) diff --git a/docs/config/settings.md b/docs/config/settings.md index 765347ca..e3da5ed0 100644 --- a/docs/config/settings.md +++ b/docs/config/settings.md @@ -1,3 +1,7 @@ +--- +search: + boost: 5 +--- # Settings ## Overview @@ -10,7 +14,7 @@ Examples of these settings include the ability to: The settings attribute and attributes can be specified individually per library, or can be inherited from the global value if it has been set. If an attribute is specified at both the library and global level, then the library level attribute will take priority. -There are some attributes which can be specified at the collection level using [Setting Details](../metadata/details/definition). +There are some attributes which can be specified at the collection level using [Setting Details](../builders/details/definition.md). Attributes set at the collection level will take priority over any library or global-level attribute. @@ -21,43 +25,43 @@ The available setting attributes which can be set at each level are outlined bel | Attribute | Global Level | Library Level | Collection/Playlist Level | |:--------------------------------------------------------------|:------------:|:-------------:|:-------------------------:| -| [`cache`](#cache) | ✅ | ❌ | ❌ | -| [`cache_expiration`](#cache-expiration) | ✅ | ❌ | ❌ | -| [`asset_directory`](#image-asset-directory) | ✅ | ✅ | ❌ | -| [`asset_folders`](#image-asset-folders) | ✅ | ✅ | ❌ | -| [`asset_depth`](#asset-depth) | ✅ | ✅ | ❌ | -| [`create_asset_folders`](#create-asset-folders) | ✅ | ✅ | ❌ | -| [`prioritize_assets`](#prioritize-assets) | ✅ | ✅ | ❌ | -| [`dimensional_asset_rename`](#dimensional-asset-rename) | ✅ | ✅ | ❌ | -| [`download_url_assets`](#download-url-assets) | ✅ | ✅ | ❌ | -| [`show_missing_season_assets`](#show-missing-season-assets) | ✅ | ✅ | ❌ | -| [`show_missing_episode_assets`](#show-missing-episode-assets) | ✅ | ✅ | ❌ | -| [`show_asset_not_needed`](#show-asset-not-needed) | ✅ | ✅ | ❌ | -| [`sync_mode`](#sync-mode) | ✅ | ✅ | ✅ | -| [`default_collection_order`](#default-collection-order) | ✅ | ✅ | ❌ | -| [`minimum_items`](#minimum-items) | ✅ | ✅ | ✅ | -| [`delete_below_minimum`](#delete-below-minimum) | ✅ | ✅ | ✅ | -| [`delete_not_scheduled`](#delete-not-scheduled) | ✅ | ✅ | ✅ | -| [`run_again_delay`](#run-again-delay) | ✅ | ❌ | ❌ | -| [`missing_only_released`](#missing-only-released) | ✅ | ✅ | ✅ | -| [`show_unmanaged`](#show-unmanaged-collections) | ✅ | ✅ | ❌ | -| [`show_unconfigured`](#show-unconfigured-collections) | ✅ | ✅ | ❌ | -| [`show_filtered`](#show-filtered) | ✅ | ✅ | ✅ | -| [`show_options`](#show-options) | ✅ | ✅ | ✅ | -| [`show_missing`](#show-missing) | ✅ | ✅ | ✅ | -| [`only_filter_missing`](#only-filter-missing) | ✅ | ✅ | ✅ | -| [`show_missing_assets`](#show-missing-assets) | ✅ | ✅ | ✅ | -| [`save_report`](#save-report) | ✅ | ✅ | ✅ | -| [`tvdb_language`](#tvdb-language) | ✅ | ❌ | ❌ | -| [`ignore_ids`](#ignore-ids) | ✅ | ✅ | ✅ | -| [`ignore_imdb_ids`](#ignore-imdb-ids) | ✅ | ✅ | ✅ | -| [`item_refresh_delay`](#item-refresh-delay) | ✅ | ✅ | ✅ | -| [`playlist_sync_to_users`](#playlist-sync-to-users) | ✅ | ❌ | ✅ | -| [`playlist_exclude_users`](#playlist-exclude-users) | ✅ | ❌ | ✅ | -| [`playlist_report`](#playlist-report) | ✅ | ❌ | ❌ | -| [`custom_repo`](#custom-repo) | ✅ | ❌ | ❌ | -| [`verify_ssl`](#verify-ssl) | ✅ | ❌ | ❌ | -| [`check_nightly`](#check-nightly) | ✅ | ❌ | ❌ | +| [`cache`](#cache) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | +| [`cache_expiration`](#cache-expiration) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | +| [`asset_directory`](#image-asset-directory) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | +| [`asset_folders`](#image-asset-folders) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | +| [`asset_depth`](#asset-depth) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | +| [`create_asset_folders`](#create-asset-folders) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | +| [`prioritize_assets`](#prioritize-assets) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | +| [`dimensional_asset_rename`](#dimensional-asset-rename) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | +| [`download_url_assets`](#download-url-assets) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | +| [`show_missing_season_assets`](#show-missing-season-assets) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | +| [`show_missing_episode_assets`](#show-missing-episode-assets) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | +| [`show_asset_not_needed`](#show-asset-not-needed) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | +| [`sync_mode`](#sync-mode) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | +| [`default_collection_order`](#default-collection-order) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | +| [`minimum_items`](#minimum-items) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | +| [`delete_below_minimum`](#delete-below-minimum) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | +| [`delete_not_scheduled`](#delete-not-scheduled) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | +| [`run_again_delay`](#run-again-delay) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | +| [`missing_only_released`](#missing-only-released) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | +| [`show_unmanaged`](#show-unmanaged-collections) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | +| [`show_unconfigured`](#show-unconfigured-collections) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | +| [`show_filtered`](#show-filtered) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | +| [`show_options`](#show-options) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | +| [`show_missing`](#show-missing) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | +| [`only_filter_missing`](#only-filter-missing) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | +| [`show_missing_assets`](#show-missing-assets) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | +| [`save_report`](#save-report) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | +| [`tvdb_language`](#tvdb-language) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | +| [`ignore_ids`](#ignore-ids) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | +| [`ignore_imdb_ids`](#ignore-imdb-ids) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | +| [`item_refresh_delay`](#item-refresh-delay) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | +| [`playlist_sync_to_users`](#playlist-sync-to-users) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | +| [`playlist_exclude_users`](#playlist-exclude-users) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | +| [`playlist_report`](#playlist-report) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | +| [`custom_repo`](#custom-repo) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | +| [`verify_ssl`](#verify-ssl) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | +| [`check_nightly`](#check-nightly) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | ## Cache Cache the Plex GUID and associated IDs for each library item for faster subsequent processing. The cache file is created in the same directory as the configuration file. @@ -288,7 +292,7 @@ Set the default `collection_order` for every collection run by PMM. </tr> </table> -<sup>1</sup> `plex_search` sort options can be found [here](../metadata/builders/plex.md#sort-options) +<sup>1</sup> `plex_search` sort options can be found [here](plex.md#sort-options) ## Minimum Items Set the minimum number of items that must be found in order to build or update a collection/playlist. @@ -338,7 +342,7 @@ If a collection is skipped due to it not being scheduled, delete the collection. ## Run Again Delay Set the number of minutes to delay running `run_again` collections after daily run is finished. For example, if a collection adds items to Sonarr/Radarr, the library can automatically re-run "X" amount of time later so that any downloaded items are processed. -* A collection is a `run_again` collection if it has the `run_again` [Setting Detail](../metadata/details/definition) attribute set to true. +* A collection is a `run_again` collection if it has the `run_again` [Setting Detail](../builders/details/definition.md) attribute set to true. <table class="dualTable colwidths-auto align-default table"> <tr> @@ -352,7 +356,7 @@ For example, if a collection adds items to Sonarr/Radarr, the library can automa </table> ## Missing Only Released -Whilst running a collection, all unreleased missing items will be filtered out from the [missing YAML file](../metadata/details/definition) +Whilst running a collection, all unreleased missing items will be filtered out from the [missing YAML file](../builders/details/definition.md) <table class="dualTable colwidths-auto align-default table"> <tr> @@ -429,7 +433,7 @@ While `show_missing` is true items missing from collections will be displayed. </table> ## Only Filter Missing -Only items missing from a collection will be filtered. **Only specific filters can filter missing. See [Filters](../metadata/filters) for more information.** +Only items missing from a collection will be filtered. **Only specific filters can filter missing. See [Filters](../metadata/filters.md) for more information.** * this can be used to filter which missing media items get sent to Sonarr/Radarr <table class="dualTable colwidths-auto align-default table"> diff --git a/docs/config/sonarr.md b/docs/config/sonarr.md index 4270fb62..d9501bb0 100644 --- a/docs/config/sonarr.md +++ b/docs/config/sonarr.md @@ -1,3 +1,7 @@ +--- +search: + boost: 3 +--- # Sonarr Attributes Configuring [Sonarr](https://sonarr.tv/) is optional but will allow you to send shows to a Sonarr instance when they're found missing while updating a library's collections. @@ -35,19 +39,19 @@ sonarr: |:-------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:--------------|:--------:| | `url` | Sonarr URL (Including URL Base if set).<br>**Example:** http://192.168.1.12:32788 | N/A | ✅ | | `token` | Sonarr API Token. | N/A | ✅ | -| `add_missing` | Adds all missing shows found from all collections to Sonarr.<br>Use the `sonarr_add_missing` [Sonarr Details](../metadata/details/arr.md#sonarr-definition-settings) in the collection definition to add missing per collection.<br>**boolean:** true or false | false | ❌ | -| `add_existing` | Adds all existing shows in collections to Sonarr.<br>Use the `sonarr_add_existing` [Sonarr Details](../metadata/details/arr.md#sonarr-definition-settings) in the collection definition to add existing per collection.<br>**boolean:** true or false | false | ❌ | -| `upgrade_existing` | Upgrades all existing shows in collections to match the Quality Profile of the collection.<br>Use the `sonarr_upgrade_existing` [Sonarr Details](../metadata/details/arr.md#sonarr-definition-settings) in the collection definition to upgrade the Quality Profile per collection.<br>**boolean:** true or false | false | ❌ | -| `ignore_cache` | Ignores PMM's cache when adding items to Sonarr.<br>Use the `sonarr_ignore_cache` [Sonarr Details](../metadata/details/arr.md#sonarr-definition-settings) in the collection definition to ignore per collection.<br>**boolean:** true or false | false | ❌ | -| `root_folder_path` | Default Root Folder Path to use when adding new shows.<br>Use the `sonarr_folder` [Sonarr Details](../metadata/details/arr.md#sonarr-definition-settings) in the collection definition to set the Root Folder per collection. | N/A | ✅ | -| `monitor` | Default Monitor to use when adding new shows.<br>Use the `sonarr_monitor` [Sonarr Details](../metadata/details/arr.md#sonarr-definition-settings) in the collection definition to set the Monitor value per collection.<br>**Values:** <table class="clearTable"><tr><td>`all`</td><td>All episodes except specials</td></tr><tr><td>`future`</td><td>Episodes that have not aired yet</td></tr><tr><td>`missing`</td><td>Episodes that do not have files or have not aired yet</td></tr><tr><td>`existing`</td><td>Episodes that have files or have not aired yet</td></tr><tr><td>`pilot`</td><td>The first episode, all others will be ignored</td></tr><tr><td>`first`</td><td>All episodes of the first season, all others will be ignored</td></tr><tr><td>`latest`</td><td>All episodes of the latest season and future seasons</td></tr><tr><td>`none`</td><td>No episodes</td></tr></table> | `all` | ❌ | -| `quality_profile` | Default Quality Profile to use when adding new shows.<br>Use the `sonarr_quality` [Sonarr Details](../metadata/details/arr.md#sonarr-definition-settings) in the collection definition to set the Quality Profile per collection. | N/A | ✅ | -| `language_profile` | Default Language Profile to use when adding new shows.<br>Use the `sonarr_language` [Sonarr Details](../metadata/details/arr.md#sonarr-definition-settings) in the collection definition to set the Language Profile per collection. | First Profile | ❌ | -| `series_type` | Default Series Type to use when adding new shows.<br>Use the `sonarr_series` [Sonarr Details](../metadata/details/arr.md#sonarr-definition-settings) in the collection definition to set the Series Type per collection.<br>**Values:** <table class="clearTable"><tr><td>`standard`</td><td>Episodes released with SxxEyy pattern</td></tr><tr><td>`daily`</td><td>Episodes released daily that use year-month-day pattern (2017-05-25)</td></tr><tr><td>`anime`</td><td>Episodes released using an absolute episode number</td></tr></table>`standard`: Episodes released with SxxEyy pattern<br>`daily`: Episodes released daily or less frequently that use year-month-day (2017-05-25)<br>`anime`: Episodes released using an absolute episode number | `standard` | ❌ | -| `season_folder` | Use the Season Folder Option when adding new shows.<br>Use the `sonarr_season` [Sonarr Details](../metadata/details/arr.md#sonarr-definition-settings) in the collection definition to set the season folder value per collection. <br>**boolean:** true or false | true | ❌ | -| `tag` | Default list or comma-separated string of tags to use when adding new shows.<br>Use the `sonarr_tag` [Sonarr Details](../metadata/details/arr.md#sonarr-definition-settings) in the collection definition to set the tags per collection. | ` ` | ❌ | -| `search` | Start search for missing episodes when adding new shows.<br>Use the `sonarr_search` [Sonarr Details](../metadata/details/arr.md#sonarr-definition-settings) in the collection definition to set the search value per collection.<br>**boolean:** true or false | false | ❌ | -| `cutoff_search` | Start search for cutoff unmet episodes when adding new shows.<br>Use the `sonarr_cutoff_search` [Sonarr Details](../metadata/details/arr.md#sonarr-definition-settings) in the collection definition to set the cutoff search value per collection.<br>**boolean:** true or false | false | ❌ | +| `add_missing` | Adds all missing shows found from all collections to Sonarr.<br>Use the `sonarr_add_missing` [Sonarr Details](../builders/details/arr.md#sonarr-definition-settings) in the collection definition to add missing per collection.<br>**boolean:** true or false | false | ❌ | +| `add_existing` | Adds all existing shows in collections to Sonarr.<br>Use the `sonarr_add_existing` [Sonarr Details](../builders/details/arr.md#sonarr-definition-settings) in the collection definition to add existing per collection.<br>**boolean:** true or false | false | ❌ | +| `upgrade_existing` | Upgrades all existing shows in collections to match the Quality Profile of the collection.<br>Use the `sonarr_upgrade_existing` [Sonarr Details](../builders/details/arr.md#sonarr-definition-settings) in the collection definition to upgrade the Quality Profile per collection.<br>**boolean:** true or false | false | ❌ | +| `ignore_cache` | Ignores PMM's cache when adding items to Sonarr.<br>Use the `sonarr_ignore_cache` [Sonarr Details](../builders/details/arr.md#sonarr-definition-settings) in the collection definition to ignore per collection.<br>**boolean:** true or false | false | ❌ | +| `root_folder_path` | Default Root Folder Path to use when adding new shows.<br>Use the `sonarr_folder` [Sonarr Details](../builders/details/arr.md#sonarr-definition-settings) in the collection definition to set the Root Folder per collection. | N/A | ✅ | +| `monitor` | Default Monitor to use when adding new shows.<br>Use the `sonarr_monitor` [Sonarr Details](../builders/details/arr.md#sonarr-definition-settings) in the collection definition to set the Monitor value per collection.<br>**Values:** <table class="clearTable"><tr><td>`all`</td><td>All episodes except specials</td></tr><tr><td>`future`</td><td>Episodes that have not aired yet</td></tr><tr><td>`missing`</td><td>Episodes that do not have files or have not aired yet</td></tr><tr><td>`existing`</td><td>Episodes that have files or have not aired yet</td></tr><tr><td>`pilot`</td><td>The first episode, all others will be ignored</td></tr><tr><td>`first`</td><td>All episodes of the first season, all others will be ignored</td></tr><tr><td>`latest`</td><td>All episodes of the latest season and future seasons</td></tr><tr><td>`none`</td><td>No episodes</td></tr></table> | `all` | ❌ | +| `quality_profile` | Default Quality Profile to use when adding new shows.<br>Use the `sonarr_quality` [Sonarr Details](../builders/details/arr.md#sonarr-definition-settings) in the collection definition to set the Quality Profile per collection. | N/A | ✅ | +| `language_profile` | Default Language Profile to use when adding new shows.<br>Use the `sonarr_language` [Sonarr Details](../builders/details/arr.md#sonarr-definition-settings) in the collection definition to set the Language Profile per collection. | First Profile | ❌ | +| `series_type` | Default Series Type to use when adding new shows.<br>Use the `sonarr_series` [Sonarr Details](../builders/details/arr.md#sonarr-definition-settings) in the collection definition to set the Series Type per collection.<br>**Values:** <table class="clearTable"><tr><td>`standard`</td><td>Episodes released with SxxEyy pattern</td></tr><tr><td>`daily`</td><td>Episodes released daily that use year-month-day pattern (2017-05-25)</td></tr><tr><td>`anime`</td><td>Episodes released using an absolute episode number</td></tr></table>`standard`: Episodes released with SxxEyy pattern<br>`daily`: Episodes released daily or less frequently that use year-month-day (2017-05-25)<br>`anime`: Episodes released using an absolute episode number | `standard` | ❌ | +| `season_folder` | Use the Season Folder Option when adding new shows.<br>Use the `sonarr_season` [Sonarr Details](../builders/details/arr.md#sonarr-definition-settings) in the collection definition to set the season folder value per collection. <br>**boolean:** true or false | true | ❌ | +| `tag` | Default list or comma-separated string of tags to use when adding new shows.<br>Use the `sonarr_tag` [Sonarr Details](../builders/details/arr.md#sonarr-definition-settings) in the collection definition to set the tags per collection. | ` ` | ❌ | +| `search` | Start search for missing episodes when adding new shows.<br>Use the `sonarr_search` [Sonarr Details](../builders/details/arr.md#sonarr-definition-settings) in the collection definition to set the search value per collection.<br>**boolean:** true or false | false | ❌ | +| `cutoff_search` | Start search for cutoff unmet episodes when adding new shows.<br>Use the `sonarr_cutoff_search` [Sonarr Details](../builders/details/arr.md#sonarr-definition-settings) in the collection definition to set the cutoff search value per collection.<br>**boolean:** true or false | false | ❌ | | `plex_path` | When using `add_existing` or `sonarr_add_all` Convert this part of the path to `sonarr_path`. | ` ` | ❌ | | `sonarr_path` | When using `add_existing` or `sonarr_add_all` Convert the `plex_path` part of the path to this. | ` ` | ❌ | @@ -55,7 +59,7 @@ sonarr: * The `quality_profile` and `language_profile` must be the exact name of the desired quality profile, including all spaces and capitalization. -* You can set most attributes per collection by using the [Sonarr Details](../metadata/details/arr.md#sonarr-definition-settings) in the collection definition. +* You can set most attributes per collection by using the [Sonarr Details](../builders/details/arr.md#sonarr-definition-settings) in the collection definition. ![Sonarr Details](sonarr.png) diff --git a/docs/config/tautulli.md b/docs/config/tautulli.md index e247e406..1ddfb5d8 100644 --- a/docs/config/tautulli.md +++ b/docs/config/tautulli.md @@ -14,8 +14,8 @@ tautulli: | Attribute | Allowed Values | Default | Required | |:----------|:------------------------------------------------------|:--------|:--------:| -| `url` | Tautulli URL<br>**Example:** http://192.168.1.12:8659 | N/A | ✅ | -| `apikey` | Tautulli API Key | N/A | ✅ | +| `url` | Tautulli URL<br>**Example:** http://192.168.1.12:8659 | N/A | :fontawesome-solid-circle-check:{ .green } | +| `apikey` | Tautulli API Key | N/A | :fontawesome-solid-circle-check:{ .green } | * The apikey can be found by going to Tautulli > Settings > Web Interface > API > API Key diff --git a/docs/config/tmdb.md b/docs/config/tmdb.md index c0278ed3..cb33cd99 100644 --- a/docs/config/tmdb.md +++ b/docs/config/tmdb.md @@ -1,6 +1,10 @@ +--- +search: + boost: 3 +--- # TMDb Attributes -Configuring [TheMovieDb](https://www.themoviedb.org/) is required in order to run the script. +Configuring [TheMovieDb](https://www.themoviedb.org/) is required in order to run Plex Meta Manager. A `tmdb` mapping is in the root of the config file. @@ -15,9 +19,9 @@ tmdb: | Attribute | Allowed Values | Default | Required | |:-------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:--------|:--------:| -| `apikey` | User TMDb V3 API Key | N/A | ✅ | -| `language` | [ISO 639-1 Code](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) of the User Language | en | ❌ | -| `region` | [ISO 3166-1 Code](https://en.wikipedia.org/wiki/ISO_3166-1#Current_codes) of the User Region for use with [Other TMDb Builders](../metadata/builders/tmdb.md#other-tmdb-builders) | None | ❌ | -| `cache_expiration` | Number of days before each cache mapping expires and has to be re-cached. | 60 | ❌ | +| `apikey` | User TMDb V3 API Key | N/A | :fontawesome-solid-circle-check:{ .green } | +| `language` | [ISO 639-1 Code](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) of the User Language | en | :fontawesome-solid-circle-xmark:{ .red } | +| `region` | [ISO 3166-1 Code](https://en.wikipedia.org/wiki/ISO_3166-1#Current_codes) of the User Region for use with [Other TMDb Builders](../builders/tmdb.md#other-tmdb-builders) | None | :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 } | If you do not have a TMDb V3 API key please refer to this [guide](https://developers.themoviedb.org/3/getting-started/introduction). diff --git a/docs/config/trakt.md b/docs/config/trakt.md index 045f36e0..ad60873a 100644 --- a/docs/config/trakt.md +++ b/docs/config/trakt.md @@ -1,3 +1,7 @@ +--- +search: + boost: 3 +--- # Trakt Attributes Configuring [Trakt.tv](https://trakt.tv/) is optional but is required for Trakt based collections to function. @@ -21,13 +25,13 @@ trakt: | Attribute | Allowed Values | Default | Required | |:----------------|:--------------------------------|:--------|:--------:| -| `client_id` | Trakt Application Client ID | N/A | ✅ | -| `client_secret` | Trakt Application Client Secret | N/A | ✅ | -| `pin` | Trakt Pin | None | ❌ | +| `client_id` | Trakt Application Client ID | N/A | :fontawesome-solid-circle-check:{ .green } | +| `client_secret` | Trakt Application Client Secret | N/A | :fontawesome-solid-circle-check:{ .green } | +| `pin` | Trakt Pin | None | :fontawesome-solid-circle-xmark:{ .red } | -* All other attributes will be filled in by the script. +* All other attributes will be filled in by Plex Meta Manager. -* To connect to Trakt.tv you must create a Trakt application and supply the script the `client_id`, `client_secret`, and `pin` provided, please do the following: +* To connect to Trakt.tv you must create a Trakt application and supply Plex Meta Manager the `client_id`, `client_secret`, and `pin` provided, please do the following: 1. [Click here to create a Trakt API application.](https://trakt.tv/oauth/applications/new) 2. Enter a `Name` for the application. 3. Enter `urn:ietf:wg:oauth:2.0:oob` for `Redirect uri`. @@ -38,7 +42,7 @@ trakt: ![Trakt Authorize](trakt.png) 8. Record the `PIN` as `pin` in your Configuration File. -* Run the script shortly after obtaining your PIN; the PIN may expire at some point. +* Run Plex Meta Manager shortly after obtaining your PIN; the PIN may expire at some point. ## Online Authorization Script diff --git a/docs/config/webhooks.md b/docs/config/webhooks.md index f24b05fe..d45ab3a4 100644 --- a/docs/config/webhooks.md +++ b/docs/config/webhooks.md @@ -19,15 +19,15 @@ webhooks: | Attribute | Global | Library | Collection | |:----------------------------------------|:-------:|:--------:|:----------:| -| [`error`](#error-notifications) | ✅ | ❌ | ❌ | -| [`version`](#version-notifications) | ✅ | ❌ | ❌ | -| [`run_start`](#run-start-notifications) | ✅ | ❌ | ❌ | -| [`run_end`](#run-end-notifications) | ✅ | ❌ | ❌ | -| [`delete`](#delete-notifications) | ✅ | ❌ | ❌ | -| [`changes`](#changes-notifications) | ✅ | ✅ | ✅ | +| [`error`](#error-notifications) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | +| [`version`](#version-notifications) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | +| [`run_start`](#run-start-notifications) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | +| [`run_end`](#run-end-notifications) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | +| [`delete`](#delete-notifications) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | +| [`changes`](#changes-notifications) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | * Each Attribute can be either a webhook url as a string or a comma-separated list of webhooks urls. -* To send notifications to [Notifiarr](notifiarr) just add `notifiarr` to a webhook instead of the webhook url. +* To send notifications to [Notifiarr](notifiarr.md) just add `notifiarr` to a webhook instead of the webhook url. ## Error Notifications diff --git a/docs/defaults.zip b/docs/defaults.zip deleted file mode 100644 index 7f279632..00000000 Binary files a/docs/defaults.zip and /dev/null differ diff --git a/docs/defaults/award/bafta.md b/docs/defaults/award/bafta.md index d5c436e7..8554d52a 100644 --- a/docs/defaults/award/bafta.md +++ b/docs/defaults/award/bafta.md @@ -8,7 +8,7 @@ The `bafta` Default Metadata File is used to create collections based on the Bri Supported Library Types: Movie -Requirements: [Trakt Authentication](../../config/trakt) +Requirements: [Trakt Authentication](../../config/trakt.md) ## Collections Section 130 @@ -34,20 +34,20 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Collection Variables](../collection_variables) are available as well as the additional Variables below which can be used to customize the file. - -| Variable | Description & Values | -|:---------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `use_year_collections` | **Description:** Turn the individual year collections off.<br>**Values:** `false` to turn of the collections | -| `year_collection_section` | **Description:** Change the collection section for year collections only. (Use quotes to not lose leading zeros `"05"`)<br>**Values:** Any number | -| `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | -| `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | -| `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../metadata/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | -| `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../metadata/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | -| `data` | **Description:** Replaces the `data` dynamic collection value.<br><table class="clearTable"><tr><th>Attribute</th><th>Description & Values</th></tr><tr><td><code>starting</code></td><td>Controls the starting year for collections<hr><strong>Default:</strong> current_year-5<hr><strong>Values:</strong> Number greater than 0</td></tr><tr><td><code>ending</code></td><td>Controls the ending year for collections<hr><strong>Default:</strong> current_year<hr><strong>Values:</strong> Number greater than 1</td></tr><tr><td><code>increment</code></td><td>Controls the increment (i.e. every 5th year)<hr><strong>Default:</strong> 1<hr><strong>Values:</strong> Number greater than 0</td><td></td></tr></table><ul><li><strong><code>starting</code> and <code>ending</code> can also have the value <code>current_year</code></strong></li><li><strong>You can also use a value relative to the <code>current_year</code> by doing <code>current_year-5</code></strong></li></ul> | -| `exclude` | **Description:** Exclude these Years from creating a Dynamic Collection.<br>**Values:** List of Years | -| `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `BAFTA <<key_name>>`<br>**Values:** Any string with `<<key_name>>` in it. | -| `summary_format` | **Description:** Changes the summary format of the Dynamic Collections.<br>**Default:** `<<key_name>> BAFTA Awards.`<br>**Values:** Any string with `<<key_name>>` in it. | +All [Shared Collection Variables](../collection_variables.md) are available as well as the additional Variables below which can be used to customize the file. + +| Variable | Description & Values | +|:---------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| `use_year_collections` | **Description:** Turn the individual year collections off.<br>**Values:** `false` to turn of the collections | +| `year_collection_section` | **Description:** Change the collection section for year collections only. (Use quotes to not lose leading zeros `"05"`)<br>**Values:** Any number | +| `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | +| `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | +| `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | +| `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | +| `data` | **Description:** Replaces the `data` dynamic collection value.<br><table class="clearTable"><tr><th>Attribute</th><th>Description & Values</th></tr><tr><td><code>starting</code></td><td>Controls the starting year for collections<hr><strong>Default:</strong> current_year-5<hr><strong>Values:</strong> Number greater than 0</td></tr><tr><td><code>ending</code></td><td>Controls the ending year for collections<hr><strong>Default:</strong> current_year<hr><strong>Values:</strong> Number greater than 1</td></tr><tr><td><code>increment</code></td><td>Controls the increment (i.e. every 5th year)<hr><strong>Default:</strong> 1<hr><strong>Values:</strong> Number greater than 0</td><td></td></tr></table><ul><li><strong><code>starting</code> and <code>ending</code> can also have the value <code>current_year</code></strong></li><li><strong>You can also use a value relative to the <code>current_year</code> by doing <code>current_year-5</code></strong></li></ul> | +| `exclude` | **Description:** Exclude these Years from creating a Dynamic Collection.<br>**Values:** List of Years | +| `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `BAFTA <<key_name>>`<br>**Values:** Any string with `<<key_name>>` in it. | +| `summary_format` | **Description:** Changes the summary format of the Dynamic Collections.<br>**Default:** `<<key_name>> BAFTA Awards.`<br>**Values:** Any string with `<<key_name>>` in it. | 1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. diff --git a/docs/defaults/award/cannes.md b/docs/defaults/award/cannes.md index d3b70f3e..6fe2064a 100644 --- a/docs/defaults/award/cannes.md +++ b/docs/defaults/award/cannes.md @@ -8,7 +8,7 @@ The `cannes` Default Metadata File is used to create collections based on the Ca Supported Library Types: Movie -Requirements: [Trakt Authentication](../../config/trakt) +Requirements: [Trakt Authentication](../../config/trakt.md) ## Collections Section 130 @@ -34,7 +34,7 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Collection Variables](../collection_variables) are available as well as the additional Variables below which can be used to customize the file. +All [Shared Collection Variables](../collection_variables.md) are available as well as the additional Variables below which can be used to customize the file. | Variable | Description & Values | |:---------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| @@ -42,8 +42,8 @@ All [Shared Collection Variables](../collection_variables) are available as well | `year_collection_section` | **Description:** Change the collection section for year collections only. (Use quotes to not lose leading zeros `"05"`)<br>**Values:** Any number | | `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | | `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | -| `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../metadata/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | -| `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../metadata/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | +| `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | +| `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | | `data` | **Description:** Replaces the `data` dynamic collection value.<br><table class="clearTable"><tr><th>Attribute</th><th>Description & Values</th></tr><tr><td><code>starting</code></td><td>Controls the starting year for collections<hr><strong>Default:</strong> current_year-5<hr><strong>Values:</strong> Number greater than 0</td></tr><tr><td><code>ending</code></td><td>Controls the ending year for collections<hr><strong>Default:</strong> current_year<hr><strong>Values:</strong> Number greater than 1</td></tr><tr><td><code>increment</code></td><td>Controls the increment (i.e. every 5th year)<hr><strong>Default:</strong> 1<hr><strong>Values:</strong> Number greater than 0</td><td></td></tr></table><ul><li><strong><code>starting</code> and <code>ending</code> can also have the value <code>current_year</code></strong></li><li><strong>You can also use a value relative to the <code>current_year</code> by doing <code>current_year-5</code></strong></li></ul> | | `exclude` | **Description:** Exclude these Years from creating a Dynamic Collection.<br>**Values:** List of Years | | `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `Cannes <<key_name>>`<br>**Values:** Any string with `<<key_name>>` in it. | diff --git a/docs/defaults/award/choice.md b/docs/defaults/award/choice.md index 094577cb..d9347cf4 100644 --- a/docs/defaults/award/choice.md +++ b/docs/defaults/award/choice.md @@ -8,7 +8,7 @@ The `choice` Default Metadata File is used to create collections based on the Cr Supported Library Types: Movie, Show -Requirements: [Trakt Authentication](../../config/trakt) +Requirements: [Trakt Authentication](../../config/trakt.md) ## Collections Section 130 @@ -36,7 +36,7 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Collection Variables](../collection_variables) are available as well as the additional Variables below which can be used to customize the file. +All [Shared Collection Variables](../collection_variables.md) are available as well as the additional Variables below which can be used to customize the file. | Variable | Description & Values | |:---------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| @@ -44,8 +44,8 @@ All [Shared Collection Variables](../collection_variables) are available as well | `year_collection_section` | **Description:** Change the collection section for year collections only. (Use quotes to not lose leading zeros `"05"`)<br>**Values:** Any number | | `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | | `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | -| `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../metadata/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | -| `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../metadata/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | +| `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | +| `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | | `data` | **Description:** Replaces the `data` dynamic collection value.<br><table class="clearTable"><tr><th>Attribute</th><th>Description & Values</th></tr><tr><td><code>starting</code></td><td>Controls the starting year for collections<hr><strong>Default:</strong> current_year-5<hr><strong>Values:</strong> Number greater than 0</td></tr><tr><td><code>ending</code></td><td>Controls the ending year for collections<hr><strong>Default:</strong> current_year<hr><strong>Values:</strong> Number greater than 1</td></tr><tr><td><code>increment</code></td><td>Controls the increment (i.e. every 5th year)<hr><strong>Default:</strong> 1<hr><strong>Values:</strong> Number greater than 0</td><td></td></tr></table><ul><li><strong><code>starting</code> and <code>ending</code> can also have the value <code>current_year</code></strong></li><li><strong>You can also use a value relative to the <code>current_year</code> by doing <code>current_year-5</code></strong></li></ul> | | `exclude` | **Description:** Exclude these Years from creating a Dynamic Collection.<br>**Values:** List of Years | | `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `Critics Choice <<key_name>>`<br>**Values:** Any string with `<<key_name>>` in it. | diff --git a/docs/defaults/award/emmy.md b/docs/defaults/award/emmy.md index f8f5195e..4d978eb5 100644 --- a/docs/defaults/award/emmy.md +++ b/docs/defaults/award/emmy.md @@ -34,7 +34,7 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Collection Variables](../collection_variables) are available as well as the additional Variables below which can be used to customize the file. +All [Shared Collection Variables](../collection_variables.md) are available as well as the additional Variables below which can be used to customize the file. | Variable | Description & Values | |:---------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| @@ -42,8 +42,8 @@ All [Shared Collection Variables](../collection_variables) are available as well | `year_collection_section` | **Description:** Change the collection section for year collections only. (Use quotes to not lose leading zeros `"05"`)<br>**Values:** Any number | | `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | | `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | -| `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../metadata/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | -| `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../metadata/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | +| `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | +| `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | | `data` | **Description:** Replaces the `data` dynamic collection value.<br><table class="clearTable"><tr><th>Attribute</th><th>Description & Values</th></tr><tr><td><code>starting</code></td><td>Controls the starting year for collections<hr><strong>Default:</strong> current_year-5<hr><strong>Values:</strong> Number greater than 0</td></tr><tr><td><code>ending</code></td><td>Controls the ending year for collections<hr><strong>Default:</strong> current_year<hr><strong>Values:</strong> Number greater than 1</td></tr><tr><td><code>increment</code></td><td>Controls the increment (i.e. every 5th year)<hr><strong>Default:</strong> 1<hr><strong>Values:</strong> Number greater than 0</td><td></td></tr></table><ul><li><strong><code>starting</code> and <code>ending</code> can also have the value <code>current_year</code></strong></li><li><strong>You can also use a value relative to the <code>current_year</code> by doing <code>current_year-5</code></strong></li></ul> | | `exclude` | **Description:** Exclude these Years from creating a Dynamic Collection.<br>**Values:** List of Years | | `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `Emmys <<key_name>>`<br>**Values:** Any string with `<<key_name>>` in it. | diff --git a/docs/defaults/award/golden.md b/docs/defaults/award/golden.md index 0dfaac22..d007b5b3 100644 --- a/docs/defaults/award/golden.md +++ b/docs/defaults/award/golden.md @@ -38,7 +38,7 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Collection Variables](../collection_variables) are available as well as the additional Variables below which can be used to customize the file. +All [Shared Collection Variables](../collection_variables.md) are available as well as the additional Variables below which can be used to customize the file. | Variable | Description & Values | |:---------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| @@ -46,8 +46,8 @@ All [Shared Collection Variables](../collection_variables) are available as well | `year_collection_section` | **Description:** Change the collection section for year collections only. (Use quotes to not lose leading zeros `"05"`)<br>**Values:** Any number | | `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | | `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | -| `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../metadata/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | -| `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../metadata/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | +| `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | +| `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | | `data` | **Description:** Replaces the `data` dynamic collection value.<br><table class="clearTable"><tr><th>Attribute</th><th>Description & Values</th></tr><tr><td><code>starting</code></td><td>Controls the starting year for collections<hr><strong>Default:</strong> current_year-5<hr><strong>Values:</strong> Number greater than 0</td></tr><tr><td><code>ending</code></td><td>Controls the ending year for collections<hr><strong>Default:</strong> current_year<hr><strong>Values:</strong> Number greater than 1</td></tr><tr><td><code>increment</code></td><td>Controls the increment (i.e. every 5th year)<hr><strong>Default:</strong> 1<hr><strong>Values:</strong> Number greater than 0</td><td></td></tr></table><ul><li><strong><code>starting</code> and <code>ending</code> can also have the value <code>current_year</code></strong></li><li><strong>You can also use a value relative to the <code>current_year</code> by doing <code>current_year-5</code></strong></li></ul> | | `exclude` | **Description:** Exclude these Years from creating a Dynamic Collection.<br>**Values:** List of Years | | `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `Golden Globe <<key_name>>`<br>**Values:** Any string with `<<key_name>>` in it. | diff --git a/docs/defaults/award/oscars.md b/docs/defaults/award/oscars.md index eb5d9d4b..1c939e88 100644 --- a/docs/defaults/award/oscars.md +++ b/docs/defaults/award/oscars.md @@ -33,16 +33,16 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Collection Variables](../collection_variables) are available as well as the additional Variables below which can be used to customize the file. +All [Shared Collection Variables](../collection_variables.md) are available as well as the additional Variables below which can be used to customize the file. | Variable | Description & Values | |:---------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `use_year_collections` | **Description:** Turn the individual year collections off.<br>**Values:** `false` to turn of the collections | -| `year_collection_section` | **Description:** Change the collection section for year collections only. (Use quotes to not lose leading zeros `"05"`)<br>**Values:** Any number | +| `year_collection_section` | **Description:** Change the collection section for year collections only. (Use quotes to not lose leading zeros `"05"`)<br>**Values:** Any number | | `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | | `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | -| `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../metadata/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | -| `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../metadata/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | +| `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | +| `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | | `data` | **Description:** Replaces the `data` dynamic collection value.<br><table class="clearTable"><tr><th>Attribute</th><th>Description & Values</th></tr><tr><td><code>starting</code></td><td>Controls the starting year for collections<hr><strong>Default:</strong> current_year-6<hr><strong>Values:</strong> Number greater than 0</td></tr><tr><td><code>ending</code></td><td>Controls the ending year for collections<hr><strong>Default:</strong> current_year-1<hr><strong>Values:</strong> Number greater than 1</td></tr><tr><td><code>increment</code></td><td>Controls the increment (i.e. every 5th year)<hr><strong>Default:</strong> 1<hr><strong>Values:</strong> Number greater than 0</td><td></td></tr></table><ul><li><strong><code>starting</code> and <code>ending</code> can also have the value <code>current_year</code></strong></li><li><strong>You can also use a value relative to the <code>current_year</code> by doing <code>current_year-5</code></strong></li></ul> | | `exclude` | **Description:** Exclude these Years from creating a Dynamic Collection.<br>**Values:** List of Years | | `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `Oscars Winners <<key_name>>`<br>**Values:** Any string with `<<key_name>>` in it. | diff --git a/docs/defaults/award/other.md b/docs/defaults/award/other.md index c684546f..14b8e4a2 100644 --- a/docs/defaults/award/other.md +++ b/docs/defaults/award/other.md @@ -8,7 +8,7 @@ The `other_award` Default Metadata File is used to create collections based on Supported Library Types: Movie, Show -Requirements: [Trakt Authentication](../../config/trakt) +Requirements: [Trakt Authentication](../../config/trakt.md) ## Collections Section 130 @@ -36,14 +36,14 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Collection Variables](../collection_variables) are available as well as the additional Variables below which can be used to customize the file. +All [Shared Collection Variables](../collection_variables.md) are available as well as the additional Variables below which can be used to customize the file. | Variable | Description & Values | |:---------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | | `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | -| `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../metadata/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | -| `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../metadata/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | +| `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | +| `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | 1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. diff --git a/docs/defaults/award/separator.md b/docs/defaults/award/separator.md index cd054cb4..5b154057 100644 --- a/docs/defaults/award/separator.md +++ b/docs/defaults/award/separator.md @@ -12,7 +12,7 @@ Supported Library Types: Movie, Show | Collection | Key | Description | |:--------------------|:------------|:----------------------------------------------------------------------------| -| `Award Collections` | `separator` | [Separator Collection](../separators) to denote the Section of Collections. | +| `Award Collections` | `separator` | [Separator Collection](../separators.md) to denote the Section of Collections. | ## Config @@ -34,9 +34,9 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -**[Shared Collection Variables](../collection_variables) are NOT available to this default file.** +**[Shared Collection Variables](../collection_variables.md) are NOT available to this default file.** -This file contains only a [Separator](../separators) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available. +This file contains only a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available. The below is an example config.yml extract with some Template Variables added in to change how the file works. diff --git a/docs/defaults/award/spirit.md b/docs/defaults/award/spirit.md index f2192a32..54d959b4 100644 --- a/docs/defaults/award/spirit.md +++ b/docs/defaults/award/spirit.md @@ -8,7 +8,7 @@ The `spirit` Default Metadata File is used to create collections based on the I Supported Library Types: Movie -Requirements: [Trakt Authentication](../../config/trakt) +Requirements: [Trakt Authentication](../../config/trakt.md) ## Collections Section 130 @@ -33,7 +33,7 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Collection Variables](../collection_variables) are available as well as the additional Variables below which can be used to customize the file. +All [Shared Collection Variables](../collection_variables.md) are available as well as the additional Variables below which can be used to customize the file. | Variable | Description & Values | |:---------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| @@ -41,8 +41,8 @@ All [Shared Collection Variables](../collection_variables) are available as well | `year_collection_section` | **Description:** Change the collection section for year collections only. (Use quotes to not lose leading zeros `"05"`)<br>**Values:** Any number | | `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | | `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | -| `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../metadata/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | -| `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../metadata/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | +| `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | +| `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | | `data` | **Description:** Replaces the `data` dynamic collection value.<br><table class="clearTable"><tr><th>Attribute</th><th>Description & Values</th></tr><tr><td><code>starting</code></td><td>Controls the starting year for collections<hr><strong>Default:</strong> current_year-5<hr><strong>Values:</strong> Number greater than 0</td></tr><tr><td><code>ending</code></td><td>Controls the ending year for collections<hr><strong>Default:</strong> current_year<hr><strong>Values:</strong> Number greater than 1</td></tr><tr><td><code>increment</code></td><td>Controls the increment (i.e. every 5th year)<hr><strong>Default:</strong> 1<hr><strong>Values:</strong> Number greater than 0</td><td></td></tr></table><ul><li><strong><code>starting</code> and <code>ending</code> can also have the value <code>current_year</code></strong></li><li><strong>You can also use a value relative to the <code>current_year</code> by doing <code>current_year-5</code></strong></li></ul> | | `exclude` | **Description:** Exclude these Years from creating a Dynamic Collection.<br>**Values:** List of Years | | `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `Independent Spirit Awards <<key_name>>`<br>**Values:** Any string with `<<key_name>>` in it. | diff --git a/docs/defaults/award/sundance.md b/docs/defaults/award/sundance.md index 3a6e6a0c..ae95aac1 100644 --- a/docs/defaults/award/sundance.md +++ b/docs/defaults/award/sundance.md @@ -8,7 +8,7 @@ The `sundance` Default Metadata File is used to create collections based on the Supported Library Types: Movie -Requirements: [Trakt Authentication](../../config/trakt) +Requirements: [Trakt Authentication](../../config/trakt.md) ## Collections Section 130 @@ -34,7 +34,7 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Collection Variables](../collection_variables) are available as well as the additional Variables below which can be used to customize the file. +All [Shared Collection Variables](../collection_variables.md) are available as well as the additional Variables below which can be used to customize the file. | Variable | Description & Values | |:---------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| @@ -42,8 +42,8 @@ All [Shared Collection Variables](../collection_variables) are available as well | `year_collection_section` | **Description:** Change the collection section for year collections only. (Use quotes to not lose leading zeros `"05"`)<br>**Values:** Any number | | `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | | `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | -| `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../metadata/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | -| `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../metadata/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | +| `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | +| `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | | `data` | **Description:** Replaces the `data` dynamic collection value.<br><table class="clearTable"><tr><th>Attribute</th><th>Description & Values</th></tr><tr><td><code>starting</code></td><td>Controls the starting year for collections<hr><strong>Default:</strong> current_year-5<hr><strong>Values:</strong> Number greater than 0</td></tr><tr><td><code>ending</code></td><td>Controls the ending year for collections<hr><strong>Default:</strong> current_year<hr><strong>Values:</strong> Number greater than 1</td></tr><tr><td><code>increment</code></td><td>Controls the increment (i.e. every 5th year)<hr><strong>Default:</strong> 1<hr><strong>Values:</strong> Number greater than 0</td><td></td></tr></table><ul><li><strong><code>starting</code> and <code>ending</code> can also have the value <code>current_year</code></strong></li><li><strong>You can also use a value relative to the <code>current_year</code> by doing <code>current_year-5</code></strong></li></ul> | | `exclude` | **Description:** Exclude these Years from creating a Dynamic Collection.<br>**Values:** List of Years | | `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `Sundance Film Festival <<key_name>>`<br>**Values:** Any string with `<<key_name>>` in it. | diff --git a/docs/defaults/both/actor.md b/docs/defaults/both/actor.md index f7e0bb34..934cd337 100644 --- a/docs/defaults/both/actor.md +++ b/docs/defaults/both/actor.md @@ -10,11 +10,12 @@ Supported Library Types: Movie, Show | Collection | Key | Description | |:------------------------------------------------|:------------------------------------------------|:----------------------------------------------------------------------------| -| `Actors Collections` | `separator` | [Separator Collection](../separators) to denote the Section of Collections. | +| `Actors Collections` | `separator` | [Separator Collection](../separators.md) to denote the Section of Collections. | | `<<actor_name>>`<br>**Example:** `Frank Welker` | `<<actor_name>>`<br>**Example:** `Frank Welker` | Collection of Movies/Shows the actor is top billing in. | -```{include} ../people.md -``` +{% + include-markdown "../people.md" +%} ## Config @@ -36,17 +37,17 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Collection Variables](../collection_variables) are available as well as the additional Variables below which can be used to customize the file. +All [Shared Collection Variables](../collection_variables.md) are available as well as the additional Variables below which can be used to customize the file. -This file contains a [Separator](../separators) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. +This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. | Variable | Description & Values | |:-----------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `style` | **Description:** Controls the visual theme of the collections created.<br>**Default:** `bw`<br>**Values:** `bw`, `rainier`, `signature`, `diiivoy`, or `diiivoycolor` | | `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Values:** Number Greater than 0 | | `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | -| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../metadata/builders/smart.md#sort-options) | -| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../metadata/builders/smart.md#sort-options) | +| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | +| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | | `data` | **Description:** Replaces the `data` dynamic collection value.<table class="clearTable"><tr><th>Attribute</th><th>Description & Values</th></tr><tr><td><code>depth</code></td><td>Controls the depth within the casting credits to search for common actors<hr><strong>Default:</strong> 5<hr><strong>Values:</strong> Number greater than 0</td></tr><tr><td><code>limit</code></td><td>Controls the maximum number of collections to create<hr><strong>Default:</strong> 25<hr><strong>Values:</strong> Number greater than 0</td></tr></table> | | `include` | **Description:** Force these Actors to be included to create a Dynamic Collection.<br>**Values:** List of Actor Names | | `exclude` | **Description:** Exclude these Actors from creating a Dynamic Collection.<br>**Values:** List of Actor Names | diff --git a/docs/defaults/both/aspect.md b/docs/defaults/both/aspect.md index a263eec1..916b3c32 100644 --- a/docs/defaults/both/aspect.md +++ b/docs/defaults/both/aspect.md @@ -12,7 +12,7 @@ Supported Library Types: Movie, Show | Collection | Key | Description | |:-------------------------------|:------------|:----------------------------------------------------------------------------| -| `Aspect Ratio Collections` | `separator` | [Separator Collection](../separators) to denote the Section of Collections. | +| `Aspect Ratio Collections` | `separator` | [Separator Collection](../separators.md) to denote the Section of Collections. | | `1.33 - Academy Aperture` | `1.33` | Collection of Movies/Shows with a 1.33 aspect ratio | | `1.65 - Early Widescreen` | `1.65` | Collection of Movies/Shows with a 1.65 aspect ratio | | `1.66 - European Widescreen` | `1.66` | Collection of Movies/Shows with a 1.66 aspect ratio | @@ -42,16 +42,16 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Collection Variables](../collection_variables) are available as well as the additional Variables below which can be used to customize the file. +All [Shared Collection Variables](../collection_variables.md) are available as well as the additional Variables below which can be used to customize the file. -This file contains a [Separator](../separators) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. +This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. | Variable | Description & Values | |:--------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Values:** Number Greater than 0 | | `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | -| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../metadata/builders/smart.md#sort-options) | -| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../metadata/builders/smart.md#sort-options) | +| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | +| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | | `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | | `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | | `exclude` | **Description:** Exclude these Media Outlets from creating a Dynamic Collection.<br>**Values:** List of Media Outlet Keys | diff --git a/docs/defaults/both/audio_language.md b/docs/defaults/both/audio_language.md index 593f7b56..38e966a0 100644 --- a/docs/defaults/both/audio_language.md +++ b/docs/defaults/both/audio_language.md @@ -12,7 +12,7 @@ Supported Library Types: Movie, Show | Collection | Key | Description | |:------------------------------------------------------|:-----------------------------------------------------------------------------------------|:----------------------------------------------------------------------------| -| `Audio Language Collections` | `separator` | [Separator Collection](../separators) to denote the Section of Collections. | +| `Audio Language Collections` | `separator` | [Separator Collection](../separators.md) to denote the Section of Collections. | | `<<Audio Language>> Audio`<br>**Example:** `Japanese` | `<<ISO 639-1 Code>>`<br>**Example:** `ja` <br>`<<ISO 639-2 Code>>`<br>**Example:** `myn` | Collection of Movies/Shows that have this Audio Language. | | `Other Audio` | `other` | Collection of Movies/Shows that are less common Languages. | @@ -36,16 +36,16 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Collection Variables](../collection_variables) are available as well as the additional Variables below which can be used to customize the file. +All [Shared Collection Variables](../collection_variables.md) are available as well as the additional Variables below which can be used to customize the file. -This file contains a [Separator](../separators) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. +This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. | Variable | Description & Values | |:------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Values:** Number Greater than 0 | | `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | -| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../metadata/builders/smart.md#sort-options) | -| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../metadata/builders/smart.md#sort-options) | +| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | +| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | | `include` | **Description:** Overrides the [default include list](#default-include)<br>**Values:** List of [ISO 639-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes)<br>**Values:** List of [ISO 639-2 codes](https://en.wikipedia.org/wiki/List_of_ISO_639-2_codes) | | `exclude` | **Description:** Exclude these Audio Languages from creating a Dynamic Collection.<br>**Values:** List of [ISO 639-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes)<br>**Values:** List of [ISO 639-2 codes](https://en.wikipedia.org/wiki/List_of_ISO_639-2_codes) | | `append_include` | **Description:** Appends to the [default include list](#default-include)<br>**Values:** List of [ISO 639-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes)<br>**Values:** List of [ISO 639-2 codes](https://en.wikipedia.org/wiki/List_of_ISO_639-2_codes) | diff --git a/docs/defaults/both/based.md b/docs/defaults/both/based.md index c8bf3bbe..3e2a49cf 100644 --- a/docs/defaults/both/based.md +++ b/docs/defaults/both/based.md @@ -12,7 +12,7 @@ Supported Library Types: Movie, Show | Collection | Key | Description | |:---------------------------|:--------------|:----------------------------------------------------------------------------| -| `Based on... Collections` | `separator` | [Separator Collection](../separators) to denote the Section of Collections. | +| `Based on... Collections` | `separator` | [Separator Collection](../separators.md) to denote the Section of Collections. | | `Based on a Book` | `books` | Collection of Movies/Shows based on or inspired by books | | `Based on a Comic` | `comics` | Collection of Movies/Shows based on or inspired by comics | | `Based on a True Story` | `true_story` | Collection of Movies/Shows based on or inspired by true stories | @@ -38,16 +38,16 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Collection Variables](../collection_variables) are available as well as the additional Variables below which can be used to customize the file. +All [Shared Collection Variables](../collection_variables.md) are available as well as the additional Variables below which can be used to customize the file. -This file contains a [Separator](../separators) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. +This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. | Variable | Description & Values | |:--------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Values:** Number Greater than 0 | | `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | -| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../metadata/builders/smart.md#sort-options) | -| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../metadata/builders/smart.md#sort-options) | +| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | +| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | | `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | | `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | | `exclude` | **Description:** Exclude these Media Outlets from creating a Dynamic Collection.<br>**Values:** List of Media Outlet Keys | diff --git a/docs/defaults/both/collectionless.md b/docs/defaults/both/collectionless.md index ea424275..9fbe1674 100644 --- a/docs/defaults/both/collectionless.md +++ b/docs/defaults/both/collectionless.md @@ -1,6 +1,6 @@ # Collectionless Collection -The `collectionless` Default Metadata File is used to create a [Collectionless collection](../../metadata/builders/plex.md#plex-collectionless) to help Show/Hide Movies/Shows properly in your library. +The `collectionless` Default Metadata File is used to create a [Collectionless collection](../../builders/plex.md#plex-collectionless) to help Show/Hide Movies/Shows properly in your library. ![](../images/collectionless.png) @@ -14,7 +14,7 @@ Requirements: For this file to work it needs to run last under `metadata_path` a | Collection | Description | |:-----------------|:-------------------------------------------------------------------------------------------------------------------------------------------| -| `Collectionless` | [Collectionless collection](../../metadata/builders/plex.md#plex-collectionless) to help Show/Hide Movies/Shows properly in your library.. | +| `Collectionless` | [Collectionless collection](../../builders/plex.md#plex-collectionless) to help Show/Hide Movies/Shows properly in your library.. | ## Config @@ -40,14 +40,14 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -**[Shared Collection Variables](../collection_variables) are NOT available to this default file.** +**[Shared Collection Variables](../collection_variables.md) are NOT available to this default file.** | Variable | Description & Values | |:-------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `name_collectionless` | **Description:** Changes the name of the collection.<br>**Values:** New Collection Name | | `summary_collectionless` | **Description:** Changes the summary of the collection.<br>**Values:** New Collection Summary | | `sort_title` | **Description:** Sets the sort title for the collection.<br>**Default:** `~_Collectionless`<br>**Values:** Any String | -| `collection_order` | **Description:** Changes the Collection Order for all collections in this file.<br>**Default:** `alpha`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../metadata/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | +| `collection_order` | **Description:** Changes the Collection Order for all collections in this file.<br>**Default:** `alpha`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | | `url_poster` | **Description:** Changes the poster url of thecollection.<br>**Values:** URL directly to the Image | | `exclude` | **Description:** Exclude these Collections from being considered for collectionless.<br>**Values:** List of Collections | | `exclude_prefix` | **Description:** Overrides the [default exclude_prefix list](#default-exclude_prefix). Exclude Collections with one of these prefixes from being considered for collectionless.<br>**Default:** [default exclude_prefix list](#default-exclude_prefix)<br>**Values:** List of Prefixes | | diff --git a/docs/defaults/both/content_rating_cs.md b/docs/defaults/both/content_rating_cs.md index d6f1b9e4..630bb05e 100644 --- a/docs/defaults/both/content_rating_cs.md +++ b/docs/defaults/both/content_rating_cs.md @@ -16,7 +16,7 @@ Recommendations: Use the [Mass Content Rating Update Library Operation](../../co | Collection | Key | Description | |:------------------------------------------------------------------|:---------------------------------|:--------------------------------------------------------------------------------------| -| `Ratings Collections` | `separator` | [Separator Collection](../separators) to denote the Section of Collections. | +| `Ratings Collections` | `separator` | [Separator Collection](../separators.md) to denote the Section of Collections. | | `<<Content Rating>> Movies/Shows`<br>**Example:** `Age 5+ Movies` | `<<Number>>`<br>**Example:** `5` | Collection of Movies/Shows that have this Content Rating. | | `Not Rated Movies/Shows` | `other` | Collection of Movies/Shows that are Unrated, Not Rated or any other uncommon Ratings. | @@ -40,16 +40,16 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Collection Variables](../collection_variables) are available as well as the additional Variables below which can be used to customize the file. +All [Shared Collection Variables](../collection_variables.md) are available as well as the additional Variables below which can be used to customize the file. -This file contains a [Separator](../separators) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. +This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. | Variable | Description & Values | |:------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Values:** Number Greater than 0 | | `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | -| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../metadata/builders/smart.md#sort-options) | -| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../metadata/builders/smart.md#sort-options) | +| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | +| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | | `include` | **Description:** Overrides the [default include list](#default-include).<br>**Values:** List of Content Ratings found in your library | | `exclude` | **Description:** Exclude these Content Ratings from creating a Dynamic Collection.<br>**Values:** List of Content Ratings found in your library | | `addons` | **Description:** Overrides the [default addons dictionary](#default-addons). Defines how multiple keys can be combined under a parent key. The parent key doesn't have to already exist in Plex<br>**Values:** Dictionary List of Content Ratings found in your library | diff --git a/docs/defaults/both/content_rating_mal.md b/docs/defaults/both/content_rating_mal.md index bc125cb1..30299880 100644 --- a/docs/defaults/both/content_rating_mal.md +++ b/docs/defaults/both/content_rating_mal.md @@ -16,7 +16,7 @@ Recommendations: Use the [Mass Content Rating Update Library Operation](../../co | Collection | Key | Description | |:----------------------------------------------------------------|:---------------------------------------------|:-------------------------------------------------------------------------------| -| `Ratings Collections` | `separator` | [Separator Collection](../separators) to denote the Section of Collections. | +| `Ratings Collections` | `separator` | [Separator Collection](../separators.md) to denote the Section of Collections. | | `<<Content Rating>> Movies/Shows`<br>**Example:** `PG-13 Shows` | `<<Content Rating>>`<br>**Example:** `PG-13` | Collection of Shows that have this Content Rating. | | `Not Rated Movies/Shows` | `other` | Collection of Shows that are Unrated, Not Rated or any other uncommon Ratings. | @@ -40,16 +40,16 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Collection Variables](../collection_variables) are available as well as the additional Variables below which can be used to customize the file. +All [Shared Collection Variables](../collection_variables.md) are available as well as the additional Variables below which can be used to customize the file. -This file contains a [Separator](../separators) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. +This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. | Variable | Description & Values | |:------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Values:** Number Greater than 0 | | `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | -| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../metadata/builders/smart.md#sort-options) | -| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../metadata/builders/smart.md#sort-options) | +| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | +| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | | `include` | **Description:** Overrides the [default include list](#default-include).<br>**Values:** List of Content Ratings found in your library | | `exclude` | **Description:** Exclude these Content Ratings from creating a Dynamic Collection.<br>**Values:** List of Content Ratings found in your library | | `addons` | **Description:** Overrides the [default addons dictionary](#default-addons). Defines how multiple keys can be combined under a parent key. The parent key doesn't have to already exist in Plex<br>**Values:** Dictionary List of Content Ratings found in your library | diff --git a/docs/defaults/both/content_rating_uk.md b/docs/defaults/both/content_rating_uk.md index ef062289..b5e1e0b3 100644 --- a/docs/defaults/both/content_rating_uk.md +++ b/docs/defaults/both/content_rating_uk.md @@ -16,7 +16,7 @@ Recommendation: Set the Certification Country within your library's advanced set | Collection | Key | Description | |:--------------------------------------------------------------|:------------------------------------------|:--------------------------------------------------------------------------------------| -| `Ratings Collections` | `separator` | [Separator Collection](../separators) to denote the Section of Collections. | +| `Ratings Collections` | `separator` | [Separator Collection](../separators.md) to denote the Section of Collections. | | `<<Content Rating>> Movies/Shows`<br>**Example:** `15 Movies` | `<<Content Rating>>`<br>**Example:** `15` | Collection of Movies/Shows that have this Content Rating. | | `Not Rated Movies/Shows` | `other` | Collection of Movies/Shows that are Unrated, Not Rated or any other uncommon Ratings. | @@ -40,16 +40,16 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Collection Variables](../collection_variables) are available as well as the additional Variables below which can be used to customize the file. +All [Shared Collection Variables](../collection_variables.md) are available as well as the additional Variables below which can be used to customize the file. -This file contains a [Separator](../separators) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. +This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. | Variable | Description & Values | |:------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Values:** Number Greater than 0 | | `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | -| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../metadata/builders/smart.md#sort-options) | -| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../metadata/builders/smart.md#sort-options) | +| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | +| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | | `include` | **Description:** Overrides the [default include list](#default-include).<br>**Values:** List of Content Ratings found in your library | | `exclude` | **Description:** Exclude these Content Ratings from creating a Dynamic Collection.<br>**Values:** List of Content Ratings found in your library | | `addons` | **Description:** Overrides the [default addons dictionary](#default-addons). Defines how multiple keys can be combined under a parent key. The parent key doesn't have to already exist in Plex<br>**Values:** Dictionary List of Content Ratings found in your library | diff --git a/docs/defaults/both/genre.md b/docs/defaults/both/genre.md index dc6834a2..3cced26e 100644 --- a/docs/defaults/both/genre.md +++ b/docs/defaults/both/genre.md @@ -14,7 +14,7 @@ Supported Library Types: Movie, Show | Collection | Key | Description | |:---------------------------------------------------------|:---------------------------------|:----------------------------------------------------------------------------| -| `Genre Collections` | `separator` | [Separator Collection](../separators) to denote the Section of Collections. | +| `Genre Collections` | `separator` | [Separator Collection](../separators.md) to denote the Section of Collections. | | `<<Genre>> Movies/Shows`<br>**Example:** `Action Movies` | `<<Number>>`<br>**Example:** `5` | Collection of Movies/Shows that have this Genre. | ## Config @@ -37,16 +37,16 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Collection Variables](../collection_variables) are available as well as the additional Variables below which can be used to customize the file. +All [Shared Collection Variables](../collection_variables.md) are available as well as the additional Variables below which can be used to customize the file. -This file contains a [Separator](../separators) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. +This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. | Variable | Description & Values | |:------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Values:** Number Greater than 0 | | `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | -| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../metadata/builders/smart.md#sort-options) | -| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../metadata/builders/smart.md#sort-options) | +| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | +| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | | `exclude` | **Description:** Exclude these Genres from creating a Dynamic Collection.<br>**Values:** List of Genres found in your library | | `addons` | **Description:** Overrides the [default addons dictionary](#default-addons). Defines how multiple keys can be combined under a parent key. The parent key doesn't have to already exist in Plex<br>**Values:** Dictionary List of Genres found in your library | | `append_addons` | **Description:** Appends to the [default addons dictionary](#default-addons).<br>**Values:** Dictionary List of Genres found in your library | diff --git a/docs/defaults/both/resolution.md b/docs/defaults/both/resolution.md index df4b6dbf..e1a59e17 100644 --- a/docs/defaults/both/resolution.md +++ b/docs/defaults/both/resolution.md @@ -12,7 +12,7 @@ Supported Library Types: Movie, Show | Collection | Key | Description | |:-------------------------------------------------------------|:------------------------------------|:----------------------------------------------------------------------------| -| `Resolution Collections` | `separator` | [Separator Collection](../separators) to denote the Section of Collections. | +| `Resolution Collections` | `separator` | [Separator Collection](../separators.md) to denote the Section of Collections. | | `<<Resolution>> Movies/Shows`<br>**Example:** `1080p Movies` | `<<Number>>`<br>**Example:** `1080` | Collection of Movies/Shows that have this Resolution. | ### Standards Style @@ -43,17 +43,17 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Collection Variables](../collection_variables) are available as well as the additional Variables below which can be used to customize the file. +All [Shared Collection Variables](../collection_variables.md) are available as well as the additional Variables below which can be used to customize the file. -This file contains a [Separator](../separators) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. +This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. | Variable | Description & Values | |:------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `style` | **Description:** Controls the visual theme of the collections created.<table class="clearTable"><tr><th>Values:</th></tr><tr><td><code>default</code></td><td>Default Theme</td></tr><tr><td><code>standards</code></td><td>Standards Theme</td></tr></table> | | `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Values:** Number Greater than 0 | | `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | -| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../metadata/builders/smart.md#sort-options) | -| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../metadata/builders/smart.md#sort-options) | +| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | +| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | | `include` | **Description:** Overrides the [default include list](#default-include).<br>**Values:** Any Resolutions found in your library | | `exclude` | **Description:** Exclude these Resolutions from creating a Dynamic Collection.<br>**Values:** List of Resolutions found in your library | | `addons` | **Description:** Overrides the [default addons dictionary](#default-addons). Defines how multiple keys can be combined under a parent key. The parent key doesn't have to already exist in Plex<br>**Values:** Dictionary List of Resolutions found in your library | diff --git a/docs/defaults/both/streaming.md b/docs/defaults/both/streaming.md index 03f546ab..97ff4124 100644 --- a/docs/defaults/both/streaming.md +++ b/docs/defaults/both/streaming.md @@ -12,7 +12,7 @@ Supported Library Types: Movie, Show | Collection | Key | Description | |:---------------------------|:--------------|:----------------------------------------------------------------------------| -| `Streaming Collections` | `separator` | [Separator Collection](../separators) to denote the Section of Collections. | +| `Streaming Collections` | `separator` | [Separator Collection](../separators.md) to denote the Section of Collections. | | `All 4 Movies/Shows` | `all4` | Collection of Movies/Shows Streaming on All 4. | | `Apple TV+ Movies/Shows` | `appletv` | Collection of Movies/Shows Streaming on Apple TV+. | | `BET+ Movies/Shows` | `bet` | Collection of Movies/Shows Streaming on BET+. | @@ -51,16 +51,16 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Collection Variables](../collection_variables) are available as well as the additional Variables below which can be used to customize the file. +All [Shared Collection Variables](../collection_variables.md) are available as well as the additional Variables below which can be used to customize the file. -This file contains a [Separator](../separators) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. +This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. | Variable | Description & Values | |:--------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Values:** Number Greater than 0 | | `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | -| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../metadata/builders/smart.md#sort-options) | -| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../metadata/builders/smart.md#sort-options) | +| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | +| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | | `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | | `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | | `exclude` | **Description:** Exclude these Streaming Services from creating a Dynamic Collection.<br>**Values:** List of Streaming Service Keys | diff --git a/docs/defaults/both/studio.md b/docs/defaults/both/studio.md index 638a5f33..f119a24c 100644 --- a/docs/defaults/both/studio.md +++ b/docs/defaults/both/studio.md @@ -14,7 +14,7 @@ Supported Library Types: Movie, Show | Collection | Key | Description | |:-----------------------------------------------------|:-----------------------------------------------------|:----------------------------------------------------------------------------| -| `Studio Collections` | `separator` | [Separator Collection](../separators) to denote the Section of Collections. | +| `Studio Collections` | `separator` | [Separator Collection](../separators.md) to denote the Section of Collections. | | `<<Studio>>`<br>**Example:** `Blumhouse Productions` | `<<Studio>>`<br>**Example:** `Blumhouse Productions` | Collection of Movies/Shows that have this Studio. | ## Config @@ -37,16 +37,16 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Collection Variables](../collection_variables) are available as well as the additional Variables below which can be used to customize the file. +All [Shared Collection Variables](../collection_variables.md) are available as well as the additional Variables below which can be used to customize the file. -This file contains a [Separator](../separators) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. +This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. | Variable | Description & Values | |:------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Values:** Number Greater than 0 | | `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | -| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../metadata/builders/smart.md#sort-options) | -| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../metadata/builders/smart.md#sort-options) | +| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | +| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | | `include` | **Description:** Overrides the [default include list](#default-include).<br>**Values:** List of Studios found in your library | | `exclude` | **Description:** Exclude these Studios from creating a Dynamic Collection.<br>**Values:** List of Studios found in your library | | `addons` | **Description:** Overrides the [default addons dictionary](#default-addons). Defines how multiple keys can be combined under a parent key. The parent key doesn't have to already exist in Plex<br>**Values:** Dictionary List of Studios found in your library | diff --git a/docs/defaults/both/subtitle_language.md b/docs/defaults/both/subtitle_language.md index 9a5dee40..bcea066f 100644 --- a/docs/defaults/both/subtitle_language.md +++ b/docs/defaults/both/subtitle_language.md @@ -12,7 +12,7 @@ Supported Library Types: Movie, Show | Collection | Key | Description | |:---------------------------------------------------------|:------------------------------------------------------------------------------------------|:----------------------------------------------------------------------------| -| `Subtitle Language Collections` | `separator` | [Separator Collection](../separators) to denote the Section of Collections. | +| `Subtitle Language Collections` | `separator` | [Separator Collection](../separators.md) to denote the Section of Collections. | | `<<Subtitle Language>> Audio`<br>**Example:** `Japanese` | `<<ISO 639-1 Code>>`<br>**Example:** `ja` <br>`<<ISO 639-2 Code>>`<br>**Example:** `myn` | Collection of Movies/Shows that have this Subtitle Language. | | `Other Subtitles` | `other` | Collection of Movies/Shows that are less common Languages. | @@ -36,16 +36,16 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Collection Variables](../collection_variables) are available as well as the additional Variables below which can be used to customize the file. +All [Shared Collection Variables](../collection_variables.md) are available as well as the additional Variables below which can be used to customize the file. -This file contains a [Separator](../separators) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. +This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. | Variable | Description & Values | |:------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Values:** Number Greater than 0 | | `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | -| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../metadata/builders/smart.md#sort-options) | -| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../metadata/builders/smart.md#sort-options) | +| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | +| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | | `include` | **Description:** Overrides the [default include list](#default-include)<br>**Values:** List of [ISO 639-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes)<br>**Values:** List of [ISO 639-2 codes](https://en.wikipedia.org/wiki/List_of_ISO_639-2_codes) | | `exclude` | **Description:** Exclude these Audio Languages from creating a Dynamic Collection.<br>**Values:** List of [ISO 639-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes)<br>**Values:** List of [ISO 639-2 codes](https://en.wikipedia.org/wiki/List_of_ISO_639-2_codes) | | `append_include` | **Description:** Appends to the [default include list](#default-include)<br>**Values:** List of [ISO 639-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes)<br>**Values:** List of [ISO 639-2 codes](https://en.wikipedia.org/wiki/List_of_ISO_639-2_codes) | diff --git a/docs/defaults/both/universe.md b/docs/defaults/both/universe.md index 61d0faf9..8f2d10be 100644 --- a/docs/defaults/both/universe.md +++ b/docs/defaults/both/universe.md @@ -12,7 +12,7 @@ Supported Library Types: Movie & Show | Collection | Key | Description | |:-----------------------------|:------------|:----------------------------------------------------------------------------| -| `Universe Collections` | `separator` | [Separator Collection](../separators) to denote the Section of Collections. | +| `Universe Collections` | `separator` | [Separator Collection](../separators.md) to denote the Section of Collections. | | `Alien / Predator` | `avp` | Collection of Movies in the Alien / Predator Universe | | `Arrowverse` | `arrow` | Collection of Movies in the The Arrow Universe | | `DC Animated Universe` | `dca` | Collection of Movies in the DC Animated Universe | @@ -49,16 +49,16 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Collection Variables](../collection_variables) are available as well as the additional Variables below which can be used to customize the file. +All [Shared Collection Variables](../collection_variables.md) are available as well as the additional Variables below which can be used to customize the file. -This file contains a [Separator](../separators) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. +This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. | Variable | Description & Values | |:---------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | | `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | -| `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../metadata/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | -| `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../metadata/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | +| `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | +| `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | | `minimum_items` | **Description:** Controls the minimum items that the collection must have to be created.<br>**Default:** `2`<br>**Values:** Any number | | `name_mapping_<<key>>`<sup>1</sup> | **Description:** Sets the name mapping value for using assets of the specified key's collection. <br>**Values:** Any String | | `imdb_list_<<key>>`<sup>1</sup> | **Description:** Adds the Movies in the IMDb List to the specified key's collection.<br>**Values:** List of IMDb List URLs | | | diff --git a/docs/defaults/both/year.md b/docs/defaults/both/year.md index 854abc02..ad78c2e4 100644 --- a/docs/defaults/both/year.md +++ b/docs/defaults/both/year.md @@ -12,7 +12,7 @@ Supported Library Types: Movie, Show | Collection | Key | Description | |:--------------------------------------------------|:----------------------------------|:----------------------------------------------------------------------------| -| `Year Collections` | `separator` | [Separator Collection](../separators) to denote the Section of Collections. | +| `Year Collections` | `separator` | [Separator Collection](../separators.md) to denote the Section of Collections. | | `Best of <<Year>>`<br>**Example:** `Best of 2022` | `<<Year>>`<br>**Example:** `2022` | Collection of Movies/Shows that have this Year. | ## Config @@ -35,16 +35,16 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Collection Variables](../collection_variables) are available as well as the additional Variables below which can be used to customize the file. +All [Shared Collection Variables](../collection_variables.md) are available as well as the additional Variables below which can be used to customize the file. -This file contains a [Separator](../separators) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. +This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. | Variable | Description & Values | |:------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Default:** `10`<br>**Values:** Number Greater than 0 | | `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | -| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../metadata/builders/smart.md#sort-options) | -| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../metadata/builders/smart.md#sort-options) | +| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | +| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | | `data` | **Description:** Replaces the `data` dynamic collection value.<br><table class="clearTable"><tr><th>Attribute</th><th>Description & Values</th></tr><tr><td><code>starting</code></td><td>Controls the starting year for collections<hr><strong>Default:</strong> current_year-10<hr><strong>Values:</strong> Number greater than 0</td></tr><tr><td><code>ending</code></td><td>Controls the ending year for collections<hr><strong>Default:</strong> current_year<hr><strong>Values:</strong> Number greater than 1</td></tr><tr><td><code>increment</code></td><td>Controls the increment (i.e. every 5th year)<hr><strong>Default:</strong> 1<hr><strong>Values:</strong> Number greater than 0</td><td></td></tr></table><ul><li><strong><code>starting</code> and <code>ending</code> can also have the value <code>current_year</code></strong></li><li><strong>You can also use a value relative to the <code>current_year</code> by doing <code>current_year-5</code></strong></li></ul> | | `exclude` | **Description:** Exclude these Years from creating a Dynamic Collection.<br>**Values:** List of Years | diff --git a/docs/defaults/chart/anilist.md b/docs/defaults/chart/anilist.md index 9b5f1a8d..52e62a79 100644 --- a/docs/defaults/chart/anilist.md +++ b/docs/defaults/chart/anilist.md @@ -37,16 +37,16 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Collection Variables](../collection_variables) are available as well as the additional Variables below which can be used to customize the file. +All [Shared Collection Variables](../collection_variables.md) are available as well as the additional Variables below which can be used to customize the file. | Variable | Description & Values | |:---------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `limit` | **Description:** Changes the number of items in a collection for all collections in a Defaults file.<br>**Default:** `100`<br>**Values:** Number Greater than 0 | -| `limit_<<key>>`<sup>1</sup> | **Description:** Changes the number of items in a collection of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | +| `limit` | **Description:** Changes the number of items in a collection for all collections in a Defaults file.<br>**Default:** `100`<br>**Values:** Number greater then 0 | +| `limit_<<key>>`<sup>1</sup> | **Description:** Changes the number of items in a collection of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number greater then 0 | | `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | | `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | -| `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../metadata/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | -| `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../metadata/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | +| `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | +| `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | 1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. diff --git a/docs/defaults/chart/basic.md b/docs/defaults/chart/basic.md index 4f9be1ab..8724270e 100644 --- a/docs/defaults/chart/basic.md +++ b/docs/defaults/chart/basic.md @@ -35,15 +35,15 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Collection Variables](../collection_variables) are available as well as the additional Variables below which can be used to customize the file. +All [Shared Collection Variables](../collection_variables.md) are available as well as the additional Variables below which can be used to customize the file. | Variable | Description & Values | |:----------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `limit` | **Description:** Changes the Smart Filter Limit for all collections in a Defaults file.<br>**Values:** Number Greater than 0 | -| `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | -| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../metadata/builders/smart.md#sort-options) | -| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../metadata/builders/smart.md#sort-options) | -| `in_the_last_<<key>>`<sup>1</sup> | **Description:** Changes how far back the Smart Filter looks.<table class="clearTable"><tr><td>**Default:**</td></tr><tr><td>`released`</td><td>`90`</td></tr><tr><td>`episodes`</td><td>`7`</td></tr></table>**Values:** Number Greater than 0 | +| `limit` | **Description:** Changes the Smart Filter Limit for all collections in a Defaults file.<br>**Values:** Number Greater then 0 | +| `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater then 0 | +| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | +| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | +| `in_the_last_<<key>>`<sup>1</sup> | **Description:** Changes how far back the Smart Filter looks.<table class="clearTable"><tr><td>**Default:**</td></tr><tr><td>`released`</td><td>`90`</td></tr><tr><td>`episodes`</td><td>`7`</td></tr></table>**Values:** Number Greater then 0 | 1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. diff --git a/docs/defaults/chart/flixpatrol.md b/docs/defaults/chart/flixpatrol.md index d23c416e..81a6e8d9 100644 --- a/docs/defaults/chart/flixpatrol.md +++ b/docs/defaults/chart/flixpatrol.md @@ -11,10 +11,10 @@ Supported Library Types: Movie, Show ## Collections Section 020 | Collection | Key | Description | -|:----------------------------------|:------------|:---------------------------------------------------------------------------| +|:--------------------------------- |:------------|:---------------------------------------------------------------------------| | `Netflix Top 10 Movies/Shows` | `netflix` | Collection of the Top Movies/Shows on Netflix according to FlixPatrol. | | `Disney+ Top 10 Movies/Shows` | `disney` | Collection of the Top Movies/Shows on Disney+ according to FlixPatrol. | -| `MAX Top 10 Movies/Shows` | `max` | Collection of the Top Movies/Shows on MAX according to FlixPatrol. | +| `HBO Top 10 Movies/Shows` | `hbo` | Collection of the Top Movies/Shows on HBO according to FlixPatrol. | | `Hulu Top 10 Movies/Shows` | `hulu` | Collection of the Top Movies/Shows on Hulu according to FlixPatrol. | | `Paramount+ Top 10 Movies/Shows` | `paramount` | Collection of the Top Movies/Shows on Paramount+ according to FlixPatrol. | | `Prime Video Top 10 Movies/Shows` | `prime` | Collection of the Top Movies/Shows on Prime Video according to FlixPatrol. | @@ -40,20 +40,20 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Collection Variables](../collection_variables) are available as well as the additional Variables below which can be used to customize the file. +All [Shared Collection Variables](../collection_variables.md) are available as well as the additional Variables below which can be used to customize the file. | Variable | Description & Values | |:---------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Default:** `10`<br>**Values:** Any Number 1-10 | -| `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Any Number 1-10 | -| `in_the_last` | **Description:** Changes How many days of daily Top 10 Lists to look at.<br>**Default:** `1`<br>**Values:** Any Number 1-30 | -| `in_the_last_<<key>>`<sup>1</sup> | **Description:** Changes How many days of daily Top 10 Lists to look at.<br>**Default:** `in_the_last`<br>**Values:** Any Number 1-30 | -| `location` | **Description:** Changes the Builder Location for all collections in a Defaults file.<br>**Default:** `world`<br>**Values:** [`location` Attribute Options](../../metadata/builders/flixpatrol.md#top-platform-attributes) | -| `location_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Location of the specified key's collection.<br>**Default:** `location`<br>**Values:** [`location` Attribute Options](../../metadata/builders/flixpatrol.md#top-platform-attributes) | +| `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Default:** `10`<br>**Values:** Number Greater then 0 | +| `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater then 0 | +| `location` | **Description:** Changes the Builder Location for all collections in a Defaults file.<br>**Default:** `world`<br>**Values:** [`location` Attribute Options](../../builders/flixpatrol.md#top-platform-attributes) | +| `location_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Location of the specified key's collection.<br>**Default:** `location`<br>**Values:** [`location` Attribute Options](../../builders/flixpatrol.md#top-platform-attributes) | +| `time_window` | **Description:** Changes the Builder Time Window for all collections in a Defaults file.<br>**Default:** `last_week`<br>**Values:** [`time_window` Attribute Options](../../builders/flixpatrol.md#top-platform-attributes) | +| `time_window_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Time Window of the specified key's collection.<br>**Default:** `time_window`<br>**Values:** [`time_window` Attribute Options](../../builders/flixpatrol.md#top-platform-attributes) | | `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | | `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | -| `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../metadata/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | -| `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../metadata/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | +| `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | +| `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | 1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. @@ -66,4 +66,5 @@ libraries: - pmm: flixpatrol template_variables: location: united_states + time_window: last_month ``` diff --git a/docs/defaults/chart/imdb.md b/docs/defaults/chart/imdb.md index 2cc6e5c8..717b10c4 100644 --- a/docs/defaults/chart/imdb.md +++ b/docs/defaults/chart/imdb.md @@ -38,14 +38,14 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Collection Variables](../collection_variables) are available as well as the additional Variables below which can be used to customize the file. +All [Shared Collection Variables](../collection_variables.md) are available as well as the additional Variables below which can be used to customize the file. | Variable | Description & Values | |:---------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | | `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | -| `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../metadata/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | -| `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../metadata/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | +| `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | +| `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | 1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. diff --git a/docs/defaults/chart/myanimelist.md b/docs/defaults/chart/myanimelist.md index 23e35e08..4a8c5018 100644 --- a/docs/defaults/chart/myanimelist.md +++ b/docs/defaults/chart/myanimelist.md @@ -38,16 +38,16 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Collection Variables](../collection_variables) are available as well as the additional Variables below which can be used to customize the file. +All [Shared Collection Variables](../collection_variables.md) are available as well as the additional Variables below which can be used to customize the file. | Variable | Description & Values | |:---------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Default:** `100`<br>**Values:** Number Greater than 0 | -| `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | +| `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Default:** `100`<br>**Values:** Number Greater then 0 | +| `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater then 0 | | `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | | `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | -| `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../metadata/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | -| `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../metadata/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | +| `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | +| `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | 1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. diff --git a/docs/defaults/chart/other.md b/docs/defaults/chart/other.md index 27c78ae1..e9572a40 100644 --- a/docs/defaults/chart/other.md +++ b/docs/defaults/chart/other.md @@ -39,15 +39,15 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Collection Variables](../collection_variables) are available as well as the additional Variables below which can be used to customize the file. +All [Shared Collection Variables](../collection_variables.md) are available as well as the additional Variables below which can be used to customize the file. | Variable | Description & Values | |:---------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `limit_anidb` | **Description:** Changes the Builder Limit of the AniDB Popular Collection.<br>**Default:** `30`<br>**Values:** Number Greater than 0 | +| `limit_anidb` | **Description:** Changes the Builder Limit of the AniDB Popular Collection.<br>**Default:** `30`<br>**Values:** Number Greater then 0 | | `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | | `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | -| `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../metadata/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | -| `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../metadata/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | +| `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | +| `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | 1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. diff --git a/docs/defaults/chart/separator.md b/docs/defaults/chart/separator.md index e6df8067..76252876 100644 --- a/docs/defaults/chart/separator.md +++ b/docs/defaults/chart/separator.md @@ -12,7 +12,7 @@ Supported Library Types: Movie, Show | Collection | Key | Description | |:--------------------|:------------|:----------------------------------------------------------------------------| -| `Chart Collections` | `separator` | [Separator Collection](../separators) to denote the Section of Collections. | +| `Chart Collections` | `separator` | [Separator Collection](../separators.md) to denote the Section of Collections. | ## Config @@ -34,9 +34,9 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -**[Shared Collection Variables](../collection_variables) are NOT available to this default file.** +**[Shared Collection Variables](../collection_variables.md) are NOT available to this default file.** -This file contains only a [Separator](../separators) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available. +This file contains only a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available. The below is an example config.yml extract with some Template Variables added in to change how the file works. diff --git a/docs/defaults/chart/tautulli.md b/docs/defaults/chart/tautulli.md index d2a818d1..c0c5e772 100644 --- a/docs/defaults/chart/tautulli.md +++ b/docs/defaults/chart/tautulli.md @@ -8,7 +8,7 @@ The `tautulli` Default Metadata File is used to create collections based on Taut Supported Library Types: Movie, Show -Requirements: [Tautulli Authentication](../../config/tautulli) +Requirements: [Tautulli Authentication](../../config/tautulli.md) ## Collections Section 020 @@ -37,18 +37,18 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Collection Variables](../collection_variables) are available as well as the additional Variables below which can be used to customize the file. +All [Shared Collection Variables](../collection_variables.md) are available as well as the additional Variables below which can be used to customize the file. | Variable | Description & Values | |:---------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `list_days` | **Description:** Changes the `list_days` attribute of the builder for all collections in a Defaults file.<br>**Values:** Number Greater than 0 | -| `list_days_<<key>>`<sup>1</sup> | **Description:** Changes the `list_days` attribute of the builder of the specified key's collection.<br>**Values:** Number Greater than 0 | -| `list_size` | **Description:** Changes the `list_size` attribute of the builder for all collections in a Defaults file.<br>**Values:** Number Greater than 0 | -| `list_size_<<key>>`<sup>1</sup> | **Description:** Changes the `list_size` attribute of the builder of the specified key's collection.<br>**Values:** Number Greater than 0 | +| `list_days` | **Description:** Changes the `list_days` attribute of the builder for all collections in a Defaults file.<br>**Values:** Number greater then 0 | +| `list_days_<<key>>`<sup>1</sup> | **Description:** Changes the `list_days` attribute of the builder of the specified key's collection.<br>**Values:** Number greater then 0 | +| `list_size` | **Description:** Changes the `list_size` attribute of the builder for all collections in a Defaults file.<br>**Values:** Number greater then 0 | +| `list_size_<<key>>`<sup>1</sup> | **Description:** Changes the `list_size` attribute of the builder of the specified key's collection.<br>**Values:** Number greater then 0 | | `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | | `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | -| `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../metadata/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | -| `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../metadata/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | +| `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | +| `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | 1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. diff --git a/docs/defaults/chart/tmdb.md b/docs/defaults/chart/tmdb.md index 6668026f..3ac8be11 100644 --- a/docs/defaults/chart/tmdb.md +++ b/docs/defaults/chart/tmdb.md @@ -40,16 +40,16 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Collection Variables](../collection_variables) are available as well as the additional Variables below which can be used to customize the file. +All [Shared Collection Variables](../collection_variables.md) are available as well as the additional Variables below which can be used to customize the file. | Variable | Description & Values | |:---------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Default:** `100`<br>**Values:** Number Greater than 0 | -| `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | +| `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Default:** `100`<br>**Values:** Number Greater then 0 | +| `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater then 0 | | `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | | `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | -| `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../metadata/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | -| `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../metadata/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | +| `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | +| `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | 1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. diff --git a/docs/defaults/chart/trakt.md b/docs/defaults/chart/trakt.md index 5771e284..922a8316 100644 --- a/docs/defaults/chart/trakt.md +++ b/docs/defaults/chart/trakt.md @@ -8,18 +8,17 @@ The `trakt` Default Metadata File is used to create collections based on Trakt C Supported Library Types: Movie, Show -Requirements: [Trakt Authentication](../../config/trakt) +Requirements: [Trakt Authentication](../../config/trakt.md) ## Collections Section 020 -| Collection | Key | Description | -|:--------------------|:--------------|:----------------------------------------------------------| -| `Trakt Anticipated` | `anticipated` | Collection of the Most Anticipated Movies/Shows on Trakt. | -| `Trakt Collected` | `collected` | Collection of the Most Collected Movies/Shows on Trakt. | -| `Trakt Popular` | `popular` | Collection of the Most Popular Movies/Shows on Trakt. | -| `Trakt Recommended` | `recommended` | Collection of Recommended Movies/Shows on Trakt. | -| `Trakt Trending` | `trending` | Collection of Trending Movies/Shows on Trakt. | -| `Trakt Watched` | `watched` | Collection of the Most Watched Movies/Shows on Trakt. | +| Collection | Key | Description | +|:--------------------|:--------------|:--------------------------------------------------------| +| `Trakt Collected` | `collected` | Collection of the Most Collected Movies/Shows on Trakt. | +| `Trakt Popular` | `popular` | Collection of the Most Popular Movies/Shows on Trakt. | +| `Trakt Recommended` | `recommended` | Collection of Recommended Movies/Shows on Trakt. | +| `Trakt Trending` | `trending` | Collection of Trending Movies/Shows on Trakt. | +| `Trakt Watched` | `watched` | Collection of the Most Watched Movies/Shows on Trakt. | ## Config @@ -41,16 +40,16 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Collection Variables](../collection_variables) are available as well as the additional Variables below which can be used to customize the file. +All [Shared Collection Variables](../collection_variables.md) are available as well as the additional Variables below which can be used to customize the file. | Variable | Description & Values | |:---------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Default:** `100`<br>**Values:** Number Greater than 0 | -| `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | +| `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Default:** `100`<br>**Values:** Number Greater then 0 | +| `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater then 0 | | `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | | `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | -| `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../metadata/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | -| `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../metadata/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | +| `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | +| `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | 1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. diff --git a/docs/defaults/collection_list.md b/docs/defaults/collection_list.md index 6f84f172..95a6195a 100644 --- a/docs/defaults/collection_list.md +++ b/docs/defaults/collection_list.md @@ -8,99 +8,99 @@ These collections are applied by calling the below paths into the `metadata_path | Default | Path | Example Collections | Works with Movies | Works with Shows | |:------------------------------------------------|:------------------|:--------------------------------------------|:--------------------:|:-------------------:| -| [Award Separator](award/separator) | `separator_award` | Award Collections | ✅ | ✅ | -| [Academy Awards (Oscars)](award/oscars) | `oscars` | Best Picture Winners | ✅ | ❌ | -| [British Academy of Film Awards](award/bafta) | `bafta` | BAFTA Best Films, BAFTA 2021 | ✅<sup>1</sup> | ❌ | -| [Cannes Film Festival Awards](award/cannes) | `cannes` | Cannes - Palme d'or, Cannes 2018 | ✅<sup>1</sup> | ❌ | -| [Critics Choice Awards](award/choice) | `choice` | Critics Choice Awards 2020 | ✅<sup>1</sup> | ✅<sup>1</sup> | -| [Emmy Awards](award/emmy) | `emmy` | Emmys 2021 | ✅ | ✅ | -| [Golden Globe Awards](award/golden) | `golden` | Best Motion Pictures | ✅ | ✅ | -| [Independent Spirit Awards](award/spirit) | `spirit` | Independent Spirit Awards 2021 | ✅<sup>1</sup> | ❌ | -| [Sundance Film Festival Awards](award/sundance) | `sundance` | Sundance Grand Jury Winners | ✅<sup>1</sup> | ❌ | -| [Other Awards](award/other) | `other_award` | Berlinale Golden Bears, Venice Golden Lions | ✅<sup>1</sup> | ❌ | - -<sup>1</sup> Requires [Trakt Authentication](../config/trakt) +| [Award Separator](award/separator.md) | `separator_award` | Award Collections | ✅ | ✅ | +| [Academy Awards (Oscars)](award/oscars.md) | `oscars` | Best Picture Winners | ✅ | ❌ | +| [British Academy of Film Awards](award/bafta.md) | `bafta` | BAFTA Best Films, BAFTA 2021 | ✅<sup>1</sup> | ❌ | +| [Cannes Film Festival Awards](award/cannes.md) | `cannes` | Cannes - Palme d'or, Cannes 2018 | ✅<sup>1</sup> | ❌ | +| [Critics Choice Awards](award/choice.md) | `choice` | Critics Choice Awards 2020 | ✅<sup>1</sup> | ✅<sup>1</sup> | +| [Emmy Awards](award/emmy.md) | `emmy` | Emmys 2021 | ✅ | ✅ | +| [Golden Globe Awards](award/golden.md) | `golden` | Best Motion Pictures | ✅ | ✅ | +| [Independent Spirit Awards](award/spirit.md) | `spirit` | Independent Spirit Awards 2021 | ✅<sup>1</sup> | ❌ | +| [Sundance Film Festival Awards](award/sundance.md) | `sundance` | Sundance Grand Jury Winners | ✅<sup>1</sup> | ❌ | +| [Other Awards](award/other.md) | `other_award` | Berlinale Golden Bears, Venice Golden Lions | ✅<sup>1</sup> | ❌ | + +<sup>1</sup> Requires [Trakt Authentication](../config/trakt.md) ### Chart Collections | Default | Path | Example Collections | Works with Movies | Works with Shows | |:----------------------------------------|:------------------|:-------------------------------------------|:-------------------:|:-------------------:| -| [Chart Separator](chart/separator) | `separator_chart` | Chart Collections | ✅ | ✅ | -| [Basic Charts](chart/basic) | `basic` | Newly Released, New Episodes | ✅ | ✅ | -| [Tautulli Charts](chart/tautulli) | `tautulli` | Plex Popular, Plex Watched | ✅<sup>2</sup> | ✅<sup>2</sup> | -| [IMDb Charts](chart/imdb) | `imdb` | IMDb Popular, IMDb Top 250 | ✅ | ✅ | -| [TMDb Charts](chart/tmdb) | `tmdb` | TMDb Popular, TMDb Airing Today | ✅ | ✅ | -| [Trakt Charts](chart/trakt) | `trakt` | Trakt Popular, Trakt Trending | ✅<sup>1</sup> | ✅<sup>1</sup> | -| [FlixPatrol Charts](chart/flixpatrol) | `flixpatrol` | Top Disney, Top Max, Top Hulu, Top Netflix | ✅ | ✅ | -| [AniList Charts](chart/anilist) | `anilist` | AniList Popular, AniList Season | ✅ | ✅ | -| [MyAnimeList Charts](chart/myanimelist) | `myanimelist` | MyAnimeList Popular, MyAnimeList Top Rated | ✅ | ✅ | -| [Other Charts](chart/other) | `other_chart` | AniDB Popular, Common Sense Selection | ✅ | ✅ | - -<sup>1</sup> Requires [Trakt Authentication](../config/trakt) -<sup>2</sup> Requires [Tautulli Authentication](../config/tautulli) +| [Chart Separator](chart/separator.md) | `separator_chart` | Chart Collections | ✅ | ✅ | +| [Basic Charts](chart/basic.md) | `basic` | Newly Released, New Episodes | ✅ | ✅ | +| [Tautulli Charts](chart/tautulli.md) | `tautulli` | Plex Popular, Plex Watched | ✅<sup>2</sup> | ✅<sup>2</sup> | +| [IMDb Charts](chart/imdb.md) | `imdb` | IMDb Popular, IMDb Top 250 | ✅ | ✅ | +| [TMDb Charts](chart/tmdb.md) | `tmdb` | TMDb Popular, TMDb Airing Today | ✅ | ✅ | +| [Trakt Charts](chart/trakt.md) | `trakt` | Trakt Popular, Trakt Trending | ✅<sup>1</sup> | ✅<sup>1</sup> | +| [FlixPatrol Charts](chart/flixpatrol.md) | `flixpatrol` | Top Disney, Top Max, Top Hulu, Top Netflix | ✅ | ✅ | +| [AniList Charts](chart/anilist.md) | `anilist` | AniList Popular, AniList Season | ✅ | ✅ | +| [MyAnimeList Charts](chart/myanimelist.md) | `myanimelist` | MyAnimeList Popular, MyAnimeList Top Rated | ✅ | ✅ | +| [Other Charts](chart/other.md) | `other_chart` | AniDB Popular, Common Sense Selection | ✅ | ✅ | + +<sup>1</sup> Requires [Trakt Authentication](../config/trakt.md) +<sup>2</sup> Requires [Tautulli Authentication](../config/tautulli.md) ### Content Collections | Default | Path | Example Collections | Works with Movies | Works with Shows | |:-----------------------------------------------------------|:------------|:--------------------------------------------|:-----------------:|:----------------:| -| [Genres](both/genre) | `genre` | Action, Drama, Science Fiction | ✅ | ✅ | -| Franchises [Movie](movie/franchise)/[Show](show/franchise) | `franchise` | Star Wars: Skywalker Saga, Godzilla (Anime) | ✅ | ✅ | -| [Universes](both/universe) | `universe` | Marvel Cinematic Universal, Wizarding World | ✅ | ✅ | -| [Based On...](both/based) | `based` | Based on a Book, Based on a True Story | ✅ | ✅ | +| [Genres](both/genre.md) | `genre` | Action, Drama, Science Fiction | ✅ | ✅ | +| Franchises [Movie](movie/franchise.md)/[Show](show/franchise.md) | `franchise` | Star Wars: Skywalker Saga, Godzilla (Anime) | ✅ | ✅ | +| [Universes](both/universe.md) | `universe` | Marvel Cinematic Universal, Wizarding World | ✅ | ✅ | +| [Based On...](both/based.md) | `based` | Based on a Book, Based on a True Story | ✅ | ✅ | ### Content Rating Collections | Default | Path | Example Collections | Works with Movies | Works with Shows | |:-----------------------------------------------------------------------------------|:---------------------|:---------------------------------|:-----------------:|:----------------:| -| US Content Ratings [Movie](movie/content_rating_us)/[Show](show/content_rating_us) | `content_rating_us` | G, PG, NC-17 | ✅ | ✅ | -| [UK Content Ratings](both/content_rating_uk) | `content_rating_uk` | U, PG, 12A | ✅ | ✅ | -| [MyAnimeList Content Ratings](both/content_rating_mal) | `content_rating_mal` | G, PG, PG-13, R, R+, Rx | ✅ | ✅ | -| [Common Sense Media Content Ratings](both/content_rating_cs) | `content_rating_cs` | 1, 2, 3, 4, 5, 6, 15, 16, 17, 18 | ✅ | ✅ | +| US Content Ratings [Movie](movie/content_rating_us.md)/[Show](show/content_rating_us.md) | `content_rating_us` | G, PG, NC-17 | ✅ | ✅ | +| [UK Content Ratings](both/content_rating_uk.md) | `content_rating_uk` | U, PG, 12A | ✅ | ✅ | +| [MyAnimeList Content Ratings](both/content_rating_mal.md) | `content_rating_mal` | G, PG, PG-13, R, R+, Rx | ✅ | ✅ | +| [Common Sense Media Content Ratings](both/content_rating_cs.md) | `content_rating_cs` | 1, 2, 3, 4, 5, 6, 15, 16, 17, 18 | ✅ | ✅ | ### Location Collections | Default | Path | Example Collections | Works with Movies | Works with Shows | |:-----------------------------------------------------------|:------------|:-----------------------|:-----------------:|:----------------:| -| Countries [Movie](movie/country)/[Show](show/country) | `country` | Belgium, India | ✅ | ✅ | -| Regions [Movie](movie/region)/[Show](show/region) | `region` | Iberia, Balkans | ✅ | ✅ | -| Continents [Movie](movie/continent)/[Show](show/continent) | `continent` | Asia, North America | ✅ | ✅ | +| Countries [Movie](movie/country.md)/[Show](show/country.md) | `country` | Belgium, India | ✅ | ✅ | +| Regions [Movie](movie/region.md)/[Show](show/region.md) | `region` | Iberia, Balkans | ✅ | ✅ | +| Continents [Movie](movie/continent.md)/[Show](show/continent.md) | `continent` | Asia, North America | ✅ | ✅ | ### Media Collections | Default | Path | Example Collections | Works with Movies | Works with Shows | |:---------------------------------------------|:--------------------|:-------------------------------------|:-----------------:|:----------------:| -| [Aspect Ratios](both/aspect) | `aspect` | 1.33, 1.65, 1.78, 1.85, 2.77 | ✅ | ✅ | -| [Resolutions](both/resolution) | `resolution` | 4K Movies, 1080p Movies, 720p Movies | ✅ | ✅ | -| [Audio Languages](both/audio_language) | `audio_language` | French Audio, Korean Audio | ✅ | ✅ | -| [Subtitle Languages](both/subtitle_language) | `subtitle_language` | German Subtitles, Swedish Subtitles | ✅ | ✅ | +| [Aspect Ratios](both/aspect.md) | `aspect` | 1.33, 1.65, 1.78, 1.85, 2.77 | ✅ | ✅ | +| [Resolutions](both/resolution.md) | `resolution` | 4K Movies, 1080p Movies, 720p Movies | ✅ | ✅ | +| [Audio Languages](both/audio_language.md) | `audio_language` | French Audio, Korean Audio | ✅ | ✅ | +| [Subtitle Languages](both/subtitle_language.md) | `subtitle_language` | German Subtitles, Swedish Subtitles | ✅ | ✅ | ### Production Collections | Default | Path | Example Collections | Works with Movies | Works with Shows | |:----------------------------|:------------|:-----------------------------------------|:-----------------:|:----------------:| -| [Networks](show/network) | `network` | Disney Channel, Lifetime | ❌ | ✅ | -| [Streaming](both/streaming) | `streaming` | Disney+ Movies, Max Shows | ✅ | ✅ | -| [Studios](both/studio) | `studio` | DreamWorks Studios, Walt Disney Pictures | ✅ | ✅ | +| [Networks](show/network.md) | `network` | Disney Channel, Lifetime | ❌ | ✅ | +| [Streaming](both/streaming.md) | `streaming` | Disney+ Movies, Max Shows | ✅ | ✅ | +| [Studios](both/studio.md) | `studio` | DreamWorks Studios, Walt Disney Pictures | ✅ | ✅ | ### People Collections | Default | Path | Example Collections | Works with Movies | Works with Shows | |:----------------------------|:-----------|:-------------------------------------------------------|:-----------------:|:----------------:| -| [Actors](both/actor) | `actor` | Chris Hemsworth, Margot Robbie | ✅ | ✅ | -| [Directors](movie/director) | `director` | Steven Spielberg (Director), Olivia Wilde (Director) | ✅ | ❌ | -| [Producers](movie/producer) | `producer` | James Cameron (Producer), Reese Witherspoon (Producer) | ✅ | ❌ | -| [Writers](movie/writer) | `writer` | James Cameron (Writer), Lilly Wachowski (Writer) | ✅ | ❌ | +| [Actors](both/actor.md) | `actor` | Chris Hemsworth, Margot Robbie | ✅ | ✅ | +| [Directors](movie/director.md) | `director` | Steven Spielberg (Director), Olivia Wilde (Director) | ✅ | ❌ | +| [Producers](movie/producer.md) | `producer` | James Cameron (Producer), Reese Witherspoon (Producer) | ✅ | ❌ | +| [Writers](movie/writer.md) | `writer` | James Cameron (Writer), Lilly Wachowski (Writer) | ✅ | ❌ | ### Time Collections | Default | Path | Example Collections | Works with Movies | Works with Shows | |:--------------------------------------------------|:-----------|:---------------------------|:-----------------:|:----------------:| -| [Seasonal](movie/seasonal) | `seasonal` | Easter, Christmas | ✅ | ❌ | -| [Years](both/year) | `year` | Best of 2010, Best of 2019 | ✅ | ✅ | -| Decades [Movie](movie/decade)/[Show](show/decade) | `decade` | Best of 2012, Best of 2022 | ✅ | ✅ | +| [Seasonal](movie/seasonal.md) | `seasonal` | Easter, Christmas | ✅ | ❌ | +| [Years](both/year.md) | `year` | Best of 2010, Best of 2019 | ✅ | ✅ | +| Decades [Movie](movie/decade.md)/[Show](show/decade.md) | `decade` | Best of 2012, Best of 2022 | ✅ | ✅ | ### Utility Collections | Default | Path | Example Collections | Works with Movies | Works with Shows | |:--------------------------------------|:-----------------|:-------------------------|:-----------------:|:----------------:| -| [Collectionless](both/collectionless) | `collectionless` | Collectionless | ✅ | ✅ | +| [Collectionless](both/collectionless.md) | `collectionless` | Collectionless | ✅ | ✅ | diff --git a/docs/defaults/collection_variables.md b/docs/defaults/collection_variables.md index 4c2e0b1e..a0324ef2 100644 --- a/docs/defaults/collection_variables.md +++ b/docs/defaults/collection_variables.md @@ -1,8 +1,8 @@ # Shared Collection Template Variables -IMPORTANT: The variables in this table are only valid in the context of the [`PMM default metadata files`](guide). +IMPORTANT: The variables in this table are only valid in the context of the [`PMM default metadata files`](guide.md. -There are some `template_variables` that all the PMM Defaults except [`franchise`](movie/franchise) and [`collectionless`](both/collectionless) can use to manipulate the file from the default settings which are provided. This page is not an exhaustive list of all such template variables. +There are some `template_variables` that all the PMM Defaults except [`franchise`](movie/franchise.md) and [`collectionless`](both/collectionless.md) can use to manipulate the file from the default settings which are provided. This page is not an exhaustive list of all such template variables. The variables listed on this page are common to all default collection files [aside from `franchise` and `collectionless`]; each individual collection file *may* have other template variables available. Those will be listed on the wiki page for each individual default collection file. @@ -37,16 +37,16 @@ Below are the common variables which can be used to customize the file. | `url_background__<<key>>`<sup>1</sup> | **Description:** Sets the background url of the specified key's collection.<br>**Values:** URL directly to the Image | | `file_background` | **Description:** Sets the background filepath for all collections.<br>**Values:** Filepath directly to the Image | | `file_background__<<key>>`<sup>1</sup> | **Description:** Sets the background filepath of the specified key's collection.<br>**Values:** Filepath directly to the Image | -| `visible_library` | **Description:** Controls visible on Library Recommended Tab for all collections in a Defaults file. (Only works with Plex Pass)<br>**Values:**<table class="clearTable"><tr><td>`true`</td><td>Visible</td></tr><tr><td>`false`</td><td>Not Visible</td></tr><tr><td>[Any `schedule` Option](../metadata/details/schedule)</td><td>Visible When Scheduled</td></tr></table> | -| `visible_library_<<key>>`<sup>1</sup> | **Description:** Controls visible on Library Recommended Tab of the specified key's collection. (Only works with Plex Pass)<br>**Default:** `visible_library`<br>**Values:**<table class="clearTable"><tr><td>`true`</td><td>Visible</td></tr><tr><td>`false`</td><td>Not Visible</td></tr><tr><td>[Any `schedule` Option](../metadata/details/schedule)</td><td>Visible When Scheduled</td></tr></table> | -| `visible_home` | **Description:** Controls visible on Home Tab for all collections in a Defaults file. (Only works with Plex Pass)<br>**Values:**<table class="clearTable"><tr><td>`true`</td><td>Visible</td></tr><tr><td>`false`</td><td>Not Visible</td></tr><tr><td>[Any `schedule` Option](../metadata/details/schedule)</td><td>Visible When Scheduled</td></tr></table> | -| `visible_home_<<key>>`<sup>1</sup> | **Description:** Controls visible on Home Tab of the specified key's collection. (Only works with Plex Pass)<br>**Default:** `visible_home`<br>**Values:**<table class="clearTable"><tr><td>`true`</td><td>Visible</td></tr><tr><td>`false`</td><td>Not Visible</td></tr><tr><td>[Any `schedule` Option](../metadata/details/schedule)</td><td>Visible When Scheduled</td></tr></table> | -| `visible_shared` | **Description:** Controls visible on Shared Users' Home Tab for all collections in a Defaults file. (Only works with Plex Pass)<br>**Values:**<table class="clearTable"><tr><td>`true`</td><td>Visible</td></tr><tr><td>`false`</td><td>Not Visible</td></tr><tr><td>[Any `schedule` Option](../metadata/details/schedule)</td><td>Visible When Scheduled</td></tr></table> | -| `visible_shared_<<key>>`<sup>1</sup> | **Description:** Controls visible on Shared Users' Home Tab of the specified key's collection. (Only works with Plex Pass)<br>**Default:** `visible_shared`<br>**Values:**<table class="clearTable"><tr><td>`true`</td><td>Visible</td></tr><tr><td>`false`</td><td>Not Visible</td></tr><tr><td>[Any `schedule` Option](../metadata/details/schedule)</td><td>Visible When Scheduled</td></tr></table> | +| `visible_library` | **Description:** Controls visible on Library Recommended Tab for all collections in a Defaults file. (Only works with Plex Pass)<br>**Values:**<table class="clearTable"><tr><td>`true`</td><td>Visible</td></tr><tr><td>`false`</td><td>Not Visible</td></tr><tr><td>[Any `schedule` Option](../builders/details/schedule.md)</td><td>Visible When Scheduled</td></tr></table> | +| `visible_library_<<key>>`<sup>1</sup> | **Description:** Controls visible on Library Recommended Tab of the specified key's collection. (Only works with Plex Pass)<br>**Default:** `visible_library`<br>**Values:**<table class="clearTable"><tr><td>`true`</td><td>Visible</td></tr><tr><td>`false`</td><td>Not Visible</td></tr><tr><td>[Any `schedule` Option](../builders/details/schedule.md)</td><td>Visible When Scheduled</td></tr></table> | +| `visible_home` | **Description:** Controls visible on Home Tab for all collections in a Defaults file. (Only works with Plex Pass)<br>**Values:**<table class="clearTable"><tr><td>`true`</td><td>Visible</td></tr><tr><td>`false`</td><td>Not Visible</td></tr><tr><td>[Any `schedule` Option](../builders/details/schedule.md)</td><td>Visible When Scheduled</td></tr></table> | +| `visible_home_<<key>>`<sup>1</sup> | **Description:** Controls visible on Home Tab of the specified key's collection. (Only works with Plex Pass)<br>**Default:** `visible_home`<br>**Values:**<table class="clearTable"><tr><td>`true`</td><td>Visible</td></tr><tr><td>`false`</td><td>Not Visible</td></tr><tr><td>[Any `schedule` Option](../builders/details/schedule.md)</td><td>Visible When Scheduled</td></tr></table> | +| `visible_shared` | **Description:** Controls visible on Shared Users' Home Tab for all collections in a Defaults file. (Only works with Plex Pass)<br>**Values:**<table class="clearTable"><tr><td>`true`</td><td>Visible</td></tr><tr><td>`false`</td><td>Not Visible</td></tr><tr><td>[Any `schedule` Option](../builders/details/schedule.md)</td><td>Visible When Scheduled</td></tr></table> | +| `visible_shared_<<key>>`<sup>1</sup> | **Description:** Controls visible on Shared Users' Home Tab of the specified key's collection. (Only works with Plex Pass)<br>**Default:** `visible_shared`<br>**Values:**<table class="clearTable"><tr><td>`true`</td><td>Visible</td></tr><tr><td>`false`</td><td>Not Visible</td></tr><tr><td>[Any `schedule` Option](../builders/details/schedule.md)</td><td>Visible When Scheduled</td></tr></table> | | `radarr_add_missing` | **Description:** Override Radarr `add_missing` attribute for all collections in a Defaults file.<br>**Values:** `true` or `false` | | `radarr_add_missing_<<key>>`<sup>1</sup> | **Description:** Override Radarr `add_missing` attribute of the specified key's collection.<br>**Default:** `radarr_add_missing`<br>**Values:** `true` or `false` | | `radarr_folder` | **Description:** Override Radarr `root_folder_path` attribute for all collections in a Defaults file.<br>**Values:** Folder Path | -| `radarr_folder_<<key>>`<sup>1</sup> | **Description:** Override Radarr `root_folder_path` attribute of the specified key's collection.<br>**Default:** `radarr_folder`<br>**Values:** Folder Path | +| `radarr_folder_<<key>>`<sup>1</sup> | **Description:** Override Radarr `root_folder_path` attribute of the specified key's collection.<br>**Default:** `radarr_folder`<br>**Values:** Folder Path [schedule.md](..%2Fbuilders%2Fdetails%2Fschedule.md) | | `radarr_search` | **Description:** Override Radarr `search` attribute or all collections in a Defaults file.<br>**Values:** `true` or `false` | | `radarr_search_<<key>>`<sup>1</sup> | **Description:** Override Radarr `search` attribute of the specified key's collection.<br>**Default:** `radarr_search`<br>**Values:** `true` or `false` | | `radarr_tag` | **Description:** Override Radarr `tag` attribute for all collections in a Defaults file.<br>**Values:** List or comma-separated string of tags | diff --git a/docs/defaults/collections.md b/docs/defaults/collections.md index bd3744ae..c510bfcb 100644 --- a/docs/defaults/collections.md +++ b/docs/defaults/collections.md @@ -4,8 +4,10 @@ There are many Default Metadata Files built into PMM itself which offer an easy- This is the simplest way to create Collections using Plex Meta Manager. -```{include} collection_list.md -``` +{% + include-markdown "./collection_list.md" + +%} ## Configurations @@ -117,9 +119,9 @@ libraries: visible_shared_top: true ``` -Each file has a page on the wiki showing the available `template_variables` for each file. For example the default `pmm: genre` has a page [here](both/genre). +Each file has a page on the wiki showing the available `template_variables` for each file. For example the default `pmm: genre` has a page [here](both/genre.md). -**In addition to the defined `template_variables` almost all default Metadata files have access to the [Shared Variables](collection_variables).** +**In addition to the defined `template_variables` almost all default Metadata files have access to the [Shared Variables](collection_variables.md).** ### Examples @@ -188,5 +190,6 @@ libraries: use_separator: false ``` -```{include} example.md -``` \ No newline at end of file +{% + include-markdown "./example.md" +%} \ No newline at end of file diff --git a/docs/defaults/files.md b/docs/defaults/files.md index 5a8edac1..ce14e07d 100644 --- a/docs/defaults/files.md +++ b/docs/defaults/files.md @@ -2,11 +2,13 @@ The below table outlines the available Defaults files which can be called via `metadata_path` (for Collections), `overlay_path` (for Overlays) and `playlist_files` (for Playlists). -```{include} collection_list.md -``` +{% + include-markdown "./collection_list.md" +%} -```{include} overlay_list.md -``` +{% + include-markdown "./overlay_list.md" +%} ## Playlists @@ -16,4 +18,4 @@ These files apply playlists to the "Playlists" section of Plex and are applied b | Default | path | Example Overlays | |:---------------------|:-----------|:-------------------------------------------------------| -| [Playlist](playlist) | `playlist` | Arrowverse (Timeline Order), Pokémon (Timeline Order) | +| [Playlist](playlist.md) | `playlist` | Arrowverse (Timeline Order), Pokémon (Timeline Order) | diff --git a/docs/defaults/guide.md b/docs/defaults/guide.md index 23ba1ad3..29c349a6 100644 --- a/docs/defaults/guide.md +++ b/docs/defaults/guide.md @@ -14,7 +14,7 @@ Please consider [donating](https://github.com/sponsors/meisnate12) towards the p ## Collection Defaults -See the [Collection Defaults](collections) Page for more information on the specifics of the Collection Defaults. +See the [Collection Defaults](collections.md) Page for more information on the specifics of the Collection Defaults. ## Overlay Defaults @@ -58,9 +58,10 @@ libraries: builder_level: episode ``` -Each file has a page on the wiki showing the available `template_variables` for each file. For example the default `pmm: ratings` has a page [here](overlays/ratings). +Each file has a page on the wiki showing the available `template_variables` for each file. For example the default `pmm: ratings` has a page [here](overlays/ratings.md). -**In addition to the defined `template_variables` almost all default Metadata and Overlay files have access to their respective [Metadata](collection_variables)/[Overlay](overlay_variables.md) Shared Variables.** +**In addition to the defined `template_variables` almost all default Metadata and Overlay files have access to their respective [Metadata](collection_variables.md)/[Overlay](overlay_variables.md) Shared Variables.** -```{include} example.md -``` +{% + include-markdown "./example.md" +%} diff --git a/docs/defaults/movie/content_rating_us.md b/docs/defaults/movie/content_rating_us.md index af71223c..433c42e5 100644 --- a/docs/defaults/movie/content_rating_us.md +++ b/docs/defaults/movie/content_rating_us.md @@ -4,7 +4,7 @@ The `content_rating_us` Default Metadata File is used to dynamically create coll If you do not use the US-based rating system within Plex, this file will attempt to match the ratings in your library to the respective rating system. -**This file has a Show Library [Counterpart](../show/content_rating_us).** +**This file has a Show Library [Counterpart](../show/content_rating_us.md).** ![](../images/moviecontent_rating_us.png) @@ -18,7 +18,7 @@ Recommendation: Set the Certification Country within your library's advanced set | Collection | Key | Description | |:-------------------------------------------------------|:-----------------------------------------|:--------------------------------------------------------------------------------| -| `Country Collections` | `separator` | [Separator Collection](../separators) to denote the Section of Collections. | +| `Country Collections` | `separator` | [Separator Collection](../separators.md) to denote the Section of Collections. | | `<<Content Rating>> Movies`<br>**Example:** `R Movies` | `<<Content Rating>>`<br>**Example:** `R` | Collection of Movies that have this Content Rating. | | `Not Rated Movies` | `other` | Collection of Movies that are Unrated, Not Rated or any other uncommon Ratings. | @@ -39,16 +39,16 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Collection Variables](../collection_variables) are available as well as the additional Variables below which can be used to customize the file. +All [Shared Collection Variables](../collection_variables.md) are available as well as the additional Variables below which can be used to customize the file. -This file contains a [Separator](../separators) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. +This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. | Variable | Description & Values | |:------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Values:** Number Greater than 0 | | `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | -| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../metadata/builders/smart.md#sort-options) | -| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../metadata/builders/smart.md#sort-options) | +| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | +| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | | `include` | **Description:** Overrides the [default include list](#default-include).<br>**Values:** List of Content Ratings found in your library | | `exclude` | **Description:** Exclude these Content Ratings from creating a Dynamic Collection.<br>**Values:** List of Content Ratings found in your library | | `addons` | **Description:** Overrides the [default addons dictionary](#default-addons). Defines how multiple keys can be combined under a parent key. The parent key doesn't have to already exist in Plex<br>**Values:** Dictionary List of Content Ratings found in your library | diff --git a/docs/defaults/movie/continent.md b/docs/defaults/movie/continent.md index 85b3f57f..7b2a7d56 100644 --- a/docs/defaults/movie/continent.md +++ b/docs/defaults/movie/continent.md @@ -2,7 +2,7 @@ The `continent` Default Metadata File is used to dynamically create collections based on the countries within your library. The collection aims to be inclusive, with all 230 countries incorporated into seven continents. -**This file has a Show Library [Counterpart](../show/continent).** +**This file has a Show Library [Counterpart](../show/continent.md).** ![](../images/continent1.png) @@ -14,7 +14,7 @@ Supported Library Types: Movie | Collection | Key | Description | |:------------------------------------------------|:------------------------------------------------|:----------------------------------------------------------------------------| -| `Continent Collections` | `separator` | [Separator Collection](../separators) to denote the Section of Collections. | +| `Continent Collections` | `separator` | [Separator Collection](../separators.md) to denote the Section of Collections. | | `<<Continent>>`<br>**Example:** `South America` | `<<Continent>>`<br>**Example:** `South America` | Collection of Movies that have this Continent. | | `Other Continents` | `other` | Collection of Movies that are in other uncommon Continents. | @@ -41,17 +41,17 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Collection Variables](../collection_variables) are available as well as the additional Variables below which can be used to customize the file. +All [Shared Collection Variables](../collection_variables.md) are available as well as the additional Variables below which can be used to customize the file. -This file contains a [Separator](../separators) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. +This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. | Variable | Description & Values | |:------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `style` | **Description:** Controls the visual theme of the collections created<table class="clearTable"><tr><th>Values:</th></tr><tr><td><code>white</code></td><td>White Theme</td></tr><tr><td><code>color</code></td><td>Color Theme</td></tr></table> | | `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Values:** Number Greater than 0 | | `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | -| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../metadata/builders/smart.md#sort-options) | -| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../metadata/builders/smart.md#sort-options) | +| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | +| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | | `include` | **Description:** Overrides the [default include list](#default-include).<br>**Values:** List of Countries found in your library | | `exclude` | **Description:** Exclude these Countries from creating a Dynamic Collection.<br>**Values:** List of Countries found in your library | | `addons` | **Description:** Overrides the [default addons dictionary](#default-addons). Defines how multiple keys can be combined under a parent key. The parent key doesn't have to already exist in Plex<br>**Values:** Dictionary List of Countries found in your library | diff --git a/docs/defaults/movie/country.md b/docs/defaults/movie/country.md index d732fba6..3be54db5 100644 --- a/docs/defaults/movie/country.md +++ b/docs/defaults/movie/country.md @@ -2,7 +2,7 @@ The `country` Default Metadata File is used to dynamically create collections based on the countries available in your library. -**This file has a Show Library [Counterpart](../show/country).** +**This file has a Show Library [Counterpart](../show/country.md).** ![](../images/country1.png) @@ -14,7 +14,7 @@ Supported Library Types: Movie | Collection | Key | Description | |:----------------------------------------|:----------------------------------------|:----------------------------------------------------------------------------| -| `Country Collections` | `separator` | [Separator Collection](../separators) to denote the Section of Collections. | +| `Country Collections` | `separator` | [Separator Collection](../separators.md) to denote the Section of Collections. | | `<<Country>>`<br>**Example:** `Germany` | `<<Country>>`<br>**Example:** `Germany` | Collection of Movies that have this Country. | | `Other Countries` | `other` | Collection of Movies that are in other uncommon Countries. | @@ -41,17 +41,17 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Collection Variables](../collection_variables) are available as well as the additional Variables below which can be used to customize the file. +All [Shared Collection Variables](../collection_variables.md) are available as well as the additional Variables below which can be used to customize the file. -This file contains a [Separator](../separators) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. +This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. | Variable | Description & Values | |:------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `style` | **Description:** Controls the visual theme of the collections created<table class="clearTable"><tr><th>Values:</th></tr><tr><td><code>white</code></td><td>White Theme</td></tr><tr><td><code>color</code></td><td>Color Theme</td></tr></table> | | `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Values:** Number Greater than 0 | | `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | -| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../metadata/builders/smart.md#sort-options) | -| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../metadata/builders/smart.md#sort-options) | +| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | +| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | | `include` | **Description:** Overrides the [default include list](#default-include).<br>**Values:** List of Countries found in your library | | `exclude` | **Description:** Exclude these Countries from creating a Dynamic Collection.<br>**Values:** List of Countries found in your library | | `addons` | **Description:** Overrides the [default addons dictionary](#default-addons). Defines how multiple keys can be combined under a parent key. The parent key doesn't have to already exist in Plex<br>**Values:** Dictionary List of Countries found in your library | diff --git a/docs/defaults/movie/decade.md b/docs/defaults/movie/decade.md index 9b29e667..1d70380a 100644 --- a/docs/defaults/movie/decade.md +++ b/docs/defaults/movie/decade.md @@ -2,7 +2,7 @@ The `decade` Default Metadata File is used to dynamically create collections based on the decades available in your library, sorted by critic rating to create a "best of <decade>" -**This file works has a Show Library [Counterpart](../show/decade).** +**This file works has a Show Library [Counterpart](../show/decade.md).** ![](../images/decade.png) @@ -14,7 +14,7 @@ Supported Library Types: Movie | Collection | Key | Description | |:-----------------------------------------------------|:----------------------------------|:----------------------------------------------------------------------------| -| `Decade Collections` | `separator` | [Separator Collection](../separators) to denote the Section of Collections. | +| `Decade Collections` | `separator` | [Separator Collection](../separators.md) to denote the Section of Collections. | | `Best of <<Decade>>`<br>**Example:** `Best of 2020s` | `<<Year>>`<br>**Example:** `2020` | Collection of Movies released in this Decade. | ## Config @@ -34,16 +34,16 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Collection Variables](../collection_variables) are available as well as the additional Variables below which can be used to customize the file. +All [Shared Collection Variables](../collection_variables.md) are available as well as the additional Variables below which can be used to customize the file. -This file contains a [Separator](../separators) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. +This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. | Variable | Description & Values | |:------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Default:** `100`<br>**Values:** Number Greater than 0 | | `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | -| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `critic_rating.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../metadata/builders/smart.md#sort-options) | -| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../metadata/builders/smart.md#sort-options) | +| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `critic_rating.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | +| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | | `exclude` | **Description:** Exclude these Decades from creating a Dynamic Collection.<br>**Values:** List of Decades found in your library | | `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `Best of <<key_name>>`<br>**Values:** Any string with `<<key_name>>` in it. | | `summary_format` | **Description:** Changes the summary format of the Dynamic Collections.<br>**Default:** `Top <<limit>> <<library_translation>>s of the <<key_name>>.`<br>**Values:** Any string. | diff --git a/docs/defaults/movie/director.md b/docs/defaults/movie/director.md index 522dd11a..b3dc954b 100644 --- a/docs/defaults/movie/director.md +++ b/docs/defaults/movie/director.md @@ -10,11 +10,12 @@ Supported Library Types: Movie | Collection | Key | Description | |:---------------------------------------------------|:---------------------------------------------------|:----------------------------------------------------------------------------| -| `Directors Collections` | `separator` | [Separator Collection](../separators) to denote the Section of Collections. | +| `Directors Collections` | `separator` | [Separator Collection](../separators.md) to denote the Section of Collections. | | `<<director_name>>`<br>**Example:** `Frank Welker` | `<<director_name>>`<br>**Example:** `Frank Welker` | Collection of Movies by the Director. | -```{include} ../people.md -``` +{% + include-markdown "../people.md" +%} ## Config @@ -33,17 +34,17 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Collection Variables](../collection_variables) are available as well as the additional Variables below which can be used to customize the file. +All [Shared Collection Variables](../collection_variables.md) are available as well as the additional Variables below which can be used to customize the file. -This file contains a [Separator](../separators) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. +This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. | Variable | Description & Values | |:-----------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `style` | **Description:** Controls the visual theme of the collections created.<br>**Default:** `bw`<br>**Values:** `bw`, `rainier`, `signature`, `diiivoy`, or `diiivoycolor` | | `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Values:** Number Greater than 0 | | `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | -| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../metadata/builders/smart.md#sort-options) | -| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../metadata/builders/smart.md#sort-options) | +| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | +| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | | `data` | **Description:** Replaces the `data` dynamic collection value.<table class="clearTable"><tr><th>Attribute</th><th>Description & Values</th></tr><tr><td><code>depth</code></td><td>Controls the depth within the casting credits to search for common actors<hr><strong>Default:</strong> 5<hr><strong>Values:</strong> Number greater than 0</td></tr><tr><td><code>limit</code></td><td>Controls the maximum number of collections to create<hr><strong>Default:</strong> 25<hr><strong>Values:</strong> Number greater than 0</td></tr></table> | | `include` | **Description:** Force these Actors to be included to create a Dynamic Collection.<br>**Values:** List of Actor Names | | `exclude` | **Description:** Exclude these Directors from creating a Dynamic Collection.<br>**Values:** List of Director Names | diff --git a/docs/defaults/movie/franchise.md b/docs/defaults/movie/franchise.md index 00d8db37..d563bda0 100644 --- a/docs/defaults/movie/franchise.md +++ b/docs/defaults/movie/franchise.md @@ -4,7 +4,7 @@ The `franchise` Default Metadata File is used to create collections based on pop Unlike most Default Metadata Files, Franchise works by placing collections inline with the main library items if your library allows it. For example, the "Iron Man" franchise collection will appear next to the "Iron Man" movies within your library. -**This file has a Show Library [Counterpart](../show/franchise).** +**This file has a Show Library [Counterpart](../show/franchise.md).** ![](../images/moviefranchise.png) @@ -35,7 +35,7 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -**[Shared Collection Variables](../collection_variables) are NOT available to this default file.** +**[Shared Collection Variables](../collection_variables.md) are NOT available to this default file.** | Variable | Description & Values | |:-----------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| @@ -51,8 +51,8 @@ Note that the `template_variables:` section only needs to be used if you do want | `build_collection` | **Description:** Controls if you want the collection to actually be built. i.e. you may just want these movies sent to Radarr.<br>**Values:** `false` to not build the collection | | `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | | `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | -| `collection_order` | **Description:** Changes the Collection Order for all collections in this file.<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../metadata/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | -| `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../metadata/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | +| `collection_order` | **Description:** Changes the Collection Order for all collections in this file.<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | +| `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | | `title_override` | **Description:** Overrides the [default title_override dictionary](#default-title_override).<br>**Values:** Dictionary with `key: new_title` entries | | `exclude` | **Description:** Exclude these TMDb Collections from creating a Dynamic Collection.<br>**Values:** List of TMDb Collection IDs | | `addons` | **Description:** Overrides the [default addons dictionary](#default-addons). Defines how multiple keys can be combined under a parent key. The parent key doesn't have to already exist in Plex<br>**Values:** Dictionary List of TMDb Collection IDs | diff --git a/docs/defaults/movie/producer.md b/docs/defaults/movie/producer.md index 9189b7a1..59899de4 100644 --- a/docs/defaults/movie/producer.md +++ b/docs/defaults/movie/producer.md @@ -10,11 +10,12 @@ Supported Library Types: Movie | Collection | Key | Description | |:---------------------------------------------------|:---------------------------------------------------|:----------------------------------------------------------------------------| -| `Producer Collections` | `separator` | [Separator Collection](../separators) to denote the Section of Collections. | +| `Producer Collections` | `separator` | [Separator Collection](../separators.md) to denote the Section of Collections. | | `<<producer_name>>`<br>**Example:** `Frank Welker` | `<<producer_name>>`<br>**Example:** `Frank Welker` | Collection of Movies by th Producer. | -```{include} ../people.md -``` +{% + include-markdown "../people.md" +%} ## Config @@ -33,17 +34,17 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Collection Variables](../collection_variables) are available as well as the additional Variables below which can be used to customize the file. +All [Shared Collection Variables](../collection_variables.md) are available as well as the additional Variables below which can be used to customize the file. -This file contains a [Separator](../separators) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. +This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. | Variable | Description & Values | |:-----------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `style` | **Description:** Controls the visual theme of the collections created.<br>**Default:** `bw`<br>**Values:** `bw`, `rainier`, `signature`, `diiivoy`, or `diiivoycolor` | | `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Values:** Number Greater than 0 | | `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | -| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../metadata/builders/smart.md#sort-options) | -| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../metadata/builders/smart.md#sort-options) | +| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | +| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | | `data` | **Description:** Replaces the `data` dynamic collection value.<table class="clearTable"><tr><th>Attribute</th><th>Description & Values</th></tr><tr><td><code>depth</code></td><td>Controls the depth within the casting credits to search for common actors<hr><strong>Default:</strong> 5<hr><strong>Values:</strong> Number greater than 0</td></tr><tr><td><code>limit</code></td><td>Controls the maximum number of collections to create<hr><strong>Default:</strong> 25<hr><strong>Values:</strong> Number greater than 0</td></tr></table> | | `include` | **Description:** Force these Actors to be included to create a Dynamic Collection.<br>**Values:** List of Actor Names | | `exclude` | **Description:** Exclude these Producers from creating a Dynamic Collection.<br>**Values:** List of Producer Names | diff --git a/docs/defaults/movie/region.md b/docs/defaults/movie/region.md index 959b484a..ad977b70 100644 --- a/docs/defaults/movie/region.md +++ b/docs/defaults/movie/region.md @@ -2,7 +2,7 @@ The `region` Default Metadata File is used to dynamically create collections based on the countries within your library. The collection aims to be inclusive, with all 230 countries incorporated into 39 countries or collections of countries. Some care has been taken to ensure all countries are included, and the groupings won't fit well with everyone's collections. Western and Southern Europe, Oceania, and North America could be useful groupings for those libraries with more of an Asian focus, for instance. Please see the comments in the yml below where a decision point might be seen as controversial. You are welcome to edit this to fit your own audience's needs. -**This file has a Show Library [Counterpart](../show/region).** +**This file has a Show Library [Counterpart](../show/region.md).** ![](../images/region1.png) @@ -14,7 +14,7 @@ Supported Library Types: Movie | Collection | Key | Description | |:--------------------------------------|:----------------------------------------|:----------------------------------------------------------------------------| -| `Region Collections` | `separator` | [Separator Collection](../separators) to denote the Section of Collections. | +| `Region Collections` | `separator` | [Separator Collection](../separators.md) to denote the Section of Collections. | | `<<Region>>`<br>**Example:** `Nordic` | `<<Region>>`<br>**Example:** `Nordic` | Collection of Movies that have been tagged with countries in this region. | | `Other Regions` | `other` | Collection of Movies that are in other uncommon Regions. | @@ -41,17 +41,17 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Collection Variables](../collection_variables) are available as well as the additional Variables below which can be used to customize the file. +All [Shared Collection Variables](../collection_variables.md) are available as well as the additional Variables below which can be used to customize the file. -This file contains a [Separator](../separators) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. +This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. | Variable | Description & Values | |:------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `style` | **Description:** Controls the visual theme of the collections created<table class="clearTable"><tr><th>Values:</th></tr><tr><td><code>white</code></td><td>White Theme</td></tr><tr><td><code>color</code></td><td>Color Theme</td></tr></table> | | `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Values:** Number Greater than 0 | | `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | -| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../metadata/builders/smart.md#sort-options) | -| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../metadata/builders/smart.md#sort-options) | +| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | +| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | | `include` | **Description:** Overrides the [default include list](#default-include).<br>**Values:** List of Countries found in your library | | `exclude` | **Description:** Exclude these Countries from creating a Dynamic Collection.<br>**Values:** List of Countries found in your library | | `addons` | **Description:** Overrides the [default addons dictionary](#default-addons). Defines how multiple keys can be combined under a parent key. The parent key doesn't have to already exist in Plex<br>**Values:** Dictionary List of Countries found in your library | diff --git a/docs/defaults/movie/seasonal.md b/docs/defaults/movie/seasonal.md index d89962b6..c900ba33 100644 --- a/docs/defaults/movie/seasonal.md +++ b/docs/defaults/movie/seasonal.md @@ -12,7 +12,7 @@ Supported Library Types: Movie | Collection | Key | Description | |:----------------------------------------------|:----------------|:----------------------------------------------------------------------------| -| `Seasonal Collections` | `separator` | [Separator Collection](../separators) to denote the Section of Collections. | +| `Seasonal Collections` | `separator` | [Separator Collection](../separators.md) to denote the Section of Collections. | | `🎊 New Year's Day Movies` | `years` | Collection of Movies related to New Year's Day. | | `💘 Valentine's Day Movies` | `valentine` | Collection of Movies related to Valentine's Day. | | `☘ St. Patrick's Day Movies` | `patrick` | Collection of Movies related to St. Patrick's Day. | @@ -50,9 +50,9 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Collection Variables](../collection_variables) are available as well as the additional Variables below which can be used to customize the file. +All [Shared Collection Variables](../collection_variables.md) are available as well as the additional Variables below which can be used to customize the file. -This file contains a [Separator](../separators) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. +This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. | Variable | Description & Values | |:--------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| @@ -67,10 +67,10 @@ This file contains a [Separator](../separators) so all [Shared Separator Variabl | `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | | `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | | `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | -| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in this file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../metadata/builders/smart.md#sort-options) | -| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../metadata/builders/smart.md#sort-options) | -| `schedule` | **Description:** Changes the Schedule for all collections in this file. Use `daily` to have all collections show.<br>**Values:** [Any Schedule Option](../../metadata/details/schedule) | -| `schedule_<<key>>`<sup>1</sup> | **Description:** Changes the Schedule of the specified key's collection. Overrides the [default schedule](#default-schedule) for that collection if used.<br>**Values:** [Any Schedule Option](../../metadata/details/schedule) | +| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in this file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | +| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | +| `schedule` | **Description:** Changes the Schedule for all collections in this file. Use `daily` to have all collections show.<br>**Values:** [Any Schedule Option](../../builders/details/schedule.md) | +| `schedule_<<key>>`<sup>1</sup> | **Description:** Changes the Schedule of the specified key's collection. Overrides the [default schedule](#default-schedule) for that collection if used.<br>**Values:** [Any Schedule Option](../../builders/details/schedule.md) | | `data` | **Description:** Overrides the [default data dictionary](#default-data). Defines the data that the custom dynamic collection processes.<br>**Values:** Dictionary List of keys/names | | `append_data` | **Description:** Appends to the [default data dictionary](#default-data).<br>**Values:** Dictionary List of keys/names | | `exclude` | **Description:** Exclude these Seasons from creating a Dynamic Collection.<br>**Values:** List of Seasons Keys | diff --git a/docs/defaults/movie/writer.md b/docs/defaults/movie/writer.md index 306e72de..4c202a63 100644 --- a/docs/defaults/movie/writer.md +++ b/docs/defaults/movie/writer.md @@ -10,11 +10,12 @@ Supported Library Types: Movie | Collection | Key | Description | |:-------------------------------------------------|:-------------------------------------------------|:----------------------------------------------------------------------------| -| `Writers Collections` | `separator` | [Separator Collection](../separators) to denote the Section of Collections. | +| `Writers Collections` | `separator` | [Separator Collection](../separators.md) to denote the Section of Collections. | | `<<writer_name>>`<br>**Example:** `Frank Welker` | `<<writer_name>>`<br>**Example:** `Frank Welker` | Collection of Movies by the Writer. | -```{include} ../people.md -``` +{% + include-markdown "../people.md" +%} ## Config @@ -33,17 +34,17 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Collection Variables](../collection_variables) are available as well as the additional Variables below which can be used to customize the file. +All [Shared Collection Variables](../collection_variables.md) are available as well as the additional Variables below which can be used to customize the file. -This file contains a [Separator](../separators) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. +This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. | Variable | Description & Values | |:-----------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `style` | **Description:** Controls the visual theme of the collections created.<br>**Default:** `bw`<br>**Values:** `bw`, `rainier`, `signature`, `diiivoy`, or `diiivoycolor` | | `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Values:** Number Greater than 0 | | `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | -| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../metadata/builders/smart.md#sort-options) | -| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../metadata/builders/smart.md#sort-options) | +| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | +| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | | `data` | **Description:** Replaces the `data` dynamic collection value.<table class="clearTable"><tr><th>Attribute</th><th>Description & Values</th></tr><tr><td><code>depth</code></td><td>Controls the depth within the casting credits to search for common actors<hr><strong>Default:</strong> 5<hr><strong>Values:</strong> Number greater than 0</td></tr><tr><td><code>limit</code></td><td>Controls the maximum number of collections to create<hr><strong>Default:</strong> 25<hr><strong>Values:</strong> Number greater than 0</td></tr></table> | | `include` | **Description:** Force these Actors to be included to create a Dynamic Collection.<br>**Values:** List of Actor Names | | `exclude` | **Description:** Exclude these Writers from creating a Dynamic Collection.<br>**Values:** List of Writer Names | diff --git a/docs/defaults/overlay_list.md b/docs/defaults/overlay_list.md index f0cc384a..45440dff 100644 --- a/docs/defaults/overlay_list.md +++ b/docs/defaults/overlay_list.md @@ -12,17 +12,17 @@ These overlays are applied by calling the below paths into the `overlay_path` [s | Default | Path | Example Overlays | Movies | Shows | Seasons | Episodes | |:----------------------------------|:-------------|:-----------------------------------------|:--------:|:-------:|:--------:|:--------:| -| [FlixPatrol](overlays/flixpatrol) | `flixpatrol` | "Streaming service logo with words "TOP" | ✅ | ✅ | ❌ | ❌ | -| [Ribbon](overlays/ribbon) | `ribbon` | IMDb Top 250 Ribbon, RT Fresh Ribbon | ✅ | ✅ | ❌ | ❌ | +| [FlixPatrol](overlays/flixpatrol.md) | `flixpatrol` | "Streaming service logo with words "TOP" | ✅ | ✅ | ❌ | ❌ | +| [Ribbon](overlays/ribbon.md) | `ribbon` | IMDb Top 250 Ribbon, RT Fresh Ribbon | ✅ | ✅ | ❌ | ❌ | ### Content Overlays | Default | Path | Example Overlays | Movies | Shows | Seasons | Episodes | |:----------------------------------------|:---------------|:-------------------------------------------------|:--------:|:--------:|:--------:|:--------:| -| [Episode Info](overlays/episode_info) | `episode_info` | "S01E01", "S02E09" | ❌ | ❌ | ❌ | ✅ | -| [Mediastinger](overlays/mediastinger) | `mediastinger` | Mediastinger Logo for After/During Credit Scenes | ✅ | ✅ | ❌ | ❌ | -| [Ratings](overlays/ratings)<sup>1</sup> | `ratings` | IMDb Audience Rating, Metacritic Critic Rating | ✅ | ✅ | ❌ | ✅ | -| [Status](overlays/status) | `status` | Airing, Returning, Canceled, Ended | ❌ | ✅ | ❌ | ❌ | +| [Episode Info](overlays/episode_info.md) | `episode_info` | "S01E01", "S02E09" | ❌ | ❌ | ❌ | ✅ | +| [Mediastinger](overlays/mediastinger.md) | `mediastinger` | Mediastinger Logo for After/During Credit Scenes | ✅ | ✅ | ❌ | ❌ | +| [Ratings](overlays/ratings.md)<sup>1</sup> | `ratings` | IMDb Audience Rating, Metacritic Critic Rating | ✅ | ✅ | ❌ | ✅ | +| [Status](overlays/status.md) | `status` | Airing, Returning, Canceled, Ended | ❌ | ✅ | ❌ | ❌ | <sup>1</sup> Requires Template Variables to function @@ -30,14 +30,14 @@ These overlays are applied by calling the below paths into the `overlay_path` [s | Default | Path | Example Overlays | Movies | Shows | Seasons | Episodes | |:---------------------------------------------------------|:-----------------|:--------------------------------------------------------------------------|:-------:|:--------:|:--------:|:--------:| -| [Aspect Ratio](overlays/aspect)<sup>1</sup> | `aspect` | "1.33","1.78" | ✅ | ✅ | ✅ | ✅ | -| [Audio Codec](overlays/audio_codec)<sup>1</sup> | `audio_codec` | Dolby Atmos logo, DTS logo | ✅ | ✅ | ✅ | ✅ | -| [Audio/Subtitle Language Count](overlays/language_count) | `language_count` | Dual-Audio, Multi-Audio, Dual-Subtitle, Multi-Subtitle | ✅ | ✅ | ✅ | ✅ | -| [Audio/Subtitle Language Flags](overlays/languages) | `languages` | Flags Based on the Audio/Subtitles a file has | ✅ | ✅ | ✅ | ✅ | -| [Resolution/Editions](overlays/resolution)<sup>2</sup> | `resolution` | 4K Dolby Vision logo, 720P logo, "Director's Cut", "Criterion Collection" | ✅ | ✅ | ❌ | ✅ | -| [Runtimes](overlays/runtimes) | `runtimes` | "Runtime: 1h 30m" | ✅ | ✅ | ❌ | ✅ | -| [Versions](overlays/versions) | `versions` | Multiple Versions logo | ✅ | ✅ | ✅ | ✅ | -| [Video Format](overlays/video_format)<sup>1</sup> | `video_format` | "REMUX", "HDTV" | ✅ | ❗ | ❗ | ✅ | +| [Aspect Ratio](overlays/aspect.md)<sup>1</sup> | `aspect` | "1.33","1.78" | ✅ | ✅ | ✅ | ✅ | +| [Audio Codec](overlays/audio_codec.md)<sup>1</sup> | `audio_codec` | Dolby Atmos logo, DTS logo | ✅ | ✅ | ✅ | ✅ | +| [Audio/Subtitle Language Count](overlays/language_count.md) | `language_count` | Dual-Audio, Multi-Audio, Dual-Subtitle, Multi-Subtitle | ✅ | ✅ | ✅ | ✅ | +| [Audio/Subtitle Language Flags](overlays/languages.md) | `languages` | Flags Based on the Audio/Subtitles a file has | ✅ | ✅ | ✅ | ✅ | +| [Resolution/Editions](overlays/resolution.md)<sup>2</sup> | `resolution` | 4K Dolby Vision logo, 720P logo, "Director's Cut", "Criterion Collection" | ✅ | ✅ | ❌ | ✅ | +| [Runtimes](overlays/runtimes.md) | `runtimes` | "Runtime: 1h 30m" | ✅ | ✅ | ❌ | ✅ | +| [Versions](overlays/versions.md) | `versions` | Multiple Versions logo | ✅ | ✅ | ✅ | ✅ | +| [Video Format](overlays/video_format.md)<sup>1</sup> | `video_format` | "REMUX", "HDTV" | ✅ | ❗ | ❗ | ✅ | <sup>1</sup> Designed for [TRaSH Guides](https://trash-guides.info/) filename naming scheme <sup>2</sup> Requires Plex Pass or [TRaSH Guides](https://trash-guides.info/) filename naming scheme @@ -46,12 +46,12 @@ These overlays are applied by calling the below paths into the `overlay_path` [s | Default | Path | Example Overlays | Movies | Shows | Seasons | Episodes | |:--------------------------------|:------------|:------------------------------------------------|:--------:|:-------:|:--------:|:--------:| -| [Network](overlays/network) | `network` | "ABC", "CBS" | ❌ | ✅ | ✅ | ✅ | -| [Streaming](overlays/streaming) | `streaming` | Netflix logo, Hulu logo | ✅ | ✅ | ❌ | ❌ | -| [Studio](overlays/studio) | `studio` | "Warner Bros. Pictures", "Amblin Entertainment" | ✅ | ✅ | ✅ | ✅ | +| [Network](overlays/network.md) | `network` | "ABC", "CBS" | ❌ | ✅ | ✅ | ✅ | +| [Streaming](overlays/streaming.md) | `streaming` | Netflix logo, Hulu logo | ✅ | ✅ | ❌ | ❌ | +| [Studio](overlays/studio.md) | `studio` | "Warner Bros. Pictures", "Amblin Entertainment" | ✅ | ✅ | ✅ | ✅ | ### Utility Overlays | Default | Path | Example Overlays | Movies | Shows | Seasons | Episodes | |:------------------------------------|:--------------|:-------------------|:-------:|:--------:|:--------:|:--------:| -| [Direct Play](overlays/direct_play) | `direct_play` | "Direct Play Only" | ✅ | ❗ | ❗ | ✅ | +| [Direct Play](overlays/direct_play.md) | `direct_play` | "Direct Play Only" | ✅ | ❗ | ❗ | ✅ | diff --git a/docs/defaults/overlay_variables.md b/docs/defaults/overlay_variables.md index 95106d8f..6dbb3abf 100644 --- a/docs/defaults/overlay_variables.md +++ b/docs/defaults/overlay_variables.md @@ -1,6 +1,6 @@ # Shared Overlay Template Variables -IMPORTANT: The variables in this table are only valid in the context of the [`PMM default metadata files`](guide). +IMPORTANT: The variables in this table are only valid in the context of the [`PMM default metadata files`](guide.md. There are some `template_variables` that all the PMM Defaults except `franchise` can use to manipulate the file from the default settings which are provided. This page is not an exhaustive list of all such template variables. @@ -12,28 +12,28 @@ Note that the `template_variables:` section only needs to be used if you do want Below are the common variables which can be used to customize the file. -| Variable | Description & Values | -|:---------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `use_<<key>>`<sup>1</sup> | **Description:** Turns off individual Overlays in a Defaults file.<br>**Values:** `false` to turn off the overlay | -| `file` | **Description:** Controls the images associated with all the Overlays to a local file.<br>**Values:** Filepath to Overlay Image | -| `file_<<key>>`<sup>1</sup> | **Description:** Controls the image associated with this key's Overlay to a local file.<br>**Values:** Filepath to Overlay Image | -| `url` | **Description:** Controls the images associated with all the Overlays to a url.<br>**Values:** URL to Overlay Image | -| `url_<<key>>`<sup>1</sup> | **Description:** Controls the image associated with this key's Overlay to a url.<br>**Values:** URL to Overlay Image | -| `git` | **Description:** Controls the images associated with all the Overlays to the git repo.<br>**Values:** Git Path to Overlay Image | -| `git_<<key>>`<sup>1</sup> | **Description:** Controls the image associated with this key's Overlay to the git repo.<br>**Values:** Git Path to Overlay Image | -| `repo` | **Description:** Controls the images associated with all the Overlays to a custom repo.<br>**Values:** Repo Path to Overlay Image | -| `repo_<<key>>`<sup>1</sup> | **Description:** Controls the image associated with this key's Overlay to a custom repo.<br>**Values:** Repo Path to Overlay Image | -| `horizontal_offset` | **Description:** Controls the Horizontal Offset of this overlay. Can be a %.<br>**Values:** Number 0 or greater or 0%-100% | -| `horizontal_align` | **Description:** Controls the Horizontal Alignment of the overlay.<br>**Values:** `left`, `center`, or `right` | -| `vertical_offset` | **Description:** Controls the Vertical Offset of this overlay. Can be a %.<br>**Values:** Number 0 or greater or 0%-100% | -| `vertical_align` | **Description:** Controls the Vertical Alignment of the overlay.<br>**Values:** `top`, `center`, or `bottom` | -| `back_color` | **Description:** Controls the Backdrop Color for the Text Overlay.<br>**Values:** Color Hex Code in format `#RGB`, `#RGBA`, `#RRGGBB` or `#RRGGBBAA`<br>`AA` is transparency; 00 [transparent] to FF [opaque] | -| `back_width` | **Description:** Controls the Backdrop Width for the Text Overlay. If `back_width` is not specified the Backdrop Sizes to the text<br>**Values:** Any number greater than 0 | -| `back_height` | **Description:** Controls the Backdrop Height for the Text Overlay. If `back_height` is not specified the Backdrop Sizes to the text<br>**Values:** Any number greater than 0 | -| `back_align` | **Description:** Controls the Alignment for the Text Overlay inside the backdrop. If `back_align` is not specified the Backdrop Centers the text.<br>**Values:** `left`, `right`, `center`, `top`, or `bottom` | -| `back_padding` | **Description:** Controls the Backdrop Padding for the Text Overlay.<br>**Values:** Any number greater than 0 | -| `back_radius` | **Description:** Controls the Backdrop Radius for the Text Overlay.<br>**Values:** Any number greater than 0 | -| `back_line_color` | **Description:** Controls the Backdrop Line Color for the Text Overlay.<br>**Values:** Color Hex Code in format `#RGB`, `#RGBA`, `#RRGGBB` or `#RRGGBBAA``AA` is transparency; 00 [transparent] to FF [opaque] | -| `back_line_width` | **Description:** Controls the Backdrop Line Width for the Text Overlay.<br>**Values:** Any number greater than 0 | +| Variable | Description & Values | +|:---------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| `use_<<key>>`<sup>1</sup> | **Description:** Turns off individual Overlays in a Defaults file.<br>**Values:** `false` to turn off the overlay | +| `file` | **Description:** Controls the images associated with all the Overlays to a local file.<br>**Values:** Filepath to Overlay Image | +| `file_<<key>>`<sup>1</sup> | **Description:** Controls the image associated with this key's Overlay to a local file.<br>**Values:** Filepath to Overlay Image | +| `url` | **Description:** Controls the images associated with all the Overlays to a url.<br>**Values:** URL to Overlay Image | +| `url_<<key>>`<sup>1</sup> | **Description:** Controls the image associated with this key's Overlay to a url.<br>**Values:** URL to Overlay Image | +| `git` | **Description:** Controls the images associated with all the Overlays to the git repo.<br>**Values:** Git Path to Overlay Image | +| `git_<<key>>`<sup>1</sup> | **Description:** Controls the image associated with this key's Overlay to the git repo.<br>**Values:** Git Path to Overlay Image | +| `repo` | **Description:** Controls the images associated with all the Overlays to a custom repo.<br>**Values:** Repo Path to Overlay Image | +| `repo_<<key>>`<sup>1</sup> | **Description:** Controls the image associated with this key's Overlay to a custom repo.<br>**Values:** Repo Path to Overlay Image | +| `horizontal_offset` | **Description:** Controls the Horizontal Offset of this overlay. Can be a %.<br>**Values:** Number 0 or greater or 0%-100% | +| `horizontal_align` | **Description:** Controls the Horizontal Alignment of the overlay.<br>**Values:** `left`, `center`, or `right` | +| `vertical_offset` | **Description:** Controls the Vertical Offset of this overlay. Can be a %.<br>**Values:** Number 0 or greater or 0%-100% | +| `vertical_align` | **Description:** Controls the Vertical Alignment of the overlay.<br>**Values:** `top`, `center`, or `bottom` | +| `back_color` | **Description:** Controls the Backdrop Color for the Text Overlay.<br>**Values:** Color Hex Code in format `#RGB`, `#RGBA`, `#RRGGBB` or `#RRGGBBAA`<br>`AA` is transparency; 00 [transparent] to FF [opaque] | +| `back_width` | **Description:** Controls the Backdrop Width for the Text Overlay. If `back_width` is not specified the Backdrop Sizes to the text<br>**Values:** Any number greater than 0 | +| `back_height` | **Description:** Controls the Backdrop Height for the Text Overlay. If `back_height` is not specified the Backdrop Sizes to the text<br>**Values:** Any number greater than 0 | +| `back_align` | **Description:** Controls the Alignment for the Text Overlay inside the backdrop. If `back_align` is not specified the Backdrop Centers the text.<br>**Values:** `left`, `right`, `center`, `top`, or `bottom` | +| `back_padding` | **Description:** Controls the Backdrop Padding for the Text Overlay.<br>**Values:** Any number greater than 0 | +| `back_radius` | **Description:** Controls the Backdrop Radius for the Text Overlay.<br>**Values:** Any number greater than 0 | +| `back_line_color` | **Description:** Controls the Backdrop Line Color for the Text Overlay.<br>**Values:** Color Hex Code in format `#RGB`, `#RGBA`, `#RRGGBB` or `#RRGGBBAA``AA` is transparency; 00 [transparent] to FF [opaque] | +| `back_line_width` | **Description:** Controls the Backdrop Line Width for the Text Overlay.<br>**Values:** Any number greater than 0 | 1. Each default overlay has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. diff --git a/docs/defaults/overlays.md b/docs/defaults/overlays.md index 54b38340..2867b8e5 100644 --- a/docs/defaults/overlays.md +++ b/docs/defaults/overlays.md @@ -4,8 +4,9 @@ There are many Default Overlay Files built into PMM itself which offer an easy-t This is the simplest way to create Overlays using Plex Meta Manager. -```{include} overlay_list.md -``` +{% + include-markdown "./overlay_list.md" +%} ## Configurations @@ -203,7 +204,7 @@ Plex has three available spots in the Plex DB to store ratings and thus Plex Met To be able to insert the ratings you want, Plex Meta Manager operations need to be defined. In this example below, User ratings (`#1`) are being filled with Rotten Tomatoes Critics Ratings. Critic ratings (`#2`) are filled with IMDb, and Audience ratings (`#3`) are filled with TMDb. -**mass_*_rating_update** sources can be found here: [operations](../config/operations) +**mass_*_rating_update** sources can be found here: [operations](../config/operations.md) ![](images/ratings_operations.png) @@ -226,11 +227,12 @@ libraries: builder_level: episode ``` -Each file has a page on the wiki showing the available `template_variables` for each file. For example the default `pmm: ratings` has a page [here](overlays/ratings). +Each file has a page on the wiki showing the available `template_variables` for each file. For example the default `pmm: ratings` has a page [here](overlays/ratings.md). -**In addition to the defined `template_variables` almost all default Overlay files have access to the [Shared Variables](collection_variables).** +**In addition to the defined `template_variables` almost all default Overlay files have access to the [Shared Variables](collection_variables.md).** ### Examples -```{include} example.md -``` +{% + include-markdown "./example.md" +%} diff --git a/docs/defaults/overlays/aspect.md b/docs/defaults/overlays/aspect.md index 35db87ce..d475ffce 100644 --- a/docs/defaults/overlays/aspect.md +++ b/docs/defaults/overlays/aspect.md @@ -47,7 +47,7 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Overlay Variables](../overlay_variables) are available with the default values below as well as the additional Variables below which can be used to customize the file. +All [Shared Overlay Variables](../overlay_variables.md) are available with the default values below as well as the additional Variables below which can be used to customize the file. | Variable | Default | |:--------------------|:------------| diff --git a/docs/defaults/overlays/audio_codec.md b/docs/defaults/overlays/audio_codec.md index 2c643ee8..e922e5bf 100644 --- a/docs/defaults/overlays/audio_codec.md +++ b/docs/defaults/overlays/audio_codec.md @@ -63,7 +63,7 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Overlay Variables](../overlay_variables) are available with the default values below as well as the additional Variables below which can be used to customize the file. +All [Shared Overlay Variables](../overlay_variables.md) are available with the default values below as well as the additional Variables below which can be used to customize the file. | Variable | Default | |:--------------------|:------------| diff --git a/docs/defaults/overlays/commonsense.md b/docs/defaults/overlays/commonsense.md index 44ce7c29..c59be38f 100644 --- a/docs/defaults/overlays/commonsense.md +++ b/docs/defaults/overlays/commonsense.md @@ -60,7 +60,7 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Overlay Variables](../overlay_variables) are available with the default values below as well as the additional Variables below which can be used to customize the file. +All [Shared Overlay Variables](../overlay_variables.md) are available with the default values below as well as the additional Variables below which can be used to customize the file. | Variable | Default | |:--------------------|:------------| diff --git a/docs/defaults/overlays/content_rating_uk.md b/docs/defaults/overlays/content_rating_uk.md index 8eca44c0..de200efb 100644 --- a/docs/defaults/overlays/content_rating_uk.md +++ b/docs/defaults/overlays/content_rating_uk.md @@ -49,7 +49,7 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Overlay Variables](../overlay_variables) are available with the default values below as well as the additional Variables below which can be used to customize the file. +All [Shared Overlay Variables](../overlay_variables.md) are available with the default values below as well as the additional Variables below which can be used to customize the file. | Variable | Default | |:--------------------|:---------| diff --git a/docs/defaults/overlays/content_rating_us_movie.md b/docs/defaults/overlays/content_rating_us_movie.md index 84c013e5..437cf2f9 100644 --- a/docs/defaults/overlays/content_rating_us_movie.md +++ b/docs/defaults/overlays/content_rating_us_movie.md @@ -38,7 +38,7 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Overlay Variables](../overlay_variables) are available with the default values below as well as the additional Variables below which can be used to customize the file. +All [Shared Overlay Variables](../overlay_variables.md) are available with the default values below as well as the additional Variables below which can be used to customize the file. | Variable | Default | |:--------------------|:---------| diff --git a/docs/defaults/overlays/content_rating_us_show.md b/docs/defaults/overlays/content_rating_us_show.md index f378052d..81163c3e 100644 --- a/docs/defaults/overlays/content_rating_us_show.md +++ b/docs/defaults/overlays/content_rating_us_show.md @@ -44,7 +44,7 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Overlay Variables](../overlay_variables) are available with the default values below as well as the additional Variables below which can be used to customize the file. +All [Shared Overlay Variables](../overlay_variables.md) are available with the default values below as well as the additional Variables below which can be used to customize the file. | Variable | Default | |:--------------------|:---------| diff --git a/docs/defaults/overlays/direct_play.md b/docs/defaults/overlays/direct_play.md index d2171fee..c2a280bc 100644 --- a/docs/defaults/overlays/direct_play.md +++ b/docs/defaults/overlays/direct_play.md @@ -28,7 +28,7 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Overlay Variables](../overlay_variables) are available with the default values below as well as the additional Variables below which can be used to customize the file. +All [Shared Overlay Variables](../overlay_variables.md) are available with the default values below as well as the additional Variables below which can be used to customize the file. | Variable | Default | |:--------------------|:------------| diff --git a/docs/defaults/overlays/episode_info.md b/docs/defaults/overlays/episode_info.md index 874ff16c..a45d4350 100644 --- a/docs/defaults/overlays/episode_info.md +++ b/docs/defaults/overlays/episode_info.md @@ -25,7 +25,7 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Overlay Variables](../overlay_variables) are available with the default values below as well as the additional Variables below which can be used to customize the file. +All [Shared Overlay Variables](../overlay_variables.md) are available with the default values below as well as the additional Variables below which can be used to customize the file. | Variable | Default | |:--------------------|:------------| diff --git a/docs/defaults/overlays/flixpatrol.md b/docs/defaults/overlays/flixpatrol.md index 14a91b1a..6ea9a5d2 100644 --- a/docs/defaults/overlays/flixpatrol.md +++ b/docs/defaults/overlays/flixpatrol.md @@ -40,7 +40,7 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Overlay Variables](../overlay_variables) except `horizontal_offset`, `horizontal_align`, `vertical_offset`, and `vertical_align` are available with the default values below as well as the additional Variables below which can be used to customize the file. +All [Shared Overlay Variables](../overlay_variables.md) except `horizontal_offset`, `horizontal_align`, `vertical_offset`, and `vertical_align` are available with the default values below as well as the additional Variables below which can be used to customize the file. | Variable | Default | |:--------------------|:------------------| @@ -63,8 +63,8 @@ All [Shared Overlay Variables](../overlay_variables) except `horizontal_offset`, | `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's overlay.<br>**Default:** `limit`<br>**Values:** Any Number 1-10 | | `in_the_last` | **Description:** Changes How many days of daily Top 10 Lists to look at.<br>**Default:** `1`<br>**Values:** Any Number 1-30 | | `in_the_last_<<key>>`<sup>1</sup> | **Description:** Changes How many days of daily Top 10 Lists to look at.<br>**Default:** `in_the_last`<br>**Values:** Any Number 1-30 | -| `location` | **Description:** Changes the Builder Location for all overlays in a Defaults file.<br>**Default:** `world`<br>**Values:** [`location` Attribute Options](../../metadata/builders/flixpatrol.md#top-platform-attributes) | -| `location_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Location of the specified key's overlay.<br>**Default:** `location`<br>**Values:** [`location` Attribute Options](../../metadata/builders/flixpatrol.md#top-platform-attributes) | +| `location` | **Description:** Changes the Builder Location for all overlays in a Defaults file.<br>**Default:** `world`<br>**Values:** [`location` Attribute Options](../../builders/flixpatrol.md#top-platform-attributes) | +| `location_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Location of the specified key's overlay.<br>**Default:** `location`<br>**Values:** [`location` Attribute Options](../../builders/flixpatrol.md#top-platform-attributes) | | `weight_<<key>>`<sup>1</sup> | **Description:** Controls the weight of the Overlay. Higher numbers have priority.<br>**Values:** Any Number | | `font` | **Description:** Choose the font for the Overlay.<br>**Default:** `fonts/Inter-Medium.ttf`<br>**Values:** Path to font file | | `font_style` | **Description:** Font style for Variable Fonts.<br>**Values:** Variable Font Style | diff --git a/docs/defaults/overlays/language_count.md b/docs/defaults/overlays/language_count.md index 18d8ae6e..2d04b41f 100644 --- a/docs/defaults/overlays/language_count.md +++ b/docs/defaults/overlays/language_count.md @@ -41,7 +41,7 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Overlay Variables](../overlay_variables) are available with the default values below as well as the additional Variables below which can be used to customize the file. +All [Shared Overlay Variables](../overlay_variables.md) are available with the default values below as well as the additional Variables below which can be used to customize the file. | Variable | Default | |:--------------------|:------------| diff --git a/docs/defaults/overlays/languages.md b/docs/defaults/overlays/languages.md index f94014ef..ead57d16 100644 --- a/docs/defaults/overlays/languages.md +++ b/docs/defaults/overlays/languages.md @@ -124,7 +124,7 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Overlay Variables](../overlay_variables) are available with the default values below as well as the additional Variables below which can be used to customize the file. +All [Shared Overlay Variables](../overlay_variables.md) are available with the default values below as well as the additional Variables below which can be used to customize the file. | Variable | Default | |:--------------------|:-----------------------------| diff --git a/docs/defaults/overlays/mediastinger.md b/docs/defaults/overlays/mediastinger.md index fbe13d56..e366783c 100644 --- a/docs/defaults/overlays/mediastinger.md +++ b/docs/defaults/overlays/mediastinger.md @@ -25,7 +25,7 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Overlay Variables](../overlay_variables) are available with the default values below as well as the additional Variables below which can be used to customize the file. +All [Shared Overlay Variables](../overlay_variables.md) are available with the default values below as well as the additional Variables below which can be used to customize the file. | Variable | Default | |:--------------------|:------------| @@ -46,5 +46,5 @@ libraries: overlay_path: - pmm: mediastinger template_variables: - back_color: "#FFFFFF99" + font_color: "#FFFFFF99" ``` diff --git a/docs/defaults/overlays/network.md b/docs/defaults/overlays/network.md index fbbc3a39..a6cdd6ba 100644 --- a/docs/defaults/overlays/network.md +++ b/docs/defaults/overlays/network.md @@ -31,7 +31,7 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Overlay Variables](../overlay_variables) are available with the default values below as well as the additional Variables below which can be used to customize the file. +All [Shared Overlay Variables](../overlay_variables.md) are available with the default values below as well as the additional Variables below which can be used to customize the file. | Variable | Default | |:--------------------|:------------| diff --git a/docs/defaults/overlays/ratings.md b/docs/defaults/overlays/ratings.md index 8827036a..210c38ac 100644 --- a/docs/defaults/overlays/ratings.md +++ b/docs/defaults/overlays/ratings.md @@ -4,7 +4,7 @@ The `ratings` Default Overlay File is used to create an overlay based on the Cri This file only updates the overlays based on the data in Plex, it will not pull the ratings directly from any third-party website, see recommendations below for more info. -**Please read [PMM Ratings Explained](../../home/guides/ratings) for more understanding on how PMM interacts with ratings.** +**Please read [PMM Ratings Explained](../../pmm/install/guides/ratings.md) for more understanding on how PMM interacts with ratings.** ![](images/ratings_overlay.png) @@ -66,9 +66,9 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Overlay Variables](../overlay_variables) are available with the default values below as well as the additional Variables below which can be used to customize the file. +All [Shared Overlay Variables](../overlay_variables.md) are available with the default values below as well as the additional Variables below which can be used to customize the file. -All [Shared Overlay Variables](../overlay_variables) can be prepended with `rating1_`, `rating2_`, or `rating3_` to change that attribute on each rating individually. +All [Shared Overlay Variables](../overlay_variables.md) can be prepended with `rating1_`, `rating2_`, or `rating3_` to change that attribute on each rating individually. | Variable | Default | |:--------------------|:------------| diff --git a/docs/defaults/overlays/resolution.md b/docs/defaults/overlays/resolution.md index 4c1d4391..b9dd946b 100644 --- a/docs/defaults/overlays/resolution.md +++ b/docs/defaults/overlays/resolution.md @@ -116,7 +116,7 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Overlay Variables](../overlay_variables) are available with the default values below as well as the additional Variables below which can be used to customize the file. +All [Shared Overlay Variables](../overlay_variables.md) are available with the default values below as well as the additional Variables below which can be used to customize the file. | Variable | Default | |:--------------------|:------------| diff --git a/docs/defaults/overlays/ribbon.md b/docs/defaults/overlays/ribbon.md index e455127e..a185f9ab 100644 --- a/docs/defaults/overlays/ribbon.md +++ b/docs/defaults/overlays/ribbon.md @@ -51,7 +51,7 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Overlay Variables](../overlay_variables) are available with the default values below as well as the additional Variables below which can be used to customize the file. +All [Shared Overlay Variables](../overlay_variables.md) are available with the default values below as well as the additional Variables below which can be used to customize the file. | Variable | Default | |:--------------------|:----------| diff --git a/docs/defaults/overlays/runtimes.md b/docs/defaults/overlays/runtimes.md index c6119e5b..19049264 100644 --- a/docs/defaults/overlays/runtimes.md +++ b/docs/defaults/overlays/runtimes.md @@ -31,7 +31,7 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Overlay Variables](../overlay_variables) are available with the default values below as well as the additional Variables below which can be used to customize the file. +All [Shared Overlay Variables](../overlay_variables.md) are available with the default values below as well as the additional Variables below which can be used to customize the file. | Variable | Default | |:--------------------|:------------| diff --git a/docs/defaults/overlays/status.md b/docs/defaults/overlays/status.md index 30559bdc..0ea080c5 100644 --- a/docs/defaults/overlays/status.md +++ b/docs/defaults/overlays/status.md @@ -34,7 +34,7 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Overlay Variables](../overlay_variables) are available with the default values below as well as the additional Variables below which can be used to customize the file. +All [Shared Overlay Variables](../overlay_variables.md) are available with the default values below as well as the additional Variables below which can be used to customize the file. | Variable | Default | |:--------------------|:------------| diff --git a/docs/defaults/overlays/streaming.md b/docs/defaults/overlays/streaming.md index c157476b..dc2a6cdf 100644 --- a/docs/defaults/overlays/streaming.md +++ b/docs/defaults/overlays/streaming.md @@ -53,7 +53,7 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Overlay Variables](../overlay_variables) are available with the default values below as well as the additional Variables below which can be used to customize the file. +All [Shared Overlay Variables](../overlay_variables.md) are available with the default values below as well as the additional Variables below which can be used to customize the file. | Variable | Description & Values | |:-----------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| diff --git a/docs/defaults/overlays/studio.md b/docs/defaults/overlays/studio.md index c14325ff..005c842c 100644 --- a/docs/defaults/overlays/studio.md +++ b/docs/defaults/overlays/studio.md @@ -28,7 +28,7 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Overlay Variables](../overlay_variables) are available with the default values below as well as the additional Variables below which can be used to customize the file. +All [Shared Overlay Variables](../overlay_variables.md) are available with the default values below as well as the additional Variables below which can be used to customize the file. | Variable | Default | |:--------------------|:------------| diff --git a/docs/defaults/overlays/versions.md b/docs/defaults/overlays/versions.md index 423913fb..1b29d6a3 100644 --- a/docs/defaults/overlays/versions.md +++ b/docs/defaults/overlays/versions.md @@ -34,7 +34,7 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Overlay Variables](../overlay_variables) are available with the default values below as well as the additional Variables below which can be used to customize the file. +All [Shared Overlay Variables](../overlay_variables.md) are available with the default values below as well as the additional Variables below which can be used to customize the file. | Variable | Default | |:--------------------|:-----------------| diff --git a/docs/defaults/overlays/video_format.md b/docs/defaults/overlays/video_format.md index 7719429a..e3532c55 100644 --- a/docs/defaults/overlays/video_format.md +++ b/docs/defaults/overlays/video_format.md @@ -47,7 +47,7 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Overlay Variables](../overlay_variables) are available with the default values below as well as the additional Variables below which can be used to customize the file. +All [Shared Overlay Variables](../overlay_variables.md) are available with the default values below as well as the additional Variables below which can be used to customize the file. | Variable | Default | |:--------------------|:------------| diff --git a/docs/defaults/people.md b/docs/defaults/people.md index 8ca41158..418e8d01 100644 --- a/docs/defaults/people.md +++ b/docs/defaults/people.md @@ -4,20 +4,20 @@ This Default can use the `style` template variable to easily change the posters ### Black & White Style (Default) -![](../images/person_bw.png) +![](images/person_bw.png) ### Rainier Style -![](../images/person_rainier.png) +![](images/person_rainier.png) ### Signature Style -![](../images/person_signature.png) +![](images/person_signature.png) ### Diiivoy Style -![](../images/person_diiivoy.png) +![](images/person_diiivoy.png) ### Diiivoy Color Style -![](../images/person_diiivoycolor.png) +![](images/person_diiivoycolor.png) diff --git a/docs/defaults/playlist.md b/docs/defaults/playlist.md index 7b621e5c..f256d932 100644 --- a/docs/defaults/playlist.md +++ b/docs/defaults/playlist.md @@ -2,7 +2,7 @@ The `playlist` Default Metadata File is used to create playlists based on popular Movie/TV Show universes (such as the Marvel Cinematic Universe or Star Trek). -This Default file requires [Trakt Authentication](../config/trakt) +This Default file requires [Trakt Authentication](../config/trakt.md) This file assumes that you have libraries named `Movies` and `TV Shows`. If you do not have these libraries or want to use alternative/additional libraries, use the `libraries` template variable which is outlined in the [Template Variables](#template-variables) table. ![](images/playlist.png) @@ -36,14 +36,14 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -**[Shared Variables](collection_variables) are NOT available to this default file.** +**[Shared Variables](collection_variables.md) are NOT available to this default file.** | Variable | Description & Values | |:-----------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `use_<<key>>`<sup>1</sup> | **Description:** Turns off individual Playlists in a Defaults file.<br>**Values:** `false` to turn off the playlist | | `name_<<key>>`<sup>1</sup> | **Description:** Changes the name of the specified key's playlist.<br>**Values:** New Playlist Name | | `summary_<<key>>`<sup>1</sup> | **Description:** Changes the summary of the specified key's playlist.<br>**Values:** New Playlist Summary | -| `libraries` | **Description:** Sets the names of the libraries to use for the Playlists.<br>**Default:** `Movies, TV Shows`<br>**Values:** Comma-separated string or list of library mapping names defined in the `libraries` attribute in the base of your [Configuration File](../config/configuration). | +| `libraries` | **Description:** Sets the names of the libraries to use for the Playlists.<br>**Default:** `Movies, TV Shows`<br>**Values:** Comma-separated string or list of library mapping names defined in the `libraries` attribute in the base of your [Configuration File](../config/configuration.md. | | `sync_to_user` | **Description:** Sets the users to sync all playlists to.<br>**Default:** `playlist_sync_to_users` Global Setting Value<br>**Values:** Comma-separated string or list of user names. | | `sync_to_user_<<key>>`<sup>1</sup> | **Description:** Sets the users to sync the specified key's playlist to.<br>**Default:** `sync_to_user` Value<br>**Values:** Comma-separated string or list of user names. | | `exclude_user` | **Description:** Sets the users to exclude from sync for all playlists.<br>**Default:** `playlist_sync_to_users` Global Setting Value<br>**Values:** Comma-separated string or list of user names. | diff --git a/docs/defaults/separators.md b/docs/defaults/separators.md index f9a80527..1e0f1dfe 100644 --- a/docs/defaults/separators.md +++ b/docs/defaults/separators.md @@ -45,7 +45,7 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -**[Shared Variables](collection_variables) are NOT available to separator collections in any default file.** +**[Shared Variables](collection_variables.md) are NOT available to separator collections in any default file.** | Variable | Description & Values | |:-------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| diff --git a/docs/defaults/show/content_rating_us.md b/docs/defaults/show/content_rating_us.md index 149452d1..556dca1e 100644 --- a/docs/defaults/show/content_rating_us.md +++ b/docs/defaults/show/content_rating_us.md @@ -4,7 +4,7 @@ The `content_rating_us` Default Metadata File is used to dynamically create coll If you do not use the US-based rating system within Plex, this file will attempt to match the ratings in your library to the respective rating system. -**This file has a Movie Library [Counterpart](../movie/content_rating_us).** +**This file has a Movie Library [Counterpart](../movie/content_rating_us.md).** ![](../images/moviecontent_rating_us.png) @@ -16,7 +16,7 @@ Supported Library Types: Show | Collection | Key | Description | |:---------------------------------------------------------|:---------------------------------------------|:-------------------------------------------------------------------------------| -| `Ratings Collections` | `separator` | [Separator Collection](../separators) to denote the Section of Collections. | +| `Ratings Collections` | `separator` | [Separator Collection](../separators.md) to denote the Section of Collections. | | `<<Content Rating>> Shows`<br>**Example:** `TV-14 Shows` | `<<Content Rating>>`<br>**Example:** `TV-14` | Collection of Shows that have this Content Rating. | | `Not Rated Shows` | `other` | Collection of Shows that are Unrated, Not Rated or any other uncommon Ratings. | @@ -37,16 +37,16 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Collection Variables](../collection_variables) are available as well as the additional Variables below which can be used to customize the file. +All [Shared Collection Variables](../collection_variables.md) are available as well as the additional Variables below which can be used to customize the file. -This file contains a [Separator](../separators) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. +This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. | Variable | Description & Values | |:------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Values:** Number Greater than 0 | | `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | -| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../metadata/builders/smart.md#sort-options) | -| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../metadata/builders/smart.md#sort-options) | +| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | +| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | | `include` | **Description:** Overrides the [default include list](#default-include).<br>**Values:** List of Content Ratings found in your library | | `exclude` | **Description:** Exclude these Content Ratings from creating a Dynamic Collection.<br>**Values:** List of Content Ratings found in your library | | `addons` | **Description:** Overrides the [default addons dictionary](#default-addons). Defines how multiple keys can be combined under a parent key. The parent key doesn't have to already exist in Plex<br>**Values:** Dictionary List of Content Ratings found in your library | diff --git a/docs/defaults/show/continent.md b/docs/defaults/show/continent.md index 26a88de1..44d8de88 100644 --- a/docs/defaults/show/continent.md +++ b/docs/defaults/show/continent.md @@ -2,7 +2,7 @@ The `continent` Default Metadata File is used to dynamically create collections based on the countries within your library. The collection aims to be inclusive, with all 230 countries incorporated into seven continents. -**This file has a Movie Library [Counterpart](../movie/continent).** +**This file has a Movie Library [Counterpart](../movie/continent.md).** ![](../images/continent1.png) @@ -14,7 +14,7 @@ Supported Library Types: Show | Collection | Key | Description | |:------------------------------------------------|:---------------------------------------------------|:----------------------------------------------------------------------------| -| `Continent Collections` | `separator` | [Separator Collection](../separators) to denote the Section of Collections. | +| `Continent Collections` | `separator` | [Separator Collection](../separators.md) to denote the Section of Collections. | | `<<Continent>>`<br>**Example:** `South America` | `<<2 digit ISO 3166-1 code>>`<br>**Example:** `br` | Collection of TV Shows that have this Continent. | | `Other Continents` | `other` | Collection of TV Shows that are in other uncommon Continents. | @@ -41,9 +41,9 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Collection Variables](../collection_variables) are available as well as the additional Variables below which can be used to customize the file. +All [Shared Collection Variables](../collection_variables.md) are available as well as the additional Variables below which can be used to customize the file. -This file contains a [Separator](../separators) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. +This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. | Variable | Description & Values | |:--------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| @@ -52,8 +52,8 @@ This file contains a [Separator](../separators) so all [Shared Separator Variabl | `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | | `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | | `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | -| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../metadata/builders/smart.md#sort-options) | -| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../metadata/builders/smart.md#sort-options) | +| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | +| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | | `include` | **Description:** Overrides the [default include list](#default-include).<br>**Values:** List of [2 digit ISO 3166-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes) | | `exclude` | **Description:** Exclude these Countries from creating a Dynamic Collection.<br>**Values:** List of [2 digit ISO 3166-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes) | | `addons` | **Description:** Defines how multiple keys can be combined under a parent key. The parent key doesn't have to already exist in Plex<br>**Values:** Dictionary List of [2 digit ISO 3166-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes) | diff --git a/docs/defaults/show/country.md b/docs/defaults/show/country.md index 8ba15d4c..7b657452 100644 --- a/docs/defaults/show/country.md +++ b/docs/defaults/show/country.md @@ -2,7 +2,7 @@ The `country` Default Metadata File is used to dynamically create collections based on the countries available in your library. -**This file has a Movie Library [Counterpart](../movie/country).** +**This file has a Movie Library [Counterpart](../movie/country.md).** ![](../images/country1.png) @@ -14,7 +14,7 @@ Supported Library Types: Show | Collection | Key | Description | |:----------------------------------------|:---------------------------------------------------|:----------------------------------------------------------------------------| -| `Country Collections` | `separator` | [Separator Collection](../separators) to denote the Section of Collections. | +| `Country Collections` | `separator` | [Separator Collection](../separators.md) to denote the Section of Collections. | | `<<Country>>`<br>**Example:** `Germany` | `<<2 digit ISO 3166-1 code>>`<br>**Example:** `de` | Collection of TV Shows that have this Country. | | `Other Countries` | `other` | Collection of TV Shows that are in other uncommon Countries. | @@ -41,9 +41,9 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Collection Variables](../collection_variables) are available as well as the additional Variables below which can be used to customize the file. +All [Shared Collection Variables](../collection_variables.md) are available as well as the additional Variables below which can be used to customize the file. -This file contains a [Separator](../separators) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. +This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. | Variable | Description & Values | |:--------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| @@ -52,8 +52,8 @@ This file contains a [Separator](../separators) so all [Shared Separator Variabl | `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | | `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | | `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | -| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../metadata/builders/smart.md#sort-options) | -| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../metadata/builders/smart.md#sort-options) | +| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | +| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | | `include` | **Description:** Overrides the [default include list](#default-include).<br>**Values:** List of [2 digit ISO 3166-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes) | | `exclude` | **Description:** Exclude these Countries from creating a Dynamic Collection.<br>**Values:** List of [2 digit ISO 3166-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes) | | `addons` | **Description:** Defines how multiple keys can be combined under a parent key. The parent key doesn't have to already exist in Plex<br>**Values:** Dictionary List of [2 digit ISO 3166-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes) | diff --git a/docs/defaults/show/decade.md b/docs/defaults/show/decade.md index 9521ac65..90855a9b 100644 --- a/docs/defaults/show/decade.md +++ b/docs/defaults/show/decade.md @@ -2,7 +2,7 @@ The `decade` Metadata File is used to dynamically create collections based on the decades available in your library, sorted by critic rating to create a "best of <decade>" -**This file has a Movie Library [Counterpart](../movie/decade).** +**This file has a Movie Library [Counterpart](../movie/decade.md).** ![](../images/decade.png) @@ -14,7 +14,7 @@ Supported Library Types: Show | Collection | Key | Description | |:-----------------------------------------------------|:----------------------------------|:----------------------------------------------------------------------------| -| `Decade Collections` | `separator` | [Separator Collection](../separators) to denote the Section of Collections. | +| `Decade Collections` | `separator` | [Separator Collection](../separators.md) to denote the Section of Collections. | | `Best of <<Decade>>`<br>**Example:** `Best of 2020s` | `<<Year>>`<br>**Example:** `2020` | Collection of Shows released in this Decade. | ## Config @@ -34,16 +34,16 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Collection Variables](../collection_variables) are available as well as the additional Variables below which can be used to customize the file. +All [Shared Collection Variables](../collection_variables.md) are available as well as the additional Variables below which can be used to customize the file. -This file contains a [Separator](../separators) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. +This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. | Variable | Description & Values | |:------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Default:** `100`<br>**Values:** Number Greater than 0 | | `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | -| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `critic_rating.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../metadata/builders/smart.md#sort-options) | -| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../metadata/builders/smart.md#sort-options) | +| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `critic_rating.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | +| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | | `exclude` | **Description:** Exclude these Decades from creating a Dynamic Collection.<br>**Values:** List of Decades found in your library | | `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `Best of <<key_name>>`<br>**Values:** Any string with `<<key_name>>` in it. | | `summary_format` | **Description:** Changes the summary format of the Dynamic Collections.<br>**Default:** `Top <<limit>> <<library_translation>>s of the <<key_name>>.`<br>**Values:** Any string. | diff --git a/docs/defaults/show/franchise.md b/docs/defaults/show/franchise.md index 8fc6c715..585f2116 100644 --- a/docs/defaults/show/franchise.md +++ b/docs/defaults/show/franchise.md @@ -4,7 +4,7 @@ The `franchise` Default Metadata File is used to create collections based on pop Unlike most Default Metadata Files, Franchise works by placing collections inline with the main library items if your library allows it. For example, the "Pretty Little Liars" franchise collection will appear next to the "Pretty Little Liars" show in your library so that you have easy access to the other shows in the franchise. -**This file has a Movie Library [Counterpart](../movie/franchise).** +**This file has a Movie Library [Counterpart](../movie/franchise.md).** ![](../images/showfranchise.png) @@ -35,7 +35,7 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -**[Shared Collection Variables](../collection_variables) are NOT available to this default file.** +**[Shared Collection Variables](../collection_variables.md) are NOT available to this default file.** | Variable | Description & Values | |:-----------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| @@ -50,8 +50,8 @@ Note that the `template_variables:` section only needs to be used if you do want | `build_collection` | **Description:** Controls if you want the collection to actually be built. i.e. you may just want these shows sent to Sonarr.<br>**Values:** `false` to not build the collection | | `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | | `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | -| `collection_order` | **Description:** Changes the Collection Order for all collections in this file.<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../metadata/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | -| `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../metadata/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | +| `collection_order` | **Description:** Changes the Collection Order for all collections in this file.<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | +| `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | | `exclude` | **Description:** Exclude these Collections from creating a Dynamic Collection.<br>**Values:** List of Collection IDs | | `data` | **Description:** Overrides the [default data dictionary](#default-data). Defines the data that the custom dynamic collection processes.<br>**Values:** Dictionary List of TMDb Main Show ID | | `append_data` | **Description:** Appends to the [default data dictionary](#default-data).<br>**Values:** Dictionary List of TMDb Main Show ID | diff --git a/docs/defaults/show/network.md b/docs/defaults/show/network.md index 784611d6..d53d6d60 100644 --- a/docs/defaults/show/network.md +++ b/docs/defaults/show/network.md @@ -12,7 +12,7 @@ Supported Library Types: Show | Collection | Key | Description | |:------------------------------------|:------------------------------------|:----------------------------------------------------------------------------| -| `Network Collections` | `separator` | [Separator Collection](../separators) to denote the Section of Collections. | +| `Network Collections` | `separator` | [Separator Collection](../separators.md) to denote the Section of Collections. | | `<<network>>`<br>**Example:** `NBC` | `<<network>>`<br>**Example:** `NBC` | Collection of Shows the aired on the network. | ## Config @@ -32,16 +32,16 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Collection Variables](../collection_variables) are available as well as the additional Variables below which can be used to customize the file. +All [Shared Collection Variables](../collection_variables.md) are available as well as the additional Variables below which can be used to customize the file. -This file contains a [Separator](../separators) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. +This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. | Variable | Description & Values | |:------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Values:** Number Greater than 0 | | `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | -| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../metadata/builders/smart.md#sort-options) | -| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../metadata/builders/smart.md#sort-options) | +| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | +| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | | `include` | **Description:** Overrides the [default include list](#default-include).<br>**Values:** List of Networks found in your library | | `exclude` | **Description:** Exclude these Networks from creating a Dynamic Collection.<br>**Values:** List of Networks found in your library | | `addons` | **Description:** Overrides the [default addons dictionary](#default-addons). Defines how multiple keys can be combined under a parent key. The parent key doesn't have to already exist in Plex<br>**Values:** Dictionary List of Networks found in your library | diff --git a/docs/defaults/show/region.md b/docs/defaults/show/region.md index 3317b5e8..926df43c 100644 --- a/docs/defaults/show/region.md +++ b/docs/defaults/show/region.md @@ -2,7 +2,7 @@ The `region` Default Metadata File is used to dynamically create collections based on the countries within your library. The collection aims to be inclusive, with all 230 countries incorporated into 39 countries or collections of countries. Some care has been taken to ensure all countries are included, and the groupings won't fit well with everyone's collections. Western and Southern Europe, Oceania, and North America could be useful groupings for those libraries with more of an Asian focus, for instance. Please see the comments in the yml below where a decision point might be seen as controversial. You are welcome to edit this to fit your own audience's needs. -**This file has a Movie Library [Counterpart](../movie/region).** +**This file has a Movie Library [Counterpart](../movie/region.md).** ![](../images/region1.png) @@ -14,7 +14,7 @@ Supported Library Types: Show | Collection | Key | Description | |:-----------------------------------|:---------------------------------------------------|:----------------------------------------------------------------------------| -| `Region Collections` | `separator` | [Separator Collection](../separators) to denote the Section of Collections. | +| `Region Collections` | `separator` | [Separator Collection](../separators.md) to denote the Section of Collections. | | `<<Region>>`<br>**Example:** `de` | `<<2 digit ISO 3166-1 code>>`<br>**Example:** `de` | Collection of TV Shows that have this Region. | | `Other Regions` | `other` | Collection of TV Shows that are in other uncommon Regions. | @@ -41,9 +41,9 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Collection Variables](../collection_variables) are available as well as the additional Variables below which can be used to customize the file. +All [Shared Collection Variables](../collection_variables.md) are available as well as the additional Variables below which can be used to customize the file. -This file contains a [Separator](../separators) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. +This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. | Variable | Description & Values | |:--------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| @@ -52,8 +52,8 @@ This file contains a [Separator](../separators) so all [Shared Separator Variabl | `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | | `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | | `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | -| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../metadata/builders/smart.md#sort-options) | -| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../metadata/builders/smart.md#sort-options) | +| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | +| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | | `include` | **Description:** Overrides the [default include list](#default-include).<br>**Values:** List of [2 digit ISO 3166-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes) | | `exclude` | **Description:** Exclude these Countries from creating a Dynamic Collection.<br>**Values:** List of [2 digit ISO 3166-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes) | | `addons` | **Description:** Defines how multiple keys can be combined under a parent key. The parent key doesn't have to already exist in Plex<br>**Values:** Dictionary List of [2 digit ISO 3166-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes) | diff --git a/docs/features.md b/docs/features.md deleted file mode 100644 index 2390624b..00000000 --- a/docs/features.md +++ /dev/null @@ -1,9 +0,0 @@ -<div data-canny /> -<script>!function(w,d,i,s){function l(){if(!d.getElementById(i)){var f=d.getElementsByTagName(s)[0],e=d.createElement(s);e.type="text/javascript",e.async=!0,e.src="https://canny.io/sdk.js",f.parentNode.insertBefore(e,f)}}if("function"!=typeof w.Canny){var c=function(){c.q.push(arguments)};c.q=[],w.Canny=c,"complete"===d.readyState?l():w.attachEvent?w.attachEvent("onload",l):w.addEventListener("load",l,!1)}}(window,document,"canny-jssdk","script");</script> -<script> - Canny('render', { - boardToken: '630e131f19041865fbbd52bb', - basePath: '/features', - ssoToken: null, - }); -</script> \ No newline at end of file diff --git a/docs/home.md b/docs/home.md new file mode 100644 index 00000000..084efcc3 --- /dev/null +++ b/docs/home.md @@ -0,0 +1,178 @@ + +# ![Logo](assets/logo-full.webp) + +[![GitHub release (latest by date)](https://img.shields.io/github/v/release/meisnate12/Plex-Meta-Manager?style=plastic)](https://github.com/meisnate12/Plex-Meta-Manager/releases) +[![Docker Image Version (latest semver)](https://img.shields.io/docker/v/meisnate12/plex-meta-manager?label=docker&sort=semver&style=plastic)](https://hub.docker.com/r/meisnate12/plex-meta-manager) +[![Docker Pulls](https://img.shields.io/docker/pulls/meisnate12/plex-meta-manager?style=plastic)](https://hub.docker.com/r/meisnate12/plex-meta-manager) +[![Develop GitHub commits since latest stable release (by SemVer)](https://img.shields.io/github/commits-since/meisnate12/plex-meta-manager/latest/develop?label=Commits%20in%20Develop&style=plastic)](https://github.com/meisnate12/Plex-Meta-Manager/tree/develop) +[![Nightly GitHub commits since latest stable release (by SemVer)](https://img.shields.io/github/commits-since/meisnate12/plex-meta-manager/latest/nightly?label=Commits%20in%20Nightly&style=plastic)](https://github.com/meisnate12/Plex-Meta-Manager/tree/nightly) + +[![Discord](https://img.shields.io/discord/822460010649878528?color=%2300bc8c&label=Discord&style=plastic)](https://discord.gg/NfH6mGFuAB) +[![Reddit](https://img.shields.io/reddit/subreddit-subscribers/PlexMetaManager?color=%2300bc8c&label=r%2FPlexMetaManager&style=plastic)](https://www.reddit.com/r/PlexMetaManager/) +[![Wiki](https://img.shields.io/readthedocs/plex-meta-manager?color=%2300bc8c&style=plastic)](https://metamanager.wiki) +[![Translations](https://img.shields.io/weblate/progress/plex-meta-manager?color=00bc8c&server=https%3A%2F%2Ftranslations.metamanager.wiki&style=plastic)](https://translations.metamanager.wiki/projects/plex-meta-manager/#languages) +[![GitHub Sponsors](https://img.shields.io/github/sponsors/meisnate12?color=%238a2be2&style=plastic)](https://github.com/sponsors/meisnate12) +[![Sponsor or Donate](https://img.shields.io/badge/-Sponsor%2FDonate-blueviolet?style=plastic)](https://github.com/sponsors/meisnate12) +[![Feature Requests](https://img.shields.io/badge/Feature%20Requests-blueviolet?style=plastic)](https://features.metamanager.wiki/) + +Plex Meta Manager is a powerful tool designed to give you complete control over your media libraries. With Plex Meta Manager, you can take your customization to the next level, with granular control over metadata, collections, overlays, and much more. + +Transform your media library with Plex Meta Manager and discover its full potential! Connect to third-party services like TMDb, Trakt, and IMDb, among others, to create one-of-a-kind collections, overlays and more. Your media library will stand out and be tailored to your specific needs. + +## What Can Plex Meta Manager Do? + +:octicons-versions-24:{ .lg .middle } __Overhaul Your Media Libraries__ + +- Elevate your library with beautifully crafted metadata - customize artwork, titles, summaries, and more to create a stunning library. + +:octicons-sliders-16:{ .lg .middle } __PMM Defaults__ + +- Take advantage of pre-made modular Collections & Overlays to reduce the manual effort and get to the good stuff with less effort! + +:material-connection:{ .lg .middle } __Third-Party Integrations__ + +- Harness the power of Trakt, TMDb, IMDb, Flixpatrol and more to create collections and overlays! +- Integrate with Sonarr and Radarr to automate your library growth. + +:material-star-face:{ .lg .middle } __And More!__ + +- We're constantly working on new features to take your library management experience to the next level. +- Consider sponsoring the project to allow us to continue building great features for you! + +## Example Plex Meta Manager Libraries + +Here are some examples of the things you can achieve using Plex Meta Manager! + +**Example Movie Collections using the [Plex Meta Manager Defaults](#Plex Meta Manager-defaults.md)** (click to enlarge): + +![Movie Collection Preview](assets/movie-collection-preview.png){width="600"} + +**Example Show Overlays using the [Plex Meta Manager Defaults](#Plex Meta Manager-defaults.md)** (click to enlarge): + +![Show Library Preview](assets/show-library-preview.png){ width="600" } + + +## Plex Meta Manager Defaults + +Want your library to look like the above images? With the [PMM Defaults](defaults/guide.md) you can! These powerful and modular files were designed by the Plex Meta Manager team to make it simple to create a personalized, one-of-a-kind media collection without the hassle of manually defining each one. + +Want to see what the community has to offer? Check out the [Plex Meta Manager Configs](https://github.com/meisnate12/Plex-Meta-Manager-Configs) repository on GitHub to see user-submitted configuration files, or even add your own to the mix! + +With Plex Meta Manager, you can also manage metadata for all your media types, from movies and shows to music and more. And since your metadata is managed outside of your libraries, you'll never have to worry about losing your customizations in the event of a media server database loss, you can simply reapply them! It is also easy to move your customizations between servers if you need to. + +## Getting Started + +To get started with Plex Meta Manager, follow these simple steps: + +1. Install Plex Meta Manager on your device. You can find the installation instructions for a variety of platforms [here](pmm/install/installation.md). + +2. Once you have installed Plex Meta Manager, create your [Configuration File](config/configuration.md). This file contains important information such as URLs and credentials needed to connect to services like Plex and TMDb + +3. After creating the Configuration File, you can start updating Metadata and building automatic Collections by creating a [Metadata File](metadata/metadata.md) for each Library you want to work with. If you'd rather use some of our pre-made Metadata Files, take a look at the [Plex Meta Manager Defaults](#defaults-and-user-metadataoverlay-files) + +4. Finally, check out the [Wiki](https://metamanager.wiki/), you'll find new and exciting ways to truly unlock the potential of your libraries. + +## Step-by-Step Guides + +If you're a beginner to the concepts of Python, Git and/or Plex Meta Manager and find the above steps challenging, don't worry. We've got some step-by-step guides that can help you get started. These guides will take you through the process of installing Plex Meta Manager, creating your Configuration File and getting some basic Collections up and running. + + 1. The [Local Walkthrough](pmm/install/guides/local.md) covers installing Plex Meta Manager natively [not in docker] on your local computer or a remote server. + 2. The [Docker Walkthrough](pmm/install/guides/docker.md) covers installing Plex Meta Manager via Docker. + 3. The [unRAID Walkthrough](pmm/install/guides/unraid.md) gets you started configuring Plex Meta Manager in UNRaid. It doesn't go through the same steps with regard to creating the config file and metadata file, so you may want to go through the [Docker Walkthrough](pmm/install/guides/docker.md) first on your computer to gain that understanding. + +## Example Usage + +Plex Meta Manager puts you in control of your media library by letting you create custom Collections that make discovering and organizing your content a breeze. With powerful search and filtering options, you can build Collections based on popular builders like TMDb, IMDb, Trakt, and many more. + +Imagine having Collections like these at your fingertips: + + * Trending and Popular (based on TMDb, IMDb, Trakt, etc.) + * Streaming Services (like Netflix, Disney+, and more) + * Networks + * Studios + * Genres + * Actors + * Decades + +Plex Meta Manager gives you endless possibilities to curate and organize your media library any way you want. Create custom Collections and Overlays that fit your unique preferences and make discovering your content effortless. + +But if you don't want to spend time manually creating Collections and Overlays, we've got you covered. Check out the [PMM Defaults](defaults/guide.md) - a handcrafted selection of tried-and-tested Collections and Overlays made by the Plex Meta Manager team. + + + +## Develop & Nightly Branches + +The Develop and Nightly branches are "beta" versions of Plex Meta Manager that are updated more frequently than the stable version (Master branch). These branches are where bug fixes, new features, and other changes are added before being released to the Master branch. + +However, these branches (especially Nightly) are recommended for more technical users who don't mind updating frequently to get the latest changes. Keep in mind that these beta branches may have bugs or other issues that could cause problems with Plex Meta Manager or your media server. So, if you're not comfortable with technical issues, it's best to stick with the Master branch. + +??? "Develop Branch - Click to Expand" + + [![Develop GitHub commits since latest stable release (by SemVer)](https://img.shields.io/github/commits-since/meisnate12/plex-meta-manager/latest/develop?label=Commits%20in%20Develop&style=plastic)](https://github.com/meisnate12/Plex-Meta-Manager/tree/develop) + + The [develop](https://github.com/meisnate12/Plex-Meta-Manager/tree/develop) branch has the most updated **documented** fixes and enhancements to Plex Meta Manager. This version is tested and documented to some degree, but it is still an active Develop branch, so there may be rough edges. + + Switching to `develop`: + + === "Running in Docker" + Add ":develop" to the image name in your run command or configuration: + ``` + meisnate12/plex-meta-manager:develop + ``` + === "Running on the Host" + In the directory where you cloned PMM: + ```bash + git checkout develop + ``` + To switch back: + ```bash + git checkout master + ``` + + + If switching to the develop branch, it is recommended to also use the [develop branch of the wiki](https://metamanager.wiki/en/develop/), which documents any changes made from the Master branch. + +??? warning "Nightly Branch - Click to Expand" + + [![Nightly GitHub commits since latest stable release (by SemVer)](https://img.shields.io/github/commits-since/meisnate12/plex-meta-manager/latest/nightly?label=Commits%20in%20Nightly&style=plastic)](https://github.com/meisnate12/Plex-Meta-Manager/tree/nightly) + + **This branch will have squashed commits which can cause `git pull`/`git fetch` to error you can use `git reset origin/nightly --hard` to fix the branch.** + + The [nightly](https://github.com/meisnate12/Plex-Meta-Manager/tree/nightly) branch has the absolute latest version of Plex Meta Manager, but it could easily break, there is no guarantee that it even works, and any new features will not be documented until they have progressed enough to reach the develop branch. + + Switching to `nightly`: + + === "Running in Docker" + Add ":develop" to the image name in your run command or configuration: + ``` + meisnate12/plex-meta-manager:develop + ``` + === "Running on the Host" + In the directory where you cloned PMM: + ```bash + git checkout develop + ``` + To switch back: + ```bash + git checkout master + ``` + + As this branch is subject to extreme change, there is no promise of the feature being documented in the [nightly](https://metamanager.wiki/en/nightly/) branch of the wiki and all discussions relating to changes made in the nightly branch will be held within the [Plex Meta Manager Discord Server](https://discord.gg/NfH6mGFuAB). + +## Discord Support Server + +If you're looking for support for any questions or issues you might have, or if you just want to be a part of our growing community, Join the [Plex Meta Manager Discord Server](https://discord.gg/NfH6mGFuAB). + +## Feature Requests + +At Plex Meta Manager, we value our community's input and actively seek feedback to drive the evolution of our product. We want to hear your ideas on how to enhance Plex Meta Manager, and we encourage you to visit our [Feature Request](https://features.metamanager.wiki/features) page to share your thoughts or vote on what features you would like to see added next. Your voice matters and helps shape the future of Plex Meta Manager, so please don't hesitate to join in the conversation and be a part of our community-driven development process. + +## Errors and Configuration Questions + +If you're having trouble, we recommend first joining the [Plex Meta Manager Discord Server](https://discord.gg/NfH6mGFuAB) and seeking support there. If that isn't possible for you, here's what you can do: + +* If you get an error, update to the latest version and check if the issue persists. If it does, report the bug by filling out the [Bug Report](https://github.com/meisnate12/Plex-Meta-Manager/issues/new?assignees=meisnate12&labels=status%3Anot-yet-viewed%2C+bug&template=bug_report.md&title=Bug%3A+) template. +* If you spot a mistake or have an idea to improve the [Plex Meta Manager Wiki](https://metamanager.wiki/), submit a request using the [Wiki Request](https://github.com/meisnate12/Plex-Meta-Manager/issues/new?assignees=meisnate12&labels=status%3Anot-yet-viewed%2C+documentation&template=3.docs_request.yml&title=%5BDocs%5D%3A+) template. +* If you have a question about metadata configuration, start a discussion on the [Discussions](https://github.com/meisnate12/Plex-Meta-Manager/discussions). Remember, the community helps shape the future of Plex Meta Manager, so your input is valuable! + +For support on any of the above, visit the [Discord server](https://discord.gg/ugfKXpFND8). \ No newline at end of file diff --git a/docs/home/environmental.md b/docs/home/environmental.md deleted file mode 100644 index ba1f556e..00000000 --- a/docs/home/environmental.md +++ /dev/null @@ -1,1026 +0,0 @@ -# Run Commands & Environment Variables - -This table outlines the run commands and environment variables that can be utilized to customize the running of Plex Meta Manager to the user's requirements. Environment Variable values are used over Shell Command values. - -If you run into a race condition where you have set an Environment Variable within your system and also use a Shell Command for the same attribute, then the Environment Variable will take priority. - -These docs are assuming you have a basic understanding of Docker concepts. One place to get familiar with Docker would be the [official tutorial](https://www.docker.com/101-tutorial/). - -Environment Variables can also be placed inside a `.env` file inside your config folder. - -| Attribute | Shell Command | Environment Variable | -|:------------------------------------------------------|:----------------------------------------------|:-------------------------| -| [Config](#config) | `-c` or `--config` | `PMM_CONFIG` | -| [Time to Run](#time-to-run) | `-t` or `--times` | `PMM_TIMES` | -| [Run Immediately](#run-immediately) | `-r` or `--run` | `PMM_RUN` | -| [Run Tests](#run-tests) | `-rt`, `--tests`, or `--run-tests` | `PMM_TESTS` | -| [Debug](#debug) | `-db` or `--debug` | `PMM_DEBUG` | -| [Trace](#trace) | `-tr` or `--trace` | `PMM_TRACE` | -| [Log Requests](#log-requests) | `-lr` or `--log-requests` | `PMM_LOG_REQUESTS` | -| [Timeout](#timeout) | `-ti` or `--timeout` | `PMM_TIMEOUT` | -| [Collections Only](#collections-only) | `-co` or `--collections-only` | `PMM_COLLECTIONS_ONLY` | -| [Playlists Only](#playlists-only) | `-po` or `--playlists-only` | `PMM_PLAYLISTS_ONLY` | -| [Operations Only](#operations-only) | `-op`, `--operations`, or `--operations-only` | `PMM_OPERATIONS_ONLY` | -| [Overlays Only](#overlays-only) | `-ov`, `--overlays`, or `--overlays-only` | `PMM_OVERLAYS_ONLY` | -| [Run Collections](#run-collections) | `-rc` or `--run-collections` | `PMM_RUN_COLLECTIONS` | -| [Run Libraries](#run-libraries) | `-rl` or `--run-libraries` | `PMM_RUN_LIBRARIES` | -| [Run Metadata Files](#run-metadata-files) | `-rm` or `--run-metadata-files` | `PMM_RUN_METADATA_FILES` | -| [Libraries First](#libraries-first) | `-lf` or `--libraries-first` | `PMM_LIBRARIES_FIRST` | -| [Ignore Schedules](#ignore-schedules) | `-is` or `--ignore-schedules` | `PMM_IGNORE_SCHEDULES` | -| [Ignore Ghost](#ignore-ghost) | `-ig` or `--ignore-ghost` | `PMM_IGNORE_GHOST` | -| [Delete Collections](#delete-collections) | `-dc` or `--delete-collections` | `PMM_DELETE_COLLECTIONS` | -| [Delete Labels](#delete-labels) | `-dl` or `--delete-labels` | `PMM_DELETE_LABELS` | -| [Resume Run](#resume-run) | `-re` or `--resume` | `PMM_RESUME` | -| [No Countdown](#no-countdown) | `-nc` or `--no-countdown` | `PMM_NO_COUNTDOWN` | -| [No Missing](#no-missing) | `-nm` or `--no-missing` | `PMM_NO_MISSING` | -| [No Report](#no-report) | `-nr` or `--no-report` | `PMM_NO_REPORT` | -| [Read Only Config](#read-only-config) | `-ro` or `--read-only-config` | `PMM_READ_ONLY_CONFIG` | -| [Divider Character](#divider-character--screen-width) | `-d` or `--divider` | `PMM_DIVIDER` | -| [Screen Width](#divider-character--screen-width) | `-w` or `--width` | `PMM_WIDTH` | -| [Config Secrets](#config-secrets) | `--pmm-***` | `PMM_***` | - -Further explanation and examples of each command can be found below. - -## Run Command Attribute Examples - -Environment variables are expressed as `KEY=VALUE` Depending on the context where you are specifying them, you may enter those two things in two different fields, or some other way. The examples below show how you would specify the environment variable in a script or a `docker run` command. Things like Portainer or a NAS Docker UI will have different ways to specify these things. - -### Config - -Specify the location of the configuration YAML file. - -<table class="dualTable colwidths-auto align-default table"> - <tr> - <th style="background-color: #1d1d1d;"></th> - <th>Shell</th> - <th>Environment</th> - </tr> - <tr> - <th>Flags</th> - <td><code>-c</code> or <code>--config</code></td> - <td><code>PMM_CONFIG</code></td> - </tr> - <tr> - <th>Example</th> - <td><code>--config /data/config.yml</code></td> - <td><code>PMM_CONFIG=/data/config.yml</code></td> - </tr> - <tr> - <th>Default</th> - <td colspan="2"><code>config/config.yml</code></td> - </tr> - <tr> - <th>Values</th> - <td colspan="2">Path to YAML config file</td> - </tr> -</table> - -````{tab} Local Environment -``` -python plex_meta_manager.py --config <path_to_config> -``` -```` -````{tab} Docker Environment -``` -docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --config <path_to_config> -``` -```` - -### Time to Run - -Specify the time of day that Plex Meta Manager will run. - -<table class="dualTable colwidths-auto align-default table"> - <tr> - <th style="background-color: #1d1d1d;"></th> - <th>Shell</th> - <th>Environment</th> - </tr> - <tr> - <th>Flags</th> - <td><code>-t</code> or <code>--times</code></td> - <td><code>PMM_TIMES</code></td> - </tr> - <tr> - <th>Example</th> - <td><code>--times 06:00,18:00</code></td> - <td><code>PMM_TIMES=06:00,18:00</code></td> - </tr> - <tr> - <th>Default Value</th> - <td colspan="2"><code>05:00</code></td> - </tr> - <tr> - <th>Available Values</th> - <td colspan="2">comma-separated list in <code>HH:MM</code> format</td> - </tr> -</table> - -````{tab} Local Environment -``` -python plex_meta_manager.py --times 22:00,03:00 -``` -```` -````{tab} Docker Environment -``` -docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --times 22:00,03:00 -``` -```` - -### Run Immediately - -Perform a run immediately, bypassing the time to run flag. - -<table class="dualTable colwidths-auto align-default table"> - <tr> - <th style="background-color: #1d1d1d;"></th> - <th>Shell</th> - <th>Environment</th> - </tr> - <tr> - <th>Flags</th> - <td><code>-r</code> or <code>--run</code></td> - <td><code>PMM_RUN</code></td> - </tr> - <tr> - <th>Example</th> - <td><code>--run</code></td> - <td><code>PMM_RUN=true</code></td> - </tr> -</table> - -````{tab} Local Environment - -``` -python plex_meta_manager.py --run -``` -```` -````{tab} Docker Environment -``` -docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --run -``` -```` - -### Run Tests - -Perform a debug test run immediately, bypassing the time to run flag. This will only run collections with `test: true` in the definition. - -<table class="dualTable colwidths-auto align-default table"> - <tr> - <th style="background-color: #1d1d1d;"></th> - <th>Shell</th> - <th>Environment</th> - </tr> - <tr> - <th>Flags</th> - <td><code>-rt</code>, <code>--tests</code>, or <code>--run-tests</code></td> - <td><code>PMM_TESTS</code></td> - </tr> - <tr> - <th>Example</th> - <td><code>--run-tests</code></td> - <td><code>PMM_TESTS=true</code></td> - </tr> -</table> - -* Only collections with `test: true` enabled will be run - -````{tab} Local Environment -``` -python plex_meta_manager.py --run-tests -``` -```` -````{tab} Docker Environment -``` -docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --run-tests -``` -```` - -### Debug - -Run with Debug Logs Reporting to the Command Window. - -<table class="dualTable colwidths-auto align-default table"> - <tr> - <th style="background-color: #1d1d1d;"></th> - <th>Shell</th> - <th>Environment</th> - </tr> - <tr> - <th>Flags</th> - <td><code>-db</code> or <code>--debug</code></td> - <td><code>PMM_DEBUG</code></td> - </tr> - <tr> - <th>Example</th> - <td><code>--debug</code></td> - <td><code>PMM_DEBUG=true</code></td> - </tr> -</table> - -````{tab} Local Environment -``` -python plex_meta_manager.py --debug -``` -```` -````{tab} Docker Environment -``` -docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --debug -``` -```` - -### Trace - -Run with extra Trace Debug Logs. - -<table class="dualTable colwidths-auto align-default table"> - <tr> - <th style="background-color: #1d1d1d;"></th> - <th>Shell</th> - <th>Environment</th> - </tr> - <tr> - <th>Flags</th> - <td><code>-tr</code> or <code>--trace</code></td> - <td><code>PMM_TRACE</code></td> - </tr> - <tr> - <th>Example</th> - <td><code>--trace</code></td> - <td><code>PMM_TRACE=true</code></td> - </tr> -</table> - -````{tab} Local Environment -``` -python plex_meta_manager.py --trace -``` -```` -````{tab} Docker Environment -``` -docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --trace -``` -```` - -### Log Requests - -Run with every network request printed to the Logs. **This can potentially have personal information in it.** - -<table class="dualTable colwidths-auto align-default table"> - <tr> - <th style="background-color: #1d1d1d;"></th> - <th>Shell</th> - <th>Environment</th> - </tr> - <tr> - <th>Flags</th> - <td><code>-lr</code> or <code>--log-request</code> or <code>--log-requests</code></td> - <td><code>PMM_LOG_REQUESTS</code></td> - </tr> - <tr> - <th>Example</th> - <td><code>--log-requests</code></td> - <td><code>PMM_LOG_REQUESTS=true</code></td> - </tr> -</table> - -````{tab} Local Environment -``` -python plex_meta_manager.py --log-requests -``` -```` -````{tab} Docker Environment -``` -docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --log-requests -``` -```` - -### Timeout - -Change the timeout for all non-Plex services (such as TMDb, Radarr, and Trakt). This is overwritten by any timeouts mentioned for specific services in the Configuration File. - -<table class="dualTable colwidths-auto align-default table"> - <tr> - <th style="background-color: #1d1d1d;"></th> - <th>Shell</th> - <th>Environment</th> - </tr> - <tr> - <th>Flags</th> - <td><code>-ti</code> or <code>--timeout</code></td> - <td><code>PMM_TIMEOUT</code></td> - </tr> - <tr> - <th>Example</th> - <td><code>--timeout 360</code></td> - <td><code>PMM_TIMEOUT=360</code></td> - </tr> - <tr> - <th>Values</th> - <td colspan="2">Integer Number of Seconds</td> - </tr> -</table> - -````{tab} Local Environment -``` -python plex_meta_manager.py --timeout 360 -``` -```` -````{tab} Docker Environment -``` -docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --timeout 360 -``` -```` - -### Collections Only - -Only run collection metadata/YAML files, skip library operations, overlays, and playlists. - -<table class="dualTable colwidths-auto align-default table"> - <tr> - <th style="background-color: #1d1d1d;"></th> - <th>Shell</th> - <th>Environment</th> - </tr> - - <tr> - <th>Flags</th> - <td><code>-co</code> or <code>--collections-only</code></td> - <td><code>PMM_COLLECTIONS_ONLY</code></td> - </tr> - <tr> - <th>Example</th> - <td><code>--collections-only</code></td> - <td><code>PMM_COLLECTIONS_ONLY=true</code></td> - </tr> -</table> - -````{tab} Local Environment -``` -python plex_meta_manager.py --collections-only -``` -```` -````{tab} Docker Environment -``` -docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --collections-only -``` -```` - -### Playlists Only - -Only run playlist metadata/YAML files, skip library operations, overlays, and collections/metadata. - -<table class="dualTable colwidths-auto align-default table"> - <tr> - <th style="background-color: #1d1d1d;"></th> - <th>Shell</th> - <th>Environment</th> - </tr> - <tr> - <th>Flags</th> - <td><code>-po</code> or <code>--playlists-only</code></td> - <td><code>PMM_PLAYLISTS_ONLY</code></td> - </tr> - <tr> - <th>Example</th> - <td><code>--playlists-only</code></td> - <td><code>PMM_PLAYLISTS_ONLY=true</code></td> - </tr> -</table> - -````{tab} Local Environment -``` -python plex_meta_manager.py --playlists-only -``` -```` -````{tab} Docker Environment -``` -docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --playlists-only -``` -```` - -### Operations Only - -Only run library operations skipping collections/metadata, playlists, and overlays. - -<table class="dualTable colwidths-auto align-default table"> - <tr> - <th style="background-color: #1d1d1d;"></th> - <th>Shell</th> - <th>Environment</th> - </tr> - <tr> - <th>Flags</th> - <td><code>-op</code>, <code>--operations</code>, or <code>--operations-only</code></td> - <td><code>PMM_OPERATIONS_ONLY</code></td> - </tr> - <tr> - <th>Example</th> - <td><code>--operations-only</code></td> - <td><code>PMM_OPERATIONS_ONLY=true</code></td> - </tr> -</table> - -````{tab} Local Environment -``` -python plex_meta_manager.py --operations-only -``` -```` -````{tab} Docker Environment -``` -docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --operations-only -``` -```` - -### Overlays Only - -Only run library overlays skipping collections/metadata, playlists, and operations. - -<table class="dualTable colwidths-auto align-default table"> - <tr> - <th style="background-color: #1d1d1d;"></th> - <th>Shell</th> - <th>Environment</th> - </tr> - <tr> - <th>Flags</th> - <td><code>-ov</code>, <code>--overlays</code>, or <code>--overlays-only</code></td> - <td><code>PMM_OVERLAYS_ONLY</code></td> - </tr> - <tr> - <th>Example</th> - <td><code>--overlays-only</code></td> - <td><code>PMM_OVERLAYS_ONLY=true</code></td> - </tr> -</table> - -````{tab} Local Environment -``` -python plex_meta_manager.py --overlays-only -``` -```` -````{tab} Docker Environment -``` -docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --overlays-only -``` -```` - -### Run Collections - -Perform a collections run immediately to run only the pre-defined collections, bypassing the time to run flag. - -<table class="dualTable colwidths-auto align-default table"> - <tr> - <th style="background-color: #1d1d1d;"></th> - <th>Shell</th> - <th>Environment</th> - </tr> - <tr> - <th>Flags</th> - <td><code>-rc</code> or <code>--run-collections</code></td> - <td><code>PMM_RUN_COLLECTIONS</code></td> - </tr> - <tr> - <th>Example</th> - <td><code>--run-collections "Harry Potter|Star Wars"</code></td> - <td><code>PMM_RUN_COLLECTIONS=Harry Potter|Star Wars</code></td> - </tr> - <tr> - <th>Values</th> - <td colspan="2">Pipe-separated list of Collection Names to run</td> - </tr> -</table> - -````{tab} Local Environment -``` -python plex_meta_manager.py --run-collections "Harry Potter|Star Wars" -``` -```` -````{tab} Docker Environment -``` -docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --run-collections "Harry Potter|Star Wars" -``` -```` - -### Run Libraries - -Perform a libraries run immediately to run only the pre-defined libraries, bypassing the time to run flag. - -<table class="dualTable colwidths-auto align-default table"> - <tr> - <th style="background-color: #1d1d1d;"></th> - <th>Shell</th> - <th>Environment</th> - </tr> - <tr> - <th>Flags</th> - <td><code>-rl</code> or <code>--run-libraries</code></td> - <td><code>PMM_RUN_LIBRARIES</code></td> - </tr> - <tr> - <th>Example</th> - <td><code>--run-libraries "Movies - 4K|TV Shows - 4K"</code></td> - <td><code>PMM_RUN_LIBRARIES=Movies - 4K|TV Shows - 4K</code></td> - </tr> - <tr> - <th>Values</th> - <td colspan="2">Pipe-separated list of Library Names to run</td> - </tr> -</table> - -````{tab} Local Environment -``` -python plex_meta_manager.py --run-libraries "TV Shows" -``` -```` -````{tab} Docker Environment -``` -docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --run-libraries "TV Shows" -``` -```` - -### Run Metadata Files - -Perform a metadata files run immediately to run only the pre-defined metadata files, bypassing the time to run flag. - -<table class="dualTable colwidths-auto align-default table"> - <tr> - <th style="background-color: #1d1d1d;"></th> - <th>Shell</th> - <th>Environment</th> - </tr> - <tr> - <th>Flags</th> - <td><code>-rm</code> or <code>--run-metadata-files</code></td> - <td><code>PMM_RUN_METADATA_FILES</code></td> - </tr> - <tr> - <th>Example</th> - <td><code>--run-metadata-files "Movies.yml|MovieCharts"</code></td> - <td><code>PMM_RUN_METADATA_FILES=Movies.yml|MovieCharts</code></td> - </tr> - <tr> - <th>Available Values</th> - <td colspan="2">Pipe-separated list of Metadata Filenames to run</td> - </tr> -</table> - -* This works for all different metadata paths i.e. `git`, `url`, `file`, or `repo`. -````{tab} Local Environment -``` -python plex_meta_manager.py --run-metadata-files "Movies" -``` -```` -````{tab} Docker Environment -``` -docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --run-metadata-files "Movies" -``` -```` - -### Libraries First - -Run library operations prior to running collections. - -<table class="dualTable colwidths-auto align-default table"> - <tr> - <th style="background-color: #1d1d1d;"></th> - <th>Shell</th> - <th>Environment</th> - </tr> - <tr> - <th>Flags</th> - <td><code>-lf</code> or <code>--libraries-first</code></td> - <td><code>PMM_LIBRARIES_FIRST</code></td> - </tr> - <tr> - <th>Example</th> - <td><code>--libraries-first</code></td> - <td><code>PMM_LIBRARIES_FIRST=true</code></td> - </tr> -</table> - -````{tab} Local Environment -``` -python plex_meta_manager.py --libraries-first -``` -```` -````{tab} Docker Environment -``` -docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --libraries-first -``` -```` - -### Ignore Schedules - -Ignore all schedules for the run. - -<table class="dualTable colwidths-auto align-default table"> - <tr> - <th style="background-color: #1d1d1d;"></th> - <th>Shell</th> - <th>Environment</th> - </tr> - <tr> - <th>Flags</th> - <td><code>-is</code> or <code>--ignore-schedules</code></td> - <td><code>PMM_IGNORE_SCHEDULES</code></td> - </tr> - <tr> - <th>Example</th> - <td><code>--ignore-schedules</code></td> - <td><code>PMM_IGNORE_SCHEDULES=true</code></td> - </tr> -</table> - -* Range Scheduled collections (such as Christmas movies) will still be ignored. -````{tab} Local Environment -``` -python plex_meta_manager.py --ignore-schedules -``` -```` -````{tab} Docker Environment -``` -docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --ignore-schedules -``` -```` - -### Ignore Ghost - -Ignore all ghost logging for the run. A ghost log is what's printed to the console to show progress during steps. - -<table class="dualTable colwidths-auto align-default table"> - <tr> - <th style="background-color: #1d1d1d;"></th> - <th>Shell</th> - <th>Environment</th> - </tr> - <tr> - <th>Flags</th> - <td><code>-ig</code> or <code>--ignore-ghost</code></td> - <td><code>PMM_IGNORE_GHOST</code></td> - </tr> - <tr> - <th>Example</th> - <td><code>--ignore-ghost</code></td> - <td><code>PMM_IGNORE_GHOST=true</code></td> - </tr> -</table> - -````{tab} Local Environment -``` -python plex_meta_manager.py --ignore-ghost -``` -```` -````{tab} Docker Environment -``` -docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --ignore-ghost -``` -```` - -### Delete Collections - -Delete all collections in a Library prior to running collections/operations. - -<table class="dualTable colwidths-auto align-default table"> - <tr> - <th style="background-color: #1d1d1d;"></th> - <th>Shell</th> - <th>Environment</th> - </tr> - <tr> - <th>Flags</th> - <td><code>-dc</code> or <code>--delete-collections</code></td> - <td><code>PMM_DELETE_COLLECTIONS</code></td> - </tr> - <tr> - <th>Example</th> - <td><code>--delete-collections</code></td> - <td><code>PMM_DELETE_COLLECTIONS=true</code></td> - </tr> -</table> - -````{tab} Local Environment -``` -python plex_meta_manager.py --delete-collections -``` -```` -````{tab} Docker Environment -``` -docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --delete-collections -``` -```` - -### Delete Labels - -Delete all labels on every item in a Library prior to running collections/operations. - -<table class="dualTable colwidths-auto align-default table"> - <tr> - <th style="background-color: #1d1d1d;"></th> - <th>Shell</th> - <th>Environment</th> - </tr> - <tr> - <th>Flags</th> - <td><code>-dl</code> or <code>--delete-labels</code></td> - <td><code>PMM_DELETE_LABELS</code></td> - </tr> - <tr> - <th>Example</th> - <td><code>--delete-labels</code></td> - <td><code>PMM_DELETE_LABELS=true</code></td> - </tr> -</table> - -````{tab} Local Environment -``` -python plex_meta_manager.py --delete-labels -``` -```` -````{tab} Docker Environment -``` -docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --delete-labels -``` -```` - -### Resume Run - -Perform a resume run immediately resuming from the first instance of the specified collection, bypassing the time to run flag. - -<table class="dualTable colwidths-auto align-default table"> - <tr> - <th style="background-color: #1d1d1d;"></th> - <th>Shell</th> - <th>Environment</th> - </tr> - <tr> - <th>Flags</th> - <td><code>-re</code> or <code>--resume</code></td> - <td><code>PMM_RESUME</code></td> - </tr> - <tr> - <th>Example</th> - <td><code>--resume "Star Wars"</code></td> - <td><code>PMM_RESUME=Star Wars</code></td> - </tr> - <tr> - <th>Available Values</th> - <td colspan="2">Name of collection to resume from</td> - </tr> -</table> - -````{tab} Local Environment -``` -python plex_meta_manager.py --resume "Star Wars" -``` -```` -````{tab} Docker Environment -``` -docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --resume "Star Wars" -``` -```` - -### No Countdown - -Run without displaying a countdown to the next scheduled run. - -<table class="dualTable colwidths-auto align-default table"> - <tr> - <th style="background-color: #1d1d1d;"></th> - <th>Shell</th> - <th>Environment</th> - </tr> - <tr> - <th>Flags</th> - <td><code>-nc</code> or <code>--no-countdown</code></td> - <td><code>PMM_NO_COUNTDOWN</code></td> - </tr> - <tr> - <th>Example</th> - <td><code>--no-countdown</code></td> - <td><code>PMM_NO_COUNTDOWN=true</code></td> - </tr> -</table> - -````{tab} Local Environment -``` -python plex_meta_manager.py --no-countdown -``` -```` -````{tab} Docker Environment -``` -docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --no-countdown -``` -```` - -### No Missing - -Run without utilizing the missing movie/show functions. - -<table class="dualTable colwidths-auto align-default table"> - <tr> - <th style="background-color: #1d1d1d;"></th> - <th>Shell</th> - <th>Environment</th> - </tr> - <tr> - <th>Flags</th> - <td><code>-nm</code> or <code>--no-missing</code></td> - <td><code>PMM_NO_MISSING</code></td> - </tr> - <tr> - <th>Example</th> - <td><code>--no-missing</code></td> - <td><code>PMM_NO_MISSING=true</code></td> - </tr> -</table> - -````{tab} Local Environment -``` -python plex_meta_manager.py --no-missing -``` -```` -````{tab} Docker Environment -``` -docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --no-missing -``` -```` - -### No Report - -Run without saving the report. - -<table class="dualTable colwidths-auto align-default table"> - <tr> - <th style="background-color: #1d1d1d;"></th> - <th>Shell</th> - <th>Environment</th> - </tr> - <tr> - <th>Flags</th> - <td><code>-nr</code> or <code>--no-report</code></td> - <td><code>PMM_NO_REPORT</code></td> - </tr> - <tr> - <th>Example</th> - <td><code>--no-report</code></td> - <td><code>PMM_NO_REPORT=true</code></td> - </tr> -</table> - -````{tab} Local Environment -``` -python plex_meta_manager.py --no-report -``` -```` -````{tab} Docker Environment -``` -docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --no-report -``` -```` - -### Read Only Config - -Run without writing to the configuration file. - -<table class="dualTable colwidths-auto align-default table"> - <tr> - <th style="background-color: #1d1d1d;"></th> - <th>Shell</th> - <th>Environment</th> - </tr> - <tr> - <th>Flags</th> - <td><code>-ro</code> or <code>--read-only-config</code></td> - <td><code>PMM_READ_ONLY_CONFIG</code></td> - </tr> - <tr> - <th>Example</th> - <td><code>--read-only-config</code></td> - <td><code>PMM_READ_ONLY_CONFIG=true</code></td> - </tr> -</table> - -````{tab} Local Environment -``` -python plex_meta_manager.py --read-only-config -``` -```` -````{tab} Docker Environment -``` -docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --read-only-config -``` -```` - -### Divider Character & Screen Width - -Change the terminal output divider character or width. - -#### Divider Character - -<table class="dualTable colwidths-auto align-default table"> - <tr> - <th style="background-color: #1d1d1d;"></th> - <th>Shell</th> - <th>Environment</th> - </tr> - <tr> - <th>Flags</th> - <td><code>-d</code> or <code>--divider</code></td> - <td><code>PMM_DIVIDER</code></td> - </tr> - <tr> - <th>Example</th> - <td><code>--divider *</code></td> - <td><code>PMM_DIVIDER=*</code></td> - </tr> - <tr> - <th>Default</th> - <td colspan="2"><code>=</code></td> - </tr> - <tr> - <th>Values</th> - <td colspan="2">A character</td> - </tr> -</table> - -#### Screen Width - -<table class="dualTable colwidths-auto align-default table"> - <tr> - <th style="background-color: #1d1d1d;"></th> - <th>Shell</th> - <th>Environment</th> - </tr> - <tr> - <th>Flags</th> - <td><code>-w</code> or <code>--width</code></td> - <td><code>PMM_WIDTH</code></td> - </tr> - <tr> - <th>Example</th> - <td><code>--width 150</code></td> - <td><code>PMM_WIDTH=150</code></td> - </tr> - <tr> - <th>Default</th> - <td colspan="2">Integer between 90 and 300</td> - </tr> - <tr> - <th>Values</th> - <td colspan="2">A character</td> - </tr> -</table> - -````{tab} Local Environment -``` -python plex_meta_manager.py --divider * --width 200 -``` -```` -````{tab} Docker Environment -``` -docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --divider * --width 200 -``` -```` - -### Config Secrets - -All Run Commands that start with `--pmm-***` and Environment Variables that start with `PMM_***` will be loaded in as Config Secrets. - -These Config Secrets can be loaded into the config by placing `<<***>>` in any field in the config, where `***` is whatever name you want to call the variable. - -<table class="dualTable colwidths-auto align-default table"> - <tr> - <th style="background-color: #1d1d1d;"></th> - <th>Shell</th> - <th>Environment</th> - </tr> - <tr> - <th>Flags</th> - <td><code>--pmm-***</code></td> - <td><code>PMM_***</code></td> - </tr> - <tr> - <th>Example</th> - <td><code>--pmm-mysecret 123456789</code></td> - <td><code>PMM_MYSECRET=123456789</code></td> - </tr> -</table> - -````{tab} Local Environment -``` -python plex_meta_manager.py --pmm-mysecret 123456789 -``` -```` -````{tab} Docker Environment -``` -docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --pmm-mysecret 123456789 -``` -```` - -#### Example Config Usage - -```yaml -tmdb: - apikey: <<mysecret>> -``` diff --git a/docs/home/guides/docker.md b/docs/home/guides/docker.md deleted file mode 100644 index 86ee015e..00000000 --- a/docs/home/guides/docker.md +++ /dev/null @@ -1,407 +0,0 @@ -# Docker Walkthrough - -This article will walk you through getting Plex-Meta-Manager [PMM] set up and running via Docker. It will cover: - -1. Installing Docker -2. Retrieving the image -3. Setting up the initial config file -4. Setting up a metadata file and creating a couple sample collections -5. Creating a docker container that will keep running in the background - -The specific steps you will be taking: -1. Verify that Docker is installed and install it if not -2. Use `docker` to retrieve the PMM Docker image -3. Create a directory for your config files and learn how to tell Docker to use it -4. Gather two things that the script requires: - 1. TMDb API Key - 2. Plex URL and Token -5. Then, iteratively: - 1. use `docker` to run the image - 2. use a text editor to modify a couple of text files until you have a working config file and a single working metadata file. - -Note that running a Docker container is inherently a pretty technical process. If you are unable or unwilling to learn the rudiments of using Docker, this may not be the tool for you. - -If the idea of editing YAML files by hand is daunting, this may not be the tool for you. All the configuration of PMM is done via YAML text files, so if you are unable or unwilling to learn how those work, you should stop here. - -Finally, this walkthrough is intended to give you a basic grounding in how to get the script running. It doesn't cover how to create your own collections, or how to add overlays, or any of the myriad other things PMM is capable of. It provides a simple "Getting Started" guide for those for whom the standard install instructions make no sense; presumably because you've never run a Docker container before. - - -## Prerequisites. - -Anywhere you see - -``` -something like this -``` - -That’s a command you’re going to type or paste into your terminal (OSX or Linux) or Powershell (Windows). - -**IMPORTANT NOTES:** - -* This walkthrough is going to be pretty pedantic. I’m assuming you’re reading it because you have no idea how to get a Docker container going, so I’m proceeding from the assumption that you want to be walked through every little detail. You’re going to deliberately cause errors and then fix them as you go through it. This is to help you understand what exactly is going on behind the scenes so that when you see these sorts of problems in the wild you will have some background to understand what’s happening. If I only give you the happy path walkthrough, then when you make a typo later on you’ll have no idea where that typo might be or why it’s breaking things. - -* I am assuming you do not have any of these tools already installed. When writing this up I started with a brand new Windows 10 install. - -* I'm also assuming you are doing this on a computer, not through a NAS interface or the like. You can do all this through something like the Synology NAS UI or Portainer or the like, but those aren't documented here. This uses the docker command line because it works the same on all platforms. - -* You may want to take an hour to get familiar with Docker fundamentals with the [official tutorial](https://www.docker.com/101-tutorial/). - -* DO NOT MAKE ANY CHANGES BELOW if you want this to just work. Don't change the docker image [`linuxserver.io` will not work for this, for example]; don't change the paths, etc. - -### Prepare a small test library [optional] - -```{include} wt/wt-test-library.md -``` - -### Starting up your terminal. - -Since most of this is typing commands into a terminal, you'll need to have a terminal open. - -````{tab} Linux -<br/> -If your Linux system is remote to your computer, connect to it via SSH. That SSH session is the terminal you will be using, so leave it open. - -If you are running this on a desktop Linux machine, start up the Terminal application. That window will be the terminal you will type commands into throughout this walkthrough, so leave it open. -<br/> -```` -````{tab} OS X: -Open the Terminal app; this window will be the place you type commands throughout this walkthrough, so leave it open. The Terminal app is in Applications -> Utilities. - -You can also use iTerm or some other terminal app if you wish. If you don't know what that means, use Terminal. -<br/> -```` -````{tab} Windows: -Use the Start menu to open PowerShell. This will be the window into which you type commands throughout this walkthrough, so leave it open. -<br/> -```` - -### Installing Docker. - -To run Docker images, you need to have Docker installed. It is not typically installed on new Mac, Linux, or Windows machines. - -The Docker install is discussed here: [Installing Docker](https://docs.docker.com/engine/install/) - -Once you have Docker installed, test it at the command line with: - -[type this into your terminal] -``` -docker run --rm hello-world -``` -You should see something that starts with: -``` -Hello from Docker! -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. - ---- - -#### Important note on Docker images - -This tutorial uses the official image, and you should, too. Don't change `meisnate12/plex-meta-manager` 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. - -The great thing about Docker is that all the setup you'd have to do to run PMM is already done inside the docker image. - -That means we can just jump right into running it. At the command prompt, type: - -``` -docker run --rm meisnate12/plex-meta-manager --run - -``` - -This is going to fail with an error. That's expected. - -You should see something like this: - -``` -Unable to find image 'meisnate12/plex-meta-manager:latest' locally -latest: Pulling from meisnate12/plex-meta-manager -7d63c13d9b9b: Already exists -6ad2a11ca37b: Already exists -8076cdef4689: Pull complete -0ba90f5a7dd0: Pull complete -27c191df269f: Pull complete -c75e4c0924fa: Pull complete -ed6716577767: Pull complete -0547721ab7a3: Pull complete -ea4d35bce959: Pull complete -Digest: sha256:472be179a75259e07e68a3da365851b58c2f98383e02ac815804299da6f99824 -Status: Downloaded newer image for meisnate12/plex-meta-manager:latest -Config Error: config not found at //config -``` - -That error means you don’t have a config file, but we know that most everything is in place to run the image. - -### Setting up a volume map - -PMM, inside that Docker container, can only see other things *inside the container*. We want to add our own files for config and metadata, so we need to set something up that lets PMM see files we create *outside* the container. This is called a "volume map". - -Go to your home directory and create a new directory: - -[type this into your terminal] - -``` -cd ~ -mkdir plex-meta-manager -``` - -cd into that directory and create another directory: - -[type this into your terminal] - -``` -cd ~/plex-meta-manager -mkdir config -``` - -get the full path: - -[type this into your terminal] - -``` -pwd -``` - -This will display a full path: - -````{tab} Linux -``` -/home/YOURUSERNAME/plex-meta-manager -``` -```` -````{tab} OS X -``` -/Users/YOURUSERNAME/plex-meta-manager -``` -```` -````{tab} Windows -``` -C:\Users\YOURUSERNAME\plex-meta-manager -``` -```` - -Add "config" onto the end of that to get the host path to your config directory, for example: - -````{tab} Linux -``` -/home/YOURUSERNAME/plex-meta-manager/config -``` -```` -````{tab} OS X -``` -/Users/YOURUSERNAME/plex-meta-manager/config -``` -```` -````{tab} Windows -``` -C:\Users\YOURUSERNAME\plex-meta-manager\config -``` -```` - -You'll need to add this to the docker command every time you run it, like this: - -````{tab} Linux -``` -docker run --rm -it -v "/home/YOURUSERNAME/plex-meta-manager/config:/config:rw" meisnate12/plex-meta-manager -``` -```` -````{tab} OS X -``` -docker run --rm -it -v "/Users/YOURUSERNAME/plex-meta-manager/config:/config:rw" meisnate12/plex-meta-manager -``` -```` -````{tab} Windows -``` -docker run --rm -it -v "C:\Users\YOURUSERNAME\plex-meta-manager\config:/config:rw" meisnate12/plex-meta-manager -``` -```` - -If you run that command now it will display a similar error to before, but without all the image loading: - -``` - $ docker run --rm -it -v "/Users/mroche/plex-meta-manager/config:/config:rw" meisnate12/plex-meta-manager --run -Config Error: config not found at //config -``` - -Note that I show the example path there. - -<details> - <summary>Why did we create that `config' directory?</summary> - - This was done so that from here on in the instructions match between this walkthrough and the [Local walkthrough](local). - -</details> - - -### Create a directory to quiet an error later - -The default config file contains a reference to a directory that will show an error in the output later. That error can safely be ignored, but it causes some confusion with new users from time to time. - -We'll create it here so the error doesn't show up later. - -````{tab} Linux -[type this into your terminal] -``` -mkdir config/assets -``` -```` -````{tab} OS X -[type this into your terminal] -``` -mkdir config/assets -``` -```` -````{tab} Windows -[type this into your terminal] -``` -mkdir config\assets -``` -```` - -### Setting up the initial config file - -```{include} wt/wt-01-basic-config.md -``` - -#### Editing the config template - -First, make a copy of the template: - -````{tab} Linux -Get a copy of the template to edit [type this into your terminal]: -``` -curl -fLvo config/config.yml https://raw.githubusercontent.com/meisnate12/Plex-Meta-Manager/master/config/config.yml.template -``` -```` -````{tab} OS X -Get a copy of the template to edit [type this into your terminal]: -``` -curl -fLvo config/config.yml https://raw.githubusercontent.com/meisnate12/Plex-Meta-Manager/master/config/config.yml.template -``` -```` -````{tab} Windows -Go to [this URL](https://raw.githubusercontent.com/meisnate12/Plex-Meta-Manager/master/config/config.yml.template) using a web browser; choose the "Save" command, then save the file at: -``` -C:\Users\YOURUSERNAME\plex-meta-manager\config\config.yml -``` -```` - -Now open the copy in an editor: - -```{include} wt/wt-editor.md -``` - -```{include} wt/wt-02-config-bad-library.md -``` - -#### Testing the config file - -Save the file: - -```{include} wt/wt-save.md -``` - -Then run the script again: - -```{include} wt/wt-run-docker.md -``` - -```{include} wt/wt-03-lib-err-and-fix.md -``` - - -### Creating a few sample collections. - -```{include} wt/wt-04-default-intro.md -``` - -So let's run the script and see this happen: - - -```{include} wt/wt-run-docker.md -``` - -```{include} wt/wt-04b-default-after.md -``` - -### Setting up a metadata file and creating a few sample collections. - -```{include} wt/wt-05-local-file.md -``` - -Save the file: - -```{include} wt/wt-save.md -``` - -Then run the script again: - -```{include} wt/wt-run-docker.md -``` - -```{include} wt/wt-06-local-after.md -``` - -### Adding Overlays to movies. - -```{include} wt/wt-07-overlay-add.md -``` - -Save the file: - -```{include} wt/wt-save.md -``` - -Then run the script again: - -```{include} wt/wt-run-docker.md -``` - -```{include} wt/wt-08-overlay-after.md -``` - -```{include} wt/wt-09-next-steps.md -``` - -## Other Topics - -### Scheduling - -```{include} wt/wt-10-scheduling.md -``` - -### I want to use the develop branch - -Add the `develop` tag to the image name in your run command [or wherever you specify the image in your environment] - -``` -docker run --rm -it -v "PMM_PATH_GOES_HERE:/config:rw" meisnate12/plex-meta-manager:develop --run - ^^^^^^^ -``` - -This may not work if you are not using the official image; for example, it does not work with the lsio image. - -### I want to use the nightly branch - -Add the `nightly` tag to the image name in your run command [or wherever you specify the image in your environment] - -``` -docker run --rm -it -v "PMM_PATH_GOES_HERE:/config:rw" meisnate12/plex-meta-manager:nightly --run - ^^^^^^^ -``` - -This may not work if you are not using the official image; for example, it does not work with the lsio image. - -### I want to ensure I am using the master branch - -Add the `latest` tag to the image name in your run command [or wherever you specify the image in your environment] - -``` -docker run --rm -it -v "PMM_PATH_GOES_HERE:/config:rw" meisnate12/plex-meta-manager:latest --run - ^^^^^^ -``` - -This is the only version tag supplied by the lsio image. - diff --git a/docs/home/guides/qnap.md b/docs/home/guides/qnap.md deleted file mode 100644 index 2b6477ec..00000000 --- a/docs/home/guides/qnap.md +++ /dev/null @@ -1,173 +0,0 @@ -# QNAP Walkthrough - -This is a quick walkthrough of setting up the Plex-Meta-Manager Docker container in the QNAP "Container Station" UI. - -The "Container Station" UI on your QNAP may differ from these screenshots, but the concepts are the same: - -1. Create a container based on the `meisnate12/plex-meta-manager` image. -2. Set environment variables to control the container's behavior [optional]. -3. Point the container to the directory where your configuration files are to be stored. - -Detailed steps: - -````{tab} Container Station v. 3.0.5.623 -1. Open Container Station; click “Images” - - ![](qnap/qnap3-01.png) - -1. Select “Pull” from the top-right - - ![](qnap/qnap3-02.png) - -1. Leave Mode set to “Basic Mode” - - For the Registry select “Docker Hub” - - Under the "Image" section you will be typing in the name and version of the docker image you wish to pull. Type in the image you wish to use as follows: - - ``` - meisnate12/plex-meta-manager:latest - meisnate12/plex-meta-manager:develop - meisnate12/plex-meta-manager:nightly - ``` - - Then click Pull. - - ![](qnap/qnap3-03.png) - - Note: You can repeat this step for each of the different versions and you’ll end up with this: - - ![](qnap/qnap3-03a.png) - - After the pull is complete the image(s) will now be available for use. - -1. From the "Images" menu under the "Actions" column click the "play" button to bring up the “Create Container” option. - - ![](qnap/qnap3-04.png) - -1. "Create Container" Step 1: "Select Image" – you’ve already done this so just click "Next". - - ![](qnap/qnap3-05.png) - -1. "Create Container" Step 2: "Configure Container" - you can edit the name if you wish. From here on you’ll be working in the Advanced Settings sub-menu. Click on "Advanced Settings". - - ![](qnap/qnap3-06.png) - -1. You can add [command-line switches](../environmental) to the "Command" field here. Do not edit the "Entrypoint" field. - - ![](qnap/qnap3-07.png) - - For example, if you wanted to run the collections you have defined as tests, add the `--run-tests` command-line flag: - - ![](qnap/qnap3-08.png) - - Generally speaking, editing these is not recommended as it is easy to render the container non-functional by doing so. - - It is more typical in Docker contexts to set these things with environment variables. - - Anything you can do via command-line arguments can be done with [Environment Variables](../environmental), which is more typical in Docker environments. - - For example, you could add an environment variable named `PMM_TESTS` with a value of `true` to run the collections you have defined as tests. - - Click "Environments" on the left to set environment variables. - -1. Select "Storage": - - ![](qnap/qnap3-09.png) - -1. Click the Trash Can icon to remove the default Storage Mapping: - - ![](qnap/qnap3-10.png) - -1. Click "Add Volume" then choose “Bind Mount Host Path”: - - ![](qnap/qnap3-11.png) - -1. Select the Yellow Folder icon - - ![](qnap/qnap3-12.png) - - “Select Host Path” will appear as seen below, letting you select the folder you want to use. - - ![](qnap/qnap3-13.png) - - After selecting your folder and choosing "Apply" the "Host" path will be filled in. For the "Container" path you MUST use `/config`: - - ![](qnap/qnap3-14.png) - -1. Select Next to advance to “Step 3 Summary” - -1. Select Finish - -```` -````{tab} Container Station v. unknown - -1. Open Container Station; click "Create" in the left column. - - - ![](qnap/qnap1.png) - - -2. Search for `meisnate12/plex-meta-manager`. - - On the "Docker Hub" tab you should see the image; click on it and click "Install". - - - ![](qnap/qnap2.png) - - -1. Select the version you want to run from the dropdown and click "Next". - - The options are: - - `latest`: most recent official release; typically the most stable - - `develop`: development release, contains new features that haven't made it to latest yet, but may have minor problems - - `nightly`: bleeding-edge development version; latest fixes go here, but breakage should be expected. - - - ![](qnap/qnap3.png) - - -2. Change the container name if you wish. - - Command line arguments can be entered in the "Entrypoint" field after `/tini -s python3 plex_meta_manager.py --` - - IMPORTANT: **DO NOT REMOVE** ANY ELEMENT OF THAT TEXT. DO NOT ENTER ANYTHING INTO THE "Command" FIELD. - - For example, you could enter the following into the "Entrypoint" field to make PMM run immediately when the container starts up: `/tini -s python3 plex_meta_manager.py -- --run` - - Typically, in a Docker environment, this sort of thing is done via Environment Variables [the next step here]. Editing the "Entrypoint" is not recommended, as it's easy to render the container non-functional if you are not sure what you're doing. - - Information on available command line arguments can be found [here](../environmental) - - Click "Advanced Settings >>" - - - ![](qnap/qnap4.png) - - -3. Environment Variables can be added here: - - Anything you can do via command-line arguments can be done with Environment Variables, which is more typical in Docker environments. - - For example, you could add an environment variable named `PMM_RUN` with a value of `True` to make PMM run immediately when the container starts up. - - Information on available Environment Variables can be found [here](../environmental) - - - ![](qnap/qnap5.png) - - -4. Click Shared Folders Tab: - - Click "Add" in the middle section "Volume from host". - - "Volume from host" is the location on your QNAP where you want to store the config files. - - "Mount Point" must be `/config` - - When finished, click "Create". - - - ![](qnap/qnap7.png) - -```` diff --git a/docs/home/guides/scheduling.md b/docs/home/guides/scheduling.md deleted file mode 100644 index 60142c6f..00000000 --- a/docs/home/guides/scheduling.md +++ /dev/null @@ -1,353 +0,0 @@ -# Scheduling Guide - -Plex Meta Manager is designed to be a background running service that "wakes up" and "sleeps" when it is scheduled to do so. By default and unless configured using the [Time to Run Command](../environmental.md#time-to-run), Plex Meta Manager expects to run every day at 5AM local time. - -Whilst it is possible to have `python plex-meta-manager.py` running in an open window constantly, this is not the recommended approach as it relies on an always-open command window that can be obtrusive to the user. - -Instead, it is recommended to set an automated scheduling service so that Plex Meta Manager can run in the background when scheduled to without any visible impact to the user (other than the Plex libraries and playlists updating). - -**To control how individual parts of PMM are scheduled see the [Schedule detail](../../metadata/details/schedule)** - -IMPORTANT: Every time you see `/path/to` below, it's a placeholder for the path to that directory on *your* system. - -````{tab} Docker -Using docker is the simplest and most robust solution to automating Plex Meta Manager scheduling. - -When running Plex Meta Manager within docker, the session will resume after a system reboot (assuming Docker is set to start at system startup, which is the default) and Plex Meta Manager will run in the background at all times. - -There's a [Docker Walkthrough](docker) with more detailed instructions on setting up Plex Meta Manager within docker. The simplest command to facilitate a docker run is: - -``` -docker run -d \ - --restart=unless-stopped \ - -e TZ=<TIMEZONE> \ - -v /path/to/config:/config:rw \ - meisnate12/plex-meta-manager -``` -Change `/path/to/config` to reflect where you've installed Plex Meta Manager. - -TZ=<TIMEZONE> -<TIMEZONE> is replaced with your local timezone, or the timezone your device is in that is running Plex Meta Manager. For a list of available timezones, please see [Timezones](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). You want to replace <TIMEZONE> with the TZ Database Name. - -``` -TZ=America/New_York -``` - -This will run Plex Meta Manager in the background persistently until it is stopped by the user. While the docker container will be persistently running, Plex Meta Manager will not begin the run until the scheduled time. - -Further customizations of the docker run command can be used to specify set times to run Plex Meta Manager, further information on this and other Run Commands can be found [here](../environmental.md#time-to-run) -```` -````{tab} Windows Task Scheduler -Windows Task Scheduler is advised for those who followed the Windows instructions in the [Local Walkthrough Guides](local) and/or do not want to run Plex Meta Manager within docker. - -Windows Task Scheduler allows the user to run commands and services at scheduled times and intervals. - -There are two methods of running Plex Meta Manager: -* Single run Scheduled Task -* Background run Scheduled Task - -These will be explained further down this page. - -These guides assume the user has followed the Windows instructions in the [Local Walkthrough Guides](local) which includes setting up the [virtual environment](local.md#setting-up-a-virtual-environment). Please also ensure to edit any commands to be reflective of the live environment (such as usernames, installation directories). - -### Background Run Scheduled Task - -This method will start Plex Meta Manager at system startup and will keep the script running in the background indefinitely. The user can then define set days and times for the Configuration File to be processed, and Plex Meta Manager will handle processing as and when required. - -This is the recommended approach as it allows the user additional control over how and when Plex Meta Manager processes. - -If you don't specify a time, the script will run at 5AM each day. You can change this with the [time-to-run](../environmental.html#time-to-run) runtime flag. - -<details> - <summary>Background Run Scheduled Task</summary> - -1. Create a `waiter.cmd` file by opening the text editor (i.e. Notepad, TextEdit) and pasting the following code: - - ```batch - cd C:\Users\USERNAMEHERE\Plex-Meta-Manager - .\pmm-venv\Scripts\python .\plex_meta_manager.py - ``` -* This will navigate to the PMM directory, then run PMM. At the scheduled time [as defined within Plex Meta Manager], PMM will process the Configuration File and will then wait until the next scheduled time. - -1. Open Task Scheduler by searching for it in the Start Menu or by opening the Run window (Windows + R) and typing taskschd.msc before hitting OK. - -* ** Ensure that Task Scheduler is opened and not Task Manager ** - - ![task-scheduler](task-scheduler/02-open-task-scheduler.png) - -3. Select "Create a basic task" on the right-hand column - - ![task-scheduler](task-scheduler/03-task-scheduler-main.png) - -4. Give the task a name, in this example `Background PMM` and then select "Next" - - ![task-scheduler](task-scheduler/06-basic-task-02.png) - -5. Choose the frequency that PMM should run and then select "Next", `When the computer starts` is recommended. - - ![task-scheduler](task-scheduler/06-basic-task-03.png) - -6. Choose the action "Start a program" and select "Next". - - ![task-scheduler](task-scheduler/06-basic-task-04.png) - -7. Click "Browse", Navigate to the PMM directory and choose `waiter.cmd`, which was created in Step 1, then select "Open". NOTE: Your path may vary from the illustration here; navigate to the file you created and saved in Step 1. - - ![task-scheduler](task-scheduler/06-basic-task-05.png) - -8. Copy the directory everything up to but not including `waiter.cmd` from the "Program/Script" field, and paste it into the "Start in" field. This is `C:\User\IEUser\Plex-Meta-Manager-1.15.1` in the example below, then select "next". NOTE: Your path may vary from the illustration or example. - - ![task-scheduler](task-scheduler/06-basic-task-06.png) - -9. Click "Finish". - -10. Click "Task Schedule Library" on the left. The "Background PMM" task should be visible. - -Plex Meta Manager will now launch at system startup, but will wait until the user-specified scheduled time before executing, and will then wait in the background for the next scheduled run. - -</details> - -### Single Run Scheduled Task - -This method will start Plex Meta Manager at the desired time, immediately begin running the Configuration File and will then kill the process once it has completed. - -<details> - <summary>Single Run Scheduled Task</summary> - -1. Create a `runner.cmd` file by opening the text editor (i.e. Notepad, TextEdit) and pasting the following code: - - ```batch - cd C:\Users\USERNAMEHERE\Plex-Meta-Manager - .\pmm-venv\Scripts\python .\plex_meta_manager.py --run - ``` -* This will navigate to the PMM directory, then launch PMM using the `-r`/`--run` flag which triggers an immediate run. Once complete, Plex Meta Manager will exit. - - Save this file to C:\Users\USERNAMEHERE\Plex-Meta-Manager\runner.cmd`. - -2. Open Task Scheduler by searching for it in the Start Menu or by opening the Run window (Windows + R) and typing taskschd.msc before hitting OK. - -* ** Ensure that Task Scheduler is opened and not Task Manager ** - - ![task-scheduler](task-scheduler/02-open-task-scheduler.png) - -3. Select "Create a basic task" on the right-hand column - - ![task-scheduler](task-scheduler/03-task-scheduler-main.png) - -4. Give the task a name, in this example `Run PMM` and then select "Next" - - ![task-scheduler](task-scheduler/04-basic-task-01.png) - -5. Choose the frequency that PMM should run and then select "Next", `Daily` is recommended. - - ![task-scheduler](task-scheduler/04-basic-task-02.png) - -6. Specify the first date and time at which PMM should run and then select "Next". - - ![task-scheduler](task-scheduler/04-basic-task-03.png) - -7. Choose the action "Start a program" and select "Next". - - ![task-scheduler](task-scheduler/04-basic-task-04.png) - -8. Click "Browse", Navigate to the PMM directory and choose `runner.cmd`, which was created in Step 1, then select "Open". - - ![task-scheduler](task-scheduler/04-basic-task-05.png) - -9. Copy the directory everything up to but not including `runner.cmd` from the "Program/Script" field, and paste it into the "Start in" field. This is `C:\User\IEUser\Plex-Meta-Manager-1.15.1` in the example below, then select "next". - - ![task-scheduler](task-scheduler/04-basic-task-06.png) - -10. Check "Open the properties dialog" if desired (not required) then select "Finish". - - ![task-scheduler](task-scheduler/04-basic-task-07.png) - - -11. Click "Task Schedule Library" on the left. The PMM Run task should be visible. - - ![task-scheduler](task-scheduler/04-basic-task-09.png) - -Plex Meta Manager will now run at the set date/time you selected in Step 6, and will run each subsequent day at the same time. - -</details> -```` -````{tab} MacOS Launchd Service -1. Create launchd service: - - A couple examples; you'll want to edit the THINGS IN ALL CAPS to reflect your system. - - Change `/path/to/plex-meta-manager` to reflect where you've installed Plex Meta Manager. - - Keep PMM running constantly, let it wait to do its thing at 3AM: - - ``` - <?xml version="1.0" encoding="UTF-8"?> - <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> - <plist version="1.0"> - <dict> - <key>Label</key> - <string>com.YOUR_USERNAME.plex-meta-manager</string> - <key>ProgramArguments</key> - <array> - <string>sh</string> - <string>-c</string> - <string>pmm-venv/bin/python plex-meta-manager.py --config /path/to/plex-meta-manager/config/config.yml</string> - </array> - <key>UserName</key> - <string>YOUR_USERNAME</string> - <key>WorkingDirectory</key> - <string>/path/to/plex-meta-manager</string> - </dict> - </plist> - ``` - Run PMM every 6 hours, running it immediately and letting it quit: - - ``` - <?xml version="1.0" encoding="UTF-8"?> - <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> - <plist version="1.0"> - <dict> - <key>Label</key> - <string>com.YOUR_USERNAME.plex-meta-manager</string> - <key>ProgramArguments</key> - <array> - <string>sh</string> - <string>-c</string> - <string>pmm-venv/bin/python plex-meta-manager.py --config /path/to/plex-meta-manager/config/config.yml --run</string> - </array> - <key>StartCalendarInterval</key> - <array> - <dict> - <key>Hour</key> - <integer>6</integer> - </dict> - <dict> - <key>Hour</key> - <integer>12</integer> - </dict> - <dict> - <key>Hour</key> - <integer>18</integer> - </dict> - <dict> - <key>Hour</key> - <integer>24</integer> - </dict> - </array> - <key>UserName</key> - <string>YOUR_USERNAME</string> - <key>WorkingDirectory</key> - <string>/path/to/plex-meta-manager</string> - </dict> - </plist> - ``` - - A useful tool to generate these plist files is [https://zerolaunched.herokuapp.com/](https://zerolaunched.herokuapp.com/) - - Save this file as `com.YOUR_USERNAME.plex-meta-manager.plist` in `~/Library/LaunchAgents`. - -2. Load and start the agent 🚀 - - Retrieve your user id with `id -u` in Terminal. You'll need it for the commands in this step. - - Load the agent by executing the following commands: - - ``` - cd ~/Library/LaunchAgents/ - launchctl bootstrap gui/YOUR-USER-ID com.YOUR_USERNAME.plex-meta-manager.plist - ``` - - And then kick-start it with: - - ``` - launchctl kickstart -k gui/YOUR-USER-ID/com.YOUR_USERNAME.plex-meta-manager - ``` - - Note that this command uses the *label*, not the plist filename. The -k options means that the service will first be killed, if running. - - The agent should now be active and starting the program according to the schedule you set. -```` -````{tab} Linux Systemctl Service - -1. Create the service file: - - ```bash - sudo nano /etc/systemd/system/plex-meta-manager.service - ``` - - Put the following into the file: - ``` - # /etc/systemd/system/plex-meta-manager.service - - [Unit] - Description=Plex Meta Manager - After=network-online.target - - [Service] - User=USER - Group=GROUP - Type=simple - Environment=LC_ALL=C.UTF-8 - Environment=LANG=C.UTF-8 - WorkingDirectory=/path/to/plex-meta-manager - ExecStart=/path/to/plex-meta-manager/pmm-venv/bin/python /path/to/plex-meta-manager/plex_meta_manager.py - Restart=always - RestartSec=10 - - [Install] - WantedBy=default.target - ``` - - Change `USER` and `GROUP` to reflect your user and group. - - Change `/path/to/plex-meta-manager` to reflect where you've installed Plex Meta Manager. - - NOTE: This is assuming you created the `pmm-venv` virtual environment as described in the [Local Walkthrough](local) - - Save and close the file. - -2. Load and start the service - - ```shell - sudo systemctl daemon-reload - sudo systemctl start plex-meta-manager.service - ``` - -3. You can check whether the service is running with: - - ```shell - sudo systemctl status plex-meta-manager.service - ``` -```` -````{tab} cron -The cron utility is used for running scripts and commands at regular intervals, and at specific times and dates. It’s built into most Operating Systems (namely Linux and Mac), and provides a very useful way to schedule tasks on your server. It also works for running Docker commands on a schedule. - -1. Decide when you want to run Plex Meta Manager - - `cron` needs a specific syntax to express schedules. A cron schedule is something like "Every Tuesday at 4" or "5 minutes past every other hour". - - You can generate the required line by checking boxes using something like [crontab-generator](https://crontab-generator.org/). - - The command you use in crontab will probably be the command you use to run it on the command line. - - A command you could use for this: - - ``` - cd /path/to/plex-meta-manager && pmm-venv/bin/python plex_meta_manager.py --config config/config.yml --run - ``` - Change `/path/to/plex-meta-manager` to reflect where you've installed Plex Meta Manager. - - This is an example, which does nothing but run the script immediately. If you want to add additional flags you can do so. - - NOTE: This is assuming you created the `pmm-venv` virtual environment as described in the [Local Walkthrough](local) - -2. Open the system crontab for editing: - - ```bash - sudo crontab -e - ``` - -3. Paste in the crontab line you got from `crontab-generator`, or type in one of your own. Depending on the editor being used, you may need to put it into insert mode first. There's a good chance it's `vi`, in which case you need to press `i` to put it into insert mode, after which you will see `-- INSERT -- ` in the lower left. - -4. Save and close the file. How you do that depends on which editor is being used. There's a good chance it's `vi`, in which case `ESC : w RETURN` will save and `ESC : q RETURN` will exit. -```` diff --git a/docs/home/guides/synology.md b/docs/home/guides/synology.md deleted file mode 100644 index d19ac184..00000000 --- a/docs/home/guides/synology.md +++ /dev/null @@ -1,119 +0,0 @@ -# Synology Walkthrough - -This is a quick walkthrough of setting up the Plex-Meta-Manager Docker container in the Synology UI. - -## Prerequisite: Installing Docker - -* Open the Package Center app from the Synology Web GUI. - - ![](synology/synology-01.png) - -* Type `docker` in the search bar and once it comes up click "Install" to add Docker. and then click "Open" to bring it up. - - ![](synology/synology-02.png) - -## Installing Plex Meta Manager - -1. Open the Docker app. - - ![](synology/synology-03.png) - -2. Search and Download the Image. - 1. Click Registry. - 2. Search for `meisnate12/plex-meta-manager`. - 3. Select the Repository. - 4. Click Download. - - ![](synology/synology-04.png) - -3. Select the tag you want to run from the dropdown and click "Select". - - The options are: - - `latest` - most recent official release; typically the most stable. - - `develop` - development release, contains new features that haven't made it to latest yet, but may have minor problems. - - `nightly` - bleeding-edge development version; latest fixes go here, but breakage should be expected. - - ![](synology/synology-05.png) - -4. Select the Image and Create a Container. - 1. Click Image. - 2. Select the `meisnate12/plex-meta-manager` Image. - 4. Click Launch. - - ![](synology/synology-06.png) - -<br> - -**From this point on the setup looks a little different depending on if the Synology is running DiskStation Manager 7 or DiskStation Manager 6.** - -````{tab} DiskStation Manager 7 - -5. Specify your docker network type. Then click "Next". - - ![](synology/dsm7-01.png) - -6. You can name the Container whatever you want using the "Container Name" text Box. - - ![](synology/dsm7-02.png) - -7. To add Environment Variables and Command Line Arguments click "Advanced Settings". (Optional) - - Information on available Command Line Arguments and Environment Variables can be found [here](../environmental) - - To add an Environment Variable click "Environment" then click Add" and then fill in the Variable and Value. - - ![](synology/dsm7-03.png) - - To use Command Line Arguments click "Execution Command" put the arguments in the "Command" text field. - - ![](synology/dsm7-04.png) - - Click "Save" to save the settings and go back to the General Settings Screen. - -8. Click "Next" from the General Settings Screen to get to the Port Settings Screen where you just want to click "Next" as PMM has no Ports. - - ![](synology/dsm7-05.png) - -9. Next we need to add you config folder to the container. From the Volume Settings Screen click "Add Folder". - - ![](synology/dsm7-06.png) - -9. Select from your Synology File System where you want to store your PMM config files and then enter `/config` as the "Mount path". Then click "Next" to go to the Summary Page. - - ![](synology/dsm7-07.png) - -9. From the Summary Page select "Done" to finish and creating the container. - - ![](synology/dsm7-08.png) - -```` -````{tab} DiskStation Manager 6 - -5. You can name the Container whatever you want using the "Container Name" text Box. Then click "Advanced Settings". - - ![](synology/dsm6-01.png) - -6. Next we need to add you config folder to the container. Select the "Volume" Tab, click "Add Folder", and select from your Synology File System where you want to store your PMM config files. - - ![](synology/dsm6-02.png) - -7. Enter `/config` as the "Mount Point". - - ![](synology/dsm6-03.png) - -8. Select the "Environment" Tab. (Optional) - - Environment Variables and Command Line Arguments can be added here. - - - To add an Environment Variable Click "Add" and then fill in the Variable and Value. - - To use Command Line Arguments put the arguments in the "Command" text field. - - Information on available Command Line Arguments and Environment Variables can be found [here](../environmental) - - ![](synology/dsm6-04.png) - -9. Select "Apply" to save the "Advanced Settings", select "Next" to go to the Summary, and select "Done" to finish and creating the container. - - ![](synology/dsm6-05.png) - -```` diff --git a/docs/home/guides/wt/wt-editor.md b/docs/home/guides/wt/wt-editor.md deleted file mode 100644 index 2184c632..00000000 --- a/docs/home/guides/wt/wt-editor.md +++ /dev/null @@ -1,46 +0,0 @@ -````{tab} Linux -[type this into your terminal] - -``` -nano config/config.yml -``` - -I’m using `nano` here mostly because it’s simpler than any other editor on Linux. - -If you see something like: -```bash - $ nano config/config.yml -zsh: command not found: nano -``` - -You need to install `nano`, which you would do with: - -[type this into your terminal] - -``` -sudo apt install nano -``` - -You can use any other text editor you wish, provided it saves files as PLAIN TEXT. `vi`, `emacs`, etc. -```` -````{tab} OS X -[type this into your terminal] - -``` -nano config/config.yml -``` - -I’m using `nano` here simply because it’s built into OSX. You can use any other text editor you wish, provided it saves files as PLAIN TEXT. BBedit, TextMate, VSCode, etc. - -A common mistake is using TextEdit.app, which saves files as RTF by default. -```` -````{tab} Windows -[type this into your terminal] - -``` -notepad .\config\config.yml -``` -I’m using `notepad` here simply because it’s built into Windows. You can use any other text editor you wish, provided it saves files as PLAIN TEXT. -```` - -From here on in, when this walkthrough says "open the config file", I mean this `nano` or `notepad` command. **Don't copy the template again**. diff --git a/docs/home/guides/wt/wt-save.md b/docs/home/guides/wt/wt-save.md deleted file mode 100644 index f7eb4d8d..00000000 --- a/docs/home/guides/wt/wt-save.md +++ /dev/null @@ -1,9 +0,0 @@ -````{tab} Linux -If you're using `nano`, type control-`x`, then `y`, then the enter key. -```` -````{tab} OS X -If you're using `nano`, type control-`x`, then `y`, then the enter key. -```` -````{tab} Windows -If you're using `notepad`, type control-`s` or choose `Save` from the `File` menu. -```` diff --git a/docs/home/kb.md b/docs/home/kb.md deleted file mode 100644 index a55a5718..00000000 --- a/docs/home/kb.md +++ /dev/null @@ -1,299 +0,0 @@ -# Frequently Asked Questions & Knowledgebase - -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://discord.gg/gYU8wATxKw). - -## Frequently Asked Questions - -This sections aims to answer the most commonly asked questions that users have. - -#### PMM Versions & Updating - -<details class="details-tabs"> - <summary>How do I update to the latest version of Plex Meta Manager?</summary> - -````{tab} OS X/Linux -[type this into your terminal] -``` -cd /Users/mroche/Plex-Meta-Manager -git pull -source pmm-venv/bin/activate -python -m pip install -r requirements.txt -``` -```` -````{tab} Windows -[type this into your terminal] -``` -cd C:\Users\mroche\Plex-Meta-Manager -git pull -.\pmm-venv\Scripts\activate -python -m pip install -r requirements.txt -``` -```` -````{tab} Docker -[type this into your terminal] -``` -docker pull meisnate12/plex-meta-manager -``` -```` -</details> - -<details class="details-tabs"> - <summary>How do I switch to the develop branch?</summary> - -````{tab} OS X/Linux -[type this into your terminal] -``` -cd /Users/mroche/Plex-Meta-Manager -git checkout develop -git pull -source pmm-venv/bin/activate -python -m pip install -r requirements.txt -``` -```` -````{tab} Windows -[type this into your terminal] -``` -cd C:\Users\mroche\Plex-Meta-Manager -git checkout develop -git pull -.\pmm-venv\Scripts\activate -python -m pip install -r requirements.txt -``` -```` -</details> - -<details class="details-tabs"> - <summary>How do I switch to the nightly branch</summary> - -````{tab} OS X/Linux -[type this into your terminal] -``` -cd /Users/mroche/Plex-Meta-Manager -git checkout nightly -git pull -source pmm-venv/bin/activate -python -m pip install -r requirements.txt -``` -```` -````{tab} Windows -[type this into your terminal] -``` -cd C:\Users\mroche\Plex-Meta-Manager -git checkout nightly -git pull -.\pmm-venv\Scripts\activate -python -m pip install -r requirements.txt -``` -```` -</details> - -<details class="details-tabs"> - <summary>How do I switch back to the master branch?</summary> - -````{tab} OS X/Linux -[type this into your terminal] -``` -cd /Users/mroche/Plex-Meta-Manager -git checkout master -git pull -source pmm-venv/bin/activate -python -m pip install -r requirements.txt -``` -```` -````{tab} Windows -[type this into your terminal] -``` -cd C:\Users\mroche\Plex-Meta-Manager -git checkout master -git pull -.\pmm-venv\Scripts\activate -python -m pip install -r requirements.txt -``` -```` -</details> - -#### Performance & Scheduling - -<details class="details-tabs"> - <summary>Any tips on increasing PMM performance?</summary> - -Use PMM Caching where possible, this allows PMM to temporarily store commonly-used information so that it can be retreived more efficiently. There are multipe things that can be cached within PMM, see the link: https://metamanager.wiki/en/latest/search.html?q=cache&check_keywords=yes&area=default - -Run PMM after PLEX Scheduled Tasks, as Plex's API tends to be slower at responding whilst it is performing the tasks. By default, PMM runs at 5AM to avoid the 3-5am window that Plex suggests for Scheduled Tasks. - -For users who are more technically advanced and happy to risk manipulating the Plex database, considering altering the PRAGMA_CACHE settings within Plex: https://www.reddit.com/r/PleX/comments/ic3cjr/anyone_try_giving_sqlite3_more_cache_to_help/ -- NOTE: you MUST use the version of sqlite3 tool that comes with your running version of PLEX or you will mess up your PLEX DB beyond repair. See this article on how to find the proper version for your setup: https://support.plex.tv/articles/repair-a-corrupted-database/ - -</details> - -<details class="details-tabs"> - <summary>Why does my PMM run take so long to complete?</summary> - -Every time an item (media, collection, overlay) needs to be updated, PMM needs to send the request to Plex, and then receive confirmation back from Plex that the action has been completed. This can take anywhere from seconds to minutes depending on when Plex provides a response. Given that the typical run can update hundreds or even thousands of items, this can quickly add up to a lot of time. If "Mass Update" operations are used, then every single item in the library needs to go through this process, which can be lengthy. - -Overlays can be particularly cumbersome as PMM needs to perform the following actions for each of the items that need to have an overlay applied: -- Check which overlays are applicable (this will take more time depending on how many overlays you are applying) -- Compare the current poster to confirm what overlays are already applied, if changes are needed then continue with the following steps -- Grab source image from Plex and save it to disk -- Draw each overlay image on top of the source image -- save final image to disk -- Tell Plex to apply new image to the item -- Wait for Plex to responsd confirming that the change has been made - -The above two points can be greatly exasterbated if PMM has to update every episode within a Show library rather than just the Shows themselves, as there can often be hundreds of thousands of episodes to be updated with mass operations or overlays. - -Additionally, some collections requires a lot of computing resource to determine the critera of the collections that are to be made. This is commonly seen in the Defaults files for Actor/Director/Producer/Writer which need to get the crew information for each of the movies/shows within your library, and then calculate which ones appear the most to find out which are the most popular. The larger your library, the longer this process will take. - -</details> - -<details class="details-tabs"> - <summary>Can I schedule library operations and/or overlays to happen at a different time than collections?</summary> - -Yes, the recommended approach is to set up a new library for the Operations/Overlays, mapping it back to the original library, and then scheduling the library, as outlined below - -```yaml -libraries: - Movie Operations: # NAME DOESN'T MATTER BUT MUST BE UNIQUE - library_name: Movies # THIS MUST MATCH A LIBRARY IN PLEX - schedule: weekly(monday) - operations: - split_duplicates: true - overlay_path: - - pmm: resolution -``` - -</details> - -#### Errors & Issues - -<details class="details-tabs"> - <summary>Why doesn't PMM let me enter my authentication information for Trakt/MAL?</summary> - -PMM needs to run in an interactive mode which allows the user to enter information (such as the Trakt/MAL PIN) as part of the authentication process. This can prove troublesome in some environments, particularly NAS. - -Chazlarson has developed an online tool which will allow you to perform the authentication of both Trakt and MAL outside of PMM, and will then provide you the completed code block to paste into your config.yml. - -The scripts can be found here. Click the green play button, wait a little bit, then follow the prompts. -https://replit.com/@chazlarson/MALAuth -https://replit.com/@chazlarson/TraktAuth - -</details> - -<details class="details-tabs"> - <summary>Why am I seeing "(500) Internal Server Error" in my log files?</summary> - -A 500 Internal Server Error happens when the server has an unexpected error when responding to an API request. - -There could be any number of reasons why this happens and it depends on what server PMM is talking to although its most likely coming from your Plex Server. - -Most of the time these errors need to be resolved by changing something specific to your set up but some do come up that can be fixed (i.e. Plex throws one if you upload a photo larger then 10 MB) - -Many Appbox Setups will throw this error when too many requests are sent, or if the central metadata repository is not properly configured to allow users to upload custom posters. - -Take a look at the following logs: -:one: Settings | Manage | Console -> then filter on Error and Warning to see what might be going on -:two: Check the plex logs (container or other) for the "Busy DB Sleeping for 200ms) - -There is nothing that PMM or our support staff can really do to resolve a 500 error. - -</details> - -## Knowledgebase - -This section aims to provide some guidance on the most common issues that we see. - -### Locating Log Files - -The meta.log file can be found within the `logs` folder of your Plex Meta Manager config folder [right next to `config.yml`]. -`meta.log` is the most recent run of Plex Meta Manager, `meta.log.1` is the previous run, `meta.log.2` is the run before that, so on and so forth. - -### Basic Log File Troubleshooting - -Wondering how to troubleshoot Plex Meta Manager and how to read through the meta.log? - -**Using a text editor like [Visual Studio Code](https://code.visualstudio.com/) or [Sublime Text](https://www.sublimetext.com/) is recommended** - -In all cases, the first step is to open the [`meta.log`](#locating-log-files) with your text editor and perform these steps: - -1. Check that you are running the latest [`version`](#checking-plex-meta-manager-version) of your branch. Your current version can be found in the `meta.log` file either below the Plex Meta Manager ASCII art, or at the end of the run. If you are not on the latest version of your branch, you will see `Newest Version: X.X.X` below this. Ensure you [`upgrade`](../home/guides/local.md#i-want-to-update-to-the-latest-version-of-pmm) to the latest version of Plex Meta Manager. -2. When scanning your meta.log file, search for `[CRITICAL]` items first as these will definitely need to be fixed -3. Scan your meta.log file for `[ERROR]` and make a note of the content of the full line to start your search below on how to resolve - -### Checking Plex Meta Manager Version - -Checking the version: You will find that in your [`meta.log`](#locating-log-files) around the 8th-10th line and will look something like this: - -``` -| | -| Version: 1.17.1-develop10 | -|=================================| -``` - -If you are not on the latest version of your branch, you will see Newest Version: X.X.X below this. Ensure you upgrade to the latest version of Plex Meta Manager. - -``` -| | -| Version: 1.17.1-develop10 | -| Newest Version: 1.17.1-develop20 | -|=======================================| -``` - -### Understanding Log File Event Types - -There are five main event types that you need to be aware of when understanding the log files, detailed below: - -| Type | Short Info | Description | Recommendation | -|:-------------|:----------------------|:--------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------| -| `[INFO]` | Information log | Informational message that does not require much attention | No action required | -| `[DEBUG]` | Debug Log | Debug log message that does not require much attention | No action required | -| `[WARNING]` | Warning Log | Warning message that may require your attention | Read the warning and determine if this is something you need to take action on or not | -| `[ERROR]` | Error Log | Error message that in MOST cases requires action on your part to resolve | Read the error message, look for the message below and try recommendations | -| `[CRITICAL]` | Critical Log | Critical messaage requiring you to fix it for PMM to run properly | Read the critical message and take appropriate action. look for message below and try recommendations | - - -### Common Log File Messages - -This section aims to explain some commonly seen event messages that are produced in the logs. - -#### CRITICAL - -This table details examples of the most commonly-seen `[CRITICAL]` events and what they mean for the user. - -| Type | Short Info | Description | Recommendation | -|:-------------:|:----------------------------------------------------|:------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------| -| `[CRITICAL]` | `Failed to Connect to https://api.themoviedb.org/3` | Current step PMM 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 - -This table details examples of the most commonly-seen `[ERROR]` events and what they mean for the user. - -| 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]` | `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 PMM 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 PMM 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. For example, at the time of that error, the Trakt record for "Nightfall (2022)" didn't contain a TVDb ID. This could be because the record just hasn't been updated, or because "Nightfall (2022)" is not listed on TVDb. 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 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 #pmm-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 meta.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 meta.log for more information on what went wrong. Refer to the wiki for details on how to set this up (in this case Trakt) | - -#### WARNING - -This table details examples of the most commonly-seen `[WARNING]` events and what they mean for the user. - -| Type | Short Info | Description | Recommendation | -|:------------:|:-----------------------------------------------------------------|:---------------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `[WARNING]` | `Convert Error: 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. For example, at the time of that error, the TMDb record for "The Two Mrs. Grenvilles" [ID 15733] didn't contain a TVDb ID. This could be because the record just hasn't been updated, or because "The Two Mrs. Grenvilles" is not listed on TVDB. The fix is for someone [like you, perhaps] to go to the relevant site and fill in the missing data. | -| `[WARNING]` | `Convert Error: 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 Error: 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 Error: AniDB ID not found for MyAnimeList ID: 36838` | 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. | - -#### INFO - -This table details examples of the most commonly-seen `[INFO]` events and what they mean for the user. - -| 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 PMM defaults people posters | diff --git a/docs/home/scripts/set-creator.md b/docs/home/scripts/set-creator.md deleted file mode 100644 index 523cd52c..00000000 --- a/docs/home/scripts/set-creator.md +++ /dev/null @@ -1,121 +0,0 @@ -# Metadata Set Creator - -Metadata Set Creator is an open source Python 3 project that has been created to create a Plex Meta Manager metadata file and associated set file for a list. - -## Installing Metadata Set Creator - -Generally, Metadata Set Creator can be installed in one of two ways: - -1. Running on a system as a Python script [we will refer to this as a "local" install] -2. Running as a Docker container - -GENERALLY SPEAKING, running as a Docker container is simpler, as you won't have to be concerned about installing Python, or support libraries, or any possible system conflicts generated by those actions. - -For this reason, it's generally recommended that you install via Docker rather than directly on the host. - -If you have some specific reason to avoid Docker, or you prefer running it as a Python script for some particular reason, then this general recommendation is not aimed at you. It's aimed at someone who doesn't have an existing compelling reason to choose one over the other. - -### Install Walkthroughs - -There are no detailed walkthroguhs specifically for Metadata Set Creator but the process is extremely similar to how you would do it with [Plex Meta Manager](https://metamanager.wiki/en/latest/home/installation.html#install-walkthroughs). - -### Local Install Overview - -Metadata Set Creator is compatible with Python 3.11. Later versions may function but are untested. - -These are high-level steps which assume the user has knowledge of python and pip, and the general ability to troubleshoot issues. - -1. Clone or [download and unzip](https://github.com/meisnate12/Metadata-Set-Creator/archive/refs/heads/master.zip) the repo. - -```shell -git clone https://github.com/meisnate12/Metadata-Set-Creator -``` -2. Install dependencies: - -```shell -pip install -r requirements.txt -``` - -3. If the above command fails, run the following command: - -```shell -pip install -r requirements.txt --ignore-installed -``` - -At this point Metadata-Set-Creator has been installed, and you can verify installation by running: - -```shell -python metadata_set_creator.py -``` - -### Docker Install Overview - -#### Docker Run: - -```shell -docker run -v <PATH_TO_CONFIG>:/config:rw meisnate12/metadata-set-creator -``` -* The `-v <PATH_TO_CONFIG>:/config:rw` flag mounts the location you choose as a persistent volume to store your files. - * Change `<PATH_TO_CONFIG>` to a folder where your .env and other files are. - * If your directory has spaces (such as "My Documents"), place quotation marks around your directory pathing as shown here: `-v "<PATH_TO_CONFIG>:/config:rw"` - -Example Docker Run command: - -These docs are assuming you have a basic understanding of Docker concepts. One place to get familiar with Docker would be the [official tutorial](https://www.docker.com/101-tutorial/). - -```shell -docker run -v "X:\Media\Metadata Set Creator\config:/config:rw" meisnate12/metadata-set-creator -``` - -#### Docker Compose: - -Example Docker Compose file: -```yaml -version: "2.1" -services: - plex-meta-manager: - image: meisnate12/metadata-set-creator - container_name: metadata-set-creator - environment: - - TZ=TIMEZONE #optional - volumes: - - /path/to/config:/config - restart: unless-stopped -``` - -#### Dockerfile - -A `Dockerfile` is included within the GitHub repository for those who require it, although this is only suggested for those with knowledge of dockerfiles. The official Metadata Set Creator build is available on the [Dockerhub Website](https://hub.docker.com/r/meisnate12/metadata-set-creator). - -## Options - -Each option can be applied in three ways: - -1. Use the Shell Command when launching. -2. Setting the Environment Variable. -3. Adding the Environment Variables to `config/.env` - -| Option | Description | Required | -|:------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:--------:| -| List URL | TMDb List, TMDb Collection, IMDb List, Trakt List, or MDbList List URL. <br>**Shell Command:** `-u` or `--url "https://trakt.tv/users/movistapp/lists/christmas-movies"` <br>**Environment Variable:** `URL=https://trakt.tv/users/movistapp/lists/christmas-movies` | ✅ | -| PMM Config | Path to PMM Config with TMDb/Trakt configured. **Default:** `config/config.yml`<br>**Shell Command:** `-pm` or `--pmm-config "C:\Plex Meta Manager\config\config.yml"`<br>**Environment Variable:** `PMM_CONFIG=C:\Plex Meta Manager\config\config.yml` | ❌ | -| Timeout | Timeout can be Any number greater than 0. **Default:** `600`<br>**Shell Command:** `-ti` or `--timeout 1000`<br>**Environment Variable:** `TIMEOUT=1000` | ❌ | -| TPDb Placeholders | Add TPDb placeholders over url placeholders.<br>**Shell Command:** `-tp` or `--tpdb`<br>**Environment Variable:** `TPDB=True` | ❌ | -| Background Placeholders | Add Background placeholders.<br>**Shell Command:** `-b` or `--background`<br>**Environment Variable:** `BACKGROUND=True` | ❌ | -| Season Placeholders | Add Season posters placeholders.<br>**Shell Command:** `-s` or `--season`<br>**Environment Variable:** `SEASON=True` | ❌ | -| Episode Placeholders | Add Episode posters placeholders.<br>**Shell Command:** `-e` or `--episode`<br>**Environment Variable:** `EPISODE=True` | ❌ | -| Trace Logs | Run with extra trace logs.<br>**Shell Command:** `-tr` or `--trace`<br>**Environment Variable:** `TRACE=True` | ❌ | -| Log Requests | Run with every request logged.<br>**Shell Command:** `-lr` or `--log-requests`<br>**Environment Variable:** `LOG_REQUESTS=True` | ❌ | - -### Example .env File -``` -URL=https://trakt.tv/users/movistapp/lists/christmas-movies -PMM_CONFIG=C:\Plex Meta Manager\config\config.yml -TIMEOUT=600 -TPDB=True -BACKGROUND=False -SEASON=True -Episode=True -TRACE=False -LOG_REQUESTS=False -``` \ No newline at end of file diff --git a/docs/home/test.md b/docs/home/test.md deleted file mode 100644 index bd836c77..00000000 --- a/docs/home/test.md +++ /dev/null @@ -1,27 +0,0 @@ -<script type="text/javascript"> -$(document).ready(function(){ - $("#bing").load("https://raw.githubusercontent.com/meisnate12/PMM-Image-Sets/master/movies/readme.md", function () { - $(".image-accordion").click(function () { - this.classList.toggle("image-active"); - var parent = this.parentElement; - var panel = this.nextElementSibling; - if (panel.style.maxHeight) { - panel.style.maxHeight = null; - } else { - panel.style.maxHeight = parseInt(panel.scrollHeight) + 10 + "px"; - parent.style.maxHeight = parseInt(parent.style.maxHeight) + panel.scrollHeight + "px"; - } - if (panel.style.paddingBottom) { - panel.style.paddingBottom = null; - } else { - panel.style.paddingBottom = "10px"; - } - }); - }); -}); -</script> - -```{title} Movies -``` - -<div id="bing"></div> \ No newline at end of file diff --git a/docs/home/zip.png b/docs/home/zip.png deleted file mode 100644 index f7f6cf5b..00000000 Binary files a/docs/home/zip.png and /dev/null differ diff --git a/docs/index.md b/docs/index.md index 0d916d7c..11d47f4c 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,173 +1,4 @@ -# <img src="_static/logo-full.png" alt="PMM"> - -[![GitHub release (latest by date)](https://img.shields.io/github/v/release/meisnate12/Plex-Meta-Manager?style=plastic)](https://github.com/meisnate12/Plex-Meta-Manager/releases) -[![Docker Image Version (latest semver)](https://img.shields.io/docker/v/meisnate12/plex-meta-manager?label=docker&sort=semver&style=plastic)](https://hub.docker.com/r/meisnate12/plex-meta-manager) -[![Docker Pulls](https://img.shields.io/docker/pulls/meisnate12/plex-meta-manager?style=plastic)](https://hub.docker.com/r/meisnate12/plex-meta-manager) -[![Develop GitHub commits since latest stable release (by SemVer)](https://img.shields.io/github/commits-since/meisnate12/plex-meta-manager/latest/develop?label=Commits%20in%20Develop&style=plastic)](https://github.com/meisnate12/Plex-Meta-Manager/tree/develop) -[![Nightly GitHub commits since latest stable release (by SemVer)](https://img.shields.io/github/commits-since/meisnate12/plex-meta-manager/latest/nightly?label=Commits%20in%20Nightly&style=plastic)](https://github.com/meisnate12/Plex-Meta-Manager/tree/nightly) - -[![Discord](https://img.shields.io/discord/822460010649878528?color=%2300bc8c&label=Discord&style=plastic)](https://discord.gg/gYU8wATxKw) -[![Reddit](https://img.shields.io/reddit/subreddit-subscribers/PlexMetaManager?color=%2300bc8c&label=r%2FPlexMetaManager&style=plastic)](https://www.reddit.com/r/PlexMetaManager/) -[![Wiki](https://img.shields.io/readthedocs/plex-meta-manager?color=%2300bc8c&style=plastic)](https://metamanager.wiki) -[![Translations](https://img.shields.io/weblate/progress/plex-meta-manager?color=00bc8c&server=https%3A%2F%2Ftranslations.metamanager.wiki&style=plastic)](https://translations.metamanager.wiki/projects/plex-meta-manager/#languages) -[![GitHub Sponsors](https://img.shields.io/github/sponsors/meisnate12?color=%238a2be2&style=plastic)](https://github.com/sponsors/meisnate12) -[![Sponsor or Donate](https://img.shields.io/badge/-Sponsor%2FDonate-blueviolet?style=plastic)](https://github.com/sponsors/meisnate12) -[![Feature Requests](https://img.shields.io/badge/Feature%20Requests-blueviolet?style=plastic)](https://features.metamanager.wiki/) - -Plex Meta Manager is an open source Python 3 project that has been designed to ease the creation and maintenance of metadata, collections, and playlists within a Plex Media Server. The script is designed to be run continuously and be able to update information based on sources outside your Plex environment. Plex Meta Manager supports Movie/TV/Music libraries and Playlists. - -## What Can Plex-Meta-Manager Do? - -Plex Meta Manager can - -1. Create and maintain collections in Plex libraries using external lists, Plex searches, or filters. - -2. Create, maintain, and share playlists on Plex servers using the same or similar criteria. - -3. Manage metadata [artwork, titles, summaries, release year, etc.] for anything on your Plex server. - -4. Add overlays to item artwork to display various details [ratings, resolution, edition, etc.]. - -5. Send missing items from external lists [for example the IMDB 250] to Radarr or Sonarr for download. - -6. and more. - -## Getting Started - -These are the high-level steps you must take to get Plex Meta Manager up and running: - -1. Install Plex Meta Manager; this process is described [here](home/installation). - -2. Once installed, you have to create a [Configuration File](config/configuration), which contains URLs and credentials and the like which are used to connect to services like Plex and TMDb. - -3. After that you can start updating Metadata and building automatic Collections by creating a [Metadata File](metadata/metadata) for each Library you want to interact with. - -4. After that, explore the [Wiki](https://metamanager.wiki/) to see all the different Collection Builders that can be used to create collections. - -## Walkthroughs - -If you find steps 1-3 above daunting, there are some walkthroughs available that will take you through those three steps: getting Plex Meta Manager installed, creating a config file, and creating a couple collections to show how the process works. - - 1. The [Local Walkthrough](home/guides/local) covers installing the script natively [not in docker] on your local computer or a remote server. - 2. The [Docker Walkthrough](home/guides/docker) covers the same thing, running the script via Docker. - 3. The [unRAID Walkthrough](home/guides/unraid) gets you started configuring the script in UNRaid. It doesn't go through the same steps with regard to creating the config file and metadata file, so you may want to go through the [Docker Walkthrough](home/guides/docker) first on your computer to gain that understanding. - -## Example Usage - -Plex Meta Manager gives the user the power to curate a set of Collections to make discovering and organizing media easy. They can be built either using plex-based searches/filters, or by using popular builders such as TMDb, IMDb, Trakt, MDBList, MyAnimeList and many more. - -Some example collections that can be created are: - * Trending/Popular (based on TMDb, IMDb, Trakt, etc.) - * Streaming Service (such as Netflix, Disney+, etc.) - * Networks - * Studios - * Genres - * Actors - * Decades - -Below are some user-curated collections which have been created by Plex Meta Manager using the [PMM Defaults](defaults/guide). - -### Example Movie Collection -![Movie Collection Preview](home/movie-collection-preview.png) - -### Example Movie Overlays -![Movie Library Preview](home/movie-library-preview.png) - -### Example Show Collection -![Show Collection Preview](home/show-collection-preview.png) - -### Example Show Overlays -![Show Library Preview](home/show-library-preview.png) - -## Develop & Nightly Branches - -Develop and Nightly branches are deemed as "beta" branches which are updated far more frequently than the master branch. Bug fixes, new features and any other code added to Plex Meta Manager first goes to the nightly branch, followed by the develop branch, before finally being released to the master branch. - -These branches (particularly the nightly branch) are only recommended for those who have a technical knowledge of Plex Meta Manager, and are happy with having to frequently update to receive the latest changes, and accept the risk that these branches may suffer breakages at any point. - -<details class="details-tabs"> - <summary>Develop Branch - Click to Expand</summary> - -[![Develop GitHub commits since latest stable release (by SemVer)](https://img.shields.io/github/commits-since/meisnate12/plex-meta-manager/latest/develop?label=Commits%20in%20Develop&style=plastic)](https://github.com/meisnate12/Plex-Meta-Manager/tree/develop) - -The [develop](https://github.com/meisnate12/Plex-Meta-Manager/tree/develop) branch has the most updated **documented** fixes and enhancements to Plex Meta Manager. This version is tested and documented to some degree, but it is still an active Develop branch, so there may be rough edges. - -Switching to `develop`: -````{tab} Running in Docker -Add ":develop" to the image name in your run command or configuration: -``` -meisnate12/plex-meta-manager:develop -``` -```` -````{tab} Running on the Host -In the directory where you cloned PMM: -```bash -git checkout develop -``` -To switch back: -```bash -git checkout master -``` -```` - -If switching to the develop branch, it is recommended to also use the [develop branch of the wiki](https://metamanager.wiki/en/develop/), which documents any changes made from the Master branch. - -</details> - -<br> - -<details class="details-tabs"> - <summary>Nightly Branch - Click to Expand</summary> - -[![Nightly GitHub commits since latest stable release (by SemVer)](https://img.shields.io/github/commits-since/meisnate12/plex-meta-manager/latest/nightly?label=Commits%20in%20Nightly&style=plastic)](https://github.com/meisnate12/Plex-Meta-Manager/tree/nightly) - -**This branch will have squashed commits which can cause `git pull`/`git fetch` to error you can use `git reset origin/nightly --hard` to fix the branch.** - -There is also a [nightly](https://github.com/meisnate12/Plex-Meta-Manager/tree/nightly) branch which will have the absolute latest version of the script, but it could easily break, there is no guarantee that it even works, and any new features will not be documented until they have progressed enough to reach the develop branch. - -Switching to `nightly`: - -````{tab} Running in Docker -Add ":nightly" to the image name in your run command or configuration: -``` -meisnate12/plex-meta-manager:nightly -``` -```` -````{tab} Running on the Host -In the directory where you cloned PMM: -```bash -git checkout nightly -``` -To switch back: -```bash -git checkout master -``` -```` - -As this branch is subject to extreme change, there is no promise of the feature being documented in the [nightly](https://metamanager.wiki/en/nightly/) branch of the wiki and all discussions relating to changes made in the nightly branch will be held within the [Plex Meta Manager Discord Server](https://discord.gg/gYU8wATxKw). -</details> - -## Defaults and User Metadata/Overlay Files - -The overlays and collection built in the images above can be easily added to any plex by using the [PMM Defaults](defaults/guide). These Files were created by the PMM team to make it easier than ever to have customized collections and overlays. - -To see user submitted Metadata configuration files, and you to even add your own, go to the [Plex Meta Manager Configs](https://github.com/meisnate12/Plex-Meta-Manager-Configs). - -Plex Meta Manager can manage the metadata fields for movies, shows, seasons, episodes, artists, albums, tracks, and collections, which can allow you to have a full backup of your customizations in case of a database loss. - -## Discord Support Server -Before posting on GitHub about an enhancement, error, or configuration question please visit the [Plex Meta Manager Discord Server](https://discord.gg/gYU8wATxKw). we have a dedicated support thread system so that your query can be dealt with efficiently by our team and community. - -## Feature Requests -If you have an idea for how to enhance Plex Meta Manager or just want to vote on what should be added next please visit the [Feature Request](https://features.metamanager.wiki/features) Page. - -## Errors and Configuration Questions -If you are unable to use the [Plex Meta Manager Discord Server](https://discord.gg/gYU8wATxKw), please follow this guidance: -* If you're getting an Error please update to the latest version and then open a [Bug Report](https://github.com/meisnate12/Plex-Meta-Manager/issues/new?assignees=meisnate12&labels=status%3Anot-yet-viewed%2C+bug&template=bug_report.md&title=Bug%3A+) if the error persists. -* If you see a mistake/typo with the [Plex Meta Manager Wiki](https://metamanager.wiki/) or have an idea of how we can improve it please open a [Wiki Request](https://github.com/meisnate12/Plex-Meta-Manager/issues/new?assignees=meisnate12&labels=status%3Anot-yet-viewed%2C+documentation&template=3.docs_request.yml&title=%5BDocs%5D%3A+) -* If you have a metadata configuration query please post in the [Discussions](https://github.com/meisnate12/Plex-Meta-Manager/discussions). - -## Contributing -* Pull Requests are greatly encouraged, please submit all Pull Requests to the nightly branch. - -<br> +--- +template: home.html +title: Plex Meta Manager +--- diff --git a/docs/make.bat b/docs/make.bat deleted file mode 100644 index 922152e9..00000000 --- a/docs/make.bat +++ /dev/null @@ -1,35 +0,0 @@ -@ECHO OFF - -pushd %~dp0 - -REM Command file for Sphinx documentation - -if "%SPHINXBUILD%" == "" ( - set SPHINXBUILD=sphinx-build -) -set SOURCEDIR=. -set BUILDDIR=_build - -if "%1" == "" goto help - -%SPHINXBUILD% >NUL 2>NUL -if errorlevel 9009 ( - echo. - echo.The 'sphinx-build' command was not found. Make sure you have Sphinx - echo.installed, then set the SPHINXBUILD environment variable to point - echo.to the full path of the 'sphinx-build' executable. Alternatively you - echo.may add the Sphinx directory to PATH. - echo. - echo.If you don't have Sphinx installed, grab it from - echo.http://sphinx-doc.org/ - exit /b 1 -) - -%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% -goto end - -:help -%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% - -:end -popd diff --git a/docs/metadata/builders.md b/docs/metadata/builders.md index 30db4f86..01e6da83 100644 --- a/docs/metadata/builders.md +++ b/docs/metadata/builders.md @@ -2,23 +2,23 @@ Builders use third-party services to source items to be added to the collection. Multiple builders can be used in the same collection from a variety of sources listed below. -| Name | Description | Requires Config | -|:--------------------------------------|:----------------------------------------------------------------------------------------------|:---------------:| -| [Plex](builders/plex) | Grabs items based on the metadata inside your Plex Server. | ✅ | -| [Smart](builders/smart) | Creates Smart Collections based on the metadata inside your Plex Server. (Collections Only) | ✅ | -| [TMDb](builders/tmdb) | Grabs items based on metadata and lists on [TheMovieDb.org](https://www.themoviedb.org/). | ✅ | -| [TVDb](builders/tvdb) | Grabs items based on metadata and lists on [TheTVDb.com](https://www.thetvdb.com/). | ❌ | -| [IMDb](builders/imdb) | Grabs items based on metadata and lists on [IMDb.com](https://www.imdb.com/). | ❌ | -| [Trakt](builders/trakt) | Grabs items based on metadata and lists on [Trakt.tv](https://trakt.tv/). | ✅ | -| [Tautulli](builders/tautulli) | Grabs items based on metadata and lists in your [Tautulli](https://tautulli.com/). | ✅ | -| [Radarr](builders/radarr) | Grabs items based on metadata and lists in your [Radarr](https://radarr.video/) . | ✅ | -| [Sonarr](builders/sonarr) | Grabs items based on metadata and lists in your [Sonarr](https://sonarr.tv/). | ✅ | -| [MdbList](builders/mdblist) | Grabs items based on metadata and lists on [MdbList.com](https://mdblist.com/). | ❌ | -| [Letterboxd](builders/letterboxd) | Grabs items based on metadata and lists on [Letterboxd.com](https://letterboxd.com/). | ❌ | -| [ICheckMovies](builders/icheckmovies) | Grabs items based on metadata and lists on [ICheckMovies.com](https://www.icheckmovies.com/). | ❌ | -| [FlixPatrol](builders/flixpatrol) | Grabs items based on metadata and lists on [FlixPatrol.com](https://flixpatrol.com/). | ❌ | -| [Reciperr](builders/reciperr) | Grabs items based on metadata and lists on [reciperr.com](https://reciperr.com/). | ❌ | -| [StevenLu](builders/stevenlu) | Grabs items based on metadata and lists on [StevenLu.com](https://movies.stevenlu.com/). | ❌ | -| [AniDB](builders/anidb) | Grabs items based on metadata and lists on [AniDB.net](https://anidb.net/). | ❌ | -| [AniList](builders/anilist) | Grabs items based on metadata and lists on [AniList.co](https://anilist.co/). | ❌ | -| [MyAnimeList](builders/myanimelist) | Grabs items based on metadata and lists on [MyAnimeList.net](https://myanimelist.net/). | ✅ | \ No newline at end of file +| Name | Description | Requires Config | +|:-----------------------------------------|:----------------------------------------------------------------------------------------------|:---------------:| +| [Plex](../builders/plex.md) | Grabs items based on the metadata inside your Plex Server. | ✅ | +| [Smart](../builders/smart.md) | Creates Smart Collections based on the metadata inside your Plex Server. (Collections Only) | ✅ | +| [TMDb](../builders/tmdb.md) | Grabs items based on metadata and lists on [TheMovieDb.org](https://www.themoviedb.org/). | ✅ | +| [TVDb](../builders/tvdb.md) | Grabs items based on metadata and lists on [TheTVDb.com](https://www.thetvdb.com/). | ❌ | +| [IMDb](../builders/imdb.md) | Grabs items based on metadata and lists on [IMDb.com](https://www.imdb.com/). | ❌ | +| [Trakt](../builders/trakt.md) | Grabs items based on metadata and lists on [Trakt.tv](https://trakt.tv/). | ✅ | +| [Tautulli](../builders/tautulli.md) | Grabs items based on metadata and lists in your [Tautulli](https://tautulli.com/). | ✅ | +| [Radarr](../builders/radarr.md) | Grabs items based on metadata and lists in your [Radarr](https://radarr.video/) . | ✅ | +| [Sonarr](../builders/sonarr.md) | Grabs items based on metadata and lists in your [Sonarr](https://sonarr.tv/). | ✅ | +| [MdbList](../builders/mdblist.md) | Grabs items based on metadata and lists on [MdbList.com](https://mdblist.com/). | ❌ | +| [Letterboxd](../builders/letterboxd.md) | Grabs items based on metadata and lists on [Letterboxd.com](https://letterboxd.com/). | ❌ | +| [ICheckMovies](../builders/icheckmovies.md) | Grabs items based on metadata and lists on [ICheckMovies.com](https://www.icheckmovies.com/). | ❌ | +| [FlixPatrol](../builders/flixpatrol.md) | Grabs items based on metadata and lists on [FlixPatrol.com](https://flixpatrol.com/). | ❌ | +| [Reciperr](../builders/reciperr.md) | Grabs items based on metadata and lists on [reciperr.com](https://reciperr.com/). | ❌ | +| [StevenLu](../builders/stevenlu.md) | Grabs items based on metadata and lists on [StevenLu.com](https://movies.stevenlu.com/). | ❌ | +| [AniDB](../builders/anidb.md) | Grabs items based on metadata and lists on [AniDB.net](https://anidb.net/). | ❌ | +| [AniList](../builders/anilist.md) | Grabs items based on metadata and lists on [AniList.co](https://anilist.co/). | ❌ | +| [MyAnimeList](../builders/myanimelist.md) | Grabs items based on metadata and lists on [MyAnimeList.net](https://myanimelist.net/). | ✅ | \ No newline at end of file diff --git a/docs/metadata/dynamic.md b/docs/metadata/dynamic.md index a1922c01..67c6c54c 100644 --- a/docs/metadata/dynamic.md +++ b/docs/metadata/dynamic.md @@ -124,8 +124,8 @@ Depending on the `type` of dynamic collection, `data` is used to specify the opt | [`content_rating`](#content-rating) | Create a collection for each content rating found in the library | ❌ | ✅ | ✅ | ❌ | ✅ | | [`year`](#year) | Create a collection for each year found in the library | ❌ | ✅ | ✅ | ❌ | ❌ | | [`episode_year`](#episode-year) | Create a collection for each episode year found in the library | ❌ | ✅ | ✅ | ❌ | ❌ | -| [`decade`](#decade) | Create a collection for each decade found in the library | ❌ | ✅ | ✅ | ❌ | ❌ | -| [`country`](#country) | Create a collection for each country found in the library | ❌ | ✅ | ❌ | ✅ | ✅ | +| [`decade`](#decade.md) | Create a collection for each decade found in the library | ❌ | ✅ | ✅ | ❌ | ❌ | +| [`country`](#country.md) | Create a collection for each country found in the library | ❌ | ✅ | ❌ | ✅ | ✅ | | [`resolution`](#resolution) | Create a collection for each resolution found in the library | ❌ | ✅ | ✅ | ❌ | ❌ | | [`subtitle_language`](#subtitle-language) | Create a collection for each subtitle language found in the library | ❌ | ✅ | ✅ | ❌ | ❌ | | [`audio_language`](#audio-language) | Create a collection for each audio language found in the library | ❌ | ✅ | ✅ | ❌ | ❌ | @@ -339,7 +339,7 @@ dynamic_collections: Create collections for each of the Trakt lists for the specified users. Use `me` to reference the authenticated user. -* Requires [Trakt Authentication](../config/trakt) to be configured within the Configuration File +* Requires [Trakt Authentication](../config/trakt.md) to be configured within the Configuration File <table class="dualTable colwidths-auto align-default table"> <tr> @@ -390,7 +390,7 @@ dynamic_collections: Create collections for each of the Trakt lists that the authenticated user has liked. -* Requires [Trakt Authentication](../config/trakt) to be configured within the Configuration File +* Requires [Trakt Authentication](../config/trakt.md) to be configured within the Configuration File <table class="dualTable colwidths-auto align-default table"> <tr> @@ -438,7 +438,7 @@ dynamic_collections: Create collections for each of the people found within Trakt lists that the user specifies. -* Requires [Trakt Authentication](../config/trakt) to be configured within the Configuration File +* Requires [Trakt Authentication](../config/trakt.md) to be configured within the Configuration File <table class="dualTable colwidths-auto align-default table"> <tr> diff --git a/docs/metadata/filters.md b/docs/metadata/filters.md index b3122b68..272dd992 100644 --- a/docs/metadata/filters.md +++ b/docs/metadata/filters.md @@ -4,7 +4,7 @@ Filters allow for you to filter every item added to the collection/overlay/playl ## Using Filters -Filters cannot do anything alone they require the use of at least one [Builder](builders) to function. +Filters cannot do anything alone they require the use of at least one [Builder](builders.md) to function. You can have multiple filters in each set but an item must match at least one value from **each** filter to not be ignored. The values for each must match what Plex has including special characters in order to match. @@ -32,11 +32,11 @@ All filter options are listed below. To display items filtered out add `show_fil You can use the `plex_all: true` builder to filter from your entire library. -**Filters can be very slow. Try to build or narrow your items using [Plex Search](builders/plex.md#plex-search) or another [Builder](builders) if possible.** +**Filters can be very slow. Try to build or narrow your items using [Plex Search](../builders/plex.md#plex-search) or another [Builder](builders.md) if possible.** ## Table Annotations -<sup>**1**</sup> Filters using the special `episodes`/`tracks` [filter](#special-filters) with the [default percent](details/definition). +<sup>**1**</sup> Filters using the special `episodes`/`tracks` [filter](#special-filters) with the [default percent](../builders/details/definition.md). <sup>**2**</sup> Also filters out missing movies/shows from being added to Radarr/Sonarr. These Values also cannot use the `count` modifiers. diff --git a/docs/metadata/metadata.md b/docs/metadata/metadata.md index e488ea77..0fae4587 100644 --- a/docs/metadata/metadata.md +++ b/docs/metadata/metadata.md @@ -10,11 +10,11 @@ These are the attributes which can be used within the Metadata File: | Attribute | Description | |:--------------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| [`templates`](templates) | contains definitions of templates that can be leveraged by multiple collections | -| [`external_templates`](templates.md#external-templates) | contains [path types](../config/paths) that point to external templates that can be leveraged by multiple collections | +| [`templates`](templates.md) | contains definitions of templates that can be leveraged by multiple collections | +| [`external_templates`](templates.md#external-templates) | contains [path types](../config/paths.md) that point to external templates that can be leveraged by multiple collections | | [`collections`](#collection-attributes) | contains definitions of collections you wish to add to one or more libraries | -| [`dynamic_collections`](#dynamic-collection-attributes) | contains definitions of [dynamic collections](dynamic) you wish to create | -| [`metadata`](#metadata-attributes) | contains definitions of metadata changes to [movie](metadata/movie), [show](metadata/show), or [music](metadata/music) library's items [movie titles, episode descriptions, etc.] | +| [`dynamic_collections`](#dynamic-collection-attributes) | contains definitions of [dynamic collections](dynamic.md) you wish to create | +| [`metadata`](#metadata-attributes) | contains definitions of metadata changes to [movie](metadata/movie.md), [show](metadata/show.md), or [music](metadata/music.md) library's items [movie titles, episode descriptions, etc.] | * One of `metadata`, `collections` or `dynamic_collections` must be present for the Metadata File to execute. * Example Metadata Files can be found in the [Plex Meta Manager Configs Repository](https://github.com/meisnate12/Plex-Meta-Manager-Configs/tree/master/PMM) @@ -42,9 +42,9 @@ collections: There are multiple types of attributes that can be utilized within a collection: -* [Builders](builders) -* [Settings/Updates](update) -* [Filters](filters) +* [Builders](builders.md) +* [Settings/Updates](update.md) +* [Filters]filters.md) ### Example @@ -88,7 +88,7 @@ dynamic_collections: ## Metadata Attributes -Plex Meta Manager can automatically update items in Plex [Movie](metadata/movie), [Show](metadata/show), and [Music](metadata/music) Libraries based on what's defined within the `metadata` attribute. +Plex Meta Manager can automatically update items in Plex [Movie](metadata/movie.md), [Show](metadata/show.md), and [Music](metadata/music.md) Libraries based on what's defined within the `metadata` attribute. Each metadata requires its own section within the `metadata` attribute. diff --git a/docs/metadata/metadata/movie.md b/docs/metadata/metadata/movie.md index 008c46b0..26685d2e 100644 --- a/docs/metadata/metadata/movie.md +++ b/docs/metadata/metadata/movie.md @@ -256,4 +256,4 @@ You can add `.sync` to any tag attribute to sync all tags vs just appending the | `metadata_language`<sup>1</sup> | `default`, `ar-SA`, `ca-ES`, `cs-CZ`, `da-DK`, `de-DE`, `el-GR`, `en-AU`, `en-CA`, `en-GB`, `en-US`, `es-ES`, `es-MX`, `et-EE`, `fa-IR`, `fi-FI`, `fr-CA`, `fr-FR`, `he-IL`, `hi-IN`, `hu-HU`, `id-ID`, `it-IT`, `ja-JP`, `ko-KR`, `lt-LT`, `lv-LV`, `nb-NO`, `nl-NL`, `pl-PL`, `pt-BR`, `pt-PT`, `ro-RO`, `ru-RU`, `sk-SK`, `sv-SE`, `th-TH`, `tr-TR`, `uk-UA`, `vi-VN`, `zh-CN`, `zh-HK`, `zh-TW` | | `use_original_title`<sup>1</sup> | `default`: Library default<br>`no`: No<br>`yes`: Yes | -1. Must be using the **New Plex Movie Agent**. +1. Must be using the **New Plex Movie Agent**. \ No newline at end of file diff --git a/docs/metadata/metadata/music.md b/docs/metadata/metadata/music.md index 8f02e905..3a2ec5e0 100644 --- a/docs/metadata/metadata/music.md +++ b/docs/metadata/metadata/music.md @@ -77,8 +77,8 @@ The available attributes for editing artists, albums, and tracks are as follows | Attribute | Values | Artists | Album | Tracks | |:------------|:----------------------------------------------------------------------------------------------------------------------|:--------:|:--------:|:--------:| -| `albums` | Attribute used to edit album metadata. The mapping name is the album name. | ✅ | ❌ | ❌ | -| `tracks` | Attribute used to edit track metadata. The mapping name is the track number on that Album, or the title of the Track. | ❌ | ✅ | ❌ | +| `albums` | Attribute used to edit album metadata. The mapping name is the album name. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | +| `tracks` | Attribute used to edit track metadata. The mapping name is the track number on that Album, or the title of the Track. | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | * If you know of another Title your item might exist under, but you want it titled differently you can use `alt_title` to specify another title to look under and then be changed to the mapping name. For Example the Artist `Kesha` used to be stylized as `Ke$ha`, and might still be found that way in Metadata results. ```yaml @@ -92,17 +92,17 @@ The available attributes for editing artists, albums, and tracks are as follows | Attribute | Values | Artists | Album | Tracks | |:-----------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:--------:|:--------:|:--------:| -| `title` | Text to change Title. | ❌ | ❌ | ✅ | -| `sort_title` | Text to change Sort Title. | ✅ | ✅ | ✅ | -| `user_rating` | Number to change User Rating. | ✅ | ✅ | ✅ | -| `critic_rating` | Number to change Critic Rating. | ❌ | ✅ | ❌ | -| `originally_available` | Date to change Originally Available.<br>**Format:** YYYY-MM-DD | ❌ | ✅ | ❌ | -| `record_label` | Text to change Record Label. | ❌ | ✅ | ❌ | -| `summary` | Text to change Summary. | ✅ | ✅ | ✅ | -| `track` | Text to change Track. | ❌ | ❌ | ✅ | -| `disc` | Text to change Disc. | ❌ | ❌ | ✅ | -| `original_artist` | Text to change Original Artist. | ❌ | ❌ | ✅ | -| `run_definition` | Used to specify if this definition runs.<br>Multiple can be used for one definition as a list or comma separated string. One `false` or unmatched library type will cause it to fail.<br>**Values:** `movie`, `show`, `artist`, `true`, `false` | ✅ | ❌ | ❌ | +| `title` | Text to change Title. | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | +| `sort_title` | Text to change Sort Title. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | +| `user_rating` | Number to change User Rating. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | +| `critic_rating` | Number to change Critic Rating. | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | +| `originally_available` | Date to change Originally Available.<br>**Format:** YYYY-MM-DD | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | +| `record_label` | Text to change Record Label. | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | +| `summary` | Text to change Summary. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | +| `track` | Text to change Track. | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | +| `disc` | Text to change Disc. | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | +| `original_artist` | Text to change Original Artist. | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | +| `run_definition` | Used to specify if this definition runs.<br>Multiple can be used for one definition as a list or comma separated string. One `false` or unmatched library type will cause it to fail.<br>**Values:** `movie`, `show`, `artist`, `true`, `false` | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | ### Tag Attributes @@ -112,22 +112,22 @@ You can add `.sync` to any tag attribute to sync all tags vs just appending the | Attribute | Values | Artists | Album | Tracks | |:-----------------|:---------------------------------------------------------|:--------:|:--------:|:--------:| -| `genre` | List or comma-separated text of each Genre Tag. | ✅ | ✅ | ❌ | -| `collection` | List or comma-separated text of each Collection Tag. | ✅ | ✅ | ✅ | -| `label` | List or comma-separated text of each Label Tag. | ✅ | ✅ | ✅ | -| `style` | List or comma-separated text of each Style Tag. | ✅ | ✅ | ❌ | -| `mood` | List or comma-separated text of each Mood Tag. | ✅ | ✅ | ✅ | -| `country` | List or comma-separated text of each Country Tag. | ✅ | ❌ | ❌ | -| `similar_artist` | List or comma-separated text of each Similar Artist Tag. | ✅ | ❌ | ❌ | +| `genre` | List or comma-separated text of each Genre Tag. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | +| `collection` | List or comma-separated text of each Collection Tag. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | +| `label` | List or comma-separated text of each Label Tag. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | +| `style` | List or comma-separated text of each Style Tag. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | +| `mood` | List or comma-separated text of each Mood Tag. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | +| `country` | List or comma-separated text of each Country Tag. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | +| `similar_artist` | List or comma-separated text of each Similar Artist Tag. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | ### Image Attributes | Attribute | Values | Artists | Album | Tracks | |:------------------|:-------------------------------------------------|:-------:|:-------:|:--------:| -| `url_poster` | URL of image publicly available on the internet. | ✅ | ✅ | ❌ | -| `file_poster` | Path to image in the file system. | ✅ | ✅ | ❌ | -| `url_background` | URL of image publicly available on the internet. | ✅ | ✅ | ❌ | -| `file_background` | Path to image in the file system. | ✅ | ✅ | ❌ | +| `url_poster` | URL of image publicly available on the internet. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | +| `file_poster` | Path to image in the file system. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | +| `url_background` | URL of image publicly available on the internet. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | +| `file_background` | Path to image in the file system. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | ### Advanced Attributes @@ -136,4 +136,3 @@ All these attributes only work with Artists. | Attribute | Values | |:----------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `album_sorting` | <table class="clearTable"><tbody><tr><td>`default`</td><td>Library default</td></tr><tr><td>`oldest`</td><td>Oldest first</td></tr><tr><td>`newest`</td><td>Newest first</td></tr><tr><td>`name`</td><td>Alphabetical</td></tr></tbody></table> | - diff --git a/docs/metadata/metadata/show.md b/docs/metadata/metadata/show.md index af3e0e91..fca77795 100644 --- a/docs/metadata/metadata/show.md +++ b/docs/metadata/metadata/show.md @@ -145,30 +145,30 @@ The available attributes for editing shows, seasons, and episodes are as follows | Attribute | Description | Shows | Seasons | Episodes | |:------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:--------:|:--------:|:--------:| -| `f1_season` | F1 Season Year to make the Show represent a Season of F1 Races. See [Formula 1 Metadata Guide](../../home/guides/formula) for more information. | ✅ | ❌ | ❌ | -| `round_prefix` | Used only with `f1_season` to add the round as a prefix to the Season (Race) Titles i.e. `Australian Grand Prix` --> `01 - Australian Grand Prix`. | ✅ | ❌ | ❌ | -| `shorten_gp` | Used only with `f1_season` to shorten `Grand Prix` to `GP` in the Season (Race) Titles i.e. `Australian Grand Prix` --> `Australian GP`. | ✅ | ❌ | ❌ | -| `seasons` | Attribute used to edit season metadata. The mapping name is the season number (use 0 for specials) or the season name. | ✅ | ❌ | ❌ | -| `episodes` | Attribute used to edit episode metadata. The mapping name is the episode number in that season, the title of the episode, or the Originally Available date in the format `MM/DD`. | ❌ | ✅ | ❌ | -| `run_definition` | Used to specify if this definition runs.<br>Multiple can be used for one definition as a list or comma separated string. One `false` or unmatched library type will cause it to fail.<br>**Values:** `movie`, `show`, `artist`, `true`, `false` | ✅ | ❌ | ❌ | -| `update_seasons` | Used to specify if this definition's seasons metadata will update.<br>Multiple can be used for one definition as a list or comma separated string. One `false` will cause it to fail.<br>**Values:** `true`, `false` | ✅ | ❌ | ❌ | -| `update_episodes` | Used to specify if this definition's episodes metadata will update.<br>Multiple can be used for one definition as a list or comma separated string. One `false` will cause it to fail.<br>**Values:** `true`, `false` | ✅ | ❌ | ❌ | +| `f1_season` | F1 Season Year to make the Show represent a Season of F1 Races. See [Formula 1 Metadata Guide](../../pmm/install/guides/formula.md) for more information. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | +| `round_prefix` | Used only with `f1_season` to add the round as a prefix to the Season (Race) Titles i.e. `Australian Grand Prix` --> `01 - Australian Grand Prix`. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | +| `shorten_gp` | Used only with `f1_season` to shorten `Grand Prix` to `GP` in the Season (Race) Titles i.e. `Australian Grand Prix` --> `Australian GP`. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | +| `seasons` | Attribute used to edit season metadata. The mapping name is the season number (use 0 for specials) or the season name. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | +| `episodes` | Attribute used to edit episode metadata. The mapping name is the episode number in that season, the title of the episode, or the Originally Available date in the format `MM/DD`. | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | +| `run_definition` | Used to specify if this definition runs.<br>Multiple can be used for one definition as a list or comma separated string. One `false` or unmatched library type will cause it to fail.<br>**Values:** `movie`, `show`, `artist`, `true`, `false` | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | +| `update_seasons` | Used to specify if this definition's seasons metadata will update.<br>Multiple can be used for one definition as a list or comma separated string. One `false` will cause it to fail.<br>**Values:** `true`, `false` | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | +| `update_episodes` | Used to specify if this definition's episodes metadata will update.<br>Multiple can be used for one definition as a list or comma separated string. One `false` will cause it to fail.<br>**Values:** `true`, `false` | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | ### General Attributes | Attribute | Allowed Values | Shows | Seasons | Episodes | |:-----------------------|:---------------------------------------------------------------|:-------:|:--------:|:--------:| -| `title` | Text to change Title. | ✅ | ✅ | ✅ | -| `sort_title` | Text to change Sort Title. | ✅ | ❌ | ✅ | -| `original_title` | Text to change Original Title. | ✅ | ❌ | ❌ | -| `originally_available` | Date to change Originally Available.<br>**Format:** YYYY-MM-DD | ✅ | ❌ | ✅ | -| `content_rating` | Text to change Content Rating. | ✅ | ❌ | ✅ | -| `user_rating` | Number to change User Rating. | ✅ | ✅ | ✅ | -| `audience_rating` | Number to change Audience Rating. | ✅ | ❌ | ✅ | -| `critic_rating` | Number to change Critic Rating. | ✅ | ❌ | ✅ | -| `studio` | Text to change Studio. | ✅ | ❌ | ❌ | -| `tagline` | Text to change Tagline. | ✅ | ❌ | ❌ | -| `summary` | Text to change Summary. | ✅ | ✅ | ✅ | +| `title` | Text to change Title. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | +| `sort_title` | Text to change Sort Title. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | +| `original_title` | Text to change Original Title. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | +| `originally_available` | Date to change Originally Available.<br>**Format:** YYYY-MM-DD | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | +| `content_rating` | Text to change Content Rating. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | +| `user_rating` | Number to change User Rating. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | +| `audience_rating` | Number to change Audience Rating. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | +| `critic_rating` | Number to change Critic Rating. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | +| `studio` | Text to change Studio. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | +| `tagline` | Text to change Tagline. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | +| `summary` | Text to change Summary. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | ### Tag Attributes @@ -178,20 +178,20 @@ You can add `.sync` to any tag attribute to sync all tags vs just appending the | Attribute | Allowed Values | Shows | Seasons | Episodes | |:-------------|:-----------------------------------------------------|:--------:|:--------:|:--------:| -| `director` | List or comma-separated text of each Director Tag. | ❌ | ❌ | ✅ | -| `genre` | List or comma-separated text of each Genre Tag. | ✅ | ❌ | ❌ | -| `writer` | List or comma-separated text of each Writer Tag. | ❌ | ❌ | ✅ | -| `collection` | List or comma-separated text of each Collection Tag. | ✅ | ✅ | ✅ | -| `label` | List or comma-separated text of each Label Tag. | ✅ | ✅ | ✅ | +| `director` | List or comma-separated text of each Director Tag. | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | +| `genre` | List or comma-separated text of each Genre Tag. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | +| `writer` | List or comma-separated text of each Writer Tag. | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | +| `collection` | List or comma-separated text of each Collection Tag. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | +| `label` | List or comma-separated text of each Label Tag. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | ### Image Attributes | Attribute | Allowed Values | Shows | Seasons | Episodes | |:------------------|:-------------------------------------------------|:-------:|:-------:|:--------:| -| `url_poster` | URL of image publicly available on the internet. | ✅ | ✅ | ✅ | -| `file_poster` | Path to image in the file system. | ✅ | ✅ | ✅ | -| `url_background` | URL of image publicly available on the internet. | ✅ | ✅ | ✅ | -| `file_background` | Path to image in the file system. | ✅ | ✅ | ✅ | +| `url_poster` | URL of image publicly available on the internet. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | +| `file_poster` | Path to image in the file system. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | +| `url_background` | URL of image publicly available on the internet. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | +| `file_background` | Path to image in the file system. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | ### Advanced Attributes @@ -207,4 +207,4 @@ All these attributes only work with Shows. | `metadata_language`<sup>1</sup> | `default`, `ar-SA`, `ca-ES`, `cs-CZ`, `da-DK`, `de-DE`, `el-GR`, `en-AU`, `en-CA`, `en-GB`, `en-US`, `es-ES`, `es-MX`, `et-EE`, `fa-IR`, `fi-FI`, `fr-CA`, `fr-FR`, `he-IL`, `hi-IN`, `hu-HU`, `id-ID`, `it-IT`, `ja-JP`, `ko-KR`, `lt-LT`, `lv-LV`, `nb-NO`, `nl-NL`, `pl-PL`, `pt-BR`, `pt-PT`, `ro-RO`, `ru-RU`, `sk-SK`, `sv-SE`, `th-TH`, `tr-TR`, `uk-UA`, `vi-VN`, `zh-CN`, `zh-HK`, `zh-TW` | | `use_original_title`<sup>1</sup> | <table class="clearTable"><tbody><tr><td>`default`</td><td>Library default</td></tr><tr><td>`no`</td><td>No</td></tr><tr><td>`yes`</td><td>Yes</td></tr></tbody></table> | -1. Must be using the **New Plex TV Agent** +1. Must be using the **New Plex TV Agent** \ No newline at end of file diff --git a/docs/metadata/overlay.md b/docs/metadata/overlay.md index 46cee7d2..30c96070 100644 --- a/docs/metadata/overlay.md +++ b/docs/metadata/overlay.md @@ -16,8 +16,8 @@ These are the attributes which can be used within the Overlay File: | Attribute | Description | |:--------------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------| -| [`templates`](templates) | contains definitions of templates that can be leveraged by multiple overlays | -| [`external_templates`](templates.md#external-templates) | contains [path types](../config/paths) that point to external templates that can be leveraged by multiple overlays | +| [`templates`](templates.md) | contains definitions of templates that can be leveraged by multiple overlays | +| [`external_templates`](templates.md#external-templates) | contains [path types](../config/paths.md) that point to external templates that can be leveraged by multiple overlays | | [`queues`](#overlay-queues) | contains the positional attributes of queues | | [`overlays`](#overlays-attributes) | contains definitions of overlays you wish to add | @@ -40,9 +40,9 @@ overlays: There are multiple types of attributes that can be utilized within an overlay: -* [Builders](builders) -* [Settings/Updates](update) -* [Filters](filters) +* [Builders](builders.md) +* [Settings/Updates](update.md) +* [Filters]filters.md) ## Overlay @@ -218,7 +218,7 @@ There are multiple Special Text Variables that can be used when formatting the t | `<<bitrate>>`: Bitrate of the first media file for an item.<br>`<<bitrateH>>`: Bitrate of the media file with the highest bitrate<br>`<<bitrateL>>`: Bitrate of the media file with the lowest bitrate | ✅ | ❌ | ❌ | ✅ | | `<<originally_available>>`: Original Available Date of the Item<br>`<<originally_available[FORMAT]>>`: Original Available Date of the Item in the given format. [Format Options](https://strftime.org/) | ✅ | ✅ | ❌ | ✅ | -Note: You can use the `mass_audience_rating_update` or `mass_critic_rating_update` [Library Operation](../config/operations) to update your plex ratings to various services like `tmdb`, `imdb`, `mdb`, `metacritic`, `letterboxd` and many more. +Note: You can use the `mass_audience_rating_update` or `mass_critic_rating_update` [Library Operation](../config/operations.md) to update your plex ratings to various services like `tmdb`, `imdb`, `mdb`, `metacritic`, `letterboxd` and many more. ##### Example diff --git a/docs/metadata/playlist.md b/docs/metadata/playlist.md index 736d60e1..4fd07a11 100644 --- a/docs/metadata/playlist.md +++ b/docs/metadata/playlist.md @@ -4,7 +4,7 @@ Playlist files are used to create and maintain playlists on the Plex Server. If utilized to their fullest, these files can be used to maintain the entire server's collections and playlists, and can be used as a backup for these in the event of a restore requirement. -Playlists are defined in one or more Playlist files that are mapped in the [Playlist Files Attribute](../config/playlists) within the Configuration File. +Playlists are defined in one or more Playlist files that are mapped in the [Playlist Files Attribute](../config/playlists.md) within the Configuration File. You can use the [`playlist_report` setting](../config/settings.md#playlist-report) to get a list of your playlists printed out in your log. @@ -12,8 +12,8 @@ These are the attributes which can be utilized within the Playlist File: | Attribute | Description | |:--------------------------------------------------------|:--------------------------------------------------------------------------------------------------------------------| -| [`templates`](templates) | contains definitions of templates that can be leveraged by multiple playlists | -| [`external_templates`](templates.md#external-templates) | contains [path types](../config/paths) that point to external templates that can be leveraged by multiple playlists | +| [`templates`](templates.md) | contains definitions of templates that can be leveraged by multiple playlists | +| [`external_templates`](templates.md#external-templates) | contains [path types](../config/paths.md) that point to external templates that can be leveraged by multiple playlists | | [`playlists`](#playlist-attributes) | contains definitions of playlists you wish to add to the server | * `playlists` is required in order to run the Playlist File. @@ -38,15 +38,15 @@ playlists: There are multiple types of attributes that can be utilized within a playlist: -* [Builders](builders) -* [Settings/Updates](update) -* [Filters](filters) +* [Builders](builders.md) +* [Settings/Updates](update.md) +* [Filters]filters.md) ### Special Playlist Attributes | 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](../config/configuration). | ✅ | +| `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/configuration.md. | ✅ | | `sync_to_users` | Determine which Users have the playlist synced.<br>This will override the global [`playlist_sync_to_users` Setting](../config/settings.md#playlist-sync-to-users).<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. | ❌ | | `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#playlist-exclude-users).<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. | ❌ | | `delete_playlist` | Will delete this playlist for the users defined by sync_to_users.<br>**Options:** `true` or `false` | ❌ | diff --git a/docs/metadata/templates.md b/docs/metadata/templates.md index 57b2715c..7011fe1b 100644 --- a/docs/metadata/templates.md +++ b/docs/metadata/templates.md @@ -16,7 +16,7 @@ collections: collection_order: release ``` -Note: The `sort_title` in these examples is wrapped in quotes because it contains a character [`!`] which has [syntactic meaning in YAML files](../home/guides/yaml.md#string-literals). This "quoting special characters" is a general YAML requirement, not something specific to `sort_title`. +Note: The `sort_title` in these examples is wrapped in quotes because it contains a character [`!`] which has [syntactic meaning in YAML files](../pmm/install/guides/yaml.md#string-literals). This "quoting special characters" is a general YAML requirement, not something specific to `sort_title`. Then you add another: @@ -84,7 +84,7 @@ collections: Note that we provide the template name `Actor` and the value to insert in the place of `<<person>>`. The `<<collection_name>>` is a template variable that is always available and doesn't have to be called out like `<<person>>`. -Inside a template, you can use all the Builders, Details, and [Filters](filters) attributes that you can give collections/playlists [except `template`; templates cannot be nested]. +Inside a template, you can use all the Builders, Details, and [Filters]filters.md) attributes that you can give collections/playlists [except `template`; templates cannot be nested]. The names of template variables that you define are arbitrary. In the example above, `<<person>>` could have been `<<tvdb_person_id>>` or `<<bing>>` or anything else. The only thing that matters is that in the template definition you surround them with `<< >>` and in the collection definition you spell it correctly. @@ -238,7 +238,7 @@ Check out the example files in the [Plex Meta Manager Configs Repository](https: ## External Templates -To load external templates located in another file you can use the `external_templates` attribute by specifying the path type and path of the files that will be executed. See [Path Types](../config/paths) for how to define them. +To load external templates located in another file you can use the `external_templates` attribute by specifying the path type and path of the files that will be executed. See [Path Types](../config/paths.md) for how to define them. ```yaml external_templates: diff --git a/docs/metadata/update.md b/docs/metadata/update.md index ef99357a..fe1cb3d3 100644 --- a/docs/metadata/update.md +++ b/docs/metadata/update.md @@ -2,10 +2,10 @@ The settings will change how Plex Meta Manager functions with the Definition while updates change the actual metadata stored in plex. -| Name | Description | -|:---------------------------------------------------------|:---------------------------------------------------------------------------------------| -| [Definition Settings](details/definition) | These are settings to change of Plex Meta Manager deals with the definition. | -| [Schedule Settings](details/schedule) | These are settings to change how the definition is scheduled to run. | -| [Arr Definition Settings](details/arr) | These are settings to change how Radarr/Sonarr is handled in this specific definition. | -| [Collection/Playlist Metadata Updates](details/metadata) | These are settings to change an aspect of a collection/playlist's metadata. | -| [Item Metadata Updates](details/item_metadata) | These are settings to change an aspect of metadata for all items in the collection. | \ No newline at end of file +| Name | Description | +|:------------------------------------------------------------|:---------------------------------------------------------------------------------------| +| [Definition Settings](../builders/details/definition.md) | These are settings to change of Plex Meta Manager deals with the definition. | +| [Schedule Settings](../builders/details/schedule.md) | These are settings to change how the definition is scheduled to run. | +| [Arr Definition Settings](../builders/details/arr.md) | These are settings to change how Radarr/Sonarr is handled in this specific definition. | +| [Collection/Playlist Metadata Updates](../builders/details/metadata.md) | These are settings to change an aspect of a collection/playlist's metadata. | +| [Item Metadata Updates](../builders/details/item_metadata.md) | These are settings to change an aspect of metadata for all items in the collection. | \ No newline at end of file diff --git a/docs/mkdocs.yml b/docs/mkdocs.yml new file mode 100644 index 00000000..d18be47e --- /dev/null +++ b/docs/mkdocs.yml @@ -0,0 +1,437 @@ +site_name: Plex Meta Manager Wiki +site_author: meisnate12 +site_description: Plex Meta Manager is an open-source python project allowing you to unlock the potential of your media server. + +repo_name: docs +repo_url: https://github.com/meisnate12/MK-Docs + +theme: + name: material + logo: assets/icon.png + favicon: assets/favicon.png + custom_dir: docs/overrides + features: + - content.code.annotate + - content.tabs.link + - content.code.copy + - header.autohide + - navigation.footer + - navigation.tabs + - navigation.tabs.sticky + - navigation.sections + - navigation.top + - navigation.tracking + - navigation.prune + - navigation.expand + - toc.follow + - search.suggest + - search.highlight + - search.share + language: en + palette: + # Palette toggle for dark mode + - media: "(prefers-color-scheme: dark)" + scheme: slate + primary: custom + accent: deep purple + toggle: + icon: material/weather-night + name: Switch to light mode + + # Palette toggle for light mode + - media: "(prefers-color-scheme: light)" + scheme: default + primary: custom + accent: deep purple + toggle: + icon: material/weather-sunny + name: Switch to dark mode + +plugins: + - search: + lang: en + - include-markdown +extra: + social: + - icon: fontawesome/solid/heart + class: md-social__link heart + link: 'https://github.com/sponsors/meisnate12' + name: Donate + - icon: fontawesome/brands/discord + class: md-social__link + link: 'https://discord.gg/NfH6mGFuAB' + name: Discord + - icon: fontawesome/brands/github + class: md-social__link + link: 'https://github.com/meisnate12/Plex-Meta-Manager' + name: GitHub +copyright: Copyright © 2023 meisnate12 +markdown_extensions: + - pymdownx.tasklist: + custom_checkbox: true + - pymdownx.highlight: + anchor_linenums: true + line_spans: __span + pygments_lang_class: true + - pymdownx.inlinehilite + - pymdownx.snippets + - pymdownx.details + - pymdownx.superfences + - pymdownx.tabbed: + alternate_style: true + - admonition + - attr_list + - md_in_html + - pymdownx.tilde + - tables + - toc: + permalink: true + - pymdownx.emoji: + emoji_generator: !!python/name:material.extensions.emoji.to_svg + emoji_index: !!python/name:material.extensions.emoji.twemoji +extra_css: + - stylesheets/extra.css + - stylesheets/termynal.css + - stylesheets/custom.css + +extra_javascript: + - stylesheets/termynal.js + - stylesheets/custom.js + - stylesheets/branch.js + +nav: + - PLEX META MANAGER: + - Welcome: home.md + - INSTALLATION: + - Installing PMM: pmm/install/installation.md + - Installation Guides: + - Local Walkthrough (Win/Mac/Linux): pmm/install/guides/local.md + - Docker Walkhrough: pmm/install/guides/docker.md + - unRAID Walkthrough: pmm/install/guides/unraid.md + - Kubernetes Walkthrough: pmm/install/guides/kubernetes.md + - QNAP Walkthrough: pmm/install/guides/qnap.md + - Synology Walkthrough: pmm/install/guides/synology.md + - POST-INSTALL: + - Run Commands & Env Variables: pmm/essentials/environmental.md + - Knowledgebase / FAQ: pmm/essentials/kb.md + - MISCELLANEOUS: + - Plex Ratings Explained: pmm/essentials/ratings.md + - Scheduling Guide: pmm/install/guides/scheduling.md + - Image Asset Directory Guide: pmm/install/guides/assets.md + - Log Files: pmm/essentials/logs.md + - YAML File Guide: pmm/essentials/yaml.md + - COMPANION SCRIPTS: + - Overview: pmm/essentials/scripts.md + - Plex Image Cleanup: pmm/essentials/scripts/image-cleanup.md + - PMM Overlay Reset: pmm/essentials/scripts/overlay-reset.md + - USEFUL LINKS: + - Feature Requests: https://features.metamanager.wiki/ + - Bugs & Issues: https://github.com/meisnate12/Plex-Meta-Manager/issues + - User Configs Repository: https://github.com/meisnate12/Plex-Meta-Manager-Configs + - Discord Server: https://discord.gg/NfH6mGFuAB + - Donate/Sponsor PMM: https://github.com/sponsors/meisnate12 + - Acknowledgements: pmm/essentials/acknowledgements.md + - CONFIGURATION FILE: + - Overview: config/configuration.md + - "STRUCTURE": + - Library Attributes: config/libraries.md + - "Metadata Files": metadata/metadata.md + - Overlay Files: metadata/overlay.md + - Playlist Files: metadata/playlist.md + - Path Types: config/paths.md + - Library Operations: config/operations.md + - Settings: config/settings.md + - Webhooks: config/webhooks.md + - "SERVICES": + - Plex: config/plex.md + - Tautulli: config/tautulli.md + - Radarr: config/radarr.md + - Sonarr: config/sonarr.md + - "THIRD-PARTY CONNECTORS": + - Notifiarr: config/notifiarr.md + - TMDb: config/tmdb.md + - Trakt: config/trakt.md + - MdbList: config/mdblist.md + - OMDb: config/omdb.md + - AniDB: config/anidb.md + - MyAnimeList: config/myanimelist.md + - DEFAULT FILES: + - Defaults Usage Guide: defaults/guide.md + - Defaults Files: defaults/files.md + - COLLECTIONS DEFAULTS: + - Click to Expand: + - Collections: defaults/collections.md + - Shared Variables: defaults/collection_variables.md + - Separators: defaults/separators.md + - Award: + - Separator: defaults/award/separator.md + - Academy Awards (Oscars): defaults/award/oscars.md + - British Academy of Film Awards: defaults/award/bafta.md + - Cannes Film Festival Awards: defaults/award/cannes.md + - Critics Choice Awards: defaults/award/choice.md + - Emmy Awards: defaults/award/emmy.md + - Golden Globe Awards: defaults/award/golden.md + - Independent Spirit Awards: defaults/award/spirit.md + - Sundance Film Festival Awards: defaults/award/sundance.md + - Other Awards: defaults/award/other.md + - Chart: + - Separator: defaults/chart/separator.md + - Basic Charts: defaults/chart/basic.md + - AniList Charts: defaults/chart/anilist.md + - Flixpatrol Charts: defaults/chart/flixpatrol.md + - IMDb Charts: defaults/chart/imdb.md + - MyAnimeList Charts: defaults/chart/myanimelist.md + - Tautulli Charts: defaults/chart/tautulli.md + - TMDb Charts: defaults/chart/tmdb.md + - Trakt Charts: defaults/chart/trakt.md + - Other Charts: defaults/chart/other.md + - Content: + - Genres: defaults/both/genre.md + - Franchises (Movie): defaults/movie/franchise.md + - Franchises (Show): defaults/show/franchise.md + - Universes: defaults/both/universe.md + - Based On...: defaults/both/based.md + - Content Rating: + - US Content Ratings (Movie): defaults/movie/content_rating_us.md + - US Content Ratings (Show): defaults/show/content_rating_us.md + - UK Content Ratings: defaults/both/content_rating_uk.md + - MyAnimeList Content Ratings: defaults/both/content_rating_mal.md + - Common Sense Media Content Ratings: defaults/both/content_rating_cs.md + - Location: + - Countries (Movie): defaults/movie/country.md + - Countries (Show): defaults/show/country.md + - Regions (Movie): defaults/movie/region.md + - Regions (Show): defaults/show/region.md + - Continents (Movie): defaults/movie/continent.md + - Continents (Show): defaults/show/continent.md + - Media: + - Aspect Rations (Show): defaults/both/aspect.md + - Resolutions: defaults/both/resolution.md + - Audio Languages: defaults/both/audio_language.md + - Subtitle Languages: defaults/both/subtitle_language.md + - Production: + - Networks: defaults/show/network.md + - Streaming: defaults/both/streaming.md + - Studios: defaults/both/studio.md + - People: + - Actors: defaults/both/actor.md + - Directors: defaults/movie/director.md + - Producers: defaults/movie/producer.md + - Writers: defaults/movie/writer.md + - Time: + - Seasonal: defaults/movie/seasonal.md + - Years: defaults/both/year.md + - Decades (Movie): defaults/movie/decade.md + - Decades (Show): defaults/show/decade.md + - Utility: + - Collectionless: defaults/both/collectionless.md + - OVERLAY DEFAULTS: + - Click to Expand: + - Overlays: defaults/overlays.md + - Shared Variables: defaults/overlay_variables.md + - Chart: + - FlixPatrol Top: defaults/overlays/flixpatrol.md + - Ribbon: defaults/overlays/ribbon.md + - Content: + - Episode Info: defaults/overlays/episode_info.md + - MediaStinger: defaults/overlays/mediastinger.md + - Ratings: defaults/overlays/ratings.md + - Status: defaults/overlays/status.md + - Content Rating: + - US Content Ratings (Movie): defaults/overlays/content_rating_us_movie.md + - US Content Ratings (Show): defaults/overlays/content_rating_us_show.md + - UK Content Ratings: defaults/overlays/content_rating_uk.md + - Common Sense Age Ratings: defaults/overlays/commonsense.md + - Media: + - Aspect Ratio: defaults/overlays/aspect.md + - Audio Codec: defaults/overlays/audio_codec.md + - Audio/Subtitle Language Count: defaults/overlays/language_count.md + - Audio/Subtitle Language Flags: defaults/overlays/languages.md + - Resolution/Edition: defaults/overlays/resolution.md + - Runtimes: defaults/overlays/runtimes.md + - Versions: defaults/overlays/versions.md + - Video Format: defaults/overlays/video_format.md + - Production: + - Networks: defaults/overlays/network.md + - Streaming: defaults/overlays/streaming.md + - Studios: defaults/overlays/studio.md + - Utility: + - Direct Play Only: defaults/overlays/direct_play.md + - PLAYLIST DEFAULTS: + - Playlists: defaults/playlist.md + - CUSTOM FILES: + - Templates: builders/templates.md + - Filters: builders/filters.md + - Builders Overview: metadata/builders.md + - "PLEX & SMART BUILDERS": + - Plex Builders: + - Overview: builders/plex.md + - Plex All: builders/plex/#plex-all + - Plex Watchlist: builders/plex/#plex-watchlist + - Plex Pilots: builders/plex/#plex-pilots + - Plex Collectionless: builders/plex/#plex-collectionless + - Plex Search: builders/plex/#plex-search + - "Smart Builders": + - Overview: builders/smart.md + - Smart Label: builders/smart/#smart-label + - Smart Filter: builders/smart/#smart-filter + - "THIRD-PARTY BUILDERS": + - TMDb Builders: + - Overview: builders/tmdb.md + - TMDb Collection: builders/tmdb/#tmdb-collection + - TMDb List: builders/tmdb/#tmdb-list + - TMDb Actor: builders/tmdb/#tmdb-actor + - TMDb Crew: builders/tmdb/#tmdb-crew + - TMDb Director: builders/tmdb/#tmdb-director + - TMDb Producer: builders/tmdb/#tmdb-producer + - TMDb Writer: builders/tmdb/#tmdb-writer + - TMDb Movie: builders/tmdb/#tmdb-movie + - TMDb Show: builders/tmdb/#tmdb-show + - TMDb Company: builders/tmdb/#tmdb-company + - TMDb Network: builders/tmdb/#tmdb-network + - TMDb Keyword: builders/tmdb/#tmdb-keyword + - TMDb Popular: builders/tmdb/#tmdb-popular + - TMDb Now Playing: builders/tmdb/#tmdb-now-playing + - TMDb Top Rated: builders/tmdb/#tmdb-top-rated + - TMDb Upcoming: builders/tmdb/#tmdb-upcoming + - TMDb Airing Today: builders/tmdb/#tmdb-airing-today + - TMDb On the Air: builders/tmdb/#tmdb-on-the-air + - TMDb Trending Daily: builders/tmdb/#tmdb-trending-daily + - TMDb Trending Weekly: builders/tmdb/#tmdb-trending-weekly + - TMDb Discover: builders/tmdb/#tmdb-discover + - TVDb Builders: + - Overview: builders/tvdb.md + - TVDb List: builders/tvdb/#tvdb-list + - TVDb Movie: builders/tvdb/#tvdb-movie + - TVDb Show: builders/tvdb/#tvdb-show + - IMDb Builders: + - Overview: builders/imdb.md + - IMDb ID: builders/imdb/#imdb-id + - IMDb Chart: builders/imdb/#imdb-chart + - IMDb List: builders/imdb/#imdb-list + - IMDb Watchlist: builders/imdb/#imdb-watchlist + - Trakt Builders: + - Overview: builders/trakt.md + - Trakt List: builders/trakt/#trakt-list + - Trakt Chart: builders/trakt/#trakt-chart + - Trakt Userlist: builders/trakt/#trakt-userlist + - Trakt Recommendations: builders/trakt/#trakt-recommendations + - Trakt Box Office: builders/trakt/#trakt-box-office + - Tautulli Builders: + - Overview: builders/tautulli.md + - Tautulli Popular/Watched: builders/tautulli/#tautulli-popular-watched + - Radarr Builders: + - Overview: builders/radarr.md + - Radarr All: builders/radarr/#radarr-all + - Radarr Taglist: builders/radarr/#radarr-taglist + - Sonarr Builders: + - Overview: builders/sonarr.md + - Sonarr All: builders/sonarr/#sonarr-all + - Sonarr Taglist: builders/sonarr/#sonarr-taglist + - MdbList Builders: + - Overview: builders/mdblist.md + - MdbList List: builders/mdblist/#mdblist-list + - Letterboxd Builders: + - Overview: builders/letterboxd.md + - Letterboxd List: builders/letterboxd/#letterboxd-list + - ICheckMovies Builders: + - Overview: builders/icheckmovies.md + - ICheckMovies List: builders/icheckmovies/#icheckmovies-list + - FlixPatrol Builders: + - Overview: builders/flixpatrol.md + - FlixPatrol Top Platform: builders/flixpatrol/#flixpatrol-top + - FlixPatrol Popular: builders/flixpatrol/#flixpatrol-popular + - FlixPatrol Demographics: builders/flixpatrol/#flixpatrol-demographics + - FlixPatrol URL: builders/flixpatrol/#flixpatrol-url + - Reciperr Builders: + - Overview: builders/reciperr.md + - Reciperr List: builders/reciperr/#reciperr-list + - StevenLu Builders: + - Overview: builders/stevenlu.md + - StevenLu List: builders/stevenlu/#stevenlu-s-popular-movies-list + - AniDB Builders: + - Overview: builders/anidb.md + - AniDB ID: builders/anidb/#anidb-id + - AniDB Relation: builders/anidb/#anidb-relation + - AniDB Popular: builders/anidb/#anidb-popular + - AniDB Tag: builders/anidb/#anidb-tag + - AniList Builders: + - Overview: builders/anilist.md + - AniList Top Rated: builders/anilist/#anilist-top-rated + - AniList Anilist Popular: builders/anilist/#anilist-anilist-popular + - AniList Trending: builders/anilist/#anilist-trending + - AniList Relations: builders/anilist/#anilist-relations + - AniList Studio: builders/anilist/#anilist-studio + - AniList ID: builders/anilist/#anilist-id + - AniList UserList: builders/anilist/#anilist-userlist + - AniList Search: builders/anilist/#anilist-search + - MyAnimeList Builders: + - Overview: builders/myanimelist.md + - MyAnimeList Search: builders/myanimelist/#myanimelist-search + - MyAnimeList Top All: builders/myanimelist/#myanimelist-top-all + - MyAnimeList Top Airing: builders/myanimelist/#myanimelist-top-airing + - MyAnimeList Top Upcoming: builders/myanimelist/#myanimelist-top-upcoming + - MyAnimeList Top TV Series: builders/myanimelist/#myanimelist-top-tv-series + - MyAnimeList Top Movies: builders/myanimelist/#myanimelist-top-movies + - MyAnimeList Top OVA Series: builders/myanimelist/#myanimelist-top-ova-series + - MyAnimeList Top Specials: builders/myanimelist/#myanimelist-top-specials + - MyAnimeList Most Popular: builders/myanimelist/#myanimelist-most-popular + - MyAnimeList Most Favorited: builders/myanimelist/#myanimelist-most-favorited + - MyAnimeList Suggested: builders/myanimelist/#myanimelist-suggested + - MyAnimeList ID: builders/myanimelist/#myanimelist-id + - MyAnimeList UserList: builders/myanimelist/#myanimelist-userlist + - MyAnimeList Seasonal: builders/myanimelist/#myanimelist-seasonal + - "DYNAMIC COLLECTIONS": + - Overview: builders/dynamic.md + - Dynamic Collection Builders: + - TMDb Dynamic Collections: + - TMDb Collection: builders/dynamic/#tmdb-collection + - TMDb Popular People: builders/dynamic/#tmdb-popular-people + - Original Language: builders/dynamic/#original-language + - Origin Country: builders/dynamic/#origin-country + - Trakt Dynamic Collections: + - Trakt User Lists: builders/dynamic/#trakt-user-lists + - Trakt Liked Lists: builders/dynamic/#trakt-liked-lists + - Trakt People Lists: builders/dynamic/#trakt-people-lists + - Plex Dynamic Collections: + - Actor: builders/dynamic/#actor + - Director: builders/dynamic/#director + - Writer: builders/dynamic/#writer + - Producer: builders/dynamic/#producer + - Genre: builders/dynamic/#genre + - Album Genre: builders/dynamic/#album-genre + - Content Rating: builders/dynamic/#content-rating + - Year: builders/dynamic/#year + - Decade: builders/dynamic/#decade + - Country: builders/dynamic/#country + - Resolution: builders/dynamic/#resolution + - Subtitle Language: builders/dynamic/#subtitle-language + - Audio Language: builders/dynamic/#audio-language + - Studio: builders/dynamic/#studio + - Edition: builders/dynamic/#edition + - Network: builders/dynamic/#network + - Mood: builders/dynamic/#mood + - Album Mood: builders/dynamic/#album-mood + - Track Mood: builders/dynamic/#track-mood + - Style: builders/dynamic/#style + - Album Style: builders/dynamic/#album-style + - Other Dynamic Collections: + - Number: builders/dynamic/#number + - Custom: builders/dynamic/#custom + - SETTINGS & UPDATES: + - Overview: metadata/update.md + - Settings: + - Definition Settings: builders/details/definition.md + - Schedule Settings: builders/details/schedule.md + - Radarr/Sonarr Definition Settings: builders/details/arr.md + - Updates: + - Collection/Playlist Metadata Updates: builders/details/metadata.md + - Item Metadata Updates: builders/details/item_metadata.md + - METADATA: + - Editing Movie Metadata: metadata/metadata/movie.md + - Editing TV Metadata: metadata/metadata/show.md + - Editing Music Metadata: metadata/metadata/music.md + - Formula 1 Metadata Guide: pmm/install/guides/formula.md + - SPONSOR: https://github.com/sponsors/meisnate12 +# - SHOWCASE: +# - Overlays Showcase: showcase/overlays.md \ No newline at end of file diff --git a/docs/overrides/home.html b/docs/overrides/home.html new file mode 100644 index 00000000..80f0d8f8 --- /dev/null +++ b/docs/overrides/home.html @@ -0,0 +1,163 @@ +{% extends "main.html" %} +{% block tabs %} +{{ super() }} +<style> + :root { + --goreleaser-primary-color: #252525; + } + + .md-main { + flex-grow: 1; + background-color: hsl(0, 0%, 15%); + } + + .md-header { + position: initial + } + + .md-footer { + background-color: #363636; + color: var(--md-footer-fg-color); + } + .md-main__inner { + margin: 0 + } + + .md-content { + display: none + } + + .tx-container { + padding-top: 1rem; + background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1123 258'><path d='M1124,2c0,0 0,256 0,256l-1125,0l0,-48c0,0 16,5 55,5c116,0 197,-92 325,-92c121,0 114,46 254,46c140,0 214,-167 572,-166Z' style='fill: hsl(0, 0%, 15%)'/></svg>") no-repeat bottom, linear-gradient(to bottom, var(--md-primary-fg-color), var(--goreleaser-primary-color) 99%, #fff 99%) + } + +.md-typeset h2 { + font-weight: bold; + color: #ffffff; + text-transform: none; + margin: 0.5em 0 0.64em; +} + + .tx-hero { + margin: 0 .8rem; + color: var(--md-primary-bg-color) + } + + .tx-hero h1 { + margin-bottom: 0.1rem; + color: currentColor; + font-weight: 700 + } + + .tx-hero__content { + padding-bottom: 6rem + } + + .tx-hero .md-button { + margin-top: .5rem; + margin-right: .5rem; + color: var(--md-primary-bg-color) + } + + .tx-hero .md-button--primary { + background-color: var(--md-primary-bg-color); + color: var(--goreleaser-primary-color); + border-color: var(--md-primary-bg-color) + } + + .tx-hero .md-button:focus, + .tx-hero .md-button:hover { + background-color: var(--md-accent-fg-color); + color: var(--md-default-bg-color); + border-color: var(--md-accent-fg-color) + } + + @media screen and (max-width:70em) { + .tx-hero h1 { + font-size: 1.4rem + } + + .tx-hero__image { + text-align: center; + } + + .tx-hero__image img { + max-width: 10rem; + } + } + + @media screen and (min-width:70em) { + .md-sidebar--secondary { + display: none + } + + .tx-hero { + display: flex; + align-items: stretch + } + + .tx-hero__content { + max-width: 30rem; + margin-top: 2rem; + padding-bottom: 20vw + } + + .tx-hero__image { + order: 1; + margin-left: auto; + margin-top: 2rem; + } + + .tx-hero__image img { + max-width: 15rem; + } + } + + @media screen and (min-width:76.25em) { + .md-sidebar--primary { + display: none + } + + .tx-hero__image { + margin-left: auto; + } + + .tx-hero__image img { + max-width: 20rem; + } + } + +</style> +<section class="tx-container"> + <div class="md-grid md-typeset"> + <div class="tx-hero"> + <div class="tx-hero__image"> + <img src="assets/logomark.png" alt="" draggable="false"> + </div> + <div class="tx-hero__content"> + <h1>Plex Meta Manager</h1> + <h2>Unleash the potential of your media libraries!</h2> + <p>With Plex Meta Manager, you can:</p> + <ul> + <li>Create hand-crafted collections to showcase your library in unique ways</li> + <li>Apply modular overlays to your posters</li> + <li>Connect to third-party sites such as TMDb, IMDb and Trakt</li> + <li>Apply our pre-defined PMM Default Collections and Overlays</li> + <li>Integrate with Radarr and Sonarr to expand your media libraries</li> + <li>Share your creations with others in our Discord and Configs Repo</li> + <li>... and much more!</li> + </ul> + <a href="home" title="{{ page.next_page.title | striptags }}" + class="md-button md-button--primary"> + Get started + </a> + <a href="https://github.com/sponsors/meisnate12" title="Donate to PMM" class="md-button"> + Donate to PMM + </a> + </div> + </div> + </div> +</section> +{% endblock %} +{% block content %}{% endblock %} \ No newline at end of file diff --git a/docs/overrides/main.html b/docs/overrides/main.html new file mode 100644 index 00000000..6963307e --- /dev/null +++ b/docs/overrides/main.html @@ -0,0 +1,22 @@ +{% extends "base.html" %} +{% block extrahead %} +{% set title = config.site_name %} +{% if page and page.title and not page.is_homepage %} +{% set title = config.site_name ~ " - " ~ page.title | striptags %} +{% endif %} +{% set image = config.site_url ~ '/static/card.png' %} +<meta property="og:type" content="website"> +<meta property="og:title" content="{{ title }}"> +<meta property="og:description" content="{{ config.site_description }}"> +<meta property="og:url" content="{{ page.canonical_url }}"> +<meta property="og:image" content="{{ image }}"> +<meta property="og:image:type" content="image/png"> +<meta property="og:image:width" content="1200"> +<meta property="og:image:height" content="630"> +<meta name="twitter:card" content="summary_large_image"> +<meta name="twitter:site" content="@goreleaser"> +<meta name="twitter:creator" content="@goreleaser"> +<meta name="twitter:title" content="{{ title }}"> +<meta name="twitter:description" content="{{ config.site_description }}"> +<meta name="twitter:image" content="{{ image }}"> +{% endblock %} \ No newline at end of file diff --git a/docs/overrides/partials/footer.html b/docs/overrides/partials/footer.html new file mode 100644 index 00000000..15bc346e --- /dev/null +++ b/docs/overrides/partials/footer.html @@ -0,0 +1,25 @@ +{#- + This file was automatically generated - do not edit +-#} +{% import "partials/language.html" as lang with context %} +<footer class="md-footer"> + <div class="md-footer-meta md-typeset"> + <div class="md-footer-meta__inner md-grid"> + <div class="md-footer-copyright"> + {% if config.copyright %} + <div class="md-footer-copyright__highlight"> + {{ config.copyright }} + </div> + {% endif %} + {% if not config.extra.generator == false %} + Made with + <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener"> + Material for MkDocs Insiders + </a> + {% endif %} + {{ extracopyright }} + </div> + {% include "partials/social.html" %} + </div> + </div> +</footer> \ No newline at end of file diff --git a/docs/overrides/partials/social.html b/docs/overrides/partials/social.html new file mode 100644 index 00000000..afb42245 --- /dev/null +++ b/docs/overrides/partials/social.html @@ -0,0 +1,40 @@ +<!-- + Copyright (c) 2016-2022 Martin Donath <martin.donath@squidfunk.com> + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to + deal in the Software without restriction, including without limitation the + rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + IN THE SOFTWARE. +--> + +<!-- Social links --> +<div class="md-social"> + {% for social in config.extra.social %} + {% set title = social.name %} + {% if not title and "//" in social.link %} + {% set _, url = social.link.split("//") %} + {% set title = url.split("/")[0] %} + {% endif %} + <a + href="{{ social.link }}" + target="_blank" rel="noopener" + title="{{ title | e }}" + class="{{ social.class | e }}" + > + {% include ".icons/" ~ social.icon ~ ".svg" %} + </a> + {% endfor %} +</div> diff --git a/docs/home/acknowledgements.md b/docs/pmm/essentials/acknowledgements.md similarity index 98% rename from docs/home/acknowledgements.md rename to docs/pmm/essentials/acknowledgements.md index 3cb4eb36..8e794f77 100644 --- a/docs/home/acknowledgements.md +++ b/docs/pmm/essentials/acknowledgements.md @@ -7,7 +7,7 @@ | [meisnate12](https://github.com/meisnate12/) | Sohjiro | Main PMM Developer | | [YozoraXCII](https://github.com/YozoraXCII) | Yozora | PMM Discord Moderator, Default Configs Creator & Maintainer, Wiki Contributor, [Configs Repo](https://github.com/meisnate12/Plex-Meta-Manager-Configs) Maintainer | | [bullmoose20](https://github.com/bullmoose20) | bullmoose20 | PMM Discord Moderator, Default Configs Creator & Maintainer, Wiki Contributor, [Configs Repo](https://github.com/meisnate12/Plex-Meta-Manager-Configs) Maintainer | -| [chazlarson](https://github.com/chazlarson/) | chazlarson | PMM Master Discord Support and Wiki Contributor who created the [Local](guides/local) and [Docker](guides/docker) guides | +| [chazlarson](https://github.com/chazlarson/) | chazlarson | PMM Master Discord Support and Wiki Contributor who created the [Local](../install/guides/local.md) and [Docker](../install/guides/docker.md) guides | | [cpt-kuesel](https://github.com/cpt-kuesel) | Cpt Kuesel | PMM Master Discord Support and [Configs Repo](https://github.com/meisnate12/Plex-Meta-Manager-Configs) Maintainer | | [JohnFawkes](https://github.com/JohnFawkes) | anon_fawkes | PMM Apprentice Discord Support | | zaP | zaP | PMM Apprentice Discord Support, Reddit Moderator | diff --git a/docs/pmm/essentials/basics.md b/docs/pmm/essentials/basics.md new file mode 100644 index 00000000..00b6149a --- /dev/null +++ b/docs/pmm/essentials/basics.md @@ -0,0 +1,3 @@ +# Basics + + diff --git a/docs/pmm/essentials/environmental.md b/docs/pmm/essentials/environmental.md new file mode 100644 index 00000000..14100210 --- /dev/null +++ b/docs/pmm/essentials/environmental.md @@ -0,0 +1,613 @@ + +# Run Commands & Environment Variables + +The basic command to run Plex Meta Manager is as follows: + +=== "Windows / Mac / Linux" + + ``` py + python plex_meta_manager.py + ``` + +=== "Docker" + + ``` py + docker run --rm -it -v "/<ROOT_PMM_DIRECTORY_HERE>/config:/config:rw" meisnate12/plex-meta-manager + ``` + +To customize the running of Plex Meta Manager according to your needs, you can use either run commands or environmental variables. Environmental variables take precedence over run command attributes. However, if you encounter a race condition where an attribute has been set both via an environmental variable and a shell command, the environmental variable will be given priority. + +Please note that these instructions assume that you have a basic understanding of Docker concepts. If you need to familiarize yourself with Docker, you can check out the official tutorial. + +Another way to specify environmental variables is by adding them to a .env file located in your config folder. + +[official tutorial](https://www.docker.com/101-tutorial/). + + +| Attribute | Shell Command | Environment Variable | +|:------------------------------------------------------|:----------------------------------------------|:--------------------------| +| [Config](#config) | `-c` or `--config` | `PMM_CONFIG` | +| [Time to Run](#time-to-run) | `-t` or `--times` | `PMM_TIMES` | +| [Run Immediately](#run-immediately) | `-r` or `--run` | `PMM_RUN` | +| [Run Tests](#run-tests) | `-rt`, `--tests`, or `--run-tests` | `PMM_TESTS` | +| [Debug](#debug) | `-db` or `--debug` | `PMM_DEBUG` | +| [Trace](#trace) | `-tr` or `--trace` | `PMM_TRACE` | +| [Log Requests](#log-requests) | `-lr` or `--log-requests` | `PMM_LOG_REQUESTS` | +| [Timeout](#timeout) | `-ti` or `--timeout` | `PMM_TIMEOUT` | +| [Collections Only](#collections-only) | `-co` or `--collections-only` | `PMM_COLLECTIONS_ONLY` | +| [Playlists Only](#playlists-only) | `-po` or `--playlists-only` | `PMM_PLAYLISTS_ONLY` | +| [Operations Only](#operations-only) | `-op`, `--operations`, or `--operations-only` | `PMM_OPERATIONS_ONLY` | +| [Overlays Only](#overlays-only) | `-ov`, `--overlays`, or `--overlays-only` | `PMM_OVERLAYS_ONLY` | +| [Run Collections](#run-collections) | `-rc` or `--run-collections` | `PMM_RUN_COLLECTIONS` | +| [Run Libraries](#run-libraries.md) | `-rl` or `--run-libraries` | `PMM_RUN_LIBRARIES` | +| [Run Metadata Files](#run-metadata-files) | `-rm` or `--run-metadata-files` | `PMM_RUN_METADATA_FILES` | +| [Libraries First](#libraries-first) | `-lf` or `--libraries-first` | `PMM_LIBRARIES_FIRST` | +| [Ignore Schedules](#ignore-schedules) | `-is` or `--ignore-schedules` | `PMM_IGNORE_SCHEDULES` | +| [Ignore Ghost](#ignore-ghost) | `-ig` or `--ignore-ghost` | `PMM_IGNORE_GHOST` | +| [Delete Collections](#delete-collections) | `-dc` or `--delete-collections` | `PMM_DELETE_COLLECTIONS` | +| [Delete Labels](#delete-labels) | `-dl` or `--delete-labels` | `PMM_DELETE_LABELS` | +| [Resume Run](#resume-run) | `-re` or `--resume` | `PMM_RESUME` | +| [No Countdown](#no-countdown) | `-nc` or `--no-countdown` | `PMM_NO_COUNTDOWN` | +| [No Missing](#no-missing) | `-nm` or `--no-missing` | `PMM_NO_MISSING` | +| [No Report](#no-report) | `-nr` or `--no-report` | `PMM_NO_REPORT` | +| [Read Only Config](#read-only-config) | `-ro` or `--read-only-config` | `PMM_READ_ONLY_CONFIG` | +| [Divider Character](#divider-character--screen-width) | `-d` or `--divider` | `PMM_DIVIDER` | +| [Screen Width](#divider-character--screen-width) | `-w` or `--width` | `PMM_WIDTH` | +| [Config Secrets](#config-secrets) | `--pmm-***` | `PMM_***` | + +Further explanation and examples of each command can be found below. + +Environment variables are expressed as `KEY=VALUE` Depending on the context where you are specifying them, you may enter those two things in two different fields, or some other way. The examples below show how you would specify the environment variable in a script or a `docker run` command. Things like Portainer or a NAS Docker UI will have different ways to specify these things. + +## Config + +Specify the location of the configuration YAML file. + +| | Shell | Environment | +|-----------|-----------------------------|-------------------------------| +| Flags | `-c` or `--config` | `PMM_CONFIG` | +| Example | `--config /data/config.yml` | `PMM_CONFIG=/data/config.yml` | +| Default | `config/config.yml` | `config/config.yml` | +| Values | Path to YAML config file | Path to YAML config file | + +!!! example + === "Local Environment" + ``` + python plex_meta_manager.py --config <path_to_config> + ``` + === "Docker Environment" + ``` + docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --config <path_to_config> + ``` + +### Time to Run + +Specify the time of day that Plex Meta Manager will run. + +| | Shell Command | Environment Variable | +|:-----------------|:---------------------------------------------------|:---------------------------| +| Flags | `-t` or `--times` | `PMM_TIMES` | +| Example | `--times 06:00,18:00` | `PMM_TIMES=06:00,18:00` | +| Default Value | <code>05:00</code> | +| Available Values | comma-separated list in <code>HH:MM</code> format | +!!! example + === "Local Environment" + ``` + python plex_meta_manager.py --times 22:00,03:00 + ``` + === "Docker Environment" + ``` + docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --times 22:00,03:00 + ``` + +### Run Immediately + +Perform a run immediately, bypassing the time to run flag. + +| | Shell Command | Environment Variable | +|:--------|:----------------|:----------------------| +| Flags | `-r` or `--run` | `PMM_RUN` | +| Example | `--run` | `PMM_RUN=true` | + +!!! example + === "Local Environment" + ``` + python plex_meta_manager.py --run + ``` + === "Docker Environment" + ``` + docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --run + ``` + +### Run Tests + +Perform a debug test run immediately, bypassing the time to run flag. This will only run collections with `test: true` in the definition. + +| | Shell Command | Environment Variable | +|:---------|:-----------------------------------|:---------------------| +| Flags | `-rt`, `--tests`, or `--run-tests` | `PMM_TESTS` | +| Example | `--run-tests` | `PMM_TESTS=true` | + + +* Only collections with `test: true` enabled will be run + +!!! example + === "Local Environment" + ``` + python plex_meta_manager.py --run-tests + ``` + === "Docker Environment" + ``` + docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --run-tests + ``` + +### Debug + +Run with Debug Logs Reporting to the Command Window. + +| | Shell Command | Environment Variable | +|:--------|:-------------------|:----------------------| +| Flags | `-db` or `--debug` | `PMM_DEBUG` | +| Example | `--debug` | `PMM_DEBUG=true` | + +!!! example + === "Local Environment" + ``` + python plex_meta_manager.py --debug + ``` + === "Docker Environment" + ``` + docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --debug + ``` + +### Trace + +Run with extra Trace Debug Logs. + +| | Shell Command | Environment Variable | +|:---------|:-------------------|:---------------------| +| Flags | `-tr` or `--trace` | `PMM_TRACE` | +| Example | `--trace` | `PMM_TRACE=true` | + +!!! example + === "Local Environment" + ``` + python plex_meta_manager.py --trace + ``` + === "Docker Environment" + ``` + docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --trace + ``` + +### Log Requests + +Run with every network request printed to the Logs. **This can potentially have personal information in it.** + +| | Shell Command | Environment Variable | +|----------|----------------------------------------------|-------------------------| +| Flags | `-lr` or `--log-request` or `--log-requests` | `PMM_LOG_REQUESTS` | +| Example | `--log-requests` | `PMM_LOG_REQUESTS=true` | + +!!! example + === "Local Environment" + ``` + python plex_meta_manager.py --log-requests + ``` + === "Docker Environment" + ``` + docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --log-requests + ``` + +### Timeout + +Change the timeout for all non-Plex services (such as TMDb, Radarr, and Trakt). This is overwritten by any timeouts mentioned for specific services in the Configuration File. + +| | Shell Command | Environment Variable | +|:--------|:---------------------------|----------------------| +| Flags | `-ti` or `--timeout` | `PMM_TIMEOUT` | +| Example | `--timeout 360` | `PMM_TIMEOUT=360` | +| Values | Integer Number of Seconds | + +!!! example + === "Local Environment" + ``` + python plex_meta_manager.py --timeout 360 + ``` + === "Docker Environment" + ``` + docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --timeout 360 + ``` + +### Collections Only + +Only run collection metadata/YAML files, skip library operations, overlays, and playlists. + +| | Shell Command | Environment Variable | +|:---------|:------------------------------|:-----------------------------| +| Flags | `-co` or `--collections-only` | `PMM_COLLECTIONS_ONLY` | +| Example | `--collections-only` | `PMM_COLLECTIONS_ONLY=true` | + +!!! example + === "Local Environment" + ``` + python plex_meta_manager.py --collections-only + ``` + === "Docker Environment" + ``` + docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --collections-only + ``` + +### Playlists Only + +Only run playlist metadata/YAML files, skip library operations, overlays, and collections/metadata. + +| | Shell Command | Environment Variable | +|:--------|:-----------------------------|:--------------------------| +| Flags | `-po` or `--playlists-only` | `PMM_PLAYLISTS_ONLY` | +| Example | `--playlists-only` | `PMM_PLAYLISTS_ONLY=true` | + +!!! example + === "Local Environment" + ``` + python plex_meta_manager.py --playlists-only + ``` + === "Docker Environment" + ``` + docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --playlists-only + ``` + +### Operations Only + +Only run library operations skipping collections/metadata, playlists, and overlays. + +| | Shell Command | Environment Variable | +|:---------|:------------------------|:---------------------------| +| Flags | `-op` or `--operations` | `PMM_OPERATIONS_ONLY` | +| Example | `--operations` | `PMM_OPERATIONS_ONLY=true` | + +!!! example + === "Local Environment" + ``` + python plex_meta_manager.py --operations + ``` + === "Docker Environment" + ``` + docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --operations + ``` + +### Overlays Only + +Only run library overlays skipping collections/metadata, playlists, and operations. + +| | Shell Command | Environment Variable | +|:--------|:----------------------|:--------------------------| +| Flags | `-ov` or `--overlays` | `PMM_OVERLAYS_ONLY` | +| Example | `--overlays` | `PMM_OVERLAYS_ONLY=true` | + +!!! example + === "Local Environment" + ``` + python plex_meta_manager.py --overlays + ``` + === "Docker Environment" + ``` + docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --overlays + ``` + +### Run Collections + +Perform a collections run immediately to run only the pre-defined collections, bypassing the time to run flag. + +| | Shell Command | Environment Variable | +|:--------|:------------------------------------------------|:----------------------| +| Flags | `-rc` or `--run-collections` | `PMM_RUN_COLLECTIONS` | +| Example | `--run-collections "Harry Potter\ | Star Wars"` |`PMM_COLLECTIONS=Harry Potter\|Star Wars`| +| Values | Pipe-separated list of Collection Names to run | + +!!! example + === "Local Environment" + ``` + python plex_meta_manager.py --run-collections "Harry Potter|Star Wars" + ``` + === "Docker Environment" + ``` + docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --run-collections "Harry Potter|Star Wars" + ``` + +### Run Libraries + +Perform a libraries run immediately to run only the pre-defined libraries, bypassing the time to run flag. + +| | Shell Command | Environment Variable | +|:--------|:--------------------------------------------|:---------------------| +| Flags | `-rl` or `--run-libraries` | `PMM_RUN_LIBRARIES` | +| Example | `--run-libraries "Movies - 4K\ | TV Shows - 4K"` |`PMM_LIBRARIES=Movies - 4K\|TV Shows - 4K`| +| Values | Pipe-separated list of Library Names to run | + +!!! example + === "Local Environment" + ``` + python plex_meta_manager.py --run-libraries "TV Shows" + ``` + === "Docker Environment" + ``` + docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --run-libraries "TV Shows" + ``` + +### Run Metadata Files + +Perform a metadata files run immediately to run only the pre-defined metadata files, bypassing the time to run flag. + +| | Shell Command | Environment Variable | +|:-----------------|:-------------------------------------------------|:-------------------------| +| Flags | `-rm` or `--run-metadata-files` | `PMM_RUN_METADATA_FILES` | +| Example | `--run-metadata-files "Movies.yml\ | MovieCharts"` |`PMM_METADATA_FILES=Movies.yml\|MovieCharts`| +| Available Values | Pipe-separated list of Metadata Filenames to run | + + +* This works for all different metadata paths i.e. `git`, `url`, `file`, or `repo`. + +!!! example + === "Local Environment" + ``` + python plex_meta_manager.py --run-metadata-files "Movies" + ``` + === "Docker Environment" + ``` + docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --run-metadata-files "Movies" + ``` + +### Libraries First + +Run library operations prior to running collections. + +| | Shell Command | Environment Variable | +|:--------|:-----------------------------|:---------------------------| +| Flags | `-lf` or `--libraries-first` | `PMM_LIBRARIES_FIRST` | +| Example | `--libraries-first` | `PMM_LIBRARIES_FIRST=true` | + +!!! example + === "Local Environment" + ``` + python plex_meta_manager.py --libraries-first + ``` + === "Docker Environment" + ``` + docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --libraries-first + ``` + +### Ignore Schedules + +Ignore all schedules for the run. + +| | Shell Command | Environment Variable | +|:---------|:------------------------------|:-----------------------------| +| Flags | `-is` or `--ignore-schedules` | `PMM_IGNORE_SCHEDULES` | +| Example | `--ignore-schedules` | `PMM_IGNORE_SCHEDULES=true` | + + +* Range Scheduled collections (such as Christmas movies) will still be ignored. + +!!! example + === "Local Environment" + ``` + python plex_meta_manager.py --ignore-schedules + ``` + === "Docker Environment" + ``` + docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --ignore-schedules + ``` + +### Ignore Ghost + +Ignore all ghost logging for the run. A ghost log is what's printed to the console to show progress during steps. + +| | Shell Command | Environment Variable | +|:---------|:--------------------------|:-------------------------| +| Flags | `-ig` or `--ignore-ghost` | `PMM_IGNORE_GHOST` | +| Example | `--ignore-ghost` | `PMM_IGNORE_GHOST=true` | + +!!! example + === "Local Environment" + ``` + python plex_meta_manager.py --ignore-ghost + ``` + === "Docker Environment" + ``` + docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --ignore-ghost + ``` + +### Delete Collections + +Delete all collections in a Library prior to running collections/operations. + +| | Shell Command | Environment Variable | +|:---------|:--------------------------------|:-------------------------------| +| Flags | `-dc` or `--delete-collections` | `PMM_DELETE_COLLECTIONS` | +| Example | `--delete-collections` | `PMM_DELETE_COLLECTIONS=true` | + +!!! example + === "Local Environment" + ``` + python plex_meta_manager.py --delete-collections + ``` + === "Docker Environment" + ``` + docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --delete-collections + ``` + +### Delete Labels + +Delete all labels on every item in a Library prior to running collections/operations. + +| | Shell Command | Environment Variable | +|:---------|:---------------------------|:--------------------------| +| Flags | `-dl` or `--delete-labels` | `PMM_DELETE_LABELS` | +| Example | `--delete-labels` | `PMM_DELETE_LABELS=true` | + +!!! example + === "Local Environment" + ``` + python plex_meta_manager.py --delete-labels + ``` + === "Docker Environment" + ``` + docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --delete-labels + ``` + +### Resume Run + +Perform a resume run immediately resuming from the first instance of the specified collection, bypassing the time to run flag. + +| | Shell Command | Environment Variable | +|:------------------|:-----------------------------------|:-----------------------| +| Flags | `-re` or `--resume` | `PMM_RESUME` | +| Example | `--resume "Star Wars"` | `PMM_RESUME=Star Wars` | +| Available Values | Name of collection to resume from | + +!!! example + === "Local Environment" + ``` + python plex_meta_manager.py --resume "Star Wars" + ``` + === "Docker Environment" + ``` + docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --resume "Star Wars" + ``` + +### No Countdown + +Run without displaying a countdown to the next scheduled run. + +| | Shell Command | Environment Variable | +|:--------|:--------------------------|:------------------------| +| Flags | `-nc` or `--no-countdown` | `PMM_NO_COUNTDOWN` | +| Example | `--no-countdown` | `PMM_NO_COUNTDOWN=true` | + +!!! example + === "Local Environment" + ``` + python plex_meta_manager.py --no-countdown + ``` + === "Docker Environment" + ``` + docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --no-countdown + ``` + +### No Missing + +Run without utilizing the missing movie/show functions. + +| | Shell Command | Environment Variable | +|:--------|:---------------------------|:------------------------| +| Flags | `-nc` or `--no-countdown` | `PMM_NO_COUNTDOWN` | +| Example | `--no-countdown` | `PMM_NO_COUNTDOWN=true` | + +!!! example + === "Local Environment" + ``` + python plex_meta_manager.py --no-missing + ``` + === "Docker Environment" + ``` + docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --no-missing + ``` + +### No Report + +Run without saving the report. + +| | Shell Command | Environment Variable | +|:---------|:-----------------------|:----------------------| +| Flags | `-nr` or `--no-report` | `PMM_NO_REPORT` | +| Example | `--no-report` | `PMM_NO_REPORT=true` | + +!!! example + === "Local Environment" + ``` + python plex_meta_manager.py --no-report + ``` + === "Docker Environment" + ``` + docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --no-report + ``` + +### Read Only Config + +Run without writing to the configuration file. + +| | Shell Command | Environment Variable | +|:---------|:------------------------------|:-----------------------------| +| Flags | `-ro` or `--read-only-config` | `PMM_READ_ONLY_CONFIG` | +| Example | `--read-only-config` | `PMM_READ_ONLY_CONFIG=true` | + +!!! example + === "Local Environment" + ``` + python plex_meta_manager.py --read-only-config + ``` + === "Docker Environment" + ``` + docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --read-only-config + ``` + +### Divider Character & Screen Width + +Change the terminal output divider character or width. + +#### Divider Character + +| | Shell Command | Environment Variable | +|:--------|:--------------------|:----------------------| +| Flags | `-d` or `--divider` | `PMM_DIVIDER` | +| Example | `--divider *` | `PMM_DIVIDER=*` | +| Default | `=` | +| Values | Any character | + + +#### Screen Width + +| | Shell Command | Environment Variable | +|:--------|:-----------------------------|:---------------------| +| Flags | `-w` or `--width` | `PMM_WIDTH` | +| Example | `--width 150` | `PMM_WIDTH=150` | +| Default | Integer between 90 and 300 | +| Values | Any character | + +!!! example + === "Local Environment" + ``` + python plex_meta_manager.py --divider * --width 200 + ``` + === "Docker Environment" + ``` + docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --divider * --width 200 + ``` + +### Config Secrets + +All Run Commands that start with `--pmm-***` and Environment Variables that start with `PMM_***` will be loaded in as Config Secrets. + +These Config Secrets can be loaded into the config by placing `<<***>>` in any field in the config, where `***` is whatever name you want to call the variable. + +| | Shell Command | Environment Variable | +|:---------|:----------------------------|:--------------------------| +| Flags | `--pmm-***` | `PMM_***` | +| Example | `--pmm-mysecret 123456789` | `PMM_MYSECRET=123456789` | + +!!! example + === "Local Environment" + ``` + python plex_meta_manager.py --pmm-mysecret 123456789 + ``` + === "Docker Environment" + ``` + docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --pmm-mysecret 123456789 + ``` + + **Example Config Usage:** + + ```yaml + tmdb: + apikey: <<mysecret>> + ``` diff --git a/docs/pmm/essentials/kb.md b/docs/pmm/essentials/kb.md new file mode 100644 index 00000000..c451c4ee --- /dev/null +++ b/docs/pmm/essentials/kb.md @@ -0,0 +1,342 @@ +--- +search: + boost: 4 +--- +# Frequently Asked Questions & Knowledgebase + +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://discord.gg/NfH6mGFuAB). + +## Frequently Asked Questions + +This sections aims to answer the most commonly asked questions that users have. + +#### PMM Versions & Updating + +??? question "How do I update to the latest version of Plex Meta Manager?" + + === ":fontawesome-brands-linux: Linux" + + [type this into your terminal] + ``` + cd /Users/mroche/Plex-Meta-Manager + git pull + source pmm-venv/bin/activate + python -m pip install -r requirements.txt + ``` + + === ":fontawesome-brands-apple: macOS" + + [type this into your terminal] + ``` + cd /Users/mroche/Plex-Meta-Manager + git pull + source pmm-venv/bin/activate + python -m pip install -r requirements.txt + ``` + + === ":fontawesome-brands-windows: Windows" + + [type this into your terminal] + ``` + cd C:\Users\mroche\Plex-Meta-Manager + git pull + .\pmm-venv\Scripts\activate + python -m pip install -r requirements.txt + ``` + + === ":fontawesome-brands-docker: Docker" + + [type this into your terminal] + ``` + docker pull meisnate12/plex-meta-manager + ``` + + +??? question "How do I switch to the develop branch?" + + === ":fontawesome-brands-linux: Linux" + + [type this into your terminal] + ``` + cd /Users/mroche/Plex-Meta-Manager + git checkout develop + git pull + source pmm-venv/bin/activate + python -m pip install -r requirements.txt + ``` + + + === ":fontawesome-brands-apple: macOS" + + [type this into your terminal] + ``` + cd /Users/mroche/Plex-Meta-Manager + git checkout develop + git pull + source pmm-venv/bin/activate + python -m pip install -r requirements.txt + ``` + + === ":fontawesome-brands-windows: Windows" + + [type this into your terminal] + ``` + cd C:\Users\mroche\Plex-Meta-Manager + git checkout develop + git pull + .\pmm-venv\Scripts\activate + python -m pip install -r requirements.txt + ``` + + +??? question "How do I switch to the nightly branch" + + === ":fontawesome-brands-linux: Linux" + + [type this into your terminal] + ``` + cd /Users/mroche/Plex-Meta-Manager + git checkout nightly + git pull + source pmm-venv/bin/activate + python -m pip install -r requirements.txt + ``` + + + === ":fontawesome-brands-apple: macOS" + + [type this into your terminal] + ``` + cd /Users/mroche/Plex-Meta-Manager + git checkout nightly + git pull + source pmm-venv/bin/activate + python -m pip install -r requirements.txt + ``` + + === ":fontawesome-brands-windows: Windows" + + [type this into your terminal] + ``` + cd C:\Users\mroche\Plex-Meta-Manager + git checkout nightly + git pull + .\pmm-venv\Scripts\activate + python -m pip install -r requirements.txt + ``` + +??? question "How do I switch back to the master branch?" + + === ":fontawesome-brands-linux: Linux" + + [type this into your terminal] + ``` + cd /Users/mroche/Plex-Meta-Manager + git checkout master + git pull + source pmm-venv/bin/activate + python -m pip install -r requirements.txt + ``` + + + === ":fontawesome-brands-apple: macOS" + + [type this into your terminal] + ``` + cd /Users/mroche/Plex-Meta-Manager + git checkout master + git pull + source pmm-venv/bin/activate + python -m pip install -r requirements.txt + ``` + + === ":fontawesome-brands-windows: Windows" + + [type this into your terminal] + ``` + cd C:\Users\mroche\Plex-Meta-Manager + git checkout master + git pull + .\pmm-venv\Scripts\activate + python -m pip install -r requirements.txt + ``` + +#### Performance & Scheduling + +??? question "Any tips on increasing PMM performance?" + + Use PMM Caching where possible, this allows PMM to temporarily store commonly-used information so that it can be retreived more efficiently. There are [multipe things](https://metamanager.wiki/en/latest/search.html?q=cache&check_keywords=yes&area=default) that can be cached within PMM. + + Run PMM after PLEX Scheduled Tasks, as Plex's API tends to be slower at responding whilst it is performing the tasks. By default, PMM runs at 5AM to avoid the 3-5am window that Plex suggests for Scheduled Tasks. + + For users who are more technically advanced and happy to risk manipulating the Plex database, considering altering the [PRAGMA_CACHE settings](https://www.reddit.com/r/PleX/comments/ic3cjr/anyone_try_giving_sqlite3_more_cache_to_help/) within Plex. + + **NOTE:** you MUST use the version of sqlite3 tool that comes with your running version of PLEX or you will mess up your PLEX DB beyond repair. See [this article](https://support.plex.tv/articles/repair-a-corrupted-database/) on how to find the proper version for your setup. + + +??? question "Why does my PMM run take so long to complete?" + + Every time an item (media, collection, overlay) needs to be updated, PMM needs to send the request to Plex, and then receive confirmation back from Plex that the action has been completed. This can take anywhere from seconds to minutes depending on when Plex provides a response. Given that the typical run can update hundreds or even thousands of items, this can quickly add up to a lot of time. If "Mass Update" operations are used, then every single item in the library needs to go through this process, which can be lengthy. + + Overlays can be particularly cumbersome as PMM needs to perform the following actions for each of the items that need to have an overlay applied: + + - Check which overlays are applicable (this will take more time depending on how many overlays you are applying) + - Compare the current poster to confirm what overlays are already applied, if changes are needed then continue with the following steps + - Grab source image from Plex and save it to disk + - Draw each overlay image on top of the source image + - save final image to disk + - Tell Plex to apply new image to the item + - Wait for Plex to responsd confirming that the change has been made + + The above two points can be greatly exasterbated if PMM has to update every episode within a Show library rather than just the Shows themselves, as there can often be hundreds of thousands of episodes to be updated with mass operations or overlays. + + Additionally, some collections requires a lot of computing resource to determine the critera of the collections that are to be made. This is commonly seen in the Defaults files for Actor/Director/Producer/Writer which need to get the crew information for each of the movies/shows within your library, and then calculate which ones appear the most to find out which are the most popular. The larger your library, the longer this process will take. + + +??? question "Can I schedule library operations and/or overlays to happen at a different time than collections?" + + Yes, the recommended approach is to set up a new library for the Operations/Overlays, mapping it back to the original library, and then scheduling the library, as outlined below + + ```yaml + libraries: + Movie Operations: # NAME DOESN'T MATTER BUT MUST BE UNIQUE + library_name: Movies # THIS MUST MATCH A LIBRARY IN PLEX + schedule: weekly(monday) + operations: + split_duplicates: true + overlay_path: + - pmm: resolution + ``` + +#### Errors & Issues + +??? question "Why doesn't PMM let me enter my authentication information for Trakt/MAL?" + + PMM needs to run in an interactive mode which allows the user to enter information (such as the Trakt/MAL PIN) as part of the authentication process. This can prove troublesome in some environments, particularly NAS. + + Chazlarson has developed an online tool which will allow you to perform the authentication of both Trakt and MAL outside of PMM, and will then provide you the completed code block to paste into your config.yml. + + The scripts can be found here. Click the green play button, wait a little bit, then follow the prompts. + + [MyAnimeList Authenticator](https://replit.com/@chazlarson/MALAuth) + + [Trakt Authenticator](https://replit.com/@chazlarson/TraktAuth) + + +??? question "Why am I seeing "(500) Internal Server Error" in my log files?" + + A 500 Internal Server Error happens when the server has an unexpected error when responding to an API request. + + There could be any number of reasons why this happens and it depends on what server PMM is talking to although its most likely coming from your Plex Server. + + Most of the time these errors need to be resolved by changing something specific to your set up but some do come up that can be fixed (i.e. Plex throws one if you upload a photo larger then 10 MB) + + Many Appbox Setups will throw this error when too many requests are sent, or if the central metadata repository is not properly configured to allow users to upload custom posters. + + Take a look at the following logs: + + :one: Settings | Manage | Console -> then filter on Error and Warning to see what might be going on + + :two: Check the plex logs (container or other) for the "Busy DB Sleeping for 200ms) + + There is nothing that PMM or our support staff can really do to resolve a 500 error. + +## Knowledgebase + +This section aims to provide some guidance on the most common issues that we see. + +### Locating Log Files + +The meta.log file can be found within the `logs` folder of your Plex Meta Manager config folder [right next to `config.yml`]. +`meta.log` is the most recent run of Plex Meta Manager, `meta.log.1` is the previous run, `meta.log.2` is the run before that, so on and so forth. + +### Basic Log File Troubleshooting + +Wondering how to troubleshoot Plex Meta Manager and how to read through the meta.log? + +**Using a text editor like [Visual Studio Code](https://code.visualstudio.com/) or [Sublime Text](https://www.sublimetext.com/) is recommended** + +In all cases, the first step is to open the [`meta.log`](#locating-log-files) with your text editor and perform these steps: + +1. Check that you are running the latest [`version`](#checking-plex-meta-manager-version) of your branch. Your current version can be found in the `meta.log` file either below the Plex Meta Manager ASCII art, or at the end of the run. If you are not on the latest version of your branch, you will see `Newest Version: X.X.X` below this. Ensure you [`upgrade`](../install/guides/local.md#i-want-to-update-to-the-latest-version-of-pmm) to the latest version of Plex Meta Manager. +2. When scanning your meta.log file, search for `[CRITICAL]` items first as these will definitely need to be fixed +3. Scan your meta.log file for `[ERROR]` and make a note of the content of the full line to start your search below on how to resolve + +### Checking Plex Meta Manager Version + +Checking the version: You will find that in your [`meta.log`](#locating-log-files) around the 8th-10th line and will look something like this: + +``` +| | +| Version: 1.17.1-develop10 | +|=================================| +``` + +If you are not on the latest version of your branch, you will see Newest Version: X.X.X below this. Ensure you upgrade to the latest version of Plex Meta Manager. + +``` +| | +| Version: 1.17.1-develop10 | +| Newest Version: 1.17.1-develop20 | +|=======================================| +``` + +### Understanding Log File Event Types + +There are five main event types that you need to be aware of when understanding the log files, detailed below: + +| Type | Short Info | Description | Recommendation | +|:-----------|:----------------------|:--------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------| +| `INFO` | Information log | Informational message that does not require much attention | No action required | +| `DEBUG` | Debug Log | Debug log message that does not require much attention | No action required | +| `WARNING` | Warning Log | Warning message that may require your attention | Read the warning and determine if this is something you need to take action on or not | +| `ERROR` | Error Log | Error message that in MOST cases requires action on your part to resolve | Read the error message, look for the message below and try recommendations | +| `CRITICAL` | Critical Log | Critical messaage requiring you to fix it for PMM to run properly | Read the critical message and take appropriate action. look for message below and try recommendations | + + +### Common Log File Messages + +This section aims to explain some commonly seen event messages that are produced in the logs. + +#### CRITICAL + +This table details examples of the most commonly-seen `CRITICAL` events and what they mean for the user. + +| Type | Short Info | Description | Recommendation | +|:-----------|:----------------------------------------------------|:------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------| +| `CRITICAL` | `Failed to Connect to https://api.themoviedb.org/3` | Current step PMM 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 + +This table details examples of the most commonly-seen `[ERROR]` events and what they mean for the user. + +| 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` | `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 PMM 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 PMM 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` | `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 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 #pmm-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 meta.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 meta.log for more information on what went wrong. Refer to the wiki for details on how to set this up (in this case Trakt) | + +#### WARNING + +This table details examples of the most commonly-seen `[WARNING]` events and what they mean for the user. + +| Type | Short Info | Description | Recommendation | +|:----------|:-----------------------------------------------------------------|:-----------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| `WARNING` | `Convert Error: 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 Error: 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 Error: 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 Error: AniDB ID not found for MyAnimeList ID: 36838` | 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. | + +#### INFO + +This table details examples of the most commonly-seen `[INFO]` events and what they mean for the user. + +| 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 PMM defaults people posters | diff --git a/docs/home/logs.md b/docs/pmm/essentials/logs.md similarity index 100% rename from docs/home/logs.md rename to docs/pmm/essentials/logs.md diff --git a/docs/pmm/essentials/ratings.md b/docs/pmm/essentials/ratings.md new file mode 100644 index 00000000..61695c61 --- /dev/null +++ b/docs/pmm/essentials/ratings.md @@ -0,0 +1,276 @@ +--- +search: + boost: 2 +--- +# Plex Meta Manager Ratings Explained + +How do ratings and ratings overlays work in Plex Meta Manager? This Guide will walk through some basics of how ratings work in conjunction with Plex Meta Manager. + +<h4>Basics</h4> + +Each thing in Plex that can have a rating [movie, show, episode, album, track] has three ratings "boxes" or "fields". Critic, Audience, and User. + +The Critic and Audience ratings are typically managed by Plex, pulling from whatever you specify as the ratings source for the library; this is what determines the images that are displayed in the Plex UI. The User rating is the star rating assigned by you to the item. + +Plex Meta Manager can insert a broader range of values into those fields than Plex supports natively, then it can leverage those values in overlays and the like. + +It's doing this "behind Plex's back", so there can be some seeming inconsistencies in the way things are displayed in the UI. This guide is intended to clear up some of these things. + +<h4>Setup</h4> + +Here's our starting point if you want to run through this yourself: + +Set up a brand new Library with only one movie in it. Ensure the Ratings source on the library is set to Rotten Tomatoes: + + ![](ratings/ratings-01.png) + +The Plex UI shows the correct ratings and icons for Rotten Tomatoes and is aligned with the Rotten Tomatoes site: + + ![](ratings/ratings-02.png) + +Also note that we have not given this a user rating. + +<h4>Initial Overlay</h4> + +Now let's add rating overlays to the poster. We're going to use the minimal config needed here to illustrate the concepts. + +??? example "Click to see initial minimal config" + + ```yaml + libraries: + One Movie: + overlay_path: + - reapply_overlays: true + - pmm: ratings + template_variables: + rating1: critic + rating1_image: rt_tomato + rating2: audience + rating2_image: rt_popcorn + rating3: user + rating3_image: imdb + ``` + + * `rating1`, `rating1_image`, `rating2`, `rating2_image` are set to match the ratings that Plex already has assigned to those fields (critic/audience). The order here is arbitrary. + + * `rating3` is set to be the user rating and it's image (`rating3_image`) is set to IMDb just because we have to pick something. + + * `reapply_overlays` is set to true to ensure that Plex Meta Manager always updates the overlays as we run things. + + * We do not recommend using `reapply_overlays: true` consistently in a live/production environment, make sure to switch this back to `false` when finished. + + +After Plex Meta Manager is run on this library, you'll get this result: + + ![](ratings/ratings-03.png) + +* Plex Meta Manager has added those two ratings to the poster using the values already stored with the movie. The icons and values are correctly associated simply because we made sure they are in the config file. + +* The two ratings match, and there is no IMDb rating icon on the poster since there is no user rating. (no star rating on the right) + +Now we're going to add a user rating by clicking the middle star on the right for a rating of 3/5: + + ![](ratings/ratings-04.png) + +Now just run Plex Meta Manager again without changing anything else and the user rating overlay will appear: + + ![](ratings/ratings-05.png) + +* Plex Meta Manager added the third rating overlay, since there is now a value in the user rating. +* It gave it an IMDb icon because we told it to in the config file. ([Why does it say 250 instead of IMDb?](#why-do-different-images-appear-for-the-same-source)) +* It's displaying 6.0 since 3 stars on a 5-star scale is 60%. + +#### Change Rating Image + +You and I both know that the IMDb rating isn't 6.0, but Plex Meta Manager is just doing what it's told. Nobody but us humans know where those numbers come from. As an example, let's change the icons to "prove" that Plex Meta Manager doesn't know or care: + +??? example "Click to see the updated config" + + ```yaml + libraries: + One Movie: + overlay_path: + - reapply_overlays: true + - pmm: ratings + template_variables: + rating1: critic + rating1_image: imdb + rating2: audience + rating2_image: imdb + rating3: user + rating3_image: imdb + ``` + + * `rating1_image` and `rating2_image` were both changed from `rt_score` and `rt_popcorn` respectively to `imdb` + +When the above is run you see this result: + + ![](ratings/ratings-06.png) + +* Three different ratings on the poster, all IMDb; All while the Plex UI still shows RT icons. +* Note that the existing RT ratings numbers (`93%` and `96%`) display on the poster as `9.3` and `9.6`. This is happening because we just told Plex Meta Manager that those ratings were IMDb, and IMDb ratings are on a 1-10 scale. Plex Meta Manager doesn't "know" where those numbers are from, it just does what it's told to do and places the value (critic/audience/user) in that rating box. +* That first overlay showing an IMDb rating of `9.3` is not evidence that Plex Meta Manager pulled the wrong IMDb rating; it just shows that it has been told to display the number in the critic rating box (whatever that number is) as an IMDb rating. All three of those overlays mean the same thing; Plex Meta Manager read a number from a field and stuck it on the poster formatted as requested. + +#### Update User Ratings + +Now let's actually update the ratings and push some numbers into those boxes using library operations. We'll start with making that user rating accurate: + +??? example "Click to see the updated config" + + ```yaml + libraries: + One Movie: + overlay_path: + - reapply_overlays: true + - pmm: ratings + template_variables: + rating1: critic + rating1_image: rt_tomato + rating2: audience + rating2_image: rt_popcorn + rating3: user + rating3_image: imdb + operations: + mass_user_rating_update: imdb + ``` + + * `operations` with the attribute `mass_user_rating_update` set to `imdb` is added. + * `rating1_image` and `rating2_image` were both changed back to `rt_score` and `rt_popcorn` respectively from `imdb` + +This will put the actual IMDb rating value, retrieved from IMDb, into the "user" rating field. + +After that has been run, we see: + + ![](ratings/ratings-07.png) + +* The IMDb Rating Overlay on the poster matches the rating from the IMDb page for Star Wars. +* The number of stars has also changed to 4 stars. (since `8.6` split in half is `4.3` and then rounded down to the nearest half gives you 4 stars) + +#### Update Critic & Audience Ratings + +Now let's update the critic and audience ratings to some different ratings: + +??? example "Click to see the updated config" + + ```yaml + libraries: + One Movie: + overlay_path: + - reapply_overlays: true + - pmm: ratings + template_variables: + rating1: critic + rating1_image: rt_tomato + rating2: audience + rating2_image: rt_popcorn + rating3: user + rating3_image: imdb + operations: + mass_critic_rating_update: trakt_user + mass_audience_rating_update: tmdb + mass_user_rating_update: imdb + ``` + + * under `operations` the attribute `mass_critic_rating_update` set to `trakt_user` and `mass_audience_rating_update` set to `tmdb` are added. + +Running the above will put the Trakt User's personal rating into the critic box and the TMDb rating into the audience box. Note that we haven't changed the rating images yet. + + ![](ratings/ratings-08.png) + +* Critic rating matches the trakt personal user rating of `6` which is displayed as `60%`: +* Audience rating matches the TMDb rating of `82%`. +* Note how the values have changed dramatically and all match between the overlay, plex ratings, and external sites. + +The log will show Plex Meta Manager updating those values. + +``` +| Processing: 1/1 Star Wars: Episode IV - A New Hope | +| Batch Edits | +| Audience Rating | 8.2 | +| Critic Rating | 6.0 | +``` + +* And the poster reflects those numbers, though with the wrong icons, since that's what **Plex Meta Manager has been told to do**. +* The Plex UI still shows RT icons, and it always will, even though the numbers displayed are no longer RT ratings. Plex has no idea. + +#### Use Trakt Rating + +Let's change the Trakt rating to that trakt public rating of `85%` instead, which is available via MDbList: + +??? example "Click to see the updated config" + + ```yaml + libraries: + One Movie: + overlay_path: + - reapply_overlays: true + - pmm: ratings + template_variables: + rating1: critic + rating1_image: rt_tomato + rating2: audience + rating2_image: rt_popcorn + rating3: user + rating3_image: imdb + operations: + mass_critic_rating_update: mdb_trakt + mass_audience_rating_update: tmdb + mass_user_rating_update: imdb + ``` + + * under `operations` the attribute `mass_critic_rating_update` was changed to `mdb_trakt` from `trakt_user`. (This step requires MDBList to be configured) + +When the above is run you should get: + + ![](ratings/ratings-09.png) + +* Note how the `60%` in `rating1` became `85%` + +#### Use Proper Images + +Now, finally, let's make the poster rating images match the numbers we put in there: + +??? example "Click to see the updated config" + + ```yaml + libraries: + One Movie: + overlay_path: + - reapply_overlays: true + - pmm: ratings + template_variables: + rating1: critic + rating1_image: trakt + rating2: audience + rating2_image: tmdb + rating3: user + rating3_image: imdb + operations: + mass_critic_rating_update: mdb_trakt + mass_audience_rating_update: tmdb + mass_user_rating_update: imdb + ``` + + * `rating1_image` was changed to `trakt` from `rt_score` + * `rating2_image` was changed to `tmdb` from `rt_popcorn` + +When the above is run you should get: + + ![](ratings/ratings-10.png) + +This config file is the **only linkage** between the ratings we are setting and the icons we want displayed, as we've seen above. + +You can see that the Plex UI still shows the RT icons with the Trakt and TMDb numbers we put into the relevant fields, since again, it has no idea those numbers got changed behind its back. + +The poster displays the correct icons because we told Plex Meta Manager to do so in the config file. + +## Why do different Images appear for the same source? + +As seen in the Images above the IMDb rating image says `250` instead of `IMDb` and the Rotten Tomatoes rating images has the certified fresh logo vs their normal logo. + +This is because the Star Wars: Episode IV - A New Hope is in the IMDb Top 250 list as well as being Certified Fresh by Rotten Tomatoes and that gets reflected by the rating image. + + + + + diff --git a/docs/pmm/essentials/ratings/ratings-01.png b/docs/pmm/essentials/ratings/ratings-01.png new file mode 100644 index 00000000..2b88f714 Binary files /dev/null and b/docs/pmm/essentials/ratings/ratings-01.png differ diff --git a/docs/pmm/essentials/ratings/ratings-02.png b/docs/pmm/essentials/ratings/ratings-02.png new file mode 100644 index 00000000..e6adca7e Binary files /dev/null and b/docs/pmm/essentials/ratings/ratings-02.png differ diff --git a/docs/pmm/essentials/ratings/ratings-03.png b/docs/pmm/essentials/ratings/ratings-03.png new file mode 100644 index 00000000..1583d6c6 Binary files /dev/null and b/docs/pmm/essentials/ratings/ratings-03.png differ diff --git a/docs/pmm/essentials/ratings/ratings-04.png b/docs/pmm/essentials/ratings/ratings-04.png new file mode 100644 index 00000000..768e046e Binary files /dev/null and b/docs/pmm/essentials/ratings/ratings-04.png differ diff --git a/docs/pmm/essentials/ratings/ratings-05.png b/docs/pmm/essentials/ratings/ratings-05.png new file mode 100644 index 00000000..02947827 Binary files /dev/null and b/docs/pmm/essentials/ratings/ratings-05.png differ diff --git a/docs/pmm/essentials/ratings/ratings-06.png b/docs/pmm/essentials/ratings/ratings-06.png new file mode 100644 index 00000000..47da8104 Binary files /dev/null and b/docs/pmm/essentials/ratings/ratings-06.png differ diff --git a/docs/pmm/essentials/ratings/ratings-07.png b/docs/pmm/essentials/ratings/ratings-07.png new file mode 100644 index 00000000..04f1c052 Binary files /dev/null and b/docs/pmm/essentials/ratings/ratings-07.png differ diff --git a/docs/pmm/essentials/ratings/ratings-08.png b/docs/pmm/essentials/ratings/ratings-08.png new file mode 100644 index 00000000..ced62d07 Binary files /dev/null and b/docs/pmm/essentials/ratings/ratings-08.png differ diff --git a/docs/pmm/essentials/ratings/ratings-09.png b/docs/pmm/essentials/ratings/ratings-09.png new file mode 100644 index 00000000..8dd808c3 Binary files /dev/null and b/docs/pmm/essentials/ratings/ratings-09.png differ diff --git a/docs/pmm/essentials/ratings/ratings-10.png b/docs/pmm/essentials/ratings/ratings-10.png new file mode 100644 index 00000000..f422614f Binary files /dev/null and b/docs/pmm/essentials/ratings/ratings-10.png differ diff --git a/docs/home/scripts.md b/docs/pmm/essentials/scripts.md similarity index 72% rename from docs/home/scripts.md rename to docs/pmm/essentials/scripts.md index 52b60d93..db5e5d97 100644 --- a/docs/home/scripts.md +++ b/docs/pmm/essentials/scripts.md @@ -4,5 +4,5 @@ Each Companion Script is a separate project that has its own Docker container an | Name | Description | Readme | |:---------------------|:------------------------------------------------------|:-----------------------------------------------------------------------------------------| -| `PMM Overlay Reset` | Script to completely remove all PMM applied Overlays. | [Wiki](scripts/overlay-reset)/[GitHub](https://github.com/meisnate12/PMM-Overlay-Reset) | -| `Plex Image Cleanup` | Script to clean up Plex's Image Cache. | [Wiki](scripts/image-cleanup)/[GitHub](https://github.com/meisnate12/Plex-Image-Cleanup) | +| `PMM Overlay Reset` | Script to completely remove all PMM applied Overlays. | [Wiki](scripts/overlay-reset.md)/[GitHub](https://github.com/meisnate12/PMM-overlay-reset.md) | +| `Plex Image Cleanup` | Script to clean up Plex's Image Cache. | [Wiki](scripts/image-cleanup.md)/[GitHub](https://github.com/meisnate12/Plex-Image-Cleanup) | diff --git a/docs/pmm/essentials/scripts/cleanup.png b/docs/pmm/essentials/scripts/cleanup.png new file mode 100644 index 00000000..8c116d64 Binary files /dev/null and b/docs/pmm/essentials/scripts/cleanup.png differ diff --git a/docs/home/scripts/image-cleanup.md b/docs/pmm/essentials/scripts/image-cleanup.md similarity index 77% rename from docs/home/scripts/image-cleanup.md rename to docs/pmm/essentials/scripts/image-cleanup.md index b0f73505..470663dd 100644 --- a/docs/home/scripts/image-cleanup.md +++ b/docs/pmm/essentials/scripts/image-cleanup.md @@ -1,25 +1,14 @@ # Plex Image Cleanup -[![GitHub release (latest by date)](https://img.shields.io/github/v/release/meisnate12/Plex-Image-Cleanup?style=plastic)](https://github.com/meisnate12/Plex-Image-Cleanup/releases) -[![Docker Image Version (latest semver)](https://img.shields.io/docker/v/meisnate12/plex-image-cleanup?label=docker&sort=semver&style=plastic)](https://hub.docker.com/r/meisnate12/plex-image-cleanup) -[![Docker Pulls](https://img.shields.io/docker/pulls/meisnate12/plex-image-cleanup?style=plastic)](https://hub.docker.com/r/meisnate12/plex-image-cleanup) -[![Develop GitHub commits since latest stable release (by SemVer)](https://img.shields.io/github/commits-since/meisnate12/Plex-Image-Cleanup/latest/develop?label=Commits%20in%20Develop&style=plastic)](https://github.com/meisnate12/Plex-Image-Cleanup/tree/develop) +Your Plex folders are growing out of control. You use overlays from [Plex Meta Manager](https://github.com/meisnate12/Plex-Meta-Manager) (PMM) or upload lots of custom art from [Title Card Maker](https://github.com/CollinHeist/TitleCardMaker) (TCM) that you no longer want to use or need to eliminate. You don't want to perform the [plex dance](https://www.plexopedia.com/plex-media-server/general/plex-dance/) if you can avoid it. This script will free up gigs of space.... -[![Discord](https://img.shields.io/discord/822460010649878528?color=%2300bc8c&label=Discord&style=plastic)](https://discord.gg/gYU8wATxKw) -[![Reddit](https://img.shields.io/reddit/subreddit-subscribers/PlexMetaManager?color=%2300bc8c&label=r%2FPlexMetaManager&style=plastic)](https://www.reddit.com/r/PlexMetaManager/) -[![Wiki](https://img.shields.io/readthedocs/plex-meta-manager?color=%2300bc8c&style=plastic)](https://metamanager.wiki/en/latest/home/scripts/image-cleanup.html) -[![GitHub Sponsors](https://img.shields.io/github/sponsors/meisnate12?color=%238a2be2&style=plastic)](https://github.com/sponsors/meisnate12) -[![Sponsor or Donate](https://img.shields.io/badge/-Sponsor%2FDonate-blueviolet?style=plastic)](https://github.com/sponsors/meisnate12) - -Your Plex folders are growing out of control. You use overlays from [Plex Meta Manager](https://github.com/meisnate12/Plex-Meta-Manager) (PMM) or upload lots of custom art from [Title Card Maker](https://github.com/CollinHeist/TitleCardMaker) (TCM) that you no longer want to use or need to eliminate. You don't want to perform the [plex dance](https://www.plexopedia.com/plex-media-server/general/plex-dance/) if you can avoid it. This script can be a solution, and may free up gigs of space.... - -I can also clean the PhotoTranscoder Directory and run the Plex operations Empty Trash, Clean Bundles, and Optimize DB. +As well as being able to clean the PhotoTranscoder Directory and running the Plex operations Empty Trash, Clean Bundles, and Optimize DB. Special Thanks to [bullmoose20](https://github.com/bullmoose20) for the original [Plex Bloat Fix](https://github.com/bullmoose20/Plex-Stuff#plex-bloat-fix) (PBF) Script this is based on. ![](cleanup.png) -This image shows which photos would be removed. Red is removed, Green is kept because it is the actively selected poster. The other two come standard from Plex when the posters are retrieved so the script will not touch those either: +This image shows which photos would be removed. Red is removed, Green is kept because it is the actively selected poster. The other two come standard from Plex when the posters are retrieved so Plex Meta Manager will not touch those either: ## Installing Plex Image Cleanup @@ -30,8 +19,6 @@ Generally, Plex Image Cleanup can be installed in one of two ways: GENERALLY SPEAKING, running as a Docker container is simpler, as you won't have to be concerned about installing Python, or support libraries, or any possible system conflicts generated by those actions. -HOWEVER, you will have to give careful consideration to mapping directories into the container. - For this reason, it's generally recommended that you install via Docker rather than directly on the host. If you have some specific reason to avoid Docker, or you prefer running it as a Python script for some particular reason, then this general recommendation is not aimed at you. It's aimed at someone who doesn't have an existing compelling reason to choose one over the other. @@ -78,7 +65,7 @@ docker run -v <PATH_TO_CONFIG>:/config:rw -v <PATH_TO_PLEX>:/plex:rw meisnate12/ ``` * The `-v <PATH_TO_CONFIG>:/config:rw` and `-v <PATH_TO_PLEX>:/plex:rw` flags mount the location you choose as a persistent volumes to store your files and give access to plex. * Change `<PATH_TO_CONFIG>` to a folder where your .env and other files are. - * Change `<PATH_TO_PLEX>` to the "Plex Media Server" folder inside the Plex app data folder (this is the folder that contains `Cache`, `Metadata`, `Plug-in Support`). + * Change `<PATH_TO_PLEX>` to the folder where your Plex Folder is (It contains folders: Cache, Metadata, Plug-in Support). * If your directory has spaces (such as "My Documents"), place quotation marks around your directory pathing as shown here: `-v "<PATH_TO_CONFIG>:/config:rw"` Example Docker Run command: @@ -124,7 +111,7 @@ An example schedule would be: ### Tips -* Ensure you have proper permissions to delete/rename or the script will fail +* Ensure you have proper permissions to delete/rename or Plex Meta Manager will fail * For performance purposes, it's recommended to run locally so that accessing the files is not done over a network share ## Global Options @@ -133,7 +120,7 @@ Plex Image Cleanup has multiple Global Options to change how it runs these are s 1. Setting the Environment Variable. 2. Adding the Environment Variables to `config/.env` - * `example.env` is included as an example but is not read by the script it will only read a file specifically called `.env`. + * `example.env` is included as an example but is not read by Plex Meta Manager it will only read a file specifically called `.env`. 3. Use the Shell Command when launching. ### Example .env File @@ -157,31 +144,12 @@ TRACE=False LOG_REQUESTS=False ``` -IMPORTANT: If you are running this in Docker, remember that these settings are being read *inside the container*, so, for example, `PLEX_PATH` cannot be a path on the host. You will need to map directories into the container [as shown in the docker run command above], then use those mapped directories in the `.env`. Similarly, the URL may need to change depnding on how you have Docker networking set up. An address on your LAN may not work. - ### Base Options #### Plex Path The only required Option is the `Plex Path` Option which is the Plex Config Folder containing the servers Metadata including `Cache`, `Metadata`, and `Plug-in Support`. -IMPORTANT: This path has to be valid in the context where the script is running. If you are running it on the host, it will be a direct path like `/opt/plex/Library/Application\ Support/Plex\ Media\ Server` or `X:\Plex Media Server`. If you are running the script in docker, the script cannot see anything on the host, so you will have to map that path into the the container and then enter the mapped path into the env file. - -For instance, in the example above: -``` -docker run -v "X:\Media\Plex Image Cleanup\config:/config:rw" -v "X:\Plex Media Server:/plex:rw" meisnate12/plex-image-cleanup -``` -The `.env` would contain: -``` -PLEX_PATH=/plex # pointing to mapped path *inside the container* -``` -NOT -``` -PLEX_PATH=X:\Plex Media Server # wrong because the script cannot see *outside the container* -``` - -This is not specific to Plex Image Cleanup; it's standard Docker behavior. - To set the `Plex Path` for the run: * **Environment Variable:** `PLEX_PATH=C:\Plex Media Server` * **Shell Command:** `-p "C:\Plex Media Server"` or `--plex "C:\Plex Media Server"` @@ -314,7 +282,7 @@ Add a Schedule Block to the `Schedule` Option to run Plex Image Cleanup using a ### Schedule Blocks -Schedule Blocks define how and when the script will run. +Schedule Blocks define how and when Plex Meta Manager will run. Each Schedule Blocks has 2 required parts (`time` and `frequency`) and 1 optional part (`options`) all separated with a `|`. (Example: `time|frequency` or `time|frequency|options`) diff --git a/docs/home/scripts/overlay-reset.md b/docs/pmm/essentials/scripts/overlay-reset.md similarity index 74% rename from docs/home/scripts/overlay-reset.md rename to docs/pmm/essentials/scripts/overlay-reset.md index 244c18e9..a5b83f6b 100644 --- a/docs/home/scripts/overlay-reset.md +++ b/docs/pmm/essentials/scripts/overlay-reset.md @@ -1,16 +1,5 @@ # Plex Meta Manager Overlay Reset -[![GitHub release (latest by date)](https://img.shields.io/github/v/release/meisnate12/PMM-Overlay-Reset?style=plastic)](https://github.com/meisnate12/PMM-Overlay-Reset/releases) -[![Docker Image Version (latest semver)](https://img.shields.io/docker/v/meisnate12/pmm-overlay-reset?label=docker&sort=semver&style=plastic)](https://hub.docker.com/r/meisnate12/pmm-overlay-reset) -[![Docker Pulls](https://img.shields.io/docker/pulls/meisnate12/pmm-overlay-reset?style=plastic)](https://hub.docker.com/r/meisnate12/pmm-overlay-reset) -[![Develop GitHub commits since latest stable release (by SemVer)](https://img.shields.io/github/commits-since/meisnate12/PMM-Overlay-Reset/latest/develop?label=Commits%20in%20Develop&style=plastic)](https://github.com/meisnate12/PMM-Overlay-Reset/tree/develop) - -[![Discord](https://img.shields.io/discord/822460010649878528?color=%2300bc8c&label=Discord&style=plastic)](https://discord.gg/gYU8wATxKw) -[![Reddit](https://img.shields.io/reddit/subreddit-subscribers/PlexMetaManager?color=%2300bc8c&label=r%2FPlexMetaManager&style=plastic)](https://www.reddit.com/r/PlexMetaManager/) -[![Wiki](https://img.shields.io/readthedocs/plex-meta-manager?color=%2300bc8c&style=plastic)](https://metamanager.wiki/en/latest/home/scripts/overlay-reset.html) -[![GitHub Sponsors](https://img.shields.io/github/sponsors/meisnate12?color=%238a2be2&style=plastic)](https://github.com/sponsors/meisnate12) -[![Sponsor or Donate](https://img.shields.io/badge/-Sponsor%2FDonate-blueviolet?style=plastic)](https://github.com/sponsors/meisnate12) - Plex Meta Manager Overlay Reset is an open source Python 3 project that has been created to Remove all Overlays placed on a Plex Library. ## Installing PMM Overlay Reset @@ -108,23 +97,22 @@ Each option can be applied in three ways: | Option | Description | Required | |:------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:--------:| -| Plex URl | Plex URL of the Server you want to connect to.<br>**Shell Command:** `-u` or `--url "http://192.168.1.12:32400"`<br>**Environment Variable:** `PLEX_URL=http://192.168.1.12:32400` | ✅ | -| Plex Token | Plex Token of the Server you want to connect to.<br>**Shell Command:** `-t` or `--token 123456789`<br>**Environment Variable:** `PLEX_TOKEN=123456789` | ✅ | -| Plex Library | Plex Library Name you want to reset.<br>**Shell Command:** `-l` or `--library Movies`<br>**Environment Variable:** `PLEX_LIBRARY=Movies` | ✅ | -| PMM Asset Folder | Plex Meta Manager Asset Folder to Scan for restoring posters.<br>**Shell Command:** `-a` or `--asset "C:\Plex Meta Manager\config\assets"`<br>**Environment Variable:** `PMM_ASSET=C:\Plex Meta Manager\config\assets` | ❌ | -| PMM Original Folder | Plex Meta Manager Original Folder to Scan for restoring posters.<br>**Shell Command:** `-o` or `--original "C:\Plex Meta Manager\config\overlays\Movies Original Posters"`<br>**Environment Variable:** `PMM_ORIGINAL=C:\Plex Meta Manager\config\overlays\Movies Original Posters` | ❌ | -| TMDb V3 API Key | TMDb V3 API Key for restoring posters from TMDb.<br>**Shell Command:** `-ta` or `--tmdbapi 123456789123456789`<br>**Environment Variable:** `TMDBAPI=123456789123456789` | ❌ | -| Start From | Plex Item Title to Start restoring posters from.<br>**Shell Command:** `-st` or `--start "Mad Max"`<br>**Environment Variable:** `START=Mad Max` | ❌ | -| Items | Restore specific Plex Items by Title. Can use a bar-separated (<code>|</code>) list.<br>**Shell Command:** `-it` or <code>--items "Mad Max|Mad Max 2"</code><br>**Environment Variable:** <code>ITEMS=Mad Max|Mad Max 2</code> | ❌ | -| Timeout | Timeout can be Any number greater than 0. **Default:** `600`<br>**Shell Command:** `-ti` or `--timeout 1000`<br>**Environment Variable:** `TIMEOUT=1000` | ❌ | -| Dry Run | Run as a Dry Run without making changes in Plex.<br>**Shell Command:** `-d` or `--dry`<br>**Environment Variable:** `DRY_RUN=True` | ❌ | -| Flat Assets | PMM Asset Folder uses [Flat Assets Image Paths](https://metamanager.wiki/en/latest/home/guides/assets.html#asset-naming).<br>**Shell Command:** `-f` or `--flat`<br>**Environment Variable:** `PMM_FLAT=True` | ❌ | -| Reset Season Posters | Restore Season posters during run.<br>**Shell Command:** `-s` or `--season`<br>**Environment Variable:** `SEASON=True` | ❌ | -| Reset Episode Posters | Restore Episode posters during run.<br>**Shell Command:** `-e` or `--episode`<br>**Environment Variable:** `EPISODE=True` | ❌ | -| Ignore Automatic Resume | Ignores the automatic resume.<br>**Shell Command:** `-ir` or `--ignore-resume`<br>**Environment Variable:** `IGNORE_RESUME=True` | ❌ | -| Trace Logs | Run with extra trace logs.<br>**Shell Command:** `-tr` or `--trace`<br>**Environment Variable:** `TRACE=True` | ❌ | -| Log Requests | Run with every request logged.<br>**Shell Command:** `-lr` or `--log-requests`<br>**Environment Variable:** `LOG_REQUESTS=True` | ❌ | - +| Plex URl | Plex URL of the Server you want to connect to.<br>**Shell Command:** `-u` or `--url "http://192.168.1.12:32400"`<br>**Environment Variable:** `PLEX_URL=http://192.168.1.12:32400` | :fontawesome-solid-circle-check:{ .green } | +| Plex Token | Plex Token of the Server you want to connect to.<br>**Shell Command:** `-t` or `--token 123456789`<br>**Environment Variable:** `PLEX_TOKEN=123456789` | :fontawesome-solid-circle-check:{ .green } | +| Plex Library | Plex Library Name you want to reset.<br>**Shell Command:** `-l` or `--library Movies`<br>**Environment Variable:** `PLEX_LIBRARY=Movies` | :fontawesome-solid-circle-check:{ .green } | +| PMM Asset Folder | Plex Meta Manager Asset Folder to Scan for restoring posters.<br>**Shell Command:** `-a` or `--asset "C:\Plex Meta Manager\config\assets"`<br>**Environment Variable:** `PMM_ASSET=C:\Plex Meta Manager\config\assets` | :fontawesome-solid-circle-xmark:{ .red } | +| PMM Original Folder | Plex Meta Manager Original Folder to Scan for restoring posters.<br>**Shell Command:** `-o` or `--original "C:\Plex Meta Manager\config\overlays\Movies Original Posters"`<br>**Environment Variable:** `PMM_ORIGINAL=C:\Plex Meta Manager\config\overlays\Movies Original Posters` | :fontawesome-solid-circle-xmark:{ .red } | +| TMDb V3 API Key | TMDb V3 API Key for restoring posters from TMDb.<br>**Shell Command:** `-ta` or `--tmdbapi 123456789123456789`<br>**Environment Variable:** `TMDBAPI=123456789123456789` | :fontawesome-solid-circle-xmark:{ .red } | +| Start From | Plex Item Title to Start restoring posters from.<br>**Shell Command:** `-st` or `--start "Mad Max"`<br>**Environment Variable:** `START=Mad Max` | :fontawesome-solid-circle-xmark:{ .red } | +| Items | Restore specific Plex Items by Title. Can use a bar-separated (<code>|</code>) list.<br>**Shell Command:** `-it` or <code>--items "Mad Max|Mad Max 2"</code><br>**Environment Variable:** <code>ITEMS=Mad Max|Mad Max 2</code> | :fontawesome-solid-circle-xmark:{ .red } | +| Timeout | Timeout can be any number greater then 0. **Default:** `600`<br>**Shell Command:** `-ti` or `--timeout 1000`<br>**Environment Variable:** `TIMEOUT=1000` | :fontawesome-solid-circle-xmark:{ .red } | +| Dry Run | Run as a Dry Run without making changes in Plex.<br>**Shell Command:** `-d` or `--dry`<br>**Environment Variable:** `DRY_RUN=True` | :fontawesome-solid-circle-xmark:{ .red } | +| Flat Assets | PMM Asset Folder uses [Flat Assets Image Paths](../../install/guides/assets.md#asset-naming).<br>**Shell Command:** `-f` or `--flat`<br>**Environment Variable:** `PMM_FLAT=True` | :fontawesome-solid-circle-xmark:{ .red } | +| Reset Season Posters | Restore Season posters during run.<br>**Shell Command:** `-s` or `--season`<br>**Environment Variable:** `SEASON=True` | :fontawesome-solid-circle-xmark:{ .red } | +| Reset Episode Posters | Restore Episode posters during run.<br>**Shell Command:** `-e` or `--episode`<br>**Environment Variable:** `EPISODE=True` | :fontawesome-solid-circle-xmark:{ .red } | +| Ignore Automatic Resume | Ignores the automatic resume.<br>**Shell Command:** `-ir` or `--ignore-resume`<br>**Environment Variable:** `IGNORE_RESUME=True` | :fontawesome-solid-circle-xmark:{ .red } | +| Trace Logs | Run with extra trace logs.<br>**Shell Command:** `-tr` or `--trace`<br>**Environment Variable:** `TRACE=True` | :fontawesome-solid-circle-xmark:{ .red } | +| Log Requests | Run with every request logged.<br>**Shell Command:** `-lr` or `--log-requests`<br>**Environment Variable:** `LOG_REQUESTS=True` | :fontawesome-solid-circle-xmark:{ .red } | ### Example .env File ``` diff --git a/docs/pmm/essentials/yaml.md b/docs/pmm/essentials/yaml.md new file mode 100644 index 00000000..d96ab4dd --- /dev/null +++ b/docs/pmm/essentials/yaml.md @@ -0,0 +1,257 @@ +# YAML Tutorial + +All of Plex Meta Manager's Config, Metadata, Overlay, and Playlist Files are written in the YAML data structure. + +This tutorial will help you understand the specific parts of the files. + +## Example YAML File + +```yaml +libraries: + Movies: + metadata_path: + - pmm: basic + - pmm: imdb + overlay_path: + - pmm: ribbon + template_variables: + use_metacritic: false + use_common: false + TV Shows: + metadata_path: + - pmm: basic + - pmm: imdb + overlay_path: + - pmm: ribbon +settings: + cache: true + cache_expiration: 60 + asset_directory: + - config/movie assets + - config/tv assets +``` + +## Basic YAML Syntax + +A YAML format primarily uses 3 node types: + +1. Dictionaries/Mappings: + The content of a mapping node is an unordered set of key/value node pairs, with the restriction that each of the keys is unique. YAML places no further restrictions on the nodes. + +2. Lists/Arrays: + The content of a list node is an ordered series of zero or more nodes. In particular, a sequence may contain the same node more than once. It could even contain itself. + +3. Literals (Strings, numbers, boolean, etc.): + The content of a scalar node is an opaque datum that can be presented as a series of zero or more Unicode characters. + +Let us try and identify where these appear in the sample YAML file we saw earlier. + +```yaml +# Starts with a top level Dictionary with keys `libraries` and `settings` +libraries: # Value is a Dictionary with keys `Movies` and `TV Shows` + Movies: # Value is a Dictionary with keys `metadata_path` and `overlay_path` + metadata_path: # Value is a List with two Items + - pmm: basic # List Item is a Dictionary with one key pair whose value is a String Literal + - pmm: imdb # List Item is a Dictionary with one key pair whose value is a String Literal + overlay_path: # Value is a List with one Item + - pmm: ribbon # List Item is a Dictionary with keys `pmm` and `template_variables` with `pmm`'s value a String Literal + template_variables: # Value is a Dictionary with keys `use_metacritic` and `use_common` + use_metacritic: false # Value is a Boolean Literal + use_common: false # Value is a Boolean Literal + TV Shows: # Value is a Dictionary with keys `metadata_path` and `overlay_path` + metadata_path: # Value is a List with two Items + - pmm: basic # List Item is a Dictionary with one key pair whose value is a String Literal + - pmm: imdb # List Item is a Dictionary with one key pair whose value is a String Literal + overlay_path: # Value is a List with one Item + - pmm: ribbon # List Item is a Dictionary with one key pair whose value is a String Literal +settings: # Value is a Dictionary with keys `cache` and `cache_expiration` + cache: true # Value is a Boolean Literal + cache_expiration: 60 # Value is a Number Literal + asset_directory: # Value is a List with two Items + - config/movie assets # List Item is a String Literal + - config/tv assets # List Item is a String Literal +``` + +## Indentation + +A YAML file relies on whitespace and indentation to indicate nesting. The number of spaces used for indentation doesn’t matter as long as they are consistent. + +**It is critical to note that tab characters cannot be used for indentation in YAML files; only spaces can be used.** + +```yaml +libraries: # Nesting Level 1 + Movies: # Nesting Level 2 + metadata_path: # Nesting Level 3 + - pmm: basic # Nesting Level 4 + - pmm: imdb # Nesting Level 4 + overlay_path: # Nesting Level 3 + - pmm: ribbon # Nesting Level 4 + template_variables: # Nesting Level 5 + use_metacritic: false # Nesting Level 6 + use_common: false # Nesting Level 6 + TV Shows: # Nesting Level 2 + metadata_path: # Nesting Level 3 + - pmm: basic # Nesting Level 4 + - pmm: imdb # Nesting Level 4 + overlay_path: # Nesting Level 3 + - pmm: ribbon # Nesting Level 4 +settings: # Nesting Level 1 + cache: true # Nesting Level 2 + cache_expiration: 60 # Nesting Level 2 +``` + +## Dictionaries + +Dictionaries are used to associate key/value pairs that are unordered. Dictionaries can be nested by increasing the indentation, or new dictionaries can be created at the same level by resolving the previous one. + +```yaml +cache: true +cache_expiration: 60 +``` + +The "keys" are `cache` and `cache_expiration` and the "values" are `true` and `60` respectively. + +### In-Line Dictionaries + +you can represent a dictionary on a single line by using `{` and `}` + +```yaml +settings: {cache: true, cache_expiration: 60} +``` + +is equivalent to + +```yaml +settings: + cache: true + cache_expiration: 60 +``` + +## Lists + +Lists in YAML are represented by using the hyphen (-) and space. They are ordered and can be embedded inside a map using indentation. + +```yaml +asset_directory: + - config/movie assets + - config/tv assets +``` + +The first item in the list is `config/movie assets` and the second is `config/tv assets`. + +### In-Line Lists + +you can represent a dictionary on a single line by using `[` and `]` + +```yaml +settings: + asset_directory: [config/movie assets, config/tv assets] +``` + +is equivalent to + +```yaml +settings: + asset_directory: + - config/movie assets + - config/tv assets +``` + +## Literals + +Literals can come in multiple types: + +* String: any sequence of characters + +* Number: any representation of a number + +* Boolean: `true` or `false` + +### String Literals + +The string literals do not require to be quoted. It is only important to quote them when they contain a value that can be mistaken as a special character. + +Here is an example where the string has to be quoted as `&` and `:` are special characters. + +YAML Special Characters: `{`, `}`, `[`, `]`, `,`, `&`, `:`, `*`, `#`, `?`, `|`, `-`, `<`. `>`, `=`, `!`, `%`, `@`, `\` + +There are many occurrences of these special characters where quotes are not needed but if the YAML fails to load it could easily be because one of these are unquoted. + +```yaml +message1: YAML & JSON # breaks as a & is a special character +message2: "YAML & JSON" # Works as the string is quoted +message: 3: YAML # breaks as a : is a special character +"message: 3": YAML # Works as the key string is quoted +``` + +#### Multiline Strings + +Strings can be interpreted as multiline using the pipe (`|`) character. + +```yaml +message: | + this is + a real multiline + message +``` + +This would be read as `this is\na real multiline\nmessage` + +## Comments + +YAML file also supports comments, unlike JSON. A comment starts with #. + +```yaml +# Strats with a top level Dictionary with keys `libraries` and `settings` +libraries: # Value is a Dictionary with keys `Movies` and `TV Shows` +``` + +Everything after `#` on a line is ignored. + +## Anchors and Aliases + +With a lot of configuration, configuration files can become quite large. + +In YAML files, anchors (`&`) and aliases (`*`) are used to avoid duplication. When writing large configurations in YAML, it is common for a specific configuration to be repeated. For example, the vars config is repeated for all three services in the following YAML snippet. + +```yaml +libraries: + Movies: + metadata_path: + - pmm: basic + - pmm: imdb + overlay_path: + - pmm: ribbon + template_variables: + use_metacritic: false + use_common: false + TV Shows: + metadata_path: + - pmm: basic + - pmm: imdb + overlay_path: + - pmm: ribbon +``` + +As more and more things are repeated for large configuration files, this becomes tedious. + +Anchors and aliases allow us to rewrite the same snippet without having to repeat any configuration. + +Anchors (`&`) are used to define a chunk of configuration, and aliases (`*`) are used to refer to that chunk at a different part of the configuration. + +```yaml +libraries: + Movies: + metadata_path: &paths # Anchor called `paths` + - pmm: basic + - pmm: imdb + overlay_path: + - pmm: ribbon + template_variables: + use_metacritic: false + use_common: false + TV Shows: + metadata_path: *paths # Alias to call the above `paths` section + overlay_path: + - pmm: ribbon +``` \ No newline at end of file diff --git a/docs/home/guides/assets.md b/docs/pmm/install/guides/assets.md similarity index 94% rename from docs/home/guides/assets.md rename to docs/pmm/install/guides/assets.md index d6cb4f4b..c0447c91 100644 --- a/docs/home/guides/assets.md +++ b/docs/pmm/install/guides/assets.md @@ -1,3 +1,7 @@ +--- +search: + boost: 2 +--- # Image Asset Directory Guide The Image Asset Directories can be used to update the posters and backgrounds of collections, movies, shows, seasons, and episodes. @@ -18,8 +22,8 @@ settings: - config/more_assets - config/assets_ahoy ``` - -* You can specify an Image Asset Directory per Metadata/Playlist/Overlay File when calling the file. See [Path Types](../../config/paths.md#asset-directory) for how to define them. +[paths.md](..%2F..%2F..%2Fconfig%2Fpaths.md) +* You can specify an Image Asset Directory per Metadata/Playlist/Overlay File when calling the file. See [Path Types](../../../config/paths.md#asset-directory) for how to define them. * By default [if no `asset_directory` is specified], the program will look in the same folder as your `config.yml` for a folder called `assets`. ## Applying assets @@ -36,7 +40,7 @@ Movies: assets_for_all: true ``` -* If you want to silence the `Asset Warning: No poster or background found in an assets folder for 'TITLE'` you can use the [`show_missing_assets` Setting Attribute](../../config/settings.md#show-missing-assets): +* If you want to silence the `Asset Warning: No poster or background found in an assets folder for 'TITLE'` you can use the [`show_missing_assets` Setting Attribute](../../../config/settings.md#show-missing-assets): ```yaml settings: show_missing_assets: false @@ -48,7 +52,7 @@ If a media item has an asset associated with it, that asset image is taken as th ## Asset Naming -The table below shows the asset folder path structures that will be searched for. There are two options for how Plex Meta Manager looks at the files inside your Asset Directories. Choose an option with the [`asset_folders` Setting Attribute](../../config/settings.md#image-asset-folders). Note that `asset_folders` is a toggle; you can't put some images in folders and some not in a context where it is enabled. +The table below shows the asset folder path structures that will be searched for. There are two options for how Plex Meta Manager looks at the files inside your Asset Directories. Choose an option with the [`asset_folders` Setting Attribute](../../../config/settings.md#image-asset-folders). Note that `asset_folders` is a toggle; you can't put some images in folders and some not in a context where it is enabled. | Image Type | Asset Folders Image Paths<br>`asset_folders: true` | Flat Assets Image Paths<br>`asset_folders: false` | |:---------------------------------|:---------------------------------------------------|:--------------------------------------------------| @@ -164,7 +168,7 @@ The table below shows the asset folder path structures that will be searched for * When `asset_folders` is set to `true` movie/show folders can be nested inside other folders, but you must specify how deep you want to search because the more levels to search the longer it takes. -* You can specify how deep you want to scan by using the [`asset_depth` Setting Attribute](../../config/settings.md#asset-depth). +* You can specify how deep you want to scan by using the [`asset_depth` Setting Attribute](../../../config/settings.md#asset-depth). Here's an example config folder structure with an assets directory with `asset_folders` set to true and false. diff --git a/docs/home/guides/contributor.md b/docs/pmm/install/guides/contributor.md similarity index 100% rename from docs/home/guides/contributor.md rename to docs/pmm/install/guides/contributor.md diff --git a/docs/pmm/install/guides/default-collections.png b/docs/pmm/install/guides/default-collections.png new file mode 100644 index 00000000..a2ec8129 Binary files /dev/null and b/docs/pmm/install/guides/default-collections.png differ diff --git a/docs/pmm/install/guides/docker.md b/docs/pmm/install/guides/docker.md new file mode 100644 index 00000000..9900b97d --- /dev/null +++ b/docs/pmm/install/guides/docker.md @@ -0,0 +1,471 @@ +# Docker Walkthrough + +This article will walk you through getting Plex Meta Manager set up and running via Docker. It will cover: + +1. Installing Docker +2. Retrieving the image +3. Setting up the initial config file +4. Setting up a metadata file and creating a couple sample collections +5. Creating a docker container that will keep running in the background + +The specific steps you will be taking: + +1. Verify that Docker is installed and install it if not +2. Use `docker` to retrieve the Plex Meta Manager Docker image +3. Create a directory for your config files and learn how to tell Docker to use it +4. Gather two things that Plex Meta Manager requires: + - TMDb API Key + - Plex URL and Token +5. Then, iteratively: + - use `docker` to run the image + - use a text editor to modify a couple of text files until you have a working config file and a single working metadata file. + +Note that running a Docker container is inherently a pretty technical process. If you are unable or unwilling to learn the rudiments of using Docker, this may not be the tool for you. + +If the idea of editing YAML files by hand is daunting, this may not be the tool for you. All the configuration of Plex Meta Manager is done via YAML text files, so if you are unable or unwilling to learn how those work, you should stop here. + +Finally, this walkthrough is intended to give you a basic grounding in how to get Plex Meta Manager running. It doesn't cover how to create your own collections, or how to add overlays, or any of the myriad other things Plex Meta Manager is capable of. It provides a simple "Getting Started" guide for those for whom the standard install instructions make no sense; presumably because you've never run a Docker container before. + + +## Prerequisites + +???+ tip + + Nearly anywhere you see + + ``` { .shell .no-copy } + something like this + ``` + + That’s a command you’re going to type or paste into your terminal (OSX or Linux) or Powershell (Windows). In some cases it's displaying *output* from a command you've typed, but the difference should be apparent in context. + + Additionally, anywhere you see this icon: + + > :fontawesome-solid-circle-plus: + + That's a tooltip, you can press them to get more information. + +???+ warning "Important" + + This walkthrough is going to be pretty pedantic. I’m assuming you’re reading it because you have no idea how to get a Docker container going, so I’m proceeding from the assumption that you want to be walked through every little detail. You’re going to deliberately cause errors and then fix them as you go through it. This is to help you understand what exactly is going on behind the scenes so that when you see these sorts of problems in the wild you will have some background to understand what’s happening. If I only give you the happy path walkthrough, then when you make a typo later on you’ll have no idea where that typo might be or why it’s breaking things. + + I am assuming you do not have any of these tools already installed. When writing this up I started with a brand new Windows 10 install. + + I'm also assuming you are doing this on a computer, not through a NAS interface or the like. You can do all this through something like the Synology NAS UI or Portainer or the like, but those aren't documented here. This uses the docker command line because it works the same on all platforms. + + You may want to take an hour to get familiar with Docker fundamentals with the [official tutorial](https://www.docker.com/101-tutorial/). + + DO NOT MAKE ANY CHANGES BELOW if you want this to just work. Don't change the docker image [`linuxserver.io` will not work for this, for example]; don't change the paths, etc. + +### Prepare a small test library [optional] + +{% include-markdown "./wt/wt-test-library.md" %} + +### Starting up your terminal + +Since most of this is typing commands into a terminal, you'll need to have a terminal open. + +=== ":fontawesome-brands-linux: Linux" + + If your Linux system is remote to your computer, connect to it via SSH. That SSH session is the terminal you will be using, so leave it open. + + If you are running this on a desktop Linux machine, start up the Terminal application. That window will be the terminal you will type commands into throughout this walkthrough, so leave it open. + +=== ":fontawesome-brands-apple: macOS" + + Open the Terminal app; this window will be the place you type commands throughout this walkthrough, so leave it open. The Terminal app is in Applications -> Utilities. + + You can also use iTerm or some other terminal app if you wish. If you don't know what that means, use Terminal. + +=== ":fontawesome-brands-windows: Windows" + + Use the Start menu to open PowerShell. This will be the window into which you type commands throughout this walkthrough, so leave it open. + + + +### Installing Docker + +To run Docker images, you need to have Docker installed. It is not typically installed on new Mac, Linux, or Windows machines. + +The Docker install is discussed here: [Installing Docker](https://docs.docker.com/engine/install/) + +Once you have Docker installed, test it at the command line with: + +[type this into your terminal] +``` +docker run --rm hello-world +``` +You should see something that starts with: +``` { .shell .no-copy } +Hello from Docker! +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. + +--- + +#### Important note on Docker images + +This tutorial uses the official image, and you should, too. Don't change `meisnate12/plex-meta-manager` 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. + +The great thing about Docker is that all the setup you'd have to do to run Plex Meta Manager is already done inside the docker image. + +That means we can just jump right into running it. At the command prompt, type: + +``` +docker run --rm meisnate12/plex-meta-manager --run + +``` + +This is going to fail with an error. That's expected. + +You should see something like this: + +``` { .shell .no-copy } +Unable to find image 'meisnate12/plex-meta-manager:latest' locally +latest: Pulling from meisnate12/plex-meta-manager +7d63c13d9b9b: Already exists +6ad2a11ca37b: Already exists +8076cdef4689: Pull complete +0ba90f5a7dd0: Pull complete +27c191df269f: Pull complete +c75e4c0924fa: Pull complete +ed6716577767: Pull complete +0547721ab7a3: Pull complete +ea4d35bce959: Pull complete +Digest: sha256:472be179a75259e07e68a3da365851b58c2f98383e02ac815804299da6f99824 +Status: Downloaded newer image for meisnate12/plex-meta-manager:latest +Config Error: config not found at //config +``` + +That error means you don’t have a config file, but we know that most everything is in place to run the image. + +### Setting up a volume map + +Plex Meta Manager, inside that Docker container, can only see other things *inside the container*. We want to add our own files for config and metadata, so we need to set something up that lets Plex Meta Manager see files we create *outside* the container. This is called a "volume map". + +Go to your home directory and create a new directory: + +[type this into your terminal] + +``` { .shell .no-copy linenums="1"} +cd ~ #(1)! +mkdir plex-meta-manager #(2)! +``` + +1. This changes to your home directory, which will be something like `/home/yourname` or `/Users/yourname` or `C:\Users\YourName` depending on the platform. +2. This creates a directory called "plex-meta-manager" + +cd into that directory and create another directory: + +[type this into your terminal] + +``` { .shell .no-copy linenums="1"} +cd ~/plex-meta-manager #(1)! +mkdir config #(2)! +``` + +1. This navigates to the plex-meta-manager folder within your home directory. +2. This creates a directory called "config" + +3. get the full path: + +[type this into your terminal] + +``` +pwd +``` + +This will display a full path: + +=== ":fontawesome-brands-linux: Linux" + + ``` { .shell .no-copy } + /home/YOURUSERNAME/plex-meta-manager + ``` + +=== ":fontawesome-brands-apple: macOS" + + ``` { .shell .no-copy } + /Users/YOURUSERNAME/plex-meta-manager + ``` + +=== ":fontawesome-brands-windows: Windows" + + ``` { .shell .no-copy } + C:\Users\YOURUSERNAME\plex-meta-manager + ``` + +Add "config" onto the end of that to get the host path to your config directory, for example: + +=== ":fontawesome-brands-linux: Linux" + + ``` + /home/YOURUSERNAME/plex-meta-manager/config + ``` + +=== ":fontawesome-brands-apple: macOS" + + ``` + /Users/YOURUSERNAME/plex-meta-manager/config + ``` + +=== ":fontawesome-brands-windows: Windows" + + ``` + C:\Users\YOURUSERNAME\plex-meta-manager\config + ``` + + +You'll need to add this to the docker command every time you run it, like this: + +=== ":fontawesome-brands-linux: Linux" + + ``` + docker run --rm -it -v "/home/YOURUSERNAME/plex-meta-manager/config:/config:rw" meisnate12/plex-meta-manager + ``` + +=== ":fontawesome-brands-apple: macOS" + + ``` + docker run --rm -it -v "/Users/YOURUSERNAME/plex-meta-manager/config:/config:rw" meisnate12/plex-meta-manager + ``` + +=== ":fontawesome-brands-windows: Windows" + + ``` + docker run --rm -it -v "C:\Users\YOURUSERNAME\plex-meta-manager\config:/config:rw" meisnate12/plex-meta-manager + ``` + + +If you run that command now it will display a similar error to before, but without all the image loading: + +``` { .bash .no-copy } +$ docker run --rm -it -v "/Users/mroche/plex-meta-manager/config:/config:rw" meisnate12/plex-meta-manager --run +Config Error: config not found at //config +``` + +Note that I show the example path there. + +<details> + <summary>Why did we create that `config' directory?</summary> + + This was done so that from here on in the instructions match between this walkthrough and the [Local walkthrough](local.md). + +</details> + + +### Create a directory to quiet an error later + +The default config file contains a reference to a directory that will show an error in the output later. That error can safely be ignored, but it causes some confusion with new users from time to time. + +We'll create it here so the error doesn't show up later. + +=== ":fontawesome-brands-linux: Linux" + + [type this into your terminal] + ``` + mkdir config/assets + ``` + +=== ":fontawesome-brands-apple: macOS" + + [type this into your terminal] + ``` + mkdir config/assets + ``` + +=== ":fontawesome-brands-windows: Windows" + + [type this into your terminal] + ``` + mkdir config\assets + ``` + + +### Setting up the initial config file + +{% + include-markdown "./wt/wt-01-basic-config.md" +%} + + +#### Editing the config template + +First, make a copy of the template: + +=== ":fontawesome-brands-linux: Linux" + + Get a copy of the template to edit [type this into your terminal]: + ``` + curl -fLvo config/config.yml https://raw.githubusercontent.com/meisnate12/Plex-Meta-Manager/master/config/config.yml.template + ``` + +=== ":fontawesome-brands-apple: macOS" + + Get a copy of the template to edit [type this into your terminal]: + ``` + curl -fLvo config/config.yml https://raw.githubusercontent.com/meisnate12/Plex-Meta-Manager/master/config/config.yml.template + ``` + +=== ":fontawesome-brands-windows: Windows" + + Go to [this URL](https://raw.githubusercontent.com/meisnate12/Plex-Meta-Manager/master/config/config.yml.template) using a web browser; choose the "Save" command, then save the file at: + ``` + C:\Users\YOURUSERNAME\plex-meta-manager\config\config.yml + ``` + + +Now open the copy in an editor: + +{% + include-markdown "./wt/wt-editor.md" +%} + + +{% + include-markdown "./wt/wt-02-config-bad-library.md" +%} + + +#### Testing the config file + +Save the file: + +{% + include-markdown "./wt/wt-save.md" +%} + + +Then run Plex Meta Manager again: + +{% + include-markdown "./wt/wt-run-docker.md" +%} + + +{% + include-markdown "./wt/wt-03-lib-err-and-fix.md" +%} + + +### Creating a few sample collections + +{% + include-markdown "./wt/wt-04-default-intro.md" +%} + + +So let's run Plex Meta Manager and see this happen: + +{% + include-markdown "./wt/wt-run-docker.md" +%} + + +{% + include-markdown "./wt/wt-04b-default-after.md" +%} + + +### Setting up a metadata file and creating a few sample collections + +{% + include-markdown "./wt/wt-05-local-file.md" +%} + + +Save the file: + +{% + include-markdown "./wt/wt-save.md" +%} + + +Then run Plex Meta Manager again: + +{% + include-markdown "./wt/wt-run-docker.md" +%} + + +{% + include-markdown "./wt/wt-06-local-after.md" +%} + + +### Adding Overlays to movies + +{% + include-markdown "./wt/wt-07-overlay-add.md" +%} + + +Save the file: + +{% + include-markdown "./wt/wt-save.md" +%} + + +Then run Plex Meta Manager again: + +{% + include-markdown "./wt/wt-run-docker.md" +%} + + +{% + include-markdown "./wt/wt-08-overlay-after.md" +%} + + +{% + include-markdown "./wt/wt-09-next-steps.md" +%} + + +## Other Topics + +### Scheduling + +{% + include-markdown "./wt/wt-10-scheduling.md" +%} + + +### I want to use the develop branch + +Add the `develop` tag to the image name in your run command [or wherever you specify the image in your environment] + +``` +docker run --rm -it -v "Plex Meta Manager_PATH_GOES_HERE:/config:rw" meisnate12/plex-meta-manager:develop --run + ^^^^^^^ +``` + +This may not work if you are not using the official image; for example, it does not work with the lsio image. + +### I want to use the nightly branch + +Add the `nightly` tag to the image name in your run command [or wherever you specify the image in your environment] + +``` +docker run --rm -it -v "Plex Meta Manager_PATH_GOES_HERE:/config:rw" meisnate12/plex-meta-manager:nightly --run + ^^^^^^^ +``` + +This may not work if you are not using the official image; for example, it does not work with the lsio image. + +### I want to ensure I am using the master branch + +Add the `latest` tag to the image name in your run command [or wherever you specify the image in your environment] + +``` +docker run --rm -it -v "Plex Meta Manager_PATH_GOES_HERE:/config:rw" meisnate12/plex-meta-manager:latest --run + ^^^^^^ +``` + +This is the only version tag supplied by the lsio image. + diff --git a/docs/pmm/install/guides/finished.png b/docs/pmm/install/guides/finished.png new file mode 100644 index 00000000..8f1ff731 Binary files /dev/null and b/docs/pmm/install/guides/finished.png differ diff --git a/docs/home/guides/formula.md b/docs/pmm/install/guides/formula.md similarity index 99% rename from docs/home/guides/formula.md rename to docs/pmm/install/guides/formula.md index fea33208..764d742d 100644 --- a/docs/home/guides/formula.md +++ b/docs/pmm/install/guides/formula.md @@ -65,6 +65,7 @@ Formula -> Library Folder ``` What matters for plex and for pmm. + * Change the Plex Agent to "Personal Media Shows" for F1 libraries * The show name can be whatever you want it to be but the pre created metadata file will only work if you use just the year numbers. * The season folder can be called whatever you want as long as plex scans it in with the Season Number matching the race number. diff --git a/docs/pmm/install/guides/git-install.png b/docs/pmm/install/guides/git-install.png new file mode 100644 index 00000000..08215607 Binary files /dev/null and b/docs/pmm/install/guides/git-install.png differ diff --git a/docs/home/guides/images.md b/docs/pmm/install/guides/images.md similarity index 95% rename from docs/home/guides/images.md rename to docs/pmm/install/guides/images.md index e573b6f9..a9748321 100644 --- a/docs/home/guides/images.md +++ b/docs/pmm/install/guides/images.md @@ -32,7 +32,7 @@ The LSIO image: 2. only has `latest` version, no `develop` or `nightly`. If you want to switch to `develop` or `nightly` to try a new feature, they aren't available with LSIO image. -3. doesn't support [runtime flags](../environmental.md), only ENV vars. This means that a command like: +3. doesn't support [runtime flags](../../essentials/environmental.md), only ENV vars. This means that a command like: ``` docker run -it --rm -v /opt/pmm/config:/config linuxserver/plex-meta-manager --config config/config.yml -r --run-libraries "Movies - 4K DV" diff --git a/docs/home/guides/initial.md b/docs/pmm/install/guides/initial.md similarity index 68% rename from docs/home/guides/initial.md rename to docs/pmm/install/guides/initial.md index 69e94e90..7fb68499 100644 --- a/docs/home/guides/initial.md +++ b/docs/pmm/install/guides/initial.md @@ -2,6 +2,6 @@ **Before using this guide you should already have installed Plex Meta Manager.** -See the [Installation Page](../installation) for info on how to install Plex Meta Manager. +See the [Installation Page](../installation.md) for info on how to install Plex Meta Manager. This guide is assuming you know how to run pmm with the `--run` run command or the `PMM_RUN` environment variable to perform immediate runs \ No newline at end of file diff --git a/docs/home/guides/kubernetes.md b/docs/pmm/install/guides/kubernetes.md similarity index 99% rename from docs/home/guides/kubernetes.md rename to docs/pmm/install/guides/kubernetes.md index 4e0b7581..ed41452c 100644 --- a/docs/home/guides/kubernetes.md +++ b/docs/pmm/install/guides/kubernetes.md @@ -112,7 +112,7 @@ minimum requirement is the PMM config, but the example here assumes you have a s Here's a config map for the `config.yml` file for PMM. Note there are many placeholders that will need update based on your environment and needs. -Follow the [Trakt Attributes](../../config/trakt) directions for generating the OAuth authorization +Follow the [Trakt Attributes](../../../config/trakt.md) directions for generating the OAuth authorization values. ``` @@ -396,4 +396,4 @@ kind: ConfigMap metadata: name: tv-config-jinja-template namespace: media -``` +``` \ No newline at end of file diff --git a/docs/home/guides/local.md b/docs/pmm/install/guides/local.md similarity index 57% rename from docs/home/guides/local.md rename to docs/pmm/install/guides/local.md index a243e964..7bb50b80 100644 --- a/docs/home/guides/local.md +++ b/docs/pmm/install/guides/local.md @@ -19,7 +19,7 @@ The specific steps you will be taking: 1. use `python` to run the script 2. use a text editor to modify a couple of text files until you have a working config file and a single working metadata file. -Note that running a Python script is inherently a pretty technical process. If you are unable or unwilling to learn the rudiments of using tools like python and git, you should probably strongly consider running PMM in [Docker](docker). That will eliminate the Python and git installs from this process and make it as simple as it can be. +Note that running a Python script is inherently a pretty technical process. If you are unable or unwilling to learn the rudiments of using tools like python and git, you should probably strongly consider running PMM in [Docker](docker.md). That will eliminate the Python and git installs from this process and make it as simple as it can be. If the idea of editing YAML files by hand is daunting, this may not be the tool for you. All the configuration of PMM is done via YAML text files, so if you are unable or unwilling to learn how those work, you should stop here. @@ -47,27 +47,31 @@ This walkthrough is assuming you are doing the entire process on the same platfo ### Prepare a small test library [optional] -```{include} wt/wt-test-library.md -``` +{% + include-markdown "./wt/wt-test-library.md" +%} ### Starting up your terminal. Since most of this is typing commands into a terminal, you'll need to have a terminal open. -````{tab} Linux -If your Linux system is remote to your computer, connect to it via SSH. That SSH session is the terminal you will be using, so leave it open. +=== ":fontawesome-brands-linux: Linux" + + If your Linux system is remote to your computer, connect to it via SSH. That SSH session is the terminal you will be using, so leave it open. + + If you are running this on a desktop Linux machine, start up the Terminal application. That window will be the terminal you will type commands into throughout this walkthrough, so leave it open. + +=== ":fontawesome-brands-apple: macOS" + + Open the Terminal app; this window will be the place you type commands throughout this walkthrough, so leave it open. The Terminal app is in Applications -> Utilities. -If you are running this on a desktop Linux machine, start up the Terminal application. That window will be the terminal you will type commands into throughout this walkthrough, so leave it open. -```` -````{tab} OS X -Open the Terminal app; this window will be the place you type commands throughout this walkthrough, so leave it open. The Terminal app is in Applications -> Utilities. + You can also use iTerm or some other terminal app if you wish. If you don't know what that means, use Terminal. + +=== ":fontawesome-brands-windows: Windows" + + Use the Start menu to open PowerShell. This will be the window into which you type commands throughout this walkthrough, so leave it open. -You can also use iTerm or some other terminal app if you wish. If you don't know what that means, use Terminal. -```` -````{tab} Windows -Use the Start menu to open PowerShell. This will be the window into which you type commands throughout this walkthrough, so leave it open. -```` ### Installing Python. @@ -81,31 +85,34 @@ python3 --version If this doesn't return `3.8.0` or higher, you'll need to get Python 3 installed. -````{tab} Linux -Describing a python install for any arbitrary linux is out of scope here, but if you're using Ubuntu, [this](https://techviewleo.com/how-to-install-python-on-ubuntu-linux/) might be useful. -```` -````{tab} OS X -Follow the instructions here: [Installing Python 3 on Mac OS X](https://docs.python-guide.org/starting/install3/osx/) -```` -````{tab} Windows +=== ":fontawesome-brands-linux: Linux" -Before installing Python, try again without the `3`: + Describing a python install for any arbitrary linux is out of scope here, but if you're using Ubuntu, [this](https://techviewleo.com/how-to-install-python-on-ubuntu-linux/) might be useful. -``` -python --version -``` -Depending on the version of Python, you may need to use one or the other. If this works, you're ready to go, jsut substitute `python` for `python3` in the couple places it appears below. +=== ":fontawesome-brands-apple: macOS" + + Follow the instructions here: [Installing Python 3 on Mac OS X](https://docs.python-guide.org/starting/install3/osx/) -Go to http://www.python.org/download and download the next-to-latest minor version of Python for Windows in 32 or 64-bit as appropriate for your system [probably 64-bit]. As this is written, that's 3.10, while the latest is 3.11. +=== ":fontawesome-brands-windows: Windows" -#### Why the next-to-latest? -There is one dependency [`lxml`] that lags behind new Python releases; this will cause a failure when installing requirements in a moment if the newest Python version is too new [at time of writing the current is 3.11, and the requirements install fails on the lxml library]. You can avoid this by using the next-to-latest release. At some point this will no longer be a problem, but that is outside the control of PMM. + Before installing Python, try again without the `3`: -Once downloaded, run the installer. Tick “Add to path” checkbox at the bottom and click “Install Now”. + ``` + python --version + ``` + Depending on the version of Python, you may need to use one or the other. If this works, you're ready to go, jsut substitute `python` for `python3` in the couple places it appears below. + + Go to http://www.python.org/download and download the next-to-latest minor version of Python for Windows in 32 or 64-bit as appropriate for your system [probably 64-bit]. As this is written, that's 3.10, while the latest is 3.11. + + #### Why the next-to-latest? + + There is one dependency [`lxml`] that lags behind new Python releases; this will cause a failure when installing requirements in a moment if the newest Python version is too new [at time of writing the current is 3.11, and the requirements install fails on the lxml library]. You can avoid this by using the next-to-latest release. At some point this will no longer be a problem, but that is outside the control of PMM. + + Once downloaded, run the installer. Tick “Add to path” checkbox at the bottom and click “Install Now”. + + For Windows 10, you will need to enable scripts in PowerShell. Follow the instructions [here](https://windowsloop.com/enable-powershell-scripts-execution-windows-10) to do so. If you skip this step you're going to hit a hard stop in a moment. -For Windows 10, you will need to enable scripts in PowerShell. Follow the instructions [here](https://windowsloop.com/enable-powershell-scripts-execution-windows-10) to do so. If you skip this step you're going to hit a hard stop in a moment. -```` --- @@ -121,21 +128,24 @@ git --version If this doesn't return a version number, you'll need to get git installed. -````{tab} Linux -The git install is discussed here: [Download for Linux and Unix](https://git-scm.com/download/linux) -```` -````{tab} OS X -The git install is discussed here: [Git - Downloading Package](https://git-scm.com/download/mac) -```` -````{tab} Windows -Download the installer from [here](https://git-scm.com/download/windows) +=== ":fontawesome-brands-linux: Linux" -Run the install; you can probably just accept the defaults and click through except for the step that asks you to choose an editor; you probably want to choose something other than the default there: + The git install is discussed here: [Download for Linux and Unix](https://git-scm.com/download/linux) -![Git Install](git-install.png) +=== ":fontawesome-brands-apple: macOS" + + The git install is discussed here: [Git - Downloading Package](https://git-scm.com/download/mac) + +=== ":fontawesome-brands-windows: Windows" + + Download the installer from [here](https://git-scm.com/download/windows) + + Run the install; you can probably just accept the defaults and click through except for the step that asks you to choose an editor; you probably want to choose something other than the default there: + + ![Git Install](git-install.png) + + This install comes with its own command line interface. **Do not use this interface in this walkthrough**. Continue to do everything here in Powershell. -This install comes with its own command line interface. **Do not use this interface in this walkthrough**. Continue to do everything here in Powershell. -```` --- @@ -206,39 +216,42 @@ Later on you can move it elsewhere if you want, but for now put it there. This This walkthrough is going to use a "virtual environment", since that provides a simple way to keep the requirements for a given thing self-contained; think of it as a "sandbox" for this script. It also provides a clean way to recover from mistakes, and keeps the host system clean. -````{tab} Linux -[type this into your terminal] -``` -python3 -m venv pmm-venv -``` -If you see an error like: -``` -Error: Command '['/home/mroche/Plex-Meta-Manager/pmm-venv/bin/python3', '-Im', 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit status 1. -``` -You probably need to make sure the Python 3.9-specific virtualenv support library is installed: -[type this into your terminal] -``` -sudo apt-get install python3.9-venv -``` -Then try the original venv command above again. -```` -````{tab} OS X -[type this into your terminal] -``` -python3 -m venv pmm-venv -``` -```` -````{tab} Windows -[type this into your terminal] -``` -python -m venv pmm-venv -``` -If you see: -``` -Python was not found; run without arguments to install from the Microsoft Store, or disable this shortcut from Settings > Manage App Execution Aliases. -``` -You apparently didn't check the “Add to path” checkbox above under [installing Python](#installing-python). "Repair" your Python install and check "add python to environment variables". -```` +=== ":fontawesome-brands-linux: Linux" + + [type this into your terminal] + ``` + python3 -m venv pmm-venv + ``` + If you see an error like: + ``` + Error: Command '['/home/mroche/Plex-Meta-Manager/pmm-venv/bin/python3', '-Im', 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit status 1. + ``` + You probably need to make sure the Python 3.9-specific virtualenv support library is installed: + [type this into your terminal] + ``` + sudo apt-get install python3.9-venv + ``` + Then try the original venv command above again. + +=== ":fontawesome-brands-apple: macOS" + + [type this into your terminal] + ``` + python3 -m venv pmm-venv + ``` + +=== ":fontawesome-brands-windows: Windows" + + [type this into your terminal] + ``` + python -m venv pmm-venv + ``` + If you see: + ``` + Python was not found; run without arguments to install from the Microsoft Store, or disable this shortcut from Settings > Manage App Execution Aliases. + ``` + You apparently didn't check the “Add to path” checkbox above under [installing Python](#installing-python). "Repair" your Python install and check "add python to environment variables". + <details> <summary>What did that do?</summary> @@ -260,38 +273,41 @@ If you aren't looking at an error, you're ready to move on. That will create the virtual environment, and then you need to activate it: -````{tab} Linux -[type this into your terminal] -``` -source pmm-venv/bin/activate -``` -```` -````{tab} OS X -[type this into your terminal] -``` -source pmm-venv/bin/activate -``` -```` -````{tab} Windows -[type this into your terminal] -``` -.\pmm-venv\Scripts\activate -``` -If you see something like this: -```powershell -.\pmm-venv\Scripts\activate : File C:\Users\mroche\Plex-Meta-Manager\pmm-venv\Scripts\Activate.ps1 cannot be loaded because running scripts is disabled on this system. For more information, see about_Execution_Policies at https:/go.microsoft.com/fwlink LinkID=135170. -At line:1 char:1 -+ .\pmm-venv\Scripts\activate -+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~ - + CategoryInfo : SecurityError: (:) [], PSSecurityException - + FullyQualifiedErrorId : UnauthorizedAccess -``` -You apparently skipped the "enable scripts in Powershell" step above under [installing Python](#installing-python) for Windows. - -You will need to take care of that before moving on. Follow the instructions [here](https://windowsloop.com/enable-powershell-scripts-execution-windows-10). +=== ":fontawesome-brands-linux: Linux" + + [type this into your terminal] + ``` + source pmm-venv/bin/activate + ``` + +=== ":fontawesome-brands-apple: macOS" + + [type this into your terminal] + ``` + source pmm-venv/bin/activate + ``` + +=== ":fontawesome-brands-windows: Windows" + + [type this into your terminal] + ``` + .\pmm-venv\Scripts\activate + ``` + If you see something like this: + ```powershell + .\pmm-venv\Scripts\activate : File C:\Users\mroche\Plex-Meta-Manager\pmm-venv\Scripts\Activate.ps1 cannot be loaded because running scripts is disabled on this system. For more information, see about_Execution_Policies at https:/go.microsoft.com/fwlink LinkID=135170. + At line:1 char:1 + + .\pmm-venv\Scripts\activate + + ~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + CategoryInfo : SecurityError: (:) [], PSSecurityException + + FullyQualifiedErrorId : UnauthorizedAccess + ``` + You apparently skipped the "enable scripts in Powershell" step above under [installing Python](#installing-python) for Windows. + + You will need to take care of that before moving on. Follow the instructions [here](https://windowsloop.com/enable-powershell-scripts-execution-windows-10). + + Once you have done that, try the activation step again. -Once you have done that, try the activation step again. -```` That command will not produce any output if it works; it will display an error if a problem occurs. @@ -314,24 +330,27 @@ An advantage of doing this in a virtual environment is that in the event somethi **IMPORTANT: In the future, when you want to run the script, you will need to do this "activation" step every time. Not the venv creation, just the activation**: -````{tab} Linux -[type this into your terminal] -``` -source pmm-venv/bin/activate -``` -```` -````{tab} OS X -[type this into your terminal] -``` -source pmm-venv/bin/activate -``` -```` -````{tab} Windows -[type this into your terminal] -``` -.\pmm-venv\Scripts\activate -``` -```` +=== ":fontawesome-brands-linux: Linux" + + [type this into your terminal] + ``` + source pmm-venv/bin/activate + ``` + +=== ":fontawesome-brands-apple: macOS" + + [type this into your terminal] + ``` + source pmm-venv/bin/activate + ``` + +=== ":fontawesome-brands-windows: Windows" + + [type this into your terminal] + ``` + .\pmm-venv\Scripts\activate + ``` + ### If you are running Python 3.12 @@ -402,8 +421,9 @@ Don't worry about the WARNING about `pip version thus-and-such` if it comes up. Let’s make sure it’s working so far. -```{include} wt/wt-run-shell.md -``` +{% + include-markdown "./wt/wt-run-shell.md" +%} This is going to fail with an error, which you will then fix. @@ -421,129 +441,118 @@ The default config file contains a reference to a directory that will show an er We'll create it here so the error doesn't show up later. -````{tab} Linux -[type this into your terminal] -``` -mkdir config/assets -``` -```` -````{tab} OS X -[type this into your terminal] -``` -mkdir config/assets -``` -```` -````{tab} Windows -[type this into your terminal] -``` -mkdir config\assets -``` -```` +=== ":fontawesome-brands-linux: Linux" + + [type this into your terminal] + ``` + mkdir config/assets + ``` + +=== ":fontawesome-brands-apple: macOS" + + [type this into your terminal] + ``` + mkdir config/assets + ``` + +=== ":fontawesome-brands-windows: Windows" + + [type this into your terminal] + ``` + mkdir config\assets + ``` + ### Setting up the initial config file -```{include} wt/wt-01-basic-config.md -``` +{% + include-markdown "./wt/wt-01-basic-config.md" +%} #### Editing the config template First, make a copy of the template. This is going to create a copy of the base template that you can then edit. You only need to do this once. -````{tab} Linux -[type this into your terminal] -``` -cp config/config.yml.template config/config.yml -``` -```` -````{tab} OS X -[type this into your terminal] -``` -cp config/config.yml.template config/config.yml -``` -```` -````{tab} Windows -[type this into your terminal] -``` -copy .\config\config.yml.template .\config\config.yml -``` -```` +=== ":fontawesome-brands-linux: Linux" + + [type this into your terminal] + ``` + cp config/config.yml.template config/config.yml + ``` + +=== ":fontawesome-brands-apple: macOS" + + [type this into your terminal] + ``` + cp config/config.yml.template config/config.yml + ``` + +=== ":fontawesome-brands-windows: Windows" + + [type this into your terminal] + ``` + copy .\config\config.yml.template .\config\config.yml + ``` + Now open the copy in an editor: -```{include} wt/wt-editor.md -``` +{% include-markdown "./wt/wt-editor.md" %} -```{include} wt/wt-02-config-bad-library.md -``` +{% include-markdown "./wt/wt-02-config-bad-library.md" %} #### Testing the config file Save the file: -```{include} wt/wt-save.md -``` +{% include-markdown "./wt/wt-save.md" %} -Then run the script again: +Then run Plex Meta Manager again: -```{include} wt/wt-run-shell.md -``` +{% include-markdown "./wt/wt-run-shell.md" %} -```{include} wt/wt-03-lib-err-and-fix.md -``` +{% include-markdown "./wt/wt-03-lib-err-and-fix.md" %} +### Creating a few sample collections -### Creating a few sample collections. +{% include-markdown "./wt/wt-04-default-intro.md" %} -```{include} wt/wt-04-default-intro.md -``` +So let's run Plex Meta Manager and see this happen: -So let's run the script and see this happen: +{% include-markdown "./wt/wt-run-shell.md" %} -```{include} wt/wt-run-shell.md -``` +{% include-markdown "./wt/wt-04b-default-after.md" %} -```{include} wt/wt-04b-default-after.md -``` - -### Setting up a metadata file and creating a sample collection. +### Setting up a metadata file and creating a sample collection -```{include} wt/wt-05-local-file.md -``` +{% include-markdown "./wt/wt-05-local-file.md" %} Save the file: -```{include} wt/wt-save.md -``` +{% include-markdown "./wt/wt-save.md" %} -Then run the script again: +Then run Plex Meta Manager again: -```{include} wt/wt-run-shell.md -``` +{% include-markdown "./wt/wt-run-shell.md" %} -```{include} wt/wt-06-local-after.md -``` +{% include-markdown "./wt/wt-06-local-after.md" %} -### Adding Overlays to movies. +### Adding Overlays to movies -```{include} wt/wt-07-overlay-add.md -``` +{% include-markdown "./wt/wt-07-overlay-add.md" %} Save the file: -```{include} wt/wt-save.md -``` +{% include-markdown "./wt/wt-save.md" %} -Then run the script again: +Then run Plex Meta Manager again: -```{include} wt/wt-run-shell.md -``` +{% include-markdown "./wt/wt-run-shell.md" %} -```{include} wt/wt-08-overlay-after.md -``` +{% include-markdown "./wt/wt-08-overlay-after.md" %} -```{include} wt/wt-09-next-steps.md -``` +{% include-markdown "./wt/wt-09-next-steps.md" %} When you are done, deactivate the virtual environment: @@ -557,71 +566,78 @@ deactivate ### Scheduling -```{include} wt/wt-10-scheduling.md -``` +{% + include-markdown "./wt/wt-10-scheduling.md" +%} ### I want to update to the latest version of PMM -````{tab} Linux -[type this into your terminal] -``` -cd ~/Plex-Meta-Manager -git pull -source pmm-venv/bin/activate -python -m pip install -r requirements.txt -``` -```` -````{tab} OS X -[type this into your terminal] -``` -cd ~/Plex-Meta-Manager -git pull -source pmm-venv/bin/activate -python -m pip install -r requirements.txt -``` -```` -````{tab} Windows -[type this into your terminal] -``` -cd ~\Plex-Meta-Manager -git pull -.\pmm-venv\Scripts\activate -python -m pip install -r requirements.txt -``` -```` +=== ":fontawesome-brands-linux: Linux" + + [type this into your terminal] + ``` + cd ~/Plex-Meta-Manager + git pull + source pmm-venv/bin/activate + python -m pip install -r requirements.txt + ``` + +=== ":fontawesome-brands-apple: macOS" + + [type this into your terminal] + ``` + cd ~/Plex-Meta-Manager + git pull + source pmm-venv/bin/activate + python -m pip install -r requirements.txt + ``` + +=== ":fontawesome-brands-windows: Windows" + + [type this into your terminal] + ``` + cd ~\Plex-Meta-Manager + git pull + .\pmm-venv\Scripts\activate + python -m pip install -r requirements.txt + ``` + ### I want to use the develop branch -````{tab} Linux -[type this into your terminal] -``` -cd ~/Plex-Meta-Manager -git checkout develop -git pull -source pmm-venv/bin/activate -python -m pip install -r requirements.txt -``` -```` -````{tab} OS X -[type this into your terminal] -``` -cd ~/Plex-Meta-Manager -git checkout develop -git pull -source pmm-venv/bin/activate -python -m pip install -r requirements.txt -``` -```` -````{tab} Windows -[type this into your terminal] -``` -cd ~/Plex-Meta-Manager -git checkout develop -git pull -.\pmm-venv\Scripts\activate -python -m pip install -r requirements.txt -``` -```` +=== ":fontawesome-brands-linux: Linux" + + [type this into your terminal] + ``` + cd ~/Plex-Meta-Manager + git checkout develop + git pull + source pmm-venv/bin/activate + python -m pip install -r requirements.txt + ``` + +=== ":fontawesome-brands-apple: macOS" + + [type this into your terminal] + ``` + cd ~/Plex-Meta-Manager + git checkout develop + git pull + source pmm-venv/bin/activate + python -m pip install -r requirements.txt + ``` + +=== ":fontawesome-brands-windows: Windows" + + [type this into your terminal] + ``` + cd ~/Plex-Meta-Manager + git checkout develop + git pull + .\pmm-venv\Scripts\activate + python -m pip install -r requirements.txt + ``` + ### I want to use the nightly branch @@ -631,5 +647,4 @@ Follow the instructions for the `develop` branch above, subsituting `nightly` fo Follow the instructions for the `develop` branch above, subsituting `master` for `develop` -The reinstall of requirements every time is probably overkill, but it's harmless and ensures that you always get any new versions or new requirements. - +The reinstall of requirements every time is probably overkill, but it's harmless and ensures that you always get any new versions or new requirements. \ No newline at end of file diff --git a/docs/home/guides/movie-lib-name.png b/docs/pmm/install/guides/movie-lib-name.png similarity index 100% rename from docs/home/guides/movie-lib-name.png rename to docs/pmm/install/guides/movie-lib-name.png diff --git a/docs/pmm/install/guides/overlays.png b/docs/pmm/install/guides/overlays.png new file mode 100644 index 00000000..5f2ae8d3 Binary files /dev/null and b/docs/pmm/install/guides/overlays.png differ diff --git a/docs/pmm/install/guides/qnap.md b/docs/pmm/install/guides/qnap.md new file mode 100644 index 00000000..4ccdf5e1 --- /dev/null +++ b/docs/pmm/install/guides/qnap.md @@ -0,0 +1,164 @@ +# QNAP Walkthrough + +This is a quick walkthrough of setting up the Plex-Meta-Manager Docker container in the QNAP "Container Station" UI. + +The "Container Station" UI on your QNAP may differ from these screenshots, but the concepts are the same: + +1. Create a container based on the `meisnate12/plex-meta-manager` image. +2. Set environment variables to control the container's behavior [optional]. +3. Point the container to the directory where your configuration files are to be stored. + +Detailed steps: + +=== "Container Station v. 3.0.5.623" + + 1. Open Container Station; click “Images” + + ![](qnap/qnap3-01.png) + + 2. Select “Pull” from the top-right + + ![](qnap/qnap3-02.png) + + 3. Leave Mode set to “Basic Mode” + + For the Registry select “Docker Hub” + + Under the "Image" section you will be typing in the name and version of the docker image you wish to pull. Type in the image you wish to use as follows: + + ``` + meisnate12/plex-meta-manager:latest + meisnate12/plex-meta-manager:develop + meisnate12/plex-meta-manager:nightly + ``` + + 4. Then click Pull. + + ![](qnap/qnap3-03.png) + + Note: You can repeat this step for each of the different versions and you’ll end up with this: + + ![](qnap/qnap3-03a.png) + + After the pull is complete the image(s) will now be available for use. + + 5. From the "Images" menu under the "Actions" column click the "play" button to bring up the “Create Container” option. + + ![](qnap/qnap3-04.png) + + 6. "Create Container" Step 1: "Select Image" – you’ve already done this so just click "Next". + + ![](qnap/qnap3-05.png) + + 7. "Create Container" Step 2: "Configure Container" - you can edit the name if you wish. From here on you’ll be working in the Advanced Settings sub-menu. Click on "Advanced Settings". + + ![](qnap/qnap3-06.png) + + 8. You can add [command-line switches](../../essentials/environmental.md) to the "Command" field here. Do not edit the "Entrypoint" field. + + ![](qnap/qnap3-07.png) + + For example, if you wanted to run the collections you have defined as tests, add the `--run-tests` command-line flag: + + ![](qnap/qnap3-08.png) + + Generally speaking, editing these is not recommended as it is easy to render the container non-functional by doing so. + + It is more typical in Docker contexts to set these things with environment variables. + + Anything you can do via command-line arguments can be done with [Environment Variables](../../essentials/environmental.md), which is more typical in Docker environments. + + For example, you could add an environment variable named `PMM_TESTS` with a value of `true` to run the collections you have defined as tests. + + Click "Environments" on the left to set environment variables. + + 8. Select "Storage": + + ![](qnap/qnap3-09.png) + + 9. Click the Trash Can icon to remove the default Storage Mapping: + + ![](qnap/qnap3-10.png) + + 10. Click "Add Volume" then choose “Bind Mount Host Path”: + + ![](qnap/qnap3-11.png) + + 11. Select the Yellow Folder icon + + ![](qnap/qnap3-12.png) + + “Select Host Path” will appear as seen below, letting you select the folder you want to use. + + ![](qnap/qnap3-13.png) + + After selecting your folder and choosing "Apply" the "Host" path will be filled in. For the "Container" path you MUST use `/config`: + + ![](qnap/qnap3-14.png) + + 12. Select Next to advance to “Step 3 Summary” + + 13. Select Finish + + This code will create a tabbed content section with the provided content, correctly indented and numbered, in your MkDocs documentation. + +=== "Container Station v. unknown" + + 1. Open Container Station; click "Create" in the left column. + + ![](qnap/qnap1.png) + + 2. Search for `meisnate12/plex-meta-manager`. + + On the "Docker Hub" tab you should see the image; click on it and click "Install". + + ![](qnap/qnap2.png) + + 3. Select the version you want to run from the dropdown and click "Next". + + The options are: + - `latest`: most recent official release; typically the most stable + - `develop`: development release, contains new features that haven't made it to latest yet, but may have minor problems + - `nightly`: bleeding-edge development version; latest fixes go here, but breakage should be expected. + + ![](qnap/qnap3.png) + + 4. Change the container name if you wish. + + Command line arguments can be entered in the "Entrypoint" field after `/tini -s python3 plex_meta_manager.py --` + + IMPORTANT: **DO NOT REMOVE** ANY ELEMENT OF THAT TEXT. DO NOT ENTER ANYTHING INTO THE "Command" FIELD. + + For example, you could enter the following into the "Entrypoint" field to make PMM run immediately when the container starts up: `/tini -s python3 plex_meta_manager.py -- --run` + + Typically, in a Docker environment, this sort of thing is done via Environment Variables [the next step here]. Editing the "Entrypoint" is not recommended, as it's easy to render the container non-functional if you are not sure what you're doing. + + Information on available command line arguments can be found [here](../../essentials/environmental.md) + + Click "Advanced Settings >>" + + ![](qnap/qnap4.png) + + 5. Environment Variables can be added here: + + Anything you can do via command-line arguments can be done with Environment Variables, which is more typical in Docker environments. + + For example, you could add an environment variable named `PMM_RUN` with a value of `True` to make PMM run immediately when the container starts up. + + Information on available Environment Variables can be found [here](../../essentials/environmental.md) + + ![](qnap/qnap5.png) + + 6. Click Shared Folders Tab: + + Click "Add" in the middle section "Volume from host". + + "Volume from host" is the location on your QNAP where you want to store the config files. + + "Mount Point" must be `/config` + + When finished, click "Create". + + ![](qnap/qnap7.png) + + diff --git a/docs/pmm/install/guides/qnap/qnap1.png b/docs/pmm/install/guides/qnap/qnap1.png new file mode 100644 index 00000000..366c99ca Binary files /dev/null and b/docs/pmm/install/guides/qnap/qnap1.png differ diff --git a/docs/pmm/install/guides/qnap/qnap2.png b/docs/pmm/install/guides/qnap/qnap2.png new file mode 100644 index 00000000..07189717 Binary files /dev/null and b/docs/pmm/install/guides/qnap/qnap2.png differ diff --git a/docs/home/guides/qnap/qnap3-01.png b/docs/pmm/install/guides/qnap/qnap3-01.png similarity index 100% rename from docs/home/guides/qnap/qnap3-01.png rename to docs/pmm/install/guides/qnap/qnap3-01.png diff --git a/docs/home/guides/qnap/qnap3-02.png b/docs/pmm/install/guides/qnap/qnap3-02.png similarity index 100% rename from docs/home/guides/qnap/qnap3-02.png rename to docs/pmm/install/guides/qnap/qnap3-02.png diff --git a/docs/home/guides/qnap/qnap3-03.png b/docs/pmm/install/guides/qnap/qnap3-03.png similarity index 100% rename from docs/home/guides/qnap/qnap3-03.png rename to docs/pmm/install/guides/qnap/qnap3-03.png diff --git a/docs/home/guides/qnap/qnap3-03a.png b/docs/pmm/install/guides/qnap/qnap3-03a.png similarity index 100% rename from docs/home/guides/qnap/qnap3-03a.png rename to docs/pmm/install/guides/qnap/qnap3-03a.png diff --git a/docs/home/guides/qnap/qnap3-04.png b/docs/pmm/install/guides/qnap/qnap3-04.png similarity index 100% rename from docs/home/guides/qnap/qnap3-04.png rename to docs/pmm/install/guides/qnap/qnap3-04.png diff --git a/docs/home/guides/qnap/qnap3-05.png b/docs/pmm/install/guides/qnap/qnap3-05.png similarity index 100% rename from docs/home/guides/qnap/qnap3-05.png rename to docs/pmm/install/guides/qnap/qnap3-05.png diff --git a/docs/home/guides/qnap/qnap3-06.png b/docs/pmm/install/guides/qnap/qnap3-06.png similarity index 100% rename from docs/home/guides/qnap/qnap3-06.png rename to docs/pmm/install/guides/qnap/qnap3-06.png diff --git a/docs/home/guides/qnap/qnap3-07.png b/docs/pmm/install/guides/qnap/qnap3-07.png similarity index 100% rename from docs/home/guides/qnap/qnap3-07.png rename to docs/pmm/install/guides/qnap/qnap3-07.png diff --git a/docs/home/guides/qnap/qnap3-08.png b/docs/pmm/install/guides/qnap/qnap3-08.png similarity index 100% rename from docs/home/guides/qnap/qnap3-08.png rename to docs/pmm/install/guides/qnap/qnap3-08.png diff --git a/docs/home/guides/qnap/qnap3-09.png b/docs/pmm/install/guides/qnap/qnap3-09.png similarity index 100% rename from docs/home/guides/qnap/qnap3-09.png rename to docs/pmm/install/guides/qnap/qnap3-09.png diff --git a/docs/home/guides/qnap/qnap3-10.png b/docs/pmm/install/guides/qnap/qnap3-10.png similarity index 100% rename from docs/home/guides/qnap/qnap3-10.png rename to docs/pmm/install/guides/qnap/qnap3-10.png diff --git a/docs/home/guides/qnap/qnap3-11.png b/docs/pmm/install/guides/qnap/qnap3-11.png similarity index 100% rename from docs/home/guides/qnap/qnap3-11.png rename to docs/pmm/install/guides/qnap/qnap3-11.png diff --git a/docs/home/guides/qnap/qnap3-12.png b/docs/pmm/install/guides/qnap/qnap3-12.png similarity index 100% rename from docs/home/guides/qnap/qnap3-12.png rename to docs/pmm/install/guides/qnap/qnap3-12.png diff --git a/docs/home/guides/qnap/qnap3-13.png b/docs/pmm/install/guides/qnap/qnap3-13.png similarity index 100% rename from docs/home/guides/qnap/qnap3-13.png rename to docs/pmm/install/guides/qnap/qnap3-13.png diff --git a/docs/home/guides/qnap/qnap3-14.png b/docs/pmm/install/guides/qnap/qnap3-14.png similarity index 100% rename from docs/home/guides/qnap/qnap3-14.png rename to docs/pmm/install/guides/qnap/qnap3-14.png diff --git a/docs/pmm/install/guides/qnap/qnap3.png b/docs/pmm/install/guides/qnap/qnap3.png new file mode 100644 index 00000000..371399d0 Binary files /dev/null and b/docs/pmm/install/guides/qnap/qnap3.png differ diff --git a/docs/pmm/install/guides/qnap/qnap4.png b/docs/pmm/install/guides/qnap/qnap4.png new file mode 100644 index 00000000..f1f376f6 Binary files /dev/null and b/docs/pmm/install/guides/qnap/qnap4.png differ diff --git a/docs/pmm/install/guides/qnap/qnap5.png b/docs/pmm/install/guides/qnap/qnap5.png new file mode 100644 index 00000000..3f924239 Binary files /dev/null and b/docs/pmm/install/guides/qnap/qnap5.png differ diff --git a/docs/home/guides/qnap/qnap6.png b/docs/pmm/install/guides/qnap/qnap6.png similarity index 100% rename from docs/home/guides/qnap/qnap6.png rename to docs/pmm/install/guides/qnap/qnap6.png diff --git a/docs/pmm/install/guides/qnap/qnap7.png b/docs/pmm/install/guides/qnap/qnap7.png new file mode 100644 index 00000000..f0c99724 Binary files /dev/null and b/docs/pmm/install/guides/qnap/qnap7.png differ diff --git a/docs/home/guides/ratings.md b/docs/pmm/install/guides/ratings.md similarity index 99% rename from docs/home/guides/ratings.md rename to docs/pmm/install/guides/ratings.md index 53294045..6db5a72d 100644 --- a/docs/home/guides/ratings.md +++ b/docs/pmm/install/guides/ratings.md @@ -1,3 +1,7 @@ +--- +search: + boost: 3 +--- # PMM Ratings Explained How do ratings and ratings overlays work in PMM? This Guide will walk through some basics of how ratings work in conjunction with Plex Meta Manager. diff --git a/docs/pmm/install/guides/ratings/ratings-01.png b/docs/pmm/install/guides/ratings/ratings-01.png new file mode 100644 index 00000000..2b88f714 Binary files /dev/null and b/docs/pmm/install/guides/ratings/ratings-01.png differ diff --git a/docs/pmm/install/guides/ratings/ratings-02.png b/docs/pmm/install/guides/ratings/ratings-02.png new file mode 100644 index 00000000..e6adca7e Binary files /dev/null and b/docs/pmm/install/guides/ratings/ratings-02.png differ diff --git a/docs/pmm/install/guides/ratings/ratings-03.png b/docs/pmm/install/guides/ratings/ratings-03.png new file mode 100644 index 00000000..1583d6c6 Binary files /dev/null and b/docs/pmm/install/guides/ratings/ratings-03.png differ diff --git a/docs/pmm/install/guides/ratings/ratings-04.png b/docs/pmm/install/guides/ratings/ratings-04.png new file mode 100644 index 00000000..768e046e Binary files /dev/null and b/docs/pmm/install/guides/ratings/ratings-04.png differ diff --git a/docs/pmm/install/guides/ratings/ratings-05.png b/docs/pmm/install/guides/ratings/ratings-05.png new file mode 100644 index 00000000..02947827 Binary files /dev/null and b/docs/pmm/install/guides/ratings/ratings-05.png differ diff --git a/docs/pmm/install/guides/ratings/ratings-06.png b/docs/pmm/install/guides/ratings/ratings-06.png new file mode 100644 index 00000000..47da8104 Binary files /dev/null and b/docs/pmm/install/guides/ratings/ratings-06.png differ diff --git a/docs/pmm/install/guides/ratings/ratings-07.png b/docs/pmm/install/guides/ratings/ratings-07.png new file mode 100644 index 00000000..04f1c052 Binary files /dev/null and b/docs/pmm/install/guides/ratings/ratings-07.png differ diff --git a/docs/pmm/install/guides/ratings/ratings-08.png b/docs/pmm/install/guides/ratings/ratings-08.png new file mode 100644 index 00000000..ced62d07 Binary files /dev/null and b/docs/pmm/install/guides/ratings/ratings-08.png differ diff --git a/docs/pmm/install/guides/ratings/ratings-09.png b/docs/pmm/install/guides/ratings/ratings-09.png new file mode 100644 index 00000000..8dd808c3 Binary files /dev/null and b/docs/pmm/install/guides/ratings/ratings-09.png differ diff --git a/docs/pmm/install/guides/ratings/ratings-10.png b/docs/pmm/install/guides/ratings/ratings-10.png new file mode 100644 index 00000000..f422614f Binary files /dev/null and b/docs/pmm/install/guides/ratings/ratings-10.png differ diff --git a/docs/pmm/install/guides/scheduling.md b/docs/pmm/install/guides/scheduling.md new file mode 100644 index 00000000..d6dceecd --- /dev/null +++ b/docs/pmm/install/guides/scheduling.md @@ -0,0 +1,354 @@ +--- +search: + boost: 3 +--- +# Scheduling Guide + +Plex Meta Manager is designed to be a background running service that "wakes up" and "sleeps" when it is scheduled to do so. By default and unless configured using the [Time to Run Command](../../essentials/environmental.md#time-to-run), Plex Meta Manager expects to run every day at 5AM local time. + +Whilst it is possible to have `python plex-meta-manager.py` running in an open window constantly, this is not the recommended approach as it relies on an always-open command window that can be obtrusive to the user. + +Instead, it is recommended to set an automated scheduling service so that Plex Meta Manager can run in the background when scheduled to without any visible impact to the user (other than the Plex libraries and playlists updating). + +**To control how individual parts of Plex Meta Manager are scheduled see the [Schedule detail](../../../builders/details/schedule.md)** + +IMPORTANT: Every time you see `/path/to` below, it's a placeholder for the path to that directory on *your* system. + +=== "Docker" + Using docker is the simplest and most robust solution to automating Plex Meta Manager scheduling. + + When running Plex Meta Manager within docker, the session will resume after a system reboot (assuming Docker is set to start at system startup, which is the default) and Plex Meta Manager will run in the background at all times. + + There's a [Docker Walkthrough](docker.md) with more detailed instructions on setting up Plex Meta Manager within docker. The simplest command to facilitate a docker run is: + + ``` + docker run -d \ + --restart=unless-stopped \ + -e TZ=<TIMEZONE> \ + -v /path/to/config:/config:rw \ + meisnate12/plex-meta-manager + ``` + Change `/path/to/config` to reflect where you've installed Plex Meta Manager. + + TZ=<TIMEZONE> + <TIMEZONE> is replaced with your local timezone, or the timezone your device is in that is running Plex Meta Manager. For a list of available timezones, please see [Timezones](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). You want to replace <TIMEZONE> with the TZ Database Name. + + ``` + TZ=America/New_York + ``` + + This will run Plex Meta Manager in the background persistently until it is stopped by the user. While the docker container will be persistently running, Plex Meta Manager will not begin the run until the scheduled time. + + Further customizations of the docker run command can be used to specify set times to run Plex Meta Manager, further information on this and other Run Commands can be found [here](../../essentials/environmental.md#time-to-run) + +=== "Windows Task Scheduler" + + Windows Task Scheduler is advised for those who followed the Windows instructions in the [Local Walkthrough Guides](local.md) and/or do not want to run Plex Meta Manager within docker. + + Windows Task Scheduler allows the user to run commands and services at scheduled times and intervals. + + There are two methods of running Plex Meta Manager: + * Single run Scheduled Task + * Background run Scheduled Task + + These will be explained further down this page. + + These guides assume the user has followed the Windows instructions in the [Local Walkthrough Guides](local.md) which includes setting up the [virtual environment](local.md#setting-up-a-virtual-environment). Please also ensure to edit any commands to be reflective of the live environment (such as usernames, installation directories). + + ### Background Run Scheduled Task + + This method will start Plex Meta Manager at system startup and will keep Plex Meta Manager running in the background indefinitely. The user can then define set days and times for the Configuration File to be processed, and Plex Meta Manager will handle processing as and when required. + + This is the recommended approach as it allows the user additional control over how and when Plex Meta Manager processes. + + If you don't specify a time, the script will run at 5AM each day. You can change this with the [time-to-run](../../essentials/environmental.md#time-to-run) runtime flag. + + ??? abstract "Background Run Scheduled Task" + + 1. Create a `waiter.cmd` file by opening the text editor (i.e. Notepad, TextEdit) and pasting the following code: + + ```batch + cd C:\Users\USERNAMEHERE\Plex-Meta-Manager + .\pmm-venv\Scripts\python .\plex_meta_manager.py + ``` + * This will navigate to the Plex Meta Manager directory, then run PMM. At the scheduled time [as defined within Plex Meta Manager], PMM will process the Configuration File and will then wait until the next scheduled time. + + 2. Open Task Scheduler by searching for it in the Start Menu or by opening the Run window (Windows + R) and typing taskschd.msc before hitting OK. + + * ** Ensure that Task Scheduler is opened and not Task Manager ** + + ![task-scheduler](task-scheduler/02-open-task-scheduler.png) + + 3. Select "Create a basic task" on the right-hand column + + ![task-scheduler](task-scheduler/03-task-scheduler-main.png) + + 4. Give the task a name, in this example `Background PMM` and then select "Next" + + ![task-scheduler](task-scheduler/06-basic-task-02.png) + + 5. Choose the frequency that PMM should run and then select "Next", `When the computer starts` is recommended. + + ![task-scheduler](task-scheduler/06-basic-task-03.png) + + 6. Choose the action "Start a program" and select "Next". + + ![task-scheduler](task-scheduler/06-basic-task-04.png) + + 7. Click "Browse", Navigate to the PMM directory and choose `waiter.cmd`, which was created in Step 1, then select "Open". NOTE: Your path may vary from the illustration here; navigate to the file you created and saved in Step 1. + + ![task-scheduler](task-scheduler/06-basic-task-05.png) + + 8. Copy the directory everything up to but not including `waiter.cmd` from the "Program/Script" field, and paste it into the "Start in" field. This is `C:\User\IEUser\Plex-Meta-Manager-1.15.1` in the example below, then select "next". NOTE: Your path may vary from the illustration or example. + + ![task-scheduler](task-scheduler/06-basic-task-06.png) + + 9. Click "Finish". + + 10. Click "Task Schedule Library" on the left. The "Background PMM" task should be visible. + + Plex Meta Manager will now launch at system startup, but will wait until the user-specified scheduled time before executing, and will then wait in the background for the next scheduled run. + + + ### Single Run Scheduled Task + + This method will start Plex Meta Manager at the desired time, immediately begin running the Configuration File and will then kill the process once it has completed. + + ??? abstract "Single Run Scheduled Task" + + 1. Create a `runner.cmd` file by opening the text editor (i.e. Notepad, TextEdit) and pasting the following code: + + ```batch + cd C:\Users\USERNAMEHERE\Plex-Meta-Manager + .\pmm-venv\Scripts\python .\plex_meta_manager.py --run + ``` + * This will navigate to the PMM directory, then launch PMM using the `-r`/`--run` flag which triggers an immediate run. Once complete, Plex Meta Manager will exit. + + Save this file to C:\Users\USERNAMEHERE\Plex-Meta-Manager\runner.cmd`. + + 2. Open Task Scheduler by searching for it in the Start Menu or by opening the Run window (Windows + R) and typing taskschd.msc before hitting OK. + + * ** Ensure that Task Scheduler is opened and not Task Manager ** + + ![task-scheduler](task-scheduler/02-open-task-scheduler.png) + + 3. Select "Create a basic task" on the right-hand column + + ![task-scheduler](task-scheduler/03-task-scheduler-main.png) + + 4. Give the task a name, in this example `Run PMM` and then select "Next" + + ![task-scheduler](task-scheduler/04-basic-task-01.png) + + 5. Choose the frequency that PMM should run and then select "Next", `Daily` is recommended. + + ![task-scheduler](task-scheduler/04-basic-task-02.png) + + 6. Specify the first date and time at which PMM should run and then select "Next". + + ![task-scheduler](task-scheduler/04-basic-task-03.png) + + 7. Choose the action "Start a program" and select "Next". + + ![task-scheduler](task-scheduler/04-basic-task-04.png) + + 8. Click "Browse", Navigate to the PMM directory and choose `runner.cmd`, which was created in Step 1, then select "Open". + + ![task-scheduler](task-scheduler/04-basic-task-05.png) + + 9. Copy the directory everything up to but not including `runner.cmd` from the "Program/Script" field, and paste it into the "Start in" field. This is `C:\User\IEUser\Plex-Meta-Manager-1.15.1` in the example below, then select "next". + + ![task-scheduler](task-scheduler/04-basic-task-06.png) + + 10. Check "Open the properties dialog" if desired (not required) then select "Finish". + + ![task-scheduler](task-scheduler/04-basic-task-07.png) + + 11. Click "Task Schedule Library" on the left. The PMM Run task should be visible. + + ![task-scheduler](task-scheduler/04-basic-task-09.png) + + Plex Meta Manager will now run at the set date/time you selected in Step 6, and will run each subsequent day at the same time. + + +=== "MacOS Launchd Service" + + 1. Create launchd service: + + A couple examples; you'll want to edit the THINGS IN ALL CAPS to reflect your system. + + Change `/path/to/plex-meta-manager` to reflect where you've installed Plex Meta Manager. + + Keep PMM running constantly, let it wait to do its thing at 3AM: + + ``` + <?xml version="1.0" encoding="UTF-8"?> + <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> + <plist version="1.0"> + <dict> + <key>Label</key> + <string>com.YOUR_USERNAME.plex-meta-manager</string> + <key>ProgramArguments</key> + <array> + <string>sh</string> + <string>-c</string> + <string>pmm-venv/bin/python plex-meta-manager.py --config /path/to/plex-meta-managerconfig/config.yml</string> + </array> + <key>UserName</key> + <string>YOUR_USERNAME</string> + <key>WorkingDirectory</key> + <string>/PATH/TO/PMM</string> + </dict> + </plist> + ``` + + Run PMM every 6 hours, running it immediately and letting it quit: + + ``` + <?xml version="1.0" encoding="UTF-8"?> + <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> + <plist version="1.0"> + <dict> + <key>Label</key> + <string>com.YOUR_USERNAME.plex-meta-manager</string> + <key>ProgramArguments</key> + <array> + <string>sh</string> + <string>-c</string> + <string>pmm-venv/bin/python plex-meta-manager.py --config /path/to/plex-meta-managerconfig/config.yml --run</string> + </array> + <key>StartCalendarInterval</key> + <array> + <dict> + <key>Hour</key> + <integer>6</integer> + </dict> + <dict> + <key>Hour</key> + <integer>12</integer> + </dict> + <dict> + <key>Hour</key> + <integer>18</integer> + </dict> + <dict> + <key>Hour</key> + <integer>24</integer> + </dict> + </array> + <key>UserName</key> + <string>YOUR_USERNAME</string> + <key>WorkingDirectory</key> + <string>/PATH/TO/PMM</string> + </dict> + </plist> + ``` + + A useful tool to generate these plist files is [https://zerolaunched.herokuapp.com/](https://zerolaunched.herokuapp.com/) + + Save this file as `com.YOUR_USERNAME.plex-meta-manager.plist` in `~/Library/LaunchAgents`. + + 2. Load and start the agent 🚀 + + Retrieve your user id with `id -u` in Terminal. You'll need it for the commands in this step. + + Load the agent by executing the following commands: + + ``` + cd ~/Library/LaunchAgents/ + launchctl bootstrap gui/YOUR-USER-ID com.YOUR_USERNAME.plex-meta-manager.plist + ``` + + And then kick-start it with: + + ``` + launchctl kickstart -k gui/YOUR-USER-ID/com.YOUR_USERNAME.plex-meta-manager + ``` + + Note that this command uses the *label*, not the plist filename. The -k options means that the service will first be killed, if running. + + The agent should now be active and starting the program according to the schedule you set. + +=== "Linux Systemctl Service" + + 1. Create the service file: + + ```bash + sudo nano /etc/systemd/system/plex-meta-manager.service + ``` + + Put the following into the file: + ``` + # /etc/systemd/system/plex-meta-manager.service + + [Unit] + Description=Plex Meta Manager + After=network-online.target + + [Service] + User=USER + Group=GROUP + Type=simple + Environment=LC_ALL=C.UTF-8 + Environment=LANG=C.UTF-8 + WorkingDirectory=/path/to/plex-meta-manager + ExecStart=/path/to/plex-meta-manager/pmm-venv/bin/python /path/to/plex-meta-manager/plex_meta_manager.py + Restart=always + RestartSec=10 + + [Install] + WantedBy=default.target + ``` + + Change `USER` and `GROUP` to reflect your user and group. + + Change `/path/to/plex-meta-manager` to reflect where you've installed Plex Meta Manager. + + NOTE: This is assuming you created the `pmm-venv` virtual environment as described in the [Local Walkthrough](local.md) + + Save and close the file. + + 2. Load and start the service + + ```shell + sudo systemctl daemon-reload + sudo systemctl start plex-meta-manager.service + ``` + + 3. You can check whether the service is running with: + + ```shell + sudo systemctl status plex-meta-manager.service + ``` + +=== "cron" + The cron utility is used for running scripts and commands at regular intervals, and at specific times and dates. It’s built into most Operating Systems (namely Linux and Mac), and provides a very useful way to schedule tasks on your server. It also works for running Docker commands on a schedule. + + 1. Decide when you want to run Plex Meta Manager + + `cron` needs a specific syntax to express schedules. A cron schedule is something like "Every Tuesday at 4" or "5 minutes past every other hour". + + You can generate the required line by checking boxes using something like [crontab-generator](https://crontab-generator.org/). + + The command you use in crontab will probably be the command you use to run it on the command line. + + A command you could use for this: + + ``` + cd /path/to/plex-meta-manager && pmm-venv/bin/python plex_meta_manager.py --config config/config.yml --run + ``` + Change `/path/to/plex-meta-manager` to reflect where you've installed Plex Meta Manager. + + This is an example, which does nothing but run the script immediately. If you want to add additional flags you can do so. + + NOTE: This is assuming you created the `pmm-venv` virtual environment as described in the [Local Walkthrough](local.md) + + 2. Open the system crontab for editing: + + ```bash + sudo crontab -e + ``` + + 3. Paste in the crontab line you got from `crontab-generator`, or type in one of your own. Depending on the editor being used, you may need to put it into insert mode first. There's a good chance it's `vi`, in which case you need to press `i` to put it into insert mode, after which you will see `-- INSERT -- ` in the lower left. + + 4. Save and close the file. How you do that depends on which editor is being used. There's a good chance it's `vi`, in which case `ESC : w RETURN` will save and `ESC : q RETURN` will exit. diff --git a/docs/pmm/install/guides/separators.jpg b/docs/pmm/install/guides/separators.jpg new file mode 100644 index 00000000..848cac70 Binary files /dev/null and b/docs/pmm/install/guides/separators.jpg differ diff --git a/docs/pmm/install/guides/synology.md b/docs/pmm/install/guides/synology.md new file mode 100644 index 00000000..130e8bc5 --- /dev/null +++ b/docs/pmm/install/guides/synology.md @@ -0,0 +1,117 @@ +# Synology Walkthrough + +This is a quick walkthrough of setting up the Plex-Meta-Manager Docker container in the Synology UI. + +## Prerequisite: Installing Docker + +1. Open the Package Center app from the Synology Web GUI. + + ![Prerequisite 1](synology/synology-01.png) + +2. Type `docker` in the search bar and once it comes up, click "Install" to add Docker. Then click "Open" to bring it up. + + ![Prerequisite 2](synology/synology-02.png) + +## Installing Plex Meta Manager + +1. Open the Docker app. + + ![Step 1](synology/synology-03.png) + +2. Search and Download the Image. + + 1. Click Registry. + 2. Search for `meisnate12/plex-meta-manager`. + 3. Select the Repository. + 4. Click Download. + + ![Step 2](synology/synology-04.png) + +3. Select the tag you want to run from the dropdown and click "Select." + + The options are: + + - `latest` - most recent official release; typically the most stable. + - `develop` - development release, contains new features that haven't made it to latest yet, but may have minor problems. + - `nightly` - bleeding-edge development version; latest fixes go here, but breakage should be expected. + + ![Step 3](synology/synology-05.png) + +4. Select the Image and Create a Container. + + 1. Click Image. + 2. Select the `meisnate12/plex-meta-manager` Image. + 3. Click Launch. + + ![Step 4](synology/synology-06.png) + +**From this point on the setup looks a little different depending on if the Synology is running DiskStation Manager 7 or DiskStation Manager 6.** + +=== "DiskStation Manager 7" + + 5. Specify your docker network type. Then click "Next". + + ![](synology/dsm7-01.png) + + 6. You can name the Container whatever you want using the "Container Name" text Box. + + ![](synology/dsm7-02.png) + + 7. To add Environment Variables and Command Line Arguments click "Advanced Settings". (Optional) + + Information on available Command Line Arguments and Environment Variables can be found [here](../../essentials/environmental.md) + + To add an Environment Variable click "Environment" then click Add" and then fill in the Variable and Value. + + ![](synology/dsm7-03.png) + + To use Command Line Arguments click "Execution Command" put the arguments in the "Command" text field. + + ![](synology/dsm7-04.png) + + Click "Save" to save the settings and go back to the General Settings Screen. + + 8. Click "Next" from the General Settings Screen to get to the Port Settings Screen where you just want to click "Next" as PMM has no Ports. + + ![](synology/dsm7-05.png) + + 9. Next we need to add your config folder to the container. From the Volume Settings Screen click "Add Folder". + + ![](synology/dsm7-06.png) + + 10. Select from your Synology File System where you want to store your PMM config files and then enter `/config` as the "Mount path". Then click "Next" to go to the Summary Page. + + ![](synology/dsm7-07.png) + + 11. From the Summary Page select "Done" to finish and creating the container. + + ![](synology/dsm7-08.png) + +=== "DiskStation Manager 6" + + 5. You can name the Container whatever you want using the "Container Name" text Box. Then click "Advanced Settings". + + ![](synology/dsm6-01.png) + + 6. Next we need to add your config folder to the container. Select the "Volume" Tab, click "Add Folder," and select from your Synology File System where you want to store your PMM config files. + + ![](synology/dsm6-02.png) + + 7. Enter `/config` as the "Mount Point." + + ![](synology/dsm6-03.png) + + 8. Select the "Environment" Tab. (Optional) + + Environment Variables and Command Line Arguments can be added here. + + - To add an Environment Variable Click "Add" and then fill in the Variable and Value. + - To use Command Line Arguments put the arguments in the "Command" text field. + + Information on available Command Line Arguments and Environment Variables can be found [here](../../essentials/environmental.md) + + ![](synology/dsm6-04.png) + + 9. Select "Apply" to save the "Advanced Settings," select "Next" to go to the Summary, and select "Done" to finish and create the container. + + ![](synology/dsm6-05.png) diff --git a/docs/pmm/install/guides/synology/dsm6-01.png b/docs/pmm/install/guides/synology/dsm6-01.png new file mode 100644 index 00000000..8669a107 Binary files /dev/null and b/docs/pmm/install/guides/synology/dsm6-01.png differ diff --git a/docs/pmm/install/guides/synology/dsm6-02.png b/docs/pmm/install/guides/synology/dsm6-02.png new file mode 100644 index 00000000..d1ea654c Binary files /dev/null and b/docs/pmm/install/guides/synology/dsm6-02.png differ diff --git a/docs/pmm/install/guides/synology/dsm6-03.png b/docs/pmm/install/guides/synology/dsm6-03.png new file mode 100644 index 00000000..f4620704 Binary files /dev/null and b/docs/pmm/install/guides/synology/dsm6-03.png differ diff --git a/docs/pmm/install/guides/synology/dsm6-04.png b/docs/pmm/install/guides/synology/dsm6-04.png new file mode 100644 index 00000000..d190456b Binary files /dev/null and b/docs/pmm/install/guides/synology/dsm6-04.png differ diff --git a/docs/pmm/install/guides/synology/dsm6-05.png b/docs/pmm/install/guides/synology/dsm6-05.png new file mode 100644 index 00000000..631cfe61 Binary files /dev/null and b/docs/pmm/install/guides/synology/dsm6-05.png differ diff --git a/docs/pmm/install/guides/synology/dsm7-01.png b/docs/pmm/install/guides/synology/dsm7-01.png new file mode 100644 index 00000000..75a0759a Binary files /dev/null and b/docs/pmm/install/guides/synology/dsm7-01.png differ diff --git a/docs/pmm/install/guides/synology/dsm7-02.png b/docs/pmm/install/guides/synology/dsm7-02.png new file mode 100644 index 00000000..48d1df2d Binary files /dev/null and b/docs/pmm/install/guides/synology/dsm7-02.png differ diff --git a/docs/pmm/install/guides/synology/dsm7-03.png b/docs/pmm/install/guides/synology/dsm7-03.png new file mode 100644 index 00000000..b7f4f6d4 Binary files /dev/null and b/docs/pmm/install/guides/synology/dsm7-03.png differ diff --git a/docs/pmm/install/guides/synology/dsm7-04.png b/docs/pmm/install/guides/synology/dsm7-04.png new file mode 100644 index 00000000..962551c8 Binary files /dev/null and b/docs/pmm/install/guides/synology/dsm7-04.png differ diff --git a/docs/pmm/install/guides/synology/dsm7-05.png b/docs/pmm/install/guides/synology/dsm7-05.png new file mode 100644 index 00000000..4ddc7a3b Binary files /dev/null and b/docs/pmm/install/guides/synology/dsm7-05.png differ diff --git a/docs/pmm/install/guides/synology/dsm7-06.png b/docs/pmm/install/guides/synology/dsm7-06.png new file mode 100644 index 00000000..a4787859 Binary files /dev/null and b/docs/pmm/install/guides/synology/dsm7-06.png differ diff --git a/docs/pmm/install/guides/synology/dsm7-07.png b/docs/pmm/install/guides/synology/dsm7-07.png new file mode 100644 index 00000000..3917c92c Binary files /dev/null and b/docs/pmm/install/guides/synology/dsm7-07.png differ diff --git a/docs/pmm/install/guides/synology/dsm7-08.png b/docs/pmm/install/guides/synology/dsm7-08.png new file mode 100644 index 00000000..6e3dac5d Binary files /dev/null and b/docs/pmm/install/guides/synology/dsm7-08.png differ diff --git a/docs/pmm/install/guides/synology/synology-01.png b/docs/pmm/install/guides/synology/synology-01.png new file mode 100644 index 00000000..eec793a4 Binary files /dev/null and b/docs/pmm/install/guides/synology/synology-01.png differ diff --git a/docs/pmm/install/guides/synology/synology-02.png b/docs/pmm/install/guides/synology/synology-02.png new file mode 100644 index 00000000..d40adaa7 Binary files /dev/null and b/docs/pmm/install/guides/synology/synology-02.png differ diff --git a/docs/pmm/install/guides/synology/synology-03.png b/docs/pmm/install/guides/synology/synology-03.png new file mode 100644 index 00000000..c48961f8 Binary files /dev/null and b/docs/pmm/install/guides/synology/synology-03.png differ diff --git a/docs/pmm/install/guides/synology/synology-04.png b/docs/pmm/install/guides/synology/synology-04.png new file mode 100644 index 00000000..32288dd0 Binary files /dev/null and b/docs/pmm/install/guides/synology/synology-04.png differ diff --git a/docs/pmm/install/guides/synology/synology-05.png b/docs/pmm/install/guides/synology/synology-05.png new file mode 100644 index 00000000..e74dda4d Binary files /dev/null and b/docs/pmm/install/guides/synology/synology-05.png differ diff --git a/docs/pmm/install/guides/synology/synology-06.png b/docs/pmm/install/guides/synology/synology-06.png new file mode 100644 index 00000000..23fea51b Binary files /dev/null and b/docs/pmm/install/guides/synology/synology-06.png differ diff --git a/docs/home/guides/task-scheduler/01-runner-cmd.png b/docs/pmm/install/guides/task-scheduler/01-runner-cmd.png similarity index 100% rename from docs/home/guides/task-scheduler/01-runner-cmd.png rename to docs/pmm/install/guides/task-scheduler/01-runner-cmd.png diff --git a/docs/pmm/install/guides/task-scheduler/02-open-task-scheduler.png b/docs/pmm/install/guides/task-scheduler/02-open-task-scheduler.png new file mode 100644 index 00000000..d6fd39fb Binary files /dev/null and b/docs/pmm/install/guides/task-scheduler/02-open-task-scheduler.png differ diff --git a/docs/pmm/install/guides/task-scheduler/03-task-scheduler-main.png b/docs/pmm/install/guides/task-scheduler/03-task-scheduler-main.png new file mode 100644 index 00000000..a857ef4e Binary files /dev/null and b/docs/pmm/install/guides/task-scheduler/03-task-scheduler-main.png differ diff --git a/docs/pmm/install/guides/task-scheduler/04-basic-task-01.png b/docs/pmm/install/guides/task-scheduler/04-basic-task-01.png new file mode 100644 index 00000000..0016e177 Binary files /dev/null and b/docs/pmm/install/guides/task-scheduler/04-basic-task-01.png differ diff --git a/docs/pmm/install/guides/task-scheduler/04-basic-task-02.png b/docs/pmm/install/guides/task-scheduler/04-basic-task-02.png new file mode 100644 index 00000000..37c4f117 Binary files /dev/null and b/docs/pmm/install/guides/task-scheduler/04-basic-task-02.png differ diff --git a/docs/pmm/install/guides/task-scheduler/04-basic-task-03.png b/docs/pmm/install/guides/task-scheduler/04-basic-task-03.png new file mode 100644 index 00000000..3e3cad2a Binary files /dev/null and b/docs/pmm/install/guides/task-scheduler/04-basic-task-03.png differ diff --git a/docs/pmm/install/guides/task-scheduler/04-basic-task-04.png b/docs/pmm/install/guides/task-scheduler/04-basic-task-04.png new file mode 100644 index 00000000..76df4556 Binary files /dev/null and b/docs/pmm/install/guides/task-scheduler/04-basic-task-04.png differ diff --git a/docs/pmm/install/guides/task-scheduler/04-basic-task-05.png b/docs/pmm/install/guides/task-scheduler/04-basic-task-05.png new file mode 100644 index 00000000..99ac510e Binary files /dev/null and b/docs/pmm/install/guides/task-scheduler/04-basic-task-05.png differ diff --git a/docs/pmm/install/guides/task-scheduler/04-basic-task-06.png b/docs/pmm/install/guides/task-scheduler/04-basic-task-06.png new file mode 100644 index 00000000..c7116df1 Binary files /dev/null and b/docs/pmm/install/guides/task-scheduler/04-basic-task-06.png differ diff --git a/docs/pmm/install/guides/task-scheduler/04-basic-task-07.png b/docs/pmm/install/guides/task-scheduler/04-basic-task-07.png new file mode 100644 index 00000000..ad908039 Binary files /dev/null and b/docs/pmm/install/guides/task-scheduler/04-basic-task-07.png differ diff --git a/docs/home/guides/task-scheduler/04-basic-task-08.png b/docs/pmm/install/guides/task-scheduler/04-basic-task-08.png similarity index 100% rename from docs/home/guides/task-scheduler/04-basic-task-08.png rename to docs/pmm/install/guides/task-scheduler/04-basic-task-08.png diff --git a/docs/pmm/install/guides/task-scheduler/04-basic-task-09.png b/docs/pmm/install/guides/task-scheduler/04-basic-task-09.png new file mode 100644 index 00000000..86ac4528 Binary files /dev/null and b/docs/pmm/install/guides/task-scheduler/04-basic-task-09.png differ diff --git a/docs/home/guides/task-scheduler/05-waiter-cmd.png b/docs/pmm/install/guides/task-scheduler/05-waiter-cmd.png similarity index 100% rename from docs/home/guides/task-scheduler/05-waiter-cmd.png rename to docs/pmm/install/guides/task-scheduler/05-waiter-cmd.png diff --git a/docs/home/guides/task-scheduler/06-basic-task-01.png b/docs/pmm/install/guides/task-scheduler/06-basic-task-01.png similarity index 100% rename from docs/home/guides/task-scheduler/06-basic-task-01.png rename to docs/pmm/install/guides/task-scheduler/06-basic-task-01.png diff --git a/docs/pmm/install/guides/task-scheduler/06-basic-task-02.png b/docs/pmm/install/guides/task-scheduler/06-basic-task-02.png new file mode 100644 index 00000000..775ec6ca Binary files /dev/null and b/docs/pmm/install/guides/task-scheduler/06-basic-task-02.png differ diff --git a/docs/pmm/install/guides/task-scheduler/06-basic-task-03.png b/docs/pmm/install/guides/task-scheduler/06-basic-task-03.png new file mode 100644 index 00000000..1e3c03c6 Binary files /dev/null and b/docs/pmm/install/guides/task-scheduler/06-basic-task-03.png differ diff --git a/docs/pmm/install/guides/task-scheduler/06-basic-task-04.png b/docs/pmm/install/guides/task-scheduler/06-basic-task-04.png new file mode 100644 index 00000000..93778de1 Binary files /dev/null and b/docs/pmm/install/guides/task-scheduler/06-basic-task-04.png differ diff --git a/docs/pmm/install/guides/task-scheduler/06-basic-task-05.png b/docs/pmm/install/guides/task-scheduler/06-basic-task-05.png new file mode 100644 index 00000000..6cc50106 Binary files /dev/null and b/docs/pmm/install/guides/task-scheduler/06-basic-task-05.png differ diff --git a/docs/pmm/install/guides/task-scheduler/06-basic-task-06.png b/docs/pmm/install/guides/task-scheduler/06-basic-task-06.png new file mode 100644 index 00000000..fa2f55a2 Binary files /dev/null and b/docs/pmm/install/guides/task-scheduler/06-basic-task-06.png differ diff --git a/docs/home/guides/task-scheduler/07-waiter-cmd-times.png b/docs/pmm/install/guides/task-scheduler/07-waiter-cmd-times.png similarity index 100% rename from docs/home/guides/task-scheduler/07-waiter-cmd-times.png rename to docs/pmm/install/guides/task-scheduler/07-waiter-cmd-times.png diff --git a/docs/home/guides/unraid-webui.png b/docs/pmm/install/guides/unraid-webui.png similarity index 100% rename from docs/home/guides/unraid-webui.png rename to docs/pmm/install/guides/unraid-webui.png diff --git a/docs/home/guides/unraid.md b/docs/pmm/install/guides/unraid.md similarity index 71% rename from docs/home/guides/unraid.md rename to docs/pmm/install/guides/unraid.md index a8ad6784..276217e1 100644 --- a/docs/home/guides/unraid.md +++ b/docs/pmm/install/guides/unraid.md @@ -8,15 +8,19 @@ This article will walk you through getting Plex-Meta-Manager [PMM] set up and ru 5. Creating a docker container that will keep running in the background The specific steps you will be taking: + 1. Verify that Plex Meta Manager unRAID app is installed and install it if not 2. Use `unRAID APPS` to retrieve the PMM Docker image 3. Create a directory for your config files and learn how to tell app to use it 4. Gather two things that the script requires: - 1. TMDb API Key - 2. Plex URL and Token + + 1. TMDb API Key + 2. Plex URL and Token + 5. Then, iteratively: - 1. use `unRAID >_Console` to run the commmands - 2. use a text editor to modify a couple of text files until you have a working config file and a single working metadata file. + + 1. use `unRAID >_Console` to run the commmands + 2. use a text editor to modify a couple of text files until you have a working config file and a single working metadata file. If the idea of editing YAML files by hand is daunting, this may not be the tool for you. All the configuration of PMM is done via YAML text files, so if you are unable or unwilling to learn how those work, you should stop here. @@ -43,8 +47,9 @@ That’s a command you’re going to type or paste into your unRAID Plex Meta Ma ### Prepare a small test library [optional] -```{include} wt/wt-test-library.md -``` +{% + include-markdown "./wt/wt-test-library.md" +%} ### Installing Community Applications in unRAID @@ -52,13 +57,13 @@ Thankfully, getting Plex Meta Manager working on unRAID is a fairly simple task. To install a container from docker hub, you will need community applications - a very popular plugin for unRAID servers. If you don't already have this installed, you can install it [here](https://forums.unraid.net/topic/38582-plug-in-community-applications/) ### Installing Plex Meta Manager in unRAID -1. Head to the `Apps` tab of unRAID (Community Applications), and search `plex meta manager` in the upper right search box. There will be a couple of results shown, but you should ignore them ([Why?](images)) and use the official image. +1. Head to the `Apps` tab of unRAID (Community Applications), and search `plex meta manager` in the upper right search box. There will be a couple of results shown, but you should ignore them ([Why?](images.md)) and use the official image. 2. Click the `Install` button on the Template from Sohjiro's Repository Tools. 3. Choose which branch you want to run `latest`, `develop`, or `nightly`. -4. Click `Show more settings...` to set any [Environmental Variables](../../home/environmental) you wish to use. **For the purposes of this walkthrough, the** `Container Path: /config` **path for the unRAID app is** `/mnt/user/appdata/plex-meta-manager` +4. Click `Show more settings...` to set any [Environmental Variables](../../essentials/environmental.md) you wish to use. **For the purposes of this walkthrough, the** `Container Path: /config` **path for the unRAID app is** `/mnt/user/appdata/plex-meta-manager` 5. Hit `Apply`, and allow unRAID to download the docker container. @@ -88,135 +93,158 @@ The default config file contains a reference to a directory that will show an er We'll create it here so the error doesn't show up later. -````{tab} Linux -[type this into your terminal] -``` -mkdir config/assets -``` -```` -````{tab} OS X -[type this into your terminal] -``` -mkdir config/assets -``` -```` -````{tab} Windows -[type this into your terminal] -``` -mkdir config\assets -``` -```` +=== ":fontawesome-brands-linux: Linux" + + [type this into your terminal] + ``` + mkdir config/assets + ``` + +=== ":fontawesome-brands-apple: macOS" + + [type this into your terminal] + ``` + mkdir config/assets + ``` + +=== ":fontawesome-brands-windows: Windows" + + [type this into your terminal] + ``` + mkdir config\assets + ``` ### Setting up the initial config file -```{include} wt/wt-01-basic-config.md -``` +{% + include-markdown "./wt/wt-01-basic-config.md" +%} #### Editing the config template First, make a copy of the template: -````{tab} Linux -Get a copy of the template to edit [type this into your terminal]: -``` -curl -fLvo config/config.yml https://raw.githubusercontent.com/meisnate12/Plex-Meta-Manager/master/config/config.yml.template -``` -```` -````{tab} OS X -Get a copy of the template to edit [type this into your terminal]: -``` -curl -fLvo config/config.yml https://raw.githubusercontent.com/meisnate12/Plex-Meta-Manager/master/config/config.yml.template -``` -```` -````{tab} Windows -Go to [this URL](https://raw.githubusercontent.com/meisnate12/Plex-Meta-Manager/master/config/config.yml.template) using a web browser; choose the "Save" command, then save the file at: -``` -C:\Users\YOURUSERNAME\plex-meta-manager\config\config.yml -``` -```` +=== ":fontawesome-brands-linux: Linux" + + Get a copy of the template to edit [type this into your terminal]: + ``` + curl -fLvo config/config.yml https://raw.githubusercontent.com/meisnate12/Plex-Meta-Manager/master/config/config.yml.template + ``` + +=== ":fontawesome-brands-apple: macOS" + + Get a copy of the template to edit [type this into your terminal]: + ``` + curl -fLvo config/config.yml https://raw.githubusercontent.com/meisnate12/Plex-Meta-Manager/master/config/config.yml.template + ``` + +=== ":fontawesome-brands-windows: Windows" + + Go to [this URL](https://raw.githubusercontent.com/meisnate12/Plex-Meta-Manager/master/config/config.yml.template) using a web browser; choose the "Save" command, then save the file at: + ``` + C:\Users\YOURUSERNAME\plex-meta-manager\config\config.yml + ``` Now open the copy in an editor on the machine of your choice(All 3 are fine. Just decide on one): -```{include} wt/wt-editor.md -``` +{% + include-markdown "./wt/wt-editor.md" +%} -```{include} wt/wt-02-config-bad-library.md -``` +{% + include-markdown "./wt/wt-02-config-bad-library.md" +%} #### Testing the config file Save the file: -```{include} wt/wt-save.md -``` +{% + include-markdown "./wt/wt-save.md" +%} Then run the script again: -```{include} wt/wt-run-shell.md -``` +{% + include-markdown "./wt/wt-run-shell.md" +%} -```{include} wt/wt-03-lib-err-and-fix.md -``` +{% + include-markdown "./wt/wt-03-lib-err-and-fix.md" +%} ### Creating a few sample collections. -```{include} wt/wt-04-default-intro.md -``` +{% + include-markdown "./wt/wt-04-default-intro.md" +%} So let's run the script and see this happen: -```{include} wt/wt-run-shell.md -``` +{% + include-markdown "./wt/wt-run-shell.md" +%} -```{include} wt/wt-04b-default-after.md -``` +{% + include-markdown "./wt/wt-04b-default-after.md" +%} ### Setting up a metadata file and creating a sample collection. -```{include} wt/wt-05-local-file.md -``` +{% + include-markdown "./wt/wt-05-local-file.md" +%} Save the file: -```{include} wt/wt-save.md -``` +{% + include-markdown "./wt/wt-save.md" +%} Then run the script again: -```{include} wt/wt-run-shell.md -``` +{% + include-markdown "./wt/wt-run-shell.md" +%} -```{include} wt/wt-06-local-after.md -``` +{% + include-markdown "./wt/wt-06-local-after.md" +%} ### Adding Overlays to movies. -```{include} wt/wt-07-overlay-add.md -``` +{% + include-markdown "./wt/wt-07-overlay-add.md" +%} Save the file: -```{include} wt/wt-save.md -``` +{% + include-markdown "./wt/wt-save.md" +%} Then run the script again: -```{include} wt/wt-run-shell.md -``` +{% + include-markdown "./wt/wt-run-shell.md" +%} -```{include} wt/wt-08-overlay-after.md -``` +{% + include-markdown "./wt/wt-08-overlay-after.md" +%} -```{include} wt/wt-09-next-steps.md -``` +{% + include-markdown "./wt/wt-09-next-steps.md" +%} ## Other Topics ### Scheduling -```{include} wt/wt-10-scheduling.md -``` +{% + include-markdown "./wt/wt-10-scheduling.md" +%} ### I want to use the develop branch Add the `develop` tag to the image name in your `Repository:` setting for the Plex Meta Manager unRAID app: [meisnate12/plex-meta-manager:develop] diff --git a/docs/home/guides/wt/wt-01-basic-config.md b/docs/pmm/install/guides/wt/wt-01-basic-config.md similarity index 100% rename from docs/home/guides/wt/wt-01-basic-config.md rename to docs/pmm/install/guides/wt/wt-01-basic-config.md diff --git a/docs/home/guides/wt/wt-02-config-bad-library.md b/docs/pmm/install/guides/wt/wt-02-config-bad-library.md similarity index 100% rename from docs/home/guides/wt/wt-02-config-bad-library.md rename to docs/pmm/install/guides/wt/wt-02-config-bad-library.md diff --git a/docs/home/guides/wt/wt-03-lib-err-and-fix.md b/docs/pmm/install/guides/wt/wt-03-lib-err-and-fix.md similarity index 98% rename from docs/home/guides/wt/wt-03-lib-err-and-fix.md rename to docs/pmm/install/guides/wt/wt-03-lib-err-and-fix.md index a339b8a1..23853a34 100644 --- a/docs/home/guides/wt/wt-03-lib-err-and-fix.md +++ b/docs/pmm/install/guides/wt/wt-03-lib-err-and-fix.md @@ -69,4 +69,4 @@ playlist_files: Where `THE_NAME_OF_YOUR_MOVIE_LIBRARY` has been replaced by the name of your movie library as shown in Plex ["All The Movies" here]: -![movie-lib-name](movie-lib-name.png) +![movie-lib-name](../movie-lib-name.png) diff --git a/docs/home/guides/wt/wt-04-default-intro.md b/docs/pmm/install/guides/wt/wt-04-default-intro.md similarity index 100% rename from docs/home/guides/wt/wt-04-default-intro.md rename to docs/pmm/install/guides/wt/wt-04-default-intro.md diff --git a/docs/home/guides/wt/wt-04b-default-after.md b/docs/pmm/install/guides/wt/wt-04b-default-after.md similarity index 93% rename from docs/home/guides/wt/wt-04b-default-after.md rename to docs/pmm/install/guides/wt/wt-04b-default-after.md index 134b28fa..b77046ab 100644 --- a/docs/home/guides/wt/wt-04b-default-after.md +++ b/docs/pmm/install/guides/wt/wt-04b-default-after.md @@ -4,6 +4,6 @@ As it builds the collections, you should see a fair amount of logging about whic On my test library, this created four collections. You may see fewer depending on what specific movies are in that library. -![default-collections](default-collections.png) +![default-collections](../default-collections.png) Perhaps you can do everything you want in terms of collections [award collections, actor collections, genre collections, franchise collections, etc] with the defaults. You can investigate what they can provide under the "Defaults" heading at the top of this wiki. diff --git a/docs/home/guides/wt/wt-05-local-file.md b/docs/pmm/install/guides/wt/wt-05-local-file.md similarity index 72% rename from docs/home/guides/wt/wt-05-local-file.md rename to docs/pmm/install/guides/wt/wt-05-local-file.md index 06b0733b..57e0c94a 100644 --- a/docs/home/guides/wt/wt-05-local-file.md +++ b/docs/pmm/install/guides/wt/wt-05-local-file.md @@ -2,27 +2,30 @@ If the default metadata files do not allow you to create the collections you wan First, open the metadata file [this will create the file if it doesn't already exist]: -````{tab} Linux -[type this into your terminal] +=== ":fontawesome-brands-linux: Linux" -``` -nano "config/Movies.yml" -``` -```` -````{tab} OS X -[type this into your terminal] + [type this into your terminal] + + ``` + nano "config/Movies.yml" + ``` -``` -nano "config/Movies.yml" -``` -```` -````{tab} Windows -[type this into your terminal] +=== ":fontawesome-brands-apple: macOS" + + [type this into your terminal] + + ``` + notepad "config\Movies.yml" + ``` + +=== ":fontawesome-brands-windows: Windows" + + [type this into your terminal] + + ``` + notepad "config\Movies.yml" + ``` -``` -notepad "config\Movies.yml" -``` -```` In this file, add the following, exactly as it is shown here; remember that spacing is significant in YAML files: @@ -38,8 +41,9 @@ collections: Save the file: -```{include} wt/wt-save.md -``` +{% + include-markdown "./wt-save.md" +%} Next, add a reference to this file to your config file. diff --git a/docs/home/guides/wt/wt-06-local-after.md b/docs/pmm/install/guides/wt/wt-06-local-after.md similarity index 94% rename from docs/home/guides/wt/wt-06-local-after.md rename to docs/pmm/install/guides/wt/wt-06-local-after.md index 4ccda43d..48744ec7 100644 --- a/docs/home/guides/wt/wt-06-local-after.md +++ b/docs/pmm/install/guides/wt/wt-06-local-after.md @@ -9,7 +9,7 @@ As it builds the collection, you should see a fair amount of logging about which You should see the new collection: -![Finished Collections](finished.png) +![Finished Collections](../finished.png) When you click into each, you’ll see the movies that PMM added to each collection. diff --git a/docs/home/guides/wt/wt-07-overlay-add.md b/docs/pmm/install/guides/wt/wt-07-overlay-add.md similarity index 100% rename from docs/home/guides/wt/wt-07-overlay-add.md rename to docs/pmm/install/guides/wt/wt-07-overlay-add.md diff --git a/docs/home/guides/wt/wt-08-overlay-after.md b/docs/pmm/install/guides/wt/wt-08-overlay-after.md similarity index 96% rename from docs/home/guides/wt/wt-08-overlay-after.md rename to docs/pmm/install/guides/wt/wt-08-overlay-after.md index 29fc4841..226cf01c 100644 --- a/docs/home/guides/wt/wt-08-overlay-after.md +++ b/docs/pmm/install/guides/wt/wt-08-overlay-after.md @@ -20,4 +20,4 @@ Eventually, you'll see it start applying overlays to all your movies: When it finishes, go to the Library tab in this library in Plex: -![Overlaid posters](overlays.png) +![Overlaid posters](../overlays.png) diff --git a/docs/home/guides/wt/wt-09-next-steps.md b/docs/pmm/install/guides/wt/wt-09-next-steps.md similarity index 91% rename from docs/home/guides/wt/wt-09-next-steps.md rename to docs/pmm/install/guides/wt/wt-09-next-steps.md index 2bc4420b..d08c6b78 100644 --- a/docs/home/guides/wt/wt-09-next-steps.md +++ b/docs/pmm/install/guides/wt/wt-09-next-steps.md @@ -25,15 +25,14 @@ libraries: Edit `Movies.yml` to reflect the actions you want PMM to perform on *your* libraries. -TV Shows and other libraries work the same way as you've seen above. Create a section under `Libraries:` in the config.yml, refer to default files or create a metadata file, define collections, run the script. +TV Shows and other libraries work the same way as you've seen above. Create a section under `libraries:` in the config.yml, refer to default files or create a metadata file, define collections, run the script. Investigate the rest of the wiki to learn about everything Plex-Meta-Manager can do for you. ### Runtime and Environment Flags -The command in this walkthrough will run all collections and libraries immediately. If you want to modify that behavior to run just one or some collections, or just one library, or just overlays or the like, review the [Run Commands & Environment Variables](../../environmental.md). +The command in this walkthrough will run all collections and libraries immediately. If you want to modify that behavior to run just one or some collections, or just one library, or just overlays or the like, review the [Run Commands & Environment Variables](../../../essentials/environmental.md). ### Creating Collections, Overlays, Playlists, etc. -These things are all generally defined in metadata files that are referred to in the config file. The starting point for creating these files is [here](../../../metadata/metadata.md). - +These things are all generally defined in metadata files that are referred to in the config file. The starting point for creating these files is [here](../../../../metadata/metadata.md). diff --git a/docs/home/guides/wt/wt-10-scheduling.md b/docs/pmm/install/guides/wt/wt-10-scheduling.md similarity index 89% rename from docs/home/guides/wt/wt-10-scheduling.md rename to docs/pmm/install/guides/wt/wt-10-scheduling.md index f4bfed68..36f65809 100644 --- a/docs/home/guides/wt/wt-10-scheduling.md +++ b/docs/pmm/install/guides/wt/wt-10-scheduling.md @@ -4,12 +4,12 @@ Plex Meta Manager also features multiple layers of scheduling, which you can lev - You can run PMM in the background, telling it to wake up and process your libraries at fixed times during the day. The default behavior in this regard is to wake up at 5AM and process the config. If you leave the `-r` off the commands you have been using in this walkthrough, that's what will happen. - You can control when PMM wakes up with the [time-to-run](../../../home/environmental.md) env-var/runtime flag. + You can control when PMM wakes up with the [time-to-run](../../../essentials/environmental.md) env-var/runtime flag. - You can skip using that internal schedule and just do manual runs as you have been doing throughout this walkthrough using standard tools available in your OS. - Details on setting this up are found [here](../../../home/guides/scheduling.md). + Details on setting this up are found [here](../scheduling.md). - In addition, individual items *within* the configuration can be scheduled to take place at certain times *provided PMM is running at that time*. For example, you can tell PMM only to apply overlays on Tuesdays or the like. You can then schedule manual runs every day at noon and overlays will only get processed when it runs on Tuesday. This sort of schedule *will not* make PMM start up if it is not already running. If you don't arrange for PMM to be run on Tuesday, your overlays would never be processed in this example. - Details on this level of scheduling are found [here](../../../metadata/details/schedule.md) + Details on this level of scheduling are found [here](../../../../builders/details/schedule.md) diff --git a/docs/pmm/install/guides/wt/wt-editor.md b/docs/pmm/install/guides/wt/wt-editor.md new file mode 100644 index 00000000..ef3e4d83 --- /dev/null +++ b/docs/pmm/install/guides/wt/wt-editor.md @@ -0,0 +1,50 @@ +=== ":fontawesome-brands-linux: Linux" + + [type this into your terminal] + + ``` + nano config/config.yml + ``` + + I’m using `nano` here mostly because it’s simpler than any other editor on Linux. + + If you see something like: + ```bash + $ nano config/config.yml + zsh: command not found: nano + ``` + + You need to install `nano`, which you would do with: + + [type this into your terminal] + + ``` + sudo apt install nano + ``` + + You can use any other text editor you wish, provided it saves files as PLAIN TEXT. `vi`, `emacs`, etc. + +=== ":fontawesome-brands-apple: macOS" + + [type this into your terminal] + + ``` + nano config/config.yml + ``` + + I’m using `nano` here simply because it’s built into OSX. You can use any other text editor you wish, provided it saves files as PLAIN TEXT. BBedit, TextMate, VSCode, etc. + + A common mistake is using TextEdit.app, which saves files as RTF by default. + +=== ":fontawesome-brands-windows: Windows" + + [type this into your terminal] + + ``` + notepad .\config\config.yml + ``` + I’m using `notepad` here simply because it’s built into Windows. You can use any other text editor you wish, provided it saves files as PLAIN TEXT. + + + +From here on in, when this walkthrough says "open the config file", I mean this `nano` or `notepad` command. **Don't copy the template again**. diff --git a/docs/home/guides/wt/wt-run-docker.md b/docs/pmm/install/guides/wt/wt-run-docker.md similarity index 100% rename from docs/home/guides/wt/wt-run-docker.md rename to docs/pmm/install/guides/wt/wt-run-docker.md diff --git a/docs/home/guides/wt/wt-run-shell.md b/docs/pmm/install/guides/wt/wt-run-shell.md similarity index 100% rename from docs/home/guides/wt/wt-run-shell.md rename to docs/pmm/install/guides/wt/wt-run-shell.md diff --git a/docs/pmm/install/guides/wt/wt-save.md b/docs/pmm/install/guides/wt/wt-save.md new file mode 100644 index 00000000..f2756834 --- /dev/null +++ b/docs/pmm/install/guides/wt/wt-save.md @@ -0,0 +1,14 @@ +=== ":fontawesome-brands-linux: Linux" + + If you're using `nano`, type control-`x`, then `y`, then the enter key. + + +=== ":fontawesome-brands-apple: macOS" + + If you're using `nano`, type control-`x`, then `y`, then the enter key. + + +=== ":fontawesome-brands-windows: Windows" + + If you're using `notepad`, type control-`s` or choose `Save` from the `File` menu. + diff --git a/docs/home/guides/wt/wt-test-library.md b/docs/pmm/install/guides/wt/wt-test-library.md similarity index 100% rename from docs/home/guides/wt/wt-test-library.md rename to docs/pmm/install/guides/wt/wt-test-library.md diff --git a/docs/home/guides/yaml.md b/docs/pmm/install/guides/yaml.md similarity index 100% rename from docs/home/guides/yaml.md rename to docs/pmm/install/guides/yaml.md diff --git a/docs/home/installation.md b/docs/pmm/install/installation.md similarity index 91% rename from docs/home/installation.md rename to docs/pmm/install/installation.md index 8761aee2..7c9bd153 100644 --- a/docs/home/installation.md +++ b/docs/pmm/install/installation.md @@ -23,22 +23,22 @@ The installation overviews on this page are aimed at users who have previous exp For those who need full installation walkthroughs, please refer to the following walkthrough guides: - * [Local Walkthrough](guides/local) - follow this if you are running the script directly on Windows, OS X, or Linux - * [Docker Walkthrough](guides/docker) - this discusses using Docker at the command line + * [Local Walkthrough](guides/local.md) - follow this if you are running the script directly on Windows, OS X, or Linux + * [Docker Walkthrough](guides/docker.md) - this discusses using Docker at the command line If you are using unRAID, Kubernetes, QNAP, or Synology refer to the following basic guide to Docker container setup for each system: **this doesn't cover the PMM setup specifics found in the guides above** - * [unRAID Walkthrough](guides/unraid) - * [Kubernetes Walkthrough](guides/kubernetes) - * [QNAP Walkthrough](guides/qnap) - * [Synology Walkthrough](guides/synology) + * [unRAID Walkthrough](guides/unraid.md) + * [Kubernetes Walkthrough](guides/kubernetes.md) + * [QNAP Walkthrough](guides/qnap.md) + * [Synology Walkthrough](guides/synology.md) ## Local Install Overview Plex Meta Manager is compatible with Python 3.8 through 3.11. Later versions may function but are untested. -These are high-level steps which assume the user has knowledge of python and pip, and the general ability to troubleshoot issues. For a detailed step-by-step walkthrough, refer to the [Local Walkthrough](guides/local) guide. +These are high-level steps which assume the user has knowledge of python and pip, and the general ability to troubleshoot issues. For a detailed step-by-step walkthrough, refer to the [Local Walkthrough](guides/local.md) guide. 1. Clone or [download and unzip](https://github.com/meisnate12/Plex-Meta-Manager/archive/refs/heads/master.zip) the repo. @@ -108,7 +108,7 @@ A `Dockerfile` is included within the GitHub repository for those who require it ## Customizing the docker-compose file with runtime flags and ENV vars -Plex Meta Manager's behavior can be modified in a variety of ways using either runtime flags or environnment variables. These flags and vars are detailed [here](environmental). +Plex Meta Manager's behavior can be modified in a variety of ways using either runtime flags or environnment variables. These flags and vars are detailed [here](../essentials/environmental.md). This is optional, and is not necessary to run PMM. Many if not most users will have no reason to do this and can use something more like the basic docker-compose just above. @@ -139,4 +139,4 @@ services: `- PMM_LIBRARIES=Movies` tells PMM to process only a library called "Movies" -Again, a list of the available environment variables can be found [here](environmental). +Again, a list of the available environment variables can be found [here](../essentials/environmental.md). diff --git a/docs/requirements.txt b/docs/requirements.txt index 598c2264..26f4adff 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -1,12 +1,14 @@ -myst-parser -sphinx_bootstrap_theme -sphinx_inline_tabs -sphinx-copybutton -sphinx-reredirects -sphinx_design -sphinx-reload -sphinx-notfound-page -scipy -numpy -pandas -matplotlib \ No newline at end of file +mkdocs-material +mkdocs-glightbox +mkdocs-include-markdown-plugin +jinja2 +markdown +mkdocs +mkdocs-material-extensions +pygments +pymdown-extensions +babel +colorama +paginate +regex +requests \ No newline at end of file diff --git a/docs/showcase/overlay-showcase1.jpg b/docs/showcase/overlay-showcase1.jpg new file mode 100644 index 00000000..dc716d8e Binary files /dev/null and b/docs/showcase/overlay-showcase1.jpg differ diff --git a/docs/showcase/overlay-showcase2.jpg b/docs/showcase/overlay-showcase2.jpg new file mode 100644 index 00000000..18dd72c1 Binary files /dev/null and b/docs/showcase/overlay-showcase2.jpg differ diff --git a/docs/showcase/overlay-showcase3.jpg b/docs/showcase/overlay-showcase3.jpg new file mode 100644 index 00000000..3114eb9b Binary files /dev/null and b/docs/showcase/overlay-showcase3.jpg differ diff --git a/docs/showcase/overlays.md b/docs/showcase/overlays.md new file mode 100644 index 00000000..bcc0a0e3 --- /dev/null +++ b/docs/showcase/overlays.md @@ -0,0 +1,152 @@ +# Overlays Showcase + +This page is designed to show the art of the possible when using Overlays within Plex Meta Manager. + +Each showcased photo has been confirmed to be fully functional with Plex Meta Manager v1.19.0. We cannot guarantee functionality beyond that version. + +## Example 1 + +=== "Example 1" + + ![Overlay Showcase 1](overlay-showcase1.jpg){width="600" align=left loading=lazy } + + This example shows a minimalistic Overlay application with the resolution, audio codec and video format on display. + + This example uses three PMM Default Overlay files: [Resolution](../defaults/overlays/resolution.md), [Audio Codec](../defaults/overlays/audio_codec.md) and [Video Format](../defaults/overlays/video_format.md). + + Resolution is used to identify if the movie is 4K for example, and also highlights if a movie is Dolby Vision or HDR. + + Audio Codec is used to identify what format the audio is in (such as Dolby Digital or Dolby ATMOS) + + Video Format is used to identify the source of a file (such as a DVD rip or a WEB rip) + + **Click the image to enlarge it** + +=== "Click to view Example 1 code" + + This code belongs in config.yml + + ```yml + libraries: + Movies: + overlay_path: + - pmm: resolution + - pmm: audio_codec + - pmm: video_format + ``` + + **Replace `Movies` with the name of your library** + +## Example 2 + +=== "Example 2" + + ![Overlay Showcase 2](overlay-showcase2.jpg){width="600" align=left loading=lazy } + + This example shows a minimalistic Overlay application with the ratings and ribbon of the movie. + + This example uses two PMM Default Overlay files: [Ratings](../defaults/overlays/ratings.md) and [Ribbon](../defaults/overlays/ribbon.md). + + Ratings are set to show the Rotten Tomatoes Audience & Critic scores, as well as the IMDb score. + + Custom fonts have been used for the ratings which can be sourced in [bullmoose20's repository](https://github.com/meisnate12/Plex-Meta-Manager-Configs/tree/master/bullmoose20) within `fonts.zip` + + A [Library Operation](../config/operations.md#mass--rating-update) is used to place the IMDb rating into the user rating slot, as can be seen in the code example. + + **Click the image to enlarge it** + +=== "Click to view Example 2 code" + + This code belongs in config.yml + + ```yml + libraries: + Movies: + overlay_path: + - pmm: ratings + template_variables: + rating1: critic + rating1_image: rt_tomato + rating1_font: config/overlays/fonts/Adlib.ttf + rating1_font_size: 63 + rating2: audience + rating2_image: rt_popcorn + rating2_font: config/overlays/fonts/Adlib.ttf + rating2_font_size: 63 + rating3: user + rating3_image: imdb + rating3_font: config/overlays/fonts/Impact.ttf + rating3_font_size: 70 + horizontal_position: left + vertical_position: bottom + rating1_vertical_offset: 30 + rating2_vertical_offset: 30 + rating3_vertical_offset: 30 + rating1_horizontal_offset: 30 + rating2_horizontal_offset: 250 + rating3_horizontal_offset: 470 + - pmm: ribbon + operations: + mass_user_rating_update: imdb + ``` + + **Replace `Movies` with the name of your library** and **Set the font location to wherever you place them** + + +## Example 3 + +=== "Example 3" + + ![Overlay Showcase 3](overlay-showcase3.jpg){width="600" align=left loading=lazy } + + This example shows a minimalistic Overlay application with the ratings applied at the bottom of the poster + + This example uses two PMM Default Overlay files: [Ratings](../defaults/overlays/ratings.md) and [Runtimes](../defaults/overlays/runtimes.md). + + Ratings are set to show the TMDb, Trakt and IMDb ratings, which have been set using [Library Operations](../config/operations.md#mass--rating-update) + + The runtimes overlay is modified to show no text, but to instead produce the black bar which the ratigns sit on top of. + + **Click the image to enlarge it** + +=== "Click to view Example 3 code" + + This code belongs in config.yml + + ```yml + libraries: + Movies: + overlay_path: + - pmm: runtimes + template_variables: + text: "" + horizontal_position: center + rating_alignment: horizontal + vertical_position: bottom + back_width: 2500 + back_radius: 1 + back_color: "#000000" + horizontal_offset: 0 + vertical_offset: 0 + - pmm: ratings + template_variables: + rating1: critic + rating1_image: tmdb + rating2: audience + rating2_image: trakt + rating3: user + rating3_image: imdb + horizontal_position: center + rating_alignment: horizontal + vertical_position: bottom + back_width: 1 + back_radius: 0 + back_height: 40 + back_color: "#000000" + operations: + mass_critic_rating_update: tmdb + mass_audience_rating_update: trakt + mass_user_rating_update: imdb + ``` + + **Replace `Movies` with the name of your library** diff --git a/docs/stylesheets/branch.js b/docs/stylesheets/branch.js new file mode 100644 index 00000000..a8707db9 --- /dev/null +++ b/docs/stylesheets/branch.js @@ -0,0 +1,31 @@ +// custom.js + +// Function to check if the current URL contains "config" or "metadata" +function checkURLForBranch() { + const currentURL = window.location.href; + + if (currentURL.indexOf("nightly") !== -1) { + // If "config" is found in the URL, change the CSS of .md-header to red + document.querySelector(".md-header").style.backgroundColor = "#ef5552"; + document.querySelector(".md-tabs").style.backgroundColor = "#ef5552"; + + // Change the text of <span class="md-ellipsis"> + const ellipsisSpan = document.querySelector(".md-ellipsis"); + if (ellipsisSpan) { + ellipsisSpan.textContent = "PMM Wiki - NIGHTLY BRANCH"; + } + } else if (currentURL.indexOf("develop") !== -1) { + // If "metadata" is found in the URL, change the CSS of .md-header to yellow + document.querySelector(".md-header").style.backgroundColor = "#ffa724"; + document.querySelector(".md-tabs").style.backgroundColor = "#ffa724"; + + // Change the text of <span class="md-ellipsis"> + const ellipsisSpan = document.querySelector(".md-ellipsis"); + if (ellipsisSpan) { + ellipsisSpan.textContent = "PMM Wiki - DEVELOP BRANCH"; + } + } +} + +// Call the function on page load +window.addEventListener("load", checkURLForBranch); diff --git a/docs/stylesheets/custom.css b/docs/stylesheets/custom.css new file mode 100644 index 00000000..9d46cdfa --- /dev/null +++ b/docs/stylesheets/custom.css @@ -0,0 +1,146 @@ +.termynal-comment { + color: #4a968f; + font-style: italic; + display: block; +} + +.termy { + /* For right to left languages */ + direction: ltr; +} + +.termy [data-termynal] { + white-space: pre-wrap; +} + +a.external-link { + /* For right to left languages */ + direction: ltr; + display: inline-block; +} + +a.external-link::after { + /* \00A0 is a non-breaking space + to make the mark be on the same line as the link + */ + content: "\00A0[↪]"; +} + +a.internal-link::after { + /* \00A0 is a non-breaking space + to make the mark be on the same line as the link + */ + content: "\00A0↪"; +} + +.shadow { + box-shadow: 5px 5px 10px #999; +} + +/* Give space to lower icons so Gitter chat doesn't get on top of them */ +.md-footer-meta { + padding-bottom: 2em; +} + +.user-list { + display: flex; + flex-wrap: wrap; + margin-bottom: 2rem; +} + +.user-list-center { + justify-content: space-evenly; +} + +.user { + margin: 1em; + min-width: 7em; +} + +.user .avatar-wrapper { + width: 80px; + height: 80px; + margin: 10px auto; + overflow: hidden; + border-radius: 50%; + position: relative; +} + +.user .avatar-wrapper img { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); +} + +.user .title { + text-align: center; +} + +.user .count { + font-size: 80%; + text-align: center; +} + +a.announce-link:link, +a.announce-link:visited { + color: #fff; +} + +a.announce-link:hover { + color: var(--md-accent-fg-color); +} + +.announce-wrapper { + display: flex; + justify-content: space-between; + flex-wrap: wrap; + align-items: center; +} + +.announce-wrapper div.item { + display: none; +} + +.announce-wrapper .sponsor-badge { + display: block; + position: absolute; + top: -10px; + right: 0; + font-size: 0.5rem; + color: #999; + background-color: #666; + border-radius: 10px; + padding: 0 10px; + z-index: 10; +} + +.announce-wrapper .sponsor-image { + display: block; + border-radius: 20px; +} + +.announce-wrapper>div { + min-height: 40px; + display: flex; + align-items: center; +} + +.twitter { + color: #00acee; +} + +/* Right to left languages */ +code { + direction: ltr; + display: inline-block; +} + +.md-content__inner h1 { + direction: ltr !important; +} + +.illustration { + margin-top: 2em; + margin-bottom: 2em; +} \ No newline at end of file diff --git a/docs/stylesheets/custom.js b/docs/stylesheets/custom.js new file mode 100644 index 00000000..2c718bb6 --- /dev/null +++ b/docs/stylesheets/custom.js @@ -0,0 +1,116 @@ +const div = document.querySelector('.github-topic-projects') + +function setupTermynal() { + document.querySelectorAll(".use-termynal").forEach(node => { + node.style.display = "block"; + new Termynal(node, { + lineDelay: 500 + }); + }); + const progressLiteralStart = "---> 100%"; + const promptLiteralStart = "$ "; + const customPromptLiteralStart = "# "; + const termynalActivateClass = "termy"; + let termynals = []; + + function createTermynals() { + document + .querySelectorAll(`.${termynalActivateClass} .highlight`) + .forEach(node => { + const text = node.textContent; + const lines = text.split("\n"); + const useLines = []; + let buffer = []; + function saveBuffer() { + if (buffer.length) { + let isBlankSpace = true; + buffer.forEach(line => { + if (line) { + isBlankSpace = false; + } + }); + dataValue = {}; + if (isBlankSpace) { + dataValue["delay"] = 0; + } + if (buffer[buffer.length - 1] === "") { + // A last single <br> won't have effect + // so put an additional one + buffer.push(""); + } + const bufferValue = buffer.join("<br>"); + dataValue["value"] = bufferValue; + useLines.push(dataValue); + buffer = []; + } + } + for (let line of lines) { + if (line === progressLiteralStart) { + saveBuffer(); + useLines.push({ + type: "progress" + }); + } else if (line.startsWith(promptLiteralStart)) { + saveBuffer(); + const value = line.replace(promptLiteralStart, "").trimEnd(); + useLines.push({ + type: "input", + value: value + }); + } else if (line.startsWith("// ")) { + saveBuffer(); + const value = "💬 " + line.replace("// ", "").trimEnd(); + useLines.push({ + value: value, + class: "termynal-comment", + delay: 0 + }); + } else if (line.startsWith(customPromptLiteralStart)) { + saveBuffer(); + const promptStart = line.indexOf(promptLiteralStart); + if (promptStart === -1) { + console.error("Custom prompt found but no end delimiter", line) + } + const prompt = line.slice(0, promptStart).replace(customPromptLiteralStart, "") + let value = line.slice(promptStart + promptLiteralStart.length); + useLines.push({ + type: "input", + value: value, + prompt: prompt + }); + } else { + buffer.push(line); + } + } + saveBuffer(); + const div = document.createElement("div"); + node.replaceWith(div); + const termynal = new Termynal(div, { + lineData: useLines, + noInit: true, + lineDelay: 500 + }); + termynals.push(termynal); + }); + } + + function loadVisibleTermynals() { + termynals = termynals.filter(termynal => { + if (termynal.container.getBoundingClientRect().top - innerHeight <= 0) { + termynal.init(); + return false; + } + return true; + }); + } + window.addEventListener("scroll", loadVisibleTermynals); + createTermynals(); + loadVisibleTermynals(); +} + +async function main() { + setupTermynal(); + +} + +main() diff --git a/docs/stylesheets/extra.css b/docs/stylesheets/extra.css new file mode 100644 index 00000000..f862b995 --- /dev/null +++ b/docs/stylesheets/extra.css @@ -0,0 +1,145 @@ +:root, [data-md-color-scheme="default"] { + --md-primary-fg-color: #00bc8c; + --md-primary-fg-color--light: #00bc8c; + --md-primary-fg-color--dark: #00bc8c; + --md-primary-bg-color--light: rgba(0,0,0,.54); +} +:root, [data-md-color-scheme="slate"] { + --md-primary-fg-color: #00bc8c; + --md-primary-fg-color--light: #00bc8c; + --md-primary-fg-color--dark: #00bc8c; + --md-default-bg-color: #252525; + --md-footer-bg-color--dark: var(--md-default-bg-color); +} + +.md-typeset table:not([class]) { + display: table; +} + +.md-typeset .tabbed-set { + border: 1px solid var(--md-default-fg-color--lightest); + border-radius: 6px; + padding: 10px; +} + +.md-typeset :not(.linenodiv) > pre { + border: 1px solid var(--md-default-fg-color--lightest); + border-radius: 6px; + padding: 1px; +} + +.md-typeset h1, .md-typeset h2 { + font-weight: bold; + color: #0e8a6a; + text-transform: uppercase; +} + +.md-typeset h2 { + font-weight: bold; + color: #0e8a6a; + text-transform: uppercase; + +} + +.md-typeset h3 { + font-weight: bold; + color: #0e8a6a; + text-transform: uppercase; +} + +.md-typeset h4 { + font-weight: bold; + color: #0e8a6a; + text-transform: uppercase; +} + +.md-typeset code { + word-break: unset; +} + +[data-md-color-scheme="slate"] .md-typeset code { + background-color: hsl(225deg 17.25% 6.84%); +} + +@media only screen and (min-width: 76.25em) { + .md-main__inner { + max-width: 80%; + } + .md-sidebar--primary { + margin-left: 0; + left: 0; + } + .md-sidebar--secondary { + right: 0; + margin-left: 0; + -webkit-transform: none; + transform: none; + } +} + +@keyframes heart { + 0%, 40%, 80%, 100% { + transform: scale(1); + } + 20%, 60% { + transform: scale(1.15); + } +} +.heart { + animation: heart 1000ms infinite; +} + +.green { + color: #00e676; +} + +.red { + color: #ff001a; +} + +.orange { + color: #e69800; +} + +[data-md-color-scheme="slate"] .grey { + color: #414454; +} + + +[data-md-color-scheme="default"] .grey { + color: #f1f1f1; +} + + +.md-typeset__table table:not([class]) td, +.md-typeset__table table:not([class]) th { + padding: 9px; +} + +/* light mode alternating table bg colors */ +.md-typeset__table tr:nth-child(2n) { + background-color: #f8f8f8; +} + +.md-typeset table:not([class]) { + background-color: var(--md-default-bg-color); + border: 0.05rem solid var(--md-typeset-table-color); + border-radius: 0.1rem; + display: inline-block; + font-size: .8rem; + max-width: 100%; + overflow: auto; + touch-action: auto; +} +/* dark mode alternating table bg colors */ +[data-md-color-scheme="slate"] .md-typeset__table tr:nth-child(2n) { + background-color: #1b1b1b; +} + +.md-typeset mark { + background-color: #ac0ce3; + -webkit-box-decoration-break: clone; + box-decoration-break: clone; + color: #ffffff; + word-break: break-word; +} \ No newline at end of file diff --git a/docs/stylesheets/termynal.css b/docs/stylesheets/termynal.css new file mode 100644 index 00000000..f6cdfeff --- /dev/null +++ b/docs/stylesheets/termynal.css @@ -0,0 +1,109 @@ +/** + * termynal.js + * + * @author Ines Montani <ines@ines.io> + * @version 0.0.1 + * @license MIT + */ + +:root { + --color-bg: #252a33; + --color-text: #eee; + --color-text-subtle: #a2a2a2; +} + +[data-termynal] { + width: 750px; + max-width: 100%; + background: var(--color-bg); + color: var(--color-text); + /* font-size: 18px; */ + font-size: 15px; + /* font-family: 'Fira Mono', Consolas, Menlo, Monaco, 'Courier New', Courier, monospace; */ + font-family: 'Roboto Mono', 'Fira Mono', Consolas, Menlo, Monaco, 'Courier New', Courier, monospace; + border-radius: 4px; + padding: 75px 45px 35px; + position: relative; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} + +[data-termynal]:before { + content: ''; + position: absolute; + top: 15px; + left: 15px; + display: inline-block; + width: 15px; + height: 15px; + border-radius: 50%; + /* A little hack to display the window buttons in one pseudo element. */ + background: #d9515d; + -webkit-box-shadow: 25px 0 0 #f4c025, 50px 0 0 #3ec930; + box-shadow: 25px 0 0 #f4c025, 50px 0 0 #3ec930; +} + +[data-termynal]:after { + content: 'type this in your terminal'; + position: absolute; + color: var(--color-text-subtle); + top: 5px; + left: 0; + width: 100%; + text-align: center; +} + +a[data-terminal-control] { + text-align: right; + display: block; + color: #aebbff; +} + +[data-ty] { + display: block; + line-height: 2; +} + +[data-ty]:before { + /* Set up defaults and ensure empty lines are displayed. */ + content: ''; + display: inline-block; + vertical-align: middle; +} + +[data-ty="input"]:before, +[data-ty-prompt]:before { + margin-right: 0.75em; + color: var(--color-text-subtle); +} + +[data-ty="input"]:before { + content: '$'; +} + +[data-ty][data-ty-prompt]:before { + content: attr(data-ty-prompt); +} + +[data-ty-cursor]:after { + content: attr(data-ty-cursor); + font-family: monospace; + margin-left: 0.5em; + -webkit-animation: blink 1s infinite; + animation: blink 1s infinite; +} + + +/* Cursor animation */ + +@-webkit-keyframes blink { + 50% { + opacity: 0; + } +} + +@keyframes blink { + 50% { + opacity: 0; + } +} diff --git a/docs/stylesheets/termynal.js b/docs/stylesheets/termynal.js new file mode 100644 index 00000000..4ac32708 --- /dev/null +++ b/docs/stylesheets/termynal.js @@ -0,0 +1,264 @@ +/** + * termynal.js + * A lightweight, modern and extensible animated terminal window, using + * async/await. + * + * @author Ines Montani <ines@ines.io> + * @version 0.0.1 + * @license MIT + */ + +'use strict'; + +/** Generate a terminal widget. */ +class Termynal { + /** + * Construct the widget's settings. + * @param {(string|Node)=} container - Query selector or container element. + * @param {Object=} options - Custom settings. + * @param {string} options.prefix - Prefix to use for data attributes. + * @param {number} options.startDelay - Delay before animation, in ms. + * @param {number} options.typeDelay - Delay between each typed character, in ms. + * @param {number} options.lineDelay - Delay between each line, in ms. + * @param {number} options.progressLength - Number of characters displayed as progress bar. + * @param {string} options.progressChar – Character to use for progress bar, defaults to █. + * @param {number} options.progressPercent - Max percent of progress. + * @param {string} options.cursor – Character to use for cursor, defaults to ▋. + * @param {Object[]} lineData - Dynamically loaded line data objects. + * @param {boolean} options.noInit - Don't initialise the animation. + */ + constructor(container = '#termynal', options = {}) { + this.container = (typeof container === 'string') ? document.querySelector(container) : container; + this.pfx = `data-${options.prefix || 'ty'}`; + this.originalStartDelay = this.startDelay = options.startDelay + || parseFloat(this.container.getAttribute(`${this.pfx}-startDelay`)) || 600; + this.originalTypeDelay = this.typeDelay = options.typeDelay + || parseFloat(this.container.getAttribute(`${this.pfx}-typeDelay`)) || 90; + this.originalLineDelay = this.lineDelay = options.lineDelay + || parseFloat(this.container.getAttribute(`${this.pfx}-lineDelay`)) || 1500; + this.progressLength = options.progressLength + || parseFloat(this.container.getAttribute(`${this.pfx}-progressLength`)) || 40; + this.progressChar = options.progressChar + || this.container.getAttribute(`${this.pfx}-progressChar`) || '█'; + this.progressPercent = options.progressPercent + || parseFloat(this.container.getAttribute(`${this.pfx}-progressPercent`)) || 100; + this.cursor = options.cursor + || this.container.getAttribute(`${this.pfx}-cursor`) || '▋'; + this.lineData = this.lineDataToElements(options.lineData || []); + this.loadLines() + if (!options.noInit) this.init() + } + + loadLines() { + // Load all the lines and create the container so that the size is fixed + // Otherwise it would be changing and the user viewport would be constantly + // moving as she/he scrolls + const finish = this.generateFinish() + finish.style.visibility = 'hidden' + this.container.appendChild(finish) + // Appends dynamically loaded lines to existing line elements. + this.lines = [...this.container.querySelectorAll(`[${this.pfx}]`)].concat(this.lineData); + for (let line of this.lines) { + line.style.visibility = 'hidden' + this.container.appendChild(line) + } + const restart = this.generateRestart() + restart.style.visibility = 'hidden' + this.container.appendChild(restart) + this.container.setAttribute('data-termynal', ''); + } + + /** + * Initialise the widget, get lines, clear container and start animation. + */ + init() { + /** + * Calculates width and height of Termynal container. + * If container is empty and lines are dynamically loaded, defaults to browser `auto` or CSS. + */ + const containerStyle = getComputedStyle(this.container); + this.container.style.width = containerStyle.width !== '0px' ? + containerStyle.width : undefined; + this.container.style.minHeight = containerStyle.height !== '0px' ? + containerStyle.height : undefined; + + this.container.setAttribute('data-termynal', ''); + this.container.innerHTML = ''; + for (let line of this.lines) { + line.style.visibility = 'visible' + } + this.start(); + } + + /** + * Start the animation and rener the lines depending on their data attributes. + */ + async start() { + this.addFinish() + await this._wait(this.startDelay); + + for (let line of this.lines) { + const type = line.getAttribute(this.pfx); + const delay = line.getAttribute(`${this.pfx}-delay`) || this.lineDelay; + + if (type == 'input') { + line.setAttribute(`${this.pfx}-cursor`, this.cursor); + await this.type(line); + await this._wait(delay); + } + + else if (type == 'progress') { + await this.progress(line); + await this._wait(delay); + } + + else { + this.container.appendChild(line); + await this._wait(delay); + } + + line.removeAttribute(`${this.pfx}-cursor`); + } + this.addRestart() + this.finishElement.style.visibility = 'hidden' + this.lineDelay = this.originalLineDelay + this.typeDelay = this.originalTypeDelay + this.startDelay = this.originalStartDelay + } + + generateRestart() { + const restart = document.createElement('a') + restart.onclick = (e) => { + e.preventDefault() + this.container.innerHTML = '' + this.init() + } + restart.href = '#' + restart.setAttribute('data-terminal-control', '') + restart.innerHTML = "restart ↻" + return restart + } + + generateFinish() { + const finish = document.createElement('a') + finish.onclick = (e) => { + e.preventDefault() + this.lineDelay = 0 + this.typeDelay = 0 + this.startDelay = 0 + } + finish.href = '#' + finish.setAttribute('data-terminal-control', '') + finish.innerHTML = "fast →" + this.finishElement = finish + return finish + } + + addRestart() { + const restart = this.generateRestart() + this.container.appendChild(restart) + } + + addFinish() { + const finish = this.generateFinish() + this.container.appendChild(finish) + } + + /** + * Animate a typed line. + * @param {Node} line - The line element to render. + */ + async type(line) { + const chars = [...line.textContent]; + line.textContent = ''; + this.container.appendChild(line); + + for (let char of chars) { + const delay = line.getAttribute(`${this.pfx}-typeDelay`) || this.typeDelay; + await this._wait(delay); + line.textContent += char; + } + } + + /** + * Animate a progress bar. + * @param {Node} line - The line element to render. + */ + async progress(line) { + const progressLength = line.getAttribute(`${this.pfx}-progressLength`) + || this.progressLength; + const progressChar = line.getAttribute(`${this.pfx}-progressChar`) + || this.progressChar; + const chars = progressChar.repeat(progressLength); + const progressPercent = line.getAttribute(`${this.pfx}-progressPercent`) + || this.progressPercent; + line.textContent = ''; + this.container.appendChild(line); + + for (let i = 1; i < chars.length + 1; i++) { + await this._wait(this.typeDelay); + const percent = Math.round(i / chars.length * 100); + line.textContent = `${chars.slice(0, i)} ${percent}%`; + if (percent>progressPercent) { + break; + } + } + } + + /** + * Helper function for animation delays, called with `await`. + * @param {number} time - Timeout, in ms. + */ + _wait(time) { + return new Promise(resolve => setTimeout(resolve, time)); + } + + /** + * Converts line data objects into line elements. + * + * @param {Object[]} lineData - Dynamically loaded lines. + * @param {Object} line - Line data object. + * @returns {Element[]} - Array of line elements. + */ + lineDataToElements(lineData) { + return lineData.map(line => { + let div = document.createElement('div'); + div.innerHTML = `<span ${this._attributes(line)}>${line.value || ''}</span>`; + + return div.firstElementChild; + }); + } + + /** + * Helper function for generating attributes string. + * + * @param {Object} line - Line data object. + * @returns {string} - String of attributes. + */ + _attributes(line) { + let attrs = ''; + for (let prop in line) { + // Custom add class + if (prop === 'class') { + attrs += ` class=${line[prop]} ` + continue + } + if (prop === 'type') { + attrs += `${this.pfx}="${line[prop]}" ` + } else if (prop !== 'value') { + attrs += `${this.pfx}-${prop}="${line[prop]}" ` + } + } + + return attrs; + } +} + +/** +* HTML API: If current script has container(s) specified, initialise Termynal. +*/ +if (document.currentScript.hasAttribute('data-termynal-container')) { + const containers = document.currentScript.getAttribute('data-termynal-container'); + containers.split('|') + .forEach(container => new Termynal(container)) +}