SteamGridDB / steam-rom-manager

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

[REQUEST] Add additional scrapers #669

Closed Brad7173 closed 4 months ago

Brad7173 commented 4 months ago

This is my custom parser for DvD rips. I'm running them (NATIVELY!!) in SmPlayer in MX Linux 23 - Debian Bookworm: -----Parser-----

# Parser type
····Selected: Glob
# Configuration title
····DvD
# Steam directory
····/home/UserName/.steam/debian-installation
# User accounts
····${SteamAccount}
# Steam category
····${DvD}
# ROMs directory
····/mnt/Path/DvD/Movie
# Executable
····
····[ ]: Follow .lnk or .desktop to destination (Windows and Linux only)
····[x]: Append arguments to executable
# Command line arguments
····"${filePath}"
# Executable modifier
····"smplayer" -fullscreen -close-at-end
# "Start In" directory
····./
# User's glob
····*/${title}@(.mkv|.MKV|.mp4|.MP4)
# User's glob-regex
····null
# Manifests Directory
····null
# Amazon Games Path Override
····null
····[ ]: Launch games via Amazon Games
# Epic Manifests Directory Override
····null
····[ ]: Launch games via Epic for online services
# Legendary installed.json Path Override
····null
# Galaxy Path Override
····null
····[ ]: Launch games via GOG Galaxy
····[ ]: Parse linked executables from GOG Galaxy
# itch.io AppData Directory Override
····null
# Windows-on-Linux Install Drive Redirect
····null
····[ ]: Find artwork for games only (no tools)
····[ ]: Find artwork for installed titles only
····[ ]: Find artwork for unofficial source mods
# Ubisoft Directory Override
····null
····[ ]: Launch games via UPlay for online services
# XboxGames Directory Override
····null
····[ ]: Launch game as UWP instead of launcher helper
# EA Games Directory Override
····null
····[ ]: Launch games via EA Desktop
# Battle.net.exe Path Override
····null
# Title from custom variable
····
····[ ]: Case-insensitive variables
····[ ]: Skip file if variable was not found
····[ ]: Enable Title from Custom Variable
# Title modifier
····${title}
# Fuzzy matching
····[ ]: Replace diacritic characters
····[ ]: Aggressive matching
····[ ]: Remove (...) and [...] brackets
# Enable Steam Input
····Selected: 2
# PS4 Template
····Selected: null
# PS5 Template
····Selected: null
# PS5 Dualsense Edge Template
····Selected: null
# Xbox 360 Template
····Selected: null
# Xbox One Template
····Selected: null
# Xbox One Elite Template
····Selected: null
# Switch Joy-Con (Left) Template
····Selected: null
# Switch Joy-Con (Right) Template
····Selected: null
# Switch Pro Template
····Selected: null
# Steam Deck Template
····Selected: null
# Steam Controller Template
····Selected: null
# Image providers
····Selected: sgdb,steamCDN
# Online image query
····${${fuzzyTitle}}
# Image pool
····${fuzzyTitle}
····[ ]: Local backups (DRM takedown protection)
····[ ]: 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
# Allowed banner dimensions
····Selected: 
# Allowed hero dimensions
····Selected: 
# Allowed icon dimensions
····Selected: 
# Fallback portrait
····null
# Fallback banner
····null
# Fallback hero
····null
# Fallback logo
····/Path/DvD/Logo.png
# Fallback icon
····/Path/DvD/Icon.png
# Local portraits glob
····/mnt/Path/DvD/Movie/*/${title}-poster.jpg
# Local banners glob
····/mnt/Path/DvD/Movie/*/${title}-fanart.jpg
# Local heroes glob
····/mnt/Path/DvD/Movie/*/${title}-banner.png
# Local logos glob
····/Path/DvD/Logo/${title}.@(png|PNG|jpg|JPG|webp|WEBP)
# Local icons glob
····null

-----End Parser----- Tiny Media Manager can get most of the artwork and put it into folders so globs can be used as I've done. People would still want tmm for kodi etc so it won't affect their sales. This would however improve your app.

https://www.tinymediamanager.org/

List of Movie Art Scrapers: https://anidb.net/ https://www.imdb.com/ https://www.moviemeter.com/ http://mpdb.tv/ https://www.themoviedb.org/ https://thetvdb.com/

Brad7173 commented 4 months ago

Steam_Shortcuts_VDF_Backup.sh

!/bin/bash

UserPath=$(echo "/home/""$USER") CurrentDIR="$(dirname "$(readlink -f "$0")")" SteamID=$(cd $UserPath/.steam/debian-installation/userdata/ ; ls | xargs) dt=$(date '+%m%d_%Y_%I%M%S%p_') zip -j $UserPath/Games/Steam_Shortcuts_Backup/shortcutsvdf"$dt".zip $UserPath/.steam/debian-installation/userdata/$SteamID/config/shortcuts.vdf exit

Brad7173 commented 4 months ago

Nothing sucks worse than an error that removes over 100 non steam games and having to re-create the shortcuts!! That script assumes you have "Games/Steam_Shortcuts_Backup" folders inside your linux home directory. I know I need to add code for (condition: if folder not exist...create).

!/bin/bash

UserPath=$(echo "/home/""$USER") CurrentDIR="$(dirname "$(readlink -f "$0")")" SteamID=$(cd $UserPath/.steam/debian-installation/userdata/ ; ls | xargs) dt=$(date '+%m%d_%Y_%I%M%S%p_') mkdir -p $UserPath/Games #Make dir if not exist mkdir -p $UserPath/Games/Steam_Shortcuts_Backup #Make dir if not exist zip -j $UserPath/Games/Steam_Shortcuts_Backup/shortcutsvdf"$dt".zip $UserPath/.steam/debian-installation/userdata/$SteamID/config/shortcuts.vdf exit

Brad7173 commented 4 months ago

Why not use kodi?

The windorks installer of kodi into steam: You are passing steam rom manager a linux path to executable then would need to pass a windorks path to the executable for media.

The linux version of kodi through steam: It does not like any spaces what so ever in file naming. The file "All You Need.mkv" gets read as "All" and generates an error.

Vlc, you end up having to press the windorks key...no keyboard controls work right.

mpv player doesn't have enough options.

Leaving smplayer the best option and has command line arguments.

Brad7173 commented 4 months ago

For kodi: (This is the windorks installer of kodi into a steam prefix on linux)

This won't work. It will load kodi and give you an error and tell you to check the log. "/home/$LinuxUserName/.steam/debian-installation/steamapps/compatdata/$SteamID/pfx/drive_c/Program Files/Kodi/kodi" "/mnt/0c4adc75-836b-4b6e-bbc3-f4fbbcb6540d/DvD/Movie/10,000 B.C./10,000 BC.mkv"

This will work. Note that my DvD rips are on a seperate drive. By default anything in the prefix is an emulated windorks environment and will be C:\ "/home/$LinuxUserName/.steam/debian-installation/steamapps/compatdata/$SteamID/pfx/drive_c/Program Files/Kodi/kodi" "Z:\mnt/0c4adc75-836b-4b6e-bbc3-f4fbbcb6540d\DvD\Movie\10,000 B.C.\10,000 BC.mkv"

(The problem with this is linux uses "/" for a delimiter signifying folders. Windorks uses \ instead. Now when the parser runs it's running in a linux environment (I used the debian installer.)....and can't pull the artwork using the windorks delimiter )

Brad7173 commented 4 months ago

Without running natively....your app still needs ability to mass select a custom proton or compatibility layer for linux users. The installer method of kodi into a steam prefix on linux requires steam use proton experimental or other. For each movie and I had 124...I'd have to manually select a custom proton.

cbartondock commented 4 months ago

The proton issue is a duplicate, it will get added eventually. Adding scrapers specifically for movies is way outside of scope for SRM, which is a tool for managing games and game artwork.