Giter Site home page Giter Site 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!

Further information and documentation for my addons can be found on my website

Wikipedia Metadata

Extension to get metadata from wikipedia. It can fetch name, cover, genres, developer, publisher, features, tags, links, series, platform critic score and description.

-> Info, help and documentation

Metadata Utilities

Extension to manage metadata for the games in the playnite library. It adds a new metadata editor to easily edit them, find and merge similar metadata across types, remove unwanted metadata and much more. Age ratings, categories, features, genres, series and tags are supported.

-> Info, help and documentation

Link Utilities

Extension to manage links for the games in the playnite library. With it you can automatically add links to several supported websites, sort, rename and remove unwanted links among many other useful features.

-> Info, help and documentation

Company Companion

Extension to manage game companies (see Developer and Publisher fields in Playnite). It can assist you in finding and merging similar companies and remove business entity descriptions like Ltd. or Co.

-> Info, help and documentation

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  avatar  avatar  avatar  avatar

Watchers

 avatar

playnite-extensions's Issues

[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] 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.

[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] 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][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] [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

[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] 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

[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.

[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

Delete Button

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

[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] 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] 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.

[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] 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][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 :)

Add an option for Retroachievement links [Enhancement]

Describe the solution you'd like
If a game such as Pokemon Red has a Retroachievements page then the link should open that page so you can check your progress/look at any comments for tips.

Describe alternatives you've considered
I've tried setting it up as a custom link, but AFAIK it's impossible on the user-end to utilise the RA API to return the correct ID of the game. Tonnes of romhacks have achievements now so the API would be needed to find the correct game ID going off of the game name rather than RomName, I presume.

[Bug] Link Utilities: Error on adding HowLongToBeat link

Describe the bug
An error occurs when on "Add to link... > "HowLongToBeat":

18-08 23:59:36.480|ERROR|LinkUtilities#Log:Error loading data from HowLongToBeat|C:\Alex\Entwicklung\dotnet\Playnite-Extensions\Generic\LinkUtilities\Linker\LinkSources\LinkHowLongToBeat.cs|45
Newtonsoft.Json.JsonReaderException: Unexpected character encountered while parsing value: <. Path '', line 0, position 0.
   at Newtonsoft.Json.JsonTextReader.ParseValue()
   at Newtonsoft.Json.JsonTextReader.Read()
   at Newtonsoft.Json.JsonReader.ReadForType(JsonContract contract, Boolean hasConverter)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent)
   at Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType)
   at Newtonsoft.Json.JsonConvert.DeserializeObject(String value, Type type, JsonSerializerSettings settings)
   at Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value, JsonSerializerSettings settings)
   at LinkUtilities.Linker.LinkHowLongToBeat.GetSearchResults(String searchTerm) in C:\Alex\Entwicklung\dotnet\Playnite-Extensions\Generic\LinkUtilities\Linker\LinkSources\LinkHowLongToBeat.cs:line 45

To Reproduce
Steps to reproduce the behavior:

  1. Find a game that has HowLongToBeat page, but don't have a link in Playnite
  2. Open context menu on the game in the list > Link Utilities > Add to link... > HowLongToBeat
  3. Open extensions.log in Playnite directory and examine last record

Expected behavior
Expect a link to HowLongToBeat added if the game has corresponding page. For example, there is page for SuperTotalCarnage! (available for free at https://supertotalcarnage.indiegala.com/)

please complete the following information:

  • Windows version: Windows 10 Pro
  • Playnite version: 10.34
  • Extension version: 4.0

Additional context

  • "Search link to..." also gives empty result.
  • HowLongToBeat grabs data for the same game w/o problems

[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.

[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

[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.

[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.

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).

[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] 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] 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.

[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.

[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

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.