From dfe78ae083eb414e5b718bdaf650fa784e418eca Mon Sep 17 00:00:00 2001 From: YozoraXCII <96386153+YozoraXCII@users.noreply.github.com> Date: Sun, 21 Jan 2024 00:07:55 +0000 Subject: [PATCH] Rework Builders Overview page --- docs/files/builders/overview.md | 360 +++++++++++++++++++++++--------- docs/stylesheets/extra.css | 127 +++++++++++ 2 files changed, 388 insertions(+), 99 deletions(-) diff --git a/docs/files/builders/overview.md b/docs/files/builders/overview.md index aad70d65..d3a8527e 100644 --- a/docs/files/builders/overview.md +++ b/docs/files/builders/overview.md @@ -2,102 +2,264 @@ 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. -::cards:: cols=5 image-bg - -- title: Plex (Smart) - content: | - Creates Smart Collections based on the metadata inside your Plex Server. Results are dynamic and will update as your library updates without the need to re-run PMM (Collections Only) - image: ../../../assets/icons/plex.png - url: "../smart" - -- title: Plex (Dumb) - content: Grabs items based on the metadata inside your Plex Server. Results are static and require PMM to re-run to update. - image: ../../../assets/icons/plex_dumb.png - url: "../plex" - -- title: TMDb - content: Grabs items based on metadata and lists on TheMovieDb.org - image: ../../../assets/icons/tmdb.png - url: "../tmdb" - -- title: TVDb - content: Grabs items based on metadata and lists on TheTVDb.com - image: ../../../assets/icons/tvdb.png - url: "../tvdb" - -- title: IMDb - content: Grabs items based on metadata and lists on IMDb.com - image: ../../../assets/icons/imdb.png - url: "../imdb" - -- title: Box Office Mojo - content: Grabs items based on metadata and lists on Boxofficemojo.com - image: ../../../assets/icons/boxofficemojo.png - url: "../boxofficemojo" - -- title: Trakt - content: Grabs items based on metadata and lists on Trakt.tv - image: ../../../assets/icons/trakt.png - url: "../trakt" - -- title: Tautulli - content: Grabs items based on metadata and lists in your Tautulli - image: ../../../assets/icons/tautulli.png - url: "../tautulli" - -- title: Radarr - content: Grabs items based on metadata and lists in your Radarr - image: ../../../assets/icons/radarr.png - url: "../radarr" - -- title: Sonarr - content: Grabs items based on metadata and lists in your Sonarr - image: ../../../assets/icons/sonarr.png - url: "../sonarr" - -- title: MdbList - content: Grabs items based on metadata and lists on MdbList.com - image: ../../../assets/icons/mdblist.png - url: "../mdblist" - -- title: Letterboxd - content: Grabs items based on metadata and lists on Letterboxd.com - image: ../../../assets/icons/letterboxd.png - url: "../letterboxd" - -- title: ICheckMovies - content: Grabs items based on metadata and lists on ICheckMovies.com - image: ../../../assets/icons/icheckmovies.png - url: "../icheckmovies" - -- title: FlixPatrol - content: Grabs items based on metadata and lists on FlixPatrol.com - image: ../../../assets/icons/flixpatrol.png - url: "../flixpatrol" - -- title: AniDB - content: Grabs items based on metadata and lists on AniDB.net - image: ../../../assets/icons/anidb.png - url: "../anidb" - -- title: AniList - content: Grabs items based on metadata and lists on AniList.co - image: ../../../assets/icons/anilist.png - url: "../anilist" - -- title: MyAnimeList - content: Grabs items based on metadata and lists on MyAnimeList.net - image: ../../../assets/icons/myanimelist.png - url: "../myanimelist" - -- title: Reciperr - content: Grabs items based on metadata and lists on reciperr.com - image: ../../../assets/icons/reciperr.png - url: "../reciperr" - -- title: StevenLu - content: Grabs items based on metadata and lists on StevenLu.com - image: ../../../assets/icons/stevenlu.png - url: "../stevenlu" - -::/cards:: +!!! builder + + ![Smart Plex logo](../../../assets/icons/plex.png){ align=right } + + **[Plex (Smart)](../smart)** builders create Smart Collections based on the metadata inside your Plex Server. Results are dynamic and will update as your library updates without the need to re-run PMM. + + [:octicons-home-16: View Builder](../smart){ .md-button .md-button--primary } + [:octicons-alert-24:](""){ .card-link title="Cannot be used for Overlays unless utilizing Smart Labels" } + + ??? quicklink "Popular Builders" + + - [:simple-plex: Smart Label](../smart/#smart-label) - Create a Smart Collection based on a specific label. The label can be generated by PMM based on criteria. + - [:simple-plex: Smart Filter](../smart/#smart-filter) - Create a Smart Collection based on the filter parameters provided. + +!!! builder + + ![Dumb Plex logo](../../../assets/icons/plex_dumb.png){ align=right } + + **[Plex (Dumb)](../smart)** builders grab items based on the metadata inside your Plex Server. Results are static and require PMM to re-run to update. + + [:octicons-home-16: View Builder](../plex){ .md-button .md-button--primary } + + ??? quicklink "Popular Builders" + + - [:simple-plex: Plex All](../plex/#plex-all) - Gets every movie/show in your library. + - [:simple-plex: Plex Search](../plex/#plex-search) - Gets every movie/show based on the search parameters provided. + - [:simple-plex: Plex Collectionless](../plex/#plex-collectionless) - Gets every movie/show that is not in a collection. + +!!! builder + + ![TMDb logo](../../../assets/icons/tmdb.png){ align=right } + + **[TMDb](../tmdb)** builders grab items based on metadata and lists on TheMovieDb.org + + [:octicons-home-16: View Builder](../tmdb){ .md-button .md-button--primary } + + ??? quicklink "Popular Builders" + + - [:simple-themoviedatabase: TMDb Collection](../tmdb/#tmdb-collection) - Gets every movie/show in your library. + - [:simple-themoviedatabase: TMDb List](../tmdb/#tmdb-list) - Gets every movie/show in your Watchlist. + - [:simple-themoviedatabase: TMDb Company](../tmdb/#tmdb-company) - Gets the first episode of every show in your library. + - [:simple-themoviedatabase: TMDb Network](../tmdb/#tmdb-network) - Gets the first episode of every show in your library. + +!!! builder + + ![Trakt logo](../../../assets/icons/trakt.png){ align=right } + + **[Trakt](../trakt)** builders grab items based on metadata and lists on Trakt.tv + + [:octicons-home-16: View Builder](../trakt){ .md-button .md-button--primary } + + ??? quicklink "Popular Builders" + + - [:simple-trakt: Trakt List](../trakt/#trakt-list) - Gets every movie/show in the Trakt List + - [:simple-trakt: Trakt Chart](../trakt/#trakt-chart) - Gets every movie/show in the Trakt Chart + - [:simple-trakt: Trakt Recommendations](../trakt/#trakt-recommendations) - Gets every movie/show in Trakt's Personal Recommendations for your User + +!!! builder + + ![MdbList logo](../../../assets/icons/mdblist.png){ align=right } + + **[MdbList](../mdblist)** builders grab items based on lists on MdbList.com + + [:octicons-home-16: View Builder](../mdblist){ .md-button .md-button--primary } + + ??? quicklink "Popular Builders" + + - [:octicons-list-ordered-16: MdbList List](../mdblist/#mdblist-list) - Gets every movie/show in a MDbList List. + +!!! builder + + ![IMDb logo](../../../assets/icons/imdb.png){ align=right } + + **[IMDb](../imdb)** builders grab items based on metadata and lists on IMDb.com + + [:octicons-home-16: View Builder](../imdb){ .md-button .md-button--primary } + + ??? quicklink "Popular Builders" + + - [:simple-imdb: IMDb Chart](../imdb/#imdb-chart) - Gets every movie/show in an IMDb Chart like IMDb Top 250 Movies. + - [:simple-imdb: IMDb List](../imdb/#imdb-list) - Gets every movie/show in an IMDb List. + - [:simple-imdb: IMDb Award](../imdb/#imdb-award) - Gets every movie/show in an IMDb Event. + - [:simple-imdb: IMDb Search](../imdb/#imdb-award) - Gets every movie/show in an IMDb Search. Can also be used for Keyword searches. + +!!! builder + + ![TVDb logo](../../../assets/icons/tvdb.png){ align=right } + + **[TVDb](../tvdb)** builders grab items based on metadata and lists on TheTVDb.com + + [:octicons-home-16: View Builder](../tvdb){ .md-button .md-button--primary } + + ??? quicklink "Popular Builders" + + - [:material-television-guide: TVDb Show](../tvdb/#tvdb-show) - Grabs the specified series. + - [:material-television-guide: TVDb Movie](../tvdb/#tvdb-movie) - Gets the specified movies. + - [:material-television-guide: TVDb List](../tvdb/#tvdb-list) - Gets every item in a TVDb List or TVDb Userlist. + +!!! builder + + ![BoxOfficeMojo logo](../../../assets/icons/boxofficemojo.png){ align=right } + + **[BoxOfficeMojo](../mojo)** builders grab items based on metadata and lists on Boxofficemojo.com + + [:octicons-home-16: View Builder](../mojo){ .md-button .md-button--primary } + [:octicons-alert-24:](""){ .card-link title="Only works with Movie libraries" } + + ??? quicklink "Popular Builders" + + - [:material-ticket: Mojo World](../mojo/#mojo-world) - Grabs items in the Worldwide Box Office chart. + - [:material-ticket: Mojo Domestic](../mojo/#mojo-movie) - Grabs items in the Domestic Box Office chart. + - [:material-ticket: Mojo Record](../mojo/#mojo-record) - Grabs items in miscellaneous lists such as Weekend Records and Daily Records. + +!!! builder + + ![Tautulli logo](../../../assets/icons/tautulli.png){ align=right } + + **[Tautulli](../tautulli)** builders grab items based on lists on Tautulli + + [:octicons-home-16: View Builder](../tautulli){ .md-button .md-button--primary } + + ??? quicklink "Popular Builders" + + - [:material-movie-search: Tautulli Popular](../tautulli/#tautulli-popular) - Gets every movie/show in the Tautulli Most Popular List + - [:material-movie-search: Tautulli Watched](../tautulli/#tautulli-watched) - Gets every movie/show in the Tautulli Most Watched List + +!!! builder + + ![Radarr logo](../../../assets/icons/radarr.png){ align=right } + + **[Radarr](../radarr)** builders grab items based on tags in Radarr + + [:octicons-home-16: View Builder](../radarr){ .md-button .md-button--primary } + [:octicons-alert-24:](""){ .card-link title="Only works with Movie libraries" } + + ??? quicklink "Popular Builders" + + - [:octicons-tag-16: Radarr All](../radarr/#radarr-all) - Gets every movie in Radarr + - [:octicons-tag-16: Radarr Taglist](../radarr/#radarr-taglist) - Gets every movie with the specified tags + +!!! builder + + ![Sonarr logo](../../../assets/icons/sonarr.png){ align=right } + + **[Sonarr](../sonarr)** builders grab items based on tags in Sonarr + + [:octicons-home-16: View Builder](../sonarr){ .md-button .md-button--primary } + [:octicons-alert-24:](""){ .card-link title="Only works with Show libraries" } + + ??? quicklink "Popular Builders" + + - [:octicons-tag-16: Sonarr All](../sonarr/#sonarr-all) - Gets every show in Sonarr + - [:octicons-tag-16: Sonarr Taglist](../sonarr/#sonarr-taglist) - Gets every show with the specified tags + +!!! builder + + ![Letterboxd logo](../../../assets/icons/letterboxd.png){ align=right } + + **[Letterboxd](../letterboxd)** builders grab items based on lists on Letterboxd.com + + [:octicons-home-16: View Builder](../letterboxd){ .md-button .md-button--primary } + [:octicons-alert-24:](""){ .card-link title="Only works with Movie libraries" } + + ??? quicklink "Popular Builders" + + - [:simple-letterboxd: Letterboxd List](../letterboxd/#letterboxd-list) - Gets every movie in the Letterboxd list + +!!! builder + + ![ICheckMovies logo](../../../assets/icons/icheckmovies.png){ align=right } + + **[ICheckMovies](../icheckmovies)** builders grab items based on lists on ICheckMovies.com + + [:octicons-home-16: View Builder](../icheckmovies){ .md-button .md-button--primary } + [:octicons-alert-24:](""){ .card-link title="Only works with Movie libraries" } + + ??? quicklink "Popular Builders" + + - [:material-check: ICheckMovies List](../icheckmovies/#icheckmovies-list) - Gets every show in the ICheckMovies list + +!!! builder + + ![FlixPatrol logo](../../../assets/icons/flixpatrol.png){ align=right } + + **[FlixPatrol](../flixpatrol)** builders grab items based on metadata on FlixPatrol.com + + [:octicons-home-16: View Builder](../flixpatrol){ .md-button .md-button--primary } + + ??? quicklink "Popular Builders" + + - [:material-police-badge: FlixPatrol Top](../flixpatrol/#flixpatrol-top) - Gets every item from FlixPatrol's Top Platform Lists based on the attributes provided. + +!!! builder + + ![AniDB logo](../../../assets/icons/anidb.png){ align=right } + + **[AniDB](../anidb)** builders grab items based on metadata and lists on AniDB.com + + [:octicons-home-16: View Builder](../anidb){ .md-button .md-button--primary } + + ??? quicklink "Popular Builders" + + - [:octicons-database-16: AniDB ID](../anidb/#anidb-id) - Finds the anime specified by the AniDB ID + - [:octicons-database-16: AniDB Popular](../anidb/#anidb-popular) - Finds every anime in AniDB's Popular Anime list + - [:octicons-database-16: AniDB Tags](../anidb/#anidb-tags) - Finds every anime with the specified AniDB Tag + +!!! builder + + ![AniList logo](../../../assets/icons/anilist.png){ align=right } + + **[AniList](../anilist)** builders grab items based on metadata and lists on AniList.com + + [:octicons-home-16: View Builder](../anilist){ .md-button .md-button--primary } + + ??? quicklink "Popular Builders" + + - [:simple-anilist: AniList Top Rated](../anilist/#anilist-top-rated) - Gets every anime in AniList's Top Rated Anime list + - [:simple-anilist: AniList Popular](../anilist/#anilist-popular) - Gets every anime in AniList's Popular Anime list + - [:simple-anilist: AniList Trending](../anilist/#anilist-trending) - Gets every anime in AniList's Trending Anime list + - [:simple-anilist: AniList Search](../anilist/#anilist-search) - Gets every anime specified by the AniList search parameters provided + +!!! builder + + ![MyAnimeList logo](../../../assets/icons/myanimelist.png){ align=right } + + **[MyAnimeList](../myanimelist)** builders grab items based on metadata and lists on MyAnimeList.com + + [:octicons-home-16: View Builder](../myanimelist){ .md-button .md-button--primary } + + ??? quicklink "Popular Builders" + + - [:simple-myanimelist: MyAnimeList Popular](../myanimelist/#myanimelist-most-popular) - Gets every anime in MyAnimeList's Most Popular Anime list + - [:simple-myanimelist: MyAnimeList Top All](../myanimelist/#myanimelist-top-all) - Gets every anime in MyAnimeList's Top All Anime list + - [:simple-myanimelist: MyAnimeList Top Airing](../myanimelist/#myanimelist-top-airing) - Gets every anime in MyAnimeList's Top Airing Anime list + - [:simple-myanimelist: MyAnimeList Suggested](../myanimelist/#myanimelist-suggested) - Gets every suggested anime in by MyAnimeList for the authorized user + +!!! builder + + ![Reciperr logo](../../../assets/icons/reciperr.png){ align=right } + + **[Reciperr](../reciperr)** builders grab items based on lists on Reciperr.com + + [:octicons-home-16: View Builder](../reciperr){ .md-button .md-button--primary } + [:octicons-alert-24:](""){ .card-link title="Only works with Movie libraries" } + + ??? quicklink "Popular Builders" + + - [:material-chef-hat: Reciperr List](../reciperr/#reciperr-list) - Gets every movie returned by the Reciperr JSON data URL. + +!!! builder + + ![StevenLu logo](../../../assets/icons/stevenlu.png){ align=right } + + **[StevenLu](../stevenlu)** builders grab items based on lists on StevenLu.com + + [:octicons-home-16: View Builder](../stevenlu){ .md-button .md-button--primary } + [:octicons-alert-24:](""){ .card-link title="Only works with Movie libraries" } + + ??? quicklink "Popular Builders" + + - [:material-pirate: StevenLu Popular](../stevenlu/#stevenlus-popular-movie-list) - Gets every movie on StevenLu's Popular Movies List. \ No newline at end of file diff --git a/docs/stylesheets/extra.css b/docs/stylesheets/extra.css index cacbd146..014f81b5 100644 --- a/docs/stylesheets/extra.css +++ b/docs/stylesheets/extra.css @@ -3,6 +3,8 @@ --md-primary-fg-color--light: #00bc8c; --md-primary-fg-color--dark: #00bc8c; --md-primary-bg-color--light: rgba(0,0,0,.54); + --pg-light-border: rgb(47, 47, 47); + } :root, [data-md-color-scheme="slate"] { --md-primary-fg-color: #00bc8c; @@ -10,6 +12,7 @@ --md-primary-fg-color--dark: #00bc8c; --md-default-bg-color: #252525; --md-footer-bg-color--dark: var(--md-default-bg-color); + --pg-light-border: rgb(47, 47, 47); } strong { color: #00bc8c; @@ -239,4 +242,128 @@ table.dualTable td, table.dualTable th { background-color: rgb(43, 155, 70); -webkit-mask-image: var(--md-admonition-icon--separator); mask-image: var(--md-admonition-icon--separator); +} + + +.md-typeset .grid.cards > :is(ul, ol) > li, .md-typeset .grid > .card { /* Firefox */ + color: var(--md-typeset-color); + background: #1b1b1b; + border: 1px solid var(--pg-light-border); + border-radius: 6px; + box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0.05) 0px 1px 3px 0px, rgba(0, 0, 0, 0.05) 0px 1px 2px -1px; + transition: none; + position: relative; +} + +.md-typeset .grid.cards>:-webkit-any(ul,ol)>li, .md-typeset .grid>.card { /* Webkit */ + color: var(--md-typeset-color); + background: #1b1b1b; + border: 1px solid var(--pg-light-border); + border-radius: 6px; + box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0.05) 0px 1px 3px 0px, rgba(0, 0, 0, 0.05) 0px 1px 2px -1px; + transition: none; + position: relative; +} + +.md-typeset .grid.cards > :is(ul, ol) > li:is(:focus-within, :hover), .md-typeset .grid > .card:is(:focus-within, :hover) { /* Firefox */ + box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0.05) 0px 1px 3px 0px, rgba(0, 0, 0, 0.05) 0px 1px 2px -1px; + border-color: var(--md-accent-fg-color); +} + +.md-typeset .grid.cards>:-webkit-any(ul,ol)>li:-webkit-any(:focus-within,:hover) { /* Webkit */ + box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0.05) 0px 1px 3px 0px, rgba(0, 0, 0, 0.05) 0px 1px 2px -1px; + border-color: var(--md-accent-fg-color); +} + +.md-typeset .grid.cards > :is(ul, ol) > li > a::after, .md-typeset .grid>.card a::after { /* Firefox */ + content: ""; + position: absolute; + top: 0; + bottom: 0; + left: 0; + right: 0; +} + +.md-typeset .grid.cards>:-webkit-any(ul, ol)>li > a::after, .md-typeset .grid>.card a::after { /* Webkit */ + content: ""; + position: absolute; + top: 0; + bottom: 0; + left: 0; + right: 0; +} + + +.md-typeset :is(.admonition, details) { + background-color: #1b1b1b; +} + +/* Custom tooltips */ +.md-tooltip { + background-color: var(--md-primary-fg-color); + border-radius: 6px; +} + +.md-typeset .admonition.builder, +.md-typeset details.builder { + border: 1px solid var(--pg-light-border); + font-size: inherit; +} +.md-typeset .builder > .admonition-title, +.md-typeset .builder > summary { + background-color: rgba(43, 155, 70, 0.0); + border: none; + padding-left: 0.6rem; +} +.md-typeset .builder > .admonition-title::before, +.md-typeset .builder > .admonition-title, +.md-typeset .builder > summary::before { + display: none; +} +img[align="right"], svg[align="right"] { + width: 150px; +} + +.md-typeset .admonition.quicklink, +.md-typeset details.quicklink { + border: none; + box-shadow: none; +} +.md-typeset .quicklink > .admonition-title, +.md-typeset .quicklink > summary { + background-color: rgba(43, 155, 70, 0.0); +} + +.md-typeset .quicklink > .admonition-title::before, +.md-typeset .quicklink > .admonition-title, +.md-typeset .quicklink > summary::before { + background-color: var(--md-typeset-a-color); + -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512'%3E%3Cpath d='M287.9 0c9.2 0 17.6 5.2 21.6 13.5l68.6 141.3 153.2 22.6c9 1.3 16.5 7.6 19.3 16.3s.5 18.1-5.9 24.5L433.6 328.4l26.2 155.6c1.5 9-2.2 18.1-9.7 23.5s-17.3 6-25.3 1.7l-137-73.2L151 509.1c-8.1 4.3-17.9 3.7-25.3-1.7s-11.2-14.5-9.7-23.5l26.2-155.6L31.1 218.2c-6.5-6.4-8.7-15.9-5.9-24.5s10.3-14.9 19.3-16.3l153.2-22.6L266.3 13.5C270.4 5.2 278.7 0 287.9 0zm0 79L235.4 187.2c-3.5 7.1-10.2 12.1-18.1 13.3L99 217.9 184.9 303c5.5 5.5 8.1 13.3 6.8 21L171.4 443.7l105.2-56.2c7.1-3.8 15.6-3.8 22.6 0l105.2 56.2L384.2 324.1c-1.3-7.7 1.2-15.5 6.8-21l85.9-85.1L358.6 200.5c-7.8-1.2-14.6-6.1-18.1-13.3L287.9 79z'/%3E%3C/svg%3E"); + mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512'%3E%3Cpath d='M287.9 0c9.2 0 17.6 5.2 21.6 13.5l68.6 141.3 153.2 22.6c9 1.3 16.5 7.6 19.3 16.3s.5 18.1-5.9 24.5L433.6 328.4l26.2 155.6c1.5 9-2.2 18.1-9.7 23.5s-17.3 6-25.3 1.7l-137-73.2L151 509.1c-8.1 4.3-17.9 3.7-25.3-1.7s-11.2-14.5-9.7-23.5l26.2-155.6L31.1 218.2c-6.5-6.4-8.7-15.9-5.9-24.5s10.3-14.9 19.3-16.3l153.2-22.6L266.3 13.5C270.4 5.2 278.7 0 287.9 0zm0 79L235.4 187.2c-3.5 7.1-10.2 12.1-18.1 13.3L99 217.9 184.9 303c5.5 5.5 8.1 13.3 6.8 21L171.4 443.7l105.2-56.2c7.1-3.8 15.6-3.8 22.6 0l105.2 56.2L384.2 324.1c-1.3-7.7 1.2-15.5 6.8-21l85.9-85.1L358.6 200.5c-7.8-1.2-14.6-6.1-18.1-13.3L287.9 79z'/%3E%3C/svg%3E"); +} + +.md-typeset .quicklink > summary::after { + right:auto; +} + +.quicklink > ul > li { + padding: 0.5em 0 !important; +} + +.quicklink > ul .twemoji { + width: .9rem +} + +details[class="quicklink annotate"] > p .md-annotation span span::before { + vertical-align: 0; +} + +.quicklink > ul { + display: grid!important; + grid-template-columns: repeat(1, 1fr); + list-style-type: none; +} + +.md-typeset .card-link { + color: var(--md-default-fg-color--light); } \ No newline at end of file