SteamGridDB / steam-rom-manager

An app for managing ROMs in Steam
GNU General Public License v3.0
1.83k stars 119 forks source link

Itch parser doesn't seem to detect exe based titles on linux #341

Open shadownetdev1 opened 2 years ago

shadownetdev1 commented 2 years ago

I am using SRM for the first time. I realized that SRM only detected 2 titles out of the 4 that are installed. After looking into the problem I realized that both of the undetected titles were .exe files. Skipping .exe titles is not a desirable outcome for my use case. I would appreciate if this could be looked into

Upvote & Fund

Fund with Polar

Xananax commented 1 year ago

I use this:

# Parser type
····Selected: Glob
# Configuration title
····Itch Proton
# Steam category
····${itch.io}${proton}
# Steam directory
····${steamdirglobal}
# User accounts
····
····[x]: Skip found accounts with missing data directories
····[x]: Use account credentials
# ROMs directory
····/home/deck/.config/itch/apps
# Executable
····
····[ ]: Follow .lnk or .desktop to destination (Windows and Linux only)
····[x]: Append arguments to executable
# Command line arguments
····
# Executable modifier
····"${exePath}"
# "Start In" directory
····
# User's glob
····${title}/{*/!(UnityCrashHandler*|*-32),!(UnityCrashHandler*|*-32)}.exe
# User's glob-regex
····null
# Manifests Directory
····null
# Amazon Games Path Override
····null
····[ ]: Launch games via Amazon Games
# Manifests Directory Override
····null
····[ ]: Launch games via Epic for online services
# Galaxy Path Override
····null
····[ ]: Launch games via GOG Galaxy
# itch.io AppData Path Override
····/home/deck/.config/kitch
# Uplay Directory Override
····null
····[ ]: Launch games via UPlay for online services
# Title from custom variable
····
····[ ]: Case-insensitive variables
····[ ]: Skip file if variable was not found
····[ ]: Enable Title from Custom Variable
# Title modifier
····${uc|${/^\w/|${title}}}${/^\w(.*)/|${/[_-]+/g|${title}| }}
# Fuzzy matching
····[x]: Replace diacritic characters
····[x]: Aggressive matching
····[x]: Remove (...) and [...] brackets
# Image providers
····Selected: SteamGridDB
····[ ]: Allow NSFW artwork
····[ ]: Allow joke artwork
# Allowed grid styles
····Selected: 
# Allowed hero styles
····Selected: 
# Allowed logo styles
····Selected: 
# Allowed icon styles
····Selected: 
# Allowed animation types
····Selected: static
# Online image query
····${${title}}${${fuzzyTitle}}
# Image pool
····${title}
# Default image
····
# Default tall image
····
# Default hero image
····
# Default logo image
····
# Default icon
····
# Local images
····
# Local tall images
····
# Local hero images
····
# Local logo images
····
# Local icons
····

The important parts

User's glob:

${title}/{*/!(UnityCrashHandler*|*-32),!(UnityCrashHandler*|*-32)}.exe

This avoids executables that often come with Unity games, and avoids any -32.exe, which are often duplicates

Title modifier:

${uc|${/^\w/|${title}}}${/^\w(.*)/|${/[_-]+/g|${title}| }}

This essentially removes _, - and other characters from the name of the executable. I found the "fuzzy matching" to be returning completely irrelevant results.

Lastly, online image query:

${${title}}${${fuzzyTitle}}

Tells the image query to use the title we built.

The results are not stellar, but they're ok.

I add ${itch.io}${proton} to the "category" so I can easily find "proton" games and assign them to proton in Steam