Git Product home page Git Product logo

playnite-extensions's Introduction

DownloadCountTotal LatestVersion LastCommit Crowdin License Ko-fi Badge

Playnite Extensions

This repository hosts all my extensions for the superb open source video game library manager and launcher Playnite.

If you want to use my extensions, I strongly recommend to install them via the add-ons menu in Playnite or the official add-on database and not use the releases here on github, because they only consist of the add-ons that were changed lately and not all of them every time.

If you have more ideas for these extensions, feel free to suggest them by opening an issue!

Wikipedia Metadata

Extension to get metadata from wikipedia. The following fields are supported:

  • Name
  • Release Date
  • Genres
  • Developers
  • Publishers
  • Features
  • Tags (arcade system, engine, director, producer, designer, programmer, artist, writer, composer) Each can be toggled!
  • Links
  • Series
  • Platform
  • Cover image
  • Critic Score (Metacritic and GameRankings as fallback)
  • Description (with option to leave out certain sections)

Planned features

  • Maybe add wikipedia categories as optional tags (metadata addons can't directly fill the categories field).

Link Utilities

Extension to manage links for the games in the playnite library. It can do the following:

  • Sort links by name or custom sort order.
  • Remove unwanted links (e.g. social media links added by IGDB).
  • Remove duplicate links.
  • Rename links (e.g. shorten wikipedia to wiki).
  • Add links to several websites directly by trying to find a valid link using the game name.
  • limited option for custom link profiles to add your own websites to the add or browser search function.
  • Add library links: add links to the game page of its library
  • Add tags to games to keep track of missing links to specific websites.

All of these functions can be triggered manually for the selected games via game or playnite menu or configured to be triggered automatically after the metadata of a game changes.

  • Search for a game on several websites to add links via search dialog
  • Open a search for a game in your web browser on supported websites.
  • Add link to active website in your browser via bookmarklet. Works with any website.
  • Check if links are still working, with option to filter results, remove links or replace URLs in the result dialog.

To see which websites are already supported or planned to be added see the wiki!

Planned features

  • add links to more websites.
  • blacklist games from adding "missing link" tags for specific websites.
  • add support for quick search to add links or search for games with specific links
  • option to remove links to manually added url mask from selected games

Metadata Utilities

Extension to manage metadata for the games in the playnite library. It can do the following:

  • Quickly filter and edit categories, features, genres, series and tags in new Metadata Editor.
  • Merge together similar categories, features, genres, series and tags without being constrained to only one type (you can easily merge categories and tags together for example).
  • Automatically execute merge rules after metadata changes or manually.
  • Simply change the type of categories, features, genres, series and tags.
  • Separate metadata items by prefixes defined by you, that then can be filtered or easily added to new items.
  • Set default categories and/or tags that will automatically be added to new games on import.
  • Automatically remove unused categories, features, genres, series and tags on start up (deactivated by default).
  • Automatically remove unwanted features, genres, series and tags after metadata updates.
  • Add context menu entries to quickly add, remove or toggle categories, features, genres, series and tags in games to the game context menu. You can configure which will show up in the menu and how via the addon settings. Per default none are shown.

Planned features

  • Regex support for filtering in Metadata Editor.
  • Add window to quickly edit categories, features, genres, series and tags for a game, that is easier to use for this use case than the standard game detail editor.
  • Option to setup "metadata sets" that then can be quickly assigned to a game with one click (for example setting feature "Controller support" together with the tag "TV gaming".
  • Add option to change specific metadata if certain conditions are met in a game. The idea isn't fully fleshed out yet...

The addon is overlapping with the Library Management extension to some degree, because I wasn't really happy with how some of its features (merging mostly) work. Metadata Utilities doesn't and won't completely replace Library Management, so you can use both together. I'd just recommend to restrict your usage of merging and similar functions that automatically change mnetadata in the background to one of both addons.

Company Companion

Extension to manage game companies (see Developer and Publisher fields in Playnite). It can do the following:

  • Merge duplicate companies
  • Remove Business entity descriptions like Ltd. or Co.
  • Find and merge similar named companies by removing special characters and generic strings like "Interactive", "Games", "Studios"

Planned features

  • optional fuzzy search to find similar companies
  • option to filter only publishers or developers, to manage then separately.
  • ignore list to keep specific companies from being merged with similar ones.
  • option to save merge groups to automatically merge them again, when games were added or updated.
  • option to find and manually split comma separated companies.
  • maybe add additional information to companies like descriptions and links (via own dialog window).

Quick Add (deprecated)

Extension to quickly add, remove or toggle categories, features and tags in games through the game context menu instead of going through the edit dialog. The features of this extension are integrated into Metadata Utilities since version 0.7. You can still use Quick Add and I will release bugfixes if necessary, but further development of the features will take place in Metadata Utilities.

  • You can configure which will show up in the menu via the addon settings. Per default none are shown.
  • An icon left of the values in the menu indicates, if it is already set in all selected games (check mark in a circle), some of the selectec games (check marl withot circle) or in none (cross in circle).
  • You can define a custom menu entry path for each value to make it possible to group them.

KNARZtools

This is my playground for ideas and quick and simple dirty functions. It's tailored to my special playnite needs and won't be really useful for others. Use at your own risk!

playnite-extensions's People

Contributors

canranban avatar chocolatechipcats avatar herrknarz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

playnite-extensions's Issues

[Bug] [Metadata Utilities] Adding default values doesn't work for manually added games.

Tags should only be added after the automatic metadata update when adding new games. Unfortunately games that have no library addon don't trigger the LibraryUpdated event. Since manually added games usually don't run through the automatic update, I could add the tags directly after adding the game. The problem is, that games added through scanned folders have an automatic metadata download, but still don't trigger the LibraryUpdated event.

Looks like there is no proper solution as of now. I postpone this one until P11 is ready and see, if I can do stuff as a metadata source then.

[Enhancement] Metadata Utilities: Age Ratings

Is your feature request related to a problem? Please describe.
I would like to automatically discard any ratings other than ESRB and PEGI.

Describe the solution you'd like
Support in Metadata Utilities for modifying age ratings.

[Enhancement][Wikipedia Metadata]Language support

Is your feature request related to a problem? Please describe.
When I use it to search for game info with non-English content (like Japanese or Chinese games), it return strange and irrelevant results

Describe the solution you'd like
Added language support for wikipedia search

Describe alternatives you've considered
I took a quick look at the code and found that the interface address used in WikipediaApiCaller was written as en.wikipedia.org...(en limits the scope of the search language) I think adding language support will make the plug-in more general. Here are some possible ways I can think to optimize it.

  1. Add a search language setting, choice corresponding interface address when searching,

  2. Check the input content prefix or suffix before search, and search with the corresponding interface address if present, otherwise, use the default language to search, for example: Japanese content@jp use the interface address jp.wikipedia.org to search

[Bug]Invalid url error when adding links to all configured sites

Describe the bug
When adding links to all configured websites, an error message "Invalid URI" appears. It seems to be after adding the GOG link, maybe there is a problem with the sites, that don't have an "add" option?

To Reproduce
Steps to reproduce the behavior:

  1. Click on Add links to all configured websites.

Expected behavior
No error message should appear and the rest of the links should be added

please complete the following information:

  • Windows version: 11
  • Playnite version: 10.3
  • Extension version: 0.6

[Enhancement][Metadata Utilities] Option to add "metadata sets" - list of values for different fields to set at once.

This could be useful for different kinds of games. For example emulated console games could be set to a metadata set called "couch gaming", that automatically adds the feature "controller support" and tag "Couch gaming". Can be implemented as manual entries in the game context menu, but maybe later also tied to rules like "every game from plaform x will be set to metadata set abc" (see #87).

It also should be possible to set items to "remove" instead of "add" in this case, so stuff like "remove all steam features" is possible.

[Bug] Add link to IGDB doesn't work anymore

Describe the bug
When trying to add a link to IGDN nothing happens, even if the URL is correct. While debugging I found out, that IGDB now throws a 403. That didn't happen some days before.

To Reproduce
Steps to reproduce the behavior:

  1. Click on Add link to IGDB on any game

Expected behavior
A link is generated, if there is one with the game name.

please complete the following information:

  • Windows version: 11
  • Playnite version: 10.3
  • Extension version: 0.4

[Enhancement] Option to delete duplicated links

Hi, nice plugin :)

After using the link renamer I ended up with two copies of Steam and two copies of Official Website.

So another thing that might fall into the scope of this plugin is the option to delete duplicate links (either by name, url, or both).

[Enhancement][Wikipedia Metadata] Improve reviewers score detection

Is your feature request related to a problem? Please describe.

When I fetch data for some games I see no critic score, e.g. Sonic 3 has reviews table, but the extensions does not find it.

Describe the solution you'd like

Improve the extension to find reviews like on Sonic 3 page.

Additional context

There might be review tables that has aggregated/average scores (e.g. Pandemonium). Such cases can be controlled with new options for setting "Metacritic score to use", e.g. "Average on single reviews" to take into account all reviews except aggregated, "Average on aggregated" to get average from aggregators only.

[Enhancement] Link Utilities: Remove [Missing Link] tags when link added

Is your feature request related to a problem? Please describe.
If a user runs 'Tag Missing Links' and then uses bookmarklet/paste from clipboard (or possibly add link; have not tested) to add the links, they then have to take an extra step of opening the game details to delete the tag.

Describe the solution you'd like
When adding a link from bookmarklet or clipboard (or 'add link' if it's affected), the extension should check for matching 'missing link' rules. If there are any, remove the tag from the game.

Describe alternatives you've considered
Simply deleting the tag in Library Manager afterwards kind of works, but it makes it harder when adding links in multiple batches.

Additional context
n/a

[Enhancement] Add an option to open Steam Links in the Steam Client.

Is your feature request related to a problem? Please describe.
The links that are currently fetched by Metadata sources always open in a browser since they are your standard URLs. Often times, you're logged into Steam and/or maybe you want to install a Workshop item for a Steam game and to do that, you have to log into steam on the browser. Whereas, if I was able to open steam links in steam, I could easily manage all of that.

Describe the solution you'd like

Allow an option to open all Steam links with Steam (a checkbox in the settings).

Describe alternatives you've considered
A more powerful tool would be an entirely new 'Reformatting' tab for link where you can modify/morph links.

Ex: https://steamcommunity.com/app/730/discussions/ could be morphed via a regex

(.*)steamcommunity.com(.*)

into

steam://openurl/https://steamcommunity.com/$2

Where $2 ($n where n is the matched regex - $1 would be https://) is the 2nd matched regex /app/730/discussions/.

But I think this is way out of scope for this specific ask and is probably an entirely new feature request instead.

[Enhancement] Metadata Utilities: Filter to duplicate items

Describe the solution you'd like
In Metadata Utilities, it would be useful to be able to filter to items that are duplicated across different metadata types. For example, genre and feature both "Early Access." This would make it easier to find them for merging.

Describe alternatives you've considered
Sorting by name works, though it's easy to miss entries.

[Enhancement][Wikipedia Metadata] Wikipedia API : Language Selector

Is your feature request related to a problem? Please describe.
It would be useful to have the possibility to select the language of the Wikipedia API, in order to obtain the descriptions also in other ​​other languages.

Describe the solution you'd like
Change the type of _baseUrl (WikipediaApiCaller.cs) to be variable taking the first part of url that define the language from a ui config.

i.e:
Wikipedia Language: IT => _baseUrl = "https://it.wikipedia.org/w/rest.php/v1/";
Wikipedia Language: FR => _baseUrl = "https://fr.wikipedia.org/w/rest.php/v1/";

Thanks

[Bug] Quick Add settings not showing up.

Describe the bug
I just installed Quick Add and rebooted Playnite but the settings are not showing up. Maybe am I just not looking at the right place? But I can't find them anywhere.

Thanks

To Reproduce
Install Quick Add and reboot Playnite.

Expected behavior
Being able to change the settings.

Screenshots
image
image

please complete the following information:

  • Windows version: 10
  • Playnite version: 10.20
  • Extension version: 0.3

[Enhancement] Option to sort matching rules

In the bookmarklet/remove link/rename link tabs of the config, it would be helpful to be able to manually re-order the rules without deleting and re-entering it.

Assuming that renaming starts with the first rule and goes down the list, it'd allow for a bit more nuance of what order the links are matched.

For the other tabs, it just would be nice to be able to sort them into alphabetical order.

Thanks in advance. :)

[Enhancement] Link Utilities: Add link from clipboard

Describe the solution you'd like
Alternative to the bookmarklet: "Add link from clipboard" in the Link Utilities menu. If possible, fetch the name from the website, or just use the domain if that's complicated. Run the renaming and sorting rules on it afterwards.

[Enhancement] [Metadata Utilities] Option to remove unwanted items on metadata update.

Metadata addons often add tags, features and other items, the user doesn't want. Since most addons don't provide an option to disable certain tags, we need an option to remove them after metadata updates in Metadata Utilities:

  • Provide a blacklist and possibly regex option
  • Provide a whitelist with option to add all existing. Maybe tricky to keep the list in sync with the Playnite database, if that's even desirable. Maybe updates to the list should only be made manually.
  • Black and Whitelist can be used at the same time, but in that case the whitelist only defines items that will never be removed, even if not in use.
  • Option to put items on blacklist when removing them in Metadata Editor
  • Settings tab to edit the lists: Add a simple textbox with comma separated values for each type and use the select metadata item dialog to add or remove items from that list. Provide a toggle, if the whitelist means "remove all others" for each item type.

[Enhancement] [Link Utilities] Custom search URLs, opened in browser

Is your feature request related to a problem? Please describe.
Mostly the inability to add IGDB links directly. This would somewhat improve the workflow of adding via bookmarklet.

Describe the solution you'd like

The option to add custom search query URLs based on GameMetadata., which would then open in browser. At the very least, the game title, but I can think of usecases where developer/publisher would be helpful.

Example:
IGDB link, create a custom search URL https://www.igdb.com/search?type=1&q={Name}
Run it on a game called "Hero of the Kingdom" would produce https://www.igdb.com/search?type=1&q=hero+of+the+kingdom
Then I would select the correct game from the search results opened in browser and use the bookmarklet.

Thanks in advance

[Enhancement] Link Utilities: Support regular expressions

Is your feature request related to a problem? Please describe.
Currently, there's no way to position 'not listed' links in Sorting. This would help with that, but may also be useful elsewhere.

Describe the solution you'd like
The option to use a regex instead of a simple match anywhere a pattern can be inputted.

For the above-mentioned sorting issue, I can put (Site1|Site2|Site3).

This can also be useful for pattern-matching in link renaming/removal.

Describe alternatives you've considered
Right now, I have sorting rules for all the one-off sites just to get them into the right position. Being able to set a position for 'not listed' links would be useful.

[Bug] Bookmarklet changes order of existing links

Describe the bug
When I use the bookmarklet to add a link to the current game, the links get alphabetized (e.g. Official Website, Steam, PCGamingWiki becomes IGDB, Official Website, PCGamingWiki, Steam).

To Reproduce
Steps to reproduce the behavior:

  1. Create a bookmarklet rule with name IGDB and rule https://www.igdb.com/games/*
  2. Add the bookmarklet linked from this page to the browser (for replication Vivaldi 5.6.2867.50).
  3. Open an IGDB link and click the bookmarklet.

Further information for replication:

  • Sorting order in extension preferences: Official Website (1), GOG (2), Steam (3), Epic Games (4), Origin (5), itch.io (6), IGDB (7), Wiki (8), PCGamingWiki (9).
  • Rename pattern, name 'IGDB,' pattern *igdb.com*
  • Remove duplicate links activated, link name & url match.

Expected behavior
The links to remain in order, and IGDB to be added either in its preferred sort position or to the end.

please complete the following information:

  • Windows version: Win10 Home, 64-bit, build 19045
  • Playnite version: 10.9
  • Extension version: 1.7.2

[Bug] [Link Utilities] Co-Optimus absent from browser search submenu

Description
In Link Utilities, Co-Optimus is not showing up as an option in the "Open browser search on..." submenu

To Reproduce

  1. Open the general settings for Link Utilities
  2. Activate "Show in menu" for Co-Optimus
  3. Right click on any game
  4. Navigate to the "Open browser search on..." submenu
  5. Co-Optimus is absent

Expected behavior
Co-Optimus should show up in the submenu like every other selected website

Screenshots
1
2
3

Additional context

  • Windows version: 10
  • Playnite version: 10.32
  • Link Utilities version: 4.0

Game company links

Describe the solution you'd like
An option to provide a link for a game company. This automatically adds the link to any game that has that company in the developer or publisher field.

I think this would be in scope for both Link Utilities or Company Companion.

Describe alternatives you've considered
Bulk-editing works, but is easy to forget new games.

Additional context
Additional options:

  • Whether to apply to developer, publisher, or both (perhaps per-company)
  • Order it appears in the the list (I would put it just after 'Official Website')
  • What to use for the name (e.g. a generic "Developer/Publisher Website" or the company name itself).

[Enhancement][Metadata Utilities] Make bulk merging faster

The merging after metadata or library updates is much slower than merging items in the Metadata Editor, when done for many games. The reason is, that the Metadata Editor has its own merge function (there's no already saved merge rule after all) while the one after metadata updates uses my "DoForAll" function on the merge rules, which simply goes through all games and calls the merge function for them. I should be able to speed that up significantly by adding the option to pass the list of games in DoForAll directly to the merge action instead of going through them in a loop. That could also possibly speed up stuff in Link Utilities, where I use the same logic.

Delete Button

Delete button doesn't work on the Remove links settings page.

[Bug] Newly added games show up twice in list/grid view

Describe the bug
When new games are added via library import, they show up twice in list/grid view. After filtering the view the duplicates eventually disappear. It's only visual and doesn't occur without the link utilities extension. Sometimes the duplicates already disappear while loading metadata in the import process. I think it depends, if the metadata update triggers some kind of refresh.

To Reproduce
Steps to reproduce the behavior:

  1. Have new games imported (or delete some and let them import again.

Expected behavior
Games only show up once.

please complete the following information:

  • Windows version: 11
  • Playnite version: 10.3
  • Extension version: 0.4

Additional context
The bug was originally reported by Flower on Discord.

[Enhancement] Process links on all games

Unless I'm missed the option elsewhere, the user has to manually edit each game to run sort/remove/rename/dedupe.

Options in Playnite menu > Extensions > Link Utilities to run this on all games (each action separately, or all at once) would help.

Thanks.

[Bug]Add link to GOG returns 200, even if the page doesn't exist

Describe the bug
Adding a link to GOG always works even if the game isn't available on GOG. In that case it reverts back to the start page. I should use the API instead...

To Reproduce
Steps to reproduce the behavior:
Try to add a link to a game, that isn't on GOG

Expected behavior
No link should be generated, when the game is not on GOG

please complete the following information:

  • Windows version: 11
  • Playnite version: 10.3
  • Extension version: 0.6

[Bug] Search function for IGDB doesn't work

Describe the bug
The search function für IGDB doesn't find anything, even for well known games. The add function works without problems.

To Reproduce
Steps to reproduce the behavior:

  1. Use the search function on any game

Expected behavior
The search should return results on well known games like Tomb Raider etc.

please complete the following information:

  • Windows version: 11
  • Playnite version: 10.3
  • Extension version: 0.4

Additional context
While testing the extension in debug mode the function worked without a problem. I should add some logging to the release version to gain more insight.

[Enhancement][Metadata Utilities] Option to search for and add games to a selected tag in Metadata Editor

Idea: add a button under the "related games" grid, that opens a search window, where you can search for games. Maybe that one can use the default search function of Playnite? The results should support multiselect. Clicking on the "Add" button in the search window then adds the corresponding metadata to all selected games and returns to the Metadata Editor.

This search could also be refined by allowing search only in certain filter presets, if Playnite supports something like that. Extra filter boxes for different fields could also be added, but it shouldn't get too complex, because for those cases the default way to filter and edit games in Playnite should suffice.

[Enhancement] Option to tag missing links

Is your feature request related to a problem? Please describe.
Adding IGDB links to all my games (hopefully the 403 error gets resolved soon, but the bookmarklet helps!), but it's easy to lose track of which ones already have it.

Describe the solution you'd like
An option to check all games with a link of a specific pattern, then add a tag along the lines of [Link: LinkTitle missing] if they're missing. Preferably run only on-demand.

Additionally, a 'missing library link' may be useful for some users.

Thanks :)

[Enhancement] Link Utilities: Check dead links & resolve redirects

Is your feature request related to a problem? Please describe.
n/a

Describe the solution you'd like
'Check Links' option.

If the HTTP status indicates an error, notify the user with an option to open the link and check.
Give options to delete the link, exclude from future checks (for fussy websites like CurseForge), or do nothing (for transient errors).
If the link is a 301, offer to change the link.

To prevent hammering websites, it would probably be best if this was not available library-span.

Perhaps also give an option to exclude certain domains. (CurseForge is one that should be included by default as they heavily block access.)

Describe alternatives you've considered
n/a

Additional context
Use-case: When download links for new game, I got two different 'official website' links, for https://www.starcontrol.com and https://www.stardock.com/games/starcontrol/ -- the former just redirected to the latter.

[Bug]Blank entry in "remove links" option menu will result in all links being removed when using "remove unwanted links"

Describe the bug
If a blank entry is added in the options menu on the "remove links" page, when you choose the "remove unwanted links" option from the right click menu, all links from the selected game/s will be removed.

To Reproduce
Steps to reproduce the behavior:

  1. Go to Link Utilities extension settings
  2. On 'Remove links' page add a new line but leave all fields blank and save.
  3. Go back to your Playnite library and right click on a game (or select multiple games).
  4. Click 'Link utilities' > 'Remove all unwanted links'
  5. Watch as all links for the selected entries are removed

Expected behavior
I believe if a blank entry is added on the 'Remove links' option page, this should have no effect on your links when selecting 'remove all unwanted links'. It is very easy to quickly wipe out an entire library worth of links with the current behaviour.

Screenshots
blank entry

please complete the following information:

  • Windows version: Windows 10
  • Playnite version: 10.18
  • Extension version: 3.4

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.