Easy way to add video and marquees tags in your gamelist for video support.
-
I don't know if you can look at the comparison differences but It's changing the output format of the scrapers and as you can see it doesn't seem to keep things proper. I would expect it to only add the video and marquee line but it's doing much more than that.
I suppose I can load it up and see if it makes a difference in how it displays everything in emulation station but, is there another way of doing it so it doesn't screw up the whole formatting?
-
I would expect it to look like this if that makes sense. The lines added have a blue dot on the line number.
-
@alaindesjardins I don't see the differences, what's the problem if the xml works ok?
I see the new gamelist.xml more clean...
-
Yeah, I won't worry about it. My OCD targets the fact that the description is all different because the formatting it all screwed up after I run the powershell script.
I'll try not to look at it, I just wish there was an easier way to append the <video> and <marquee> lines without changing the rest. Maybe I'll see if the sselph scraper can add that data in or request it be worked in. I just figured out how to scrape using sselph scraper and my own images/artwork so I was able to generate a gamelist.xml with metadata. Adding the videos and wheel art was the only thing left which your script does.
Thanks!
-
@alaindesjardins I don't know a easiest way to do it. Sorry maybe it's a stupid question but what is OCD?
-
Obsessive Compulsive Disorder, for me its like having a stack of money and making sure all the bills are facing the same instead of just folding them all and putting them in my wallet. I'm sure there are better examples but that's all I can come up with right now.
-
@alaindesjardins I know what is Obsessive Compulsive Disorder, but my native language it's not english so when I have read OCD I didn't think it was that.
So now I understand you much better, and why you want that "issue" fixed.
I'm sorry I can not help you.
Regards.
-
I'm not getting this to work unfortunately. I followed each step in the first post but powershell gives me this in return
"C:\Users\duiz.emulationstation\addvideos\addvideomarquees.ps1 : File C:\Users\duiz.emulationstation\addvideos\addvide
omarquees.ps1 cannot be loaded because running scripts is disabled on this system. For more information, see about_Exec
ution_Policies at http://go.microsoft.com/fwlink/?LinkID=135170.
At line:1 char:1- C:\Users\duiz.emulationstation\addvideos\addvideomarquees.ps1
-
+ CategoryInfo : SecurityError: (:) [], PSSecurityException + FullyQualifiedErrorId : UnauthorizedAccess"
My ps1 file looks like this
$doc = [xml] (Get-Content -raw gamelist.xml)foreach ($gameEl in $doc.DocumentElement.game) {
Use -replace to extract the filename without extension from the
path contained in the <path> element.
$gameName = $gameEl.path -replace '^./(.)..*$', '$1'
Append elements 'video' and 'marquee', but only if they don't already
exist.
if ($null -eq $gameEl.video) {
$gameEl.AppendChild($doc.CreateElement('video')).InnerText = "./videos/${gameName}.mp4"
}
if ($null -eq $gameEl.marquee) {
$gameEl.AppendChild($doc.CreateElement('marquee')).InnerText = "./marquees/${gameName}.png"
}
}
rename-item gamelist.xml -newname oldgamelist.xml
$writer = [System.IO.StreamWriter] "gamelist.xml"
$doc.Save($writer)
$writer.Close() -
@duiz Try this:
1- Open a text document and place this inside:
powershell -ExecutionPolicy ByPass -File addvideomarquees.ps1
Make sure the name of .ps1 file is the same than in the code above and save changes.
2- Rename the .txt extension to .bat
3- Place it in the same folder than addvideomarquees.ps1 and do right click on the .bat file and select " exec as administrator".
Tell me if it works. I hope so.
-
@Nismo It worked! Thanks! Now everything adds perfectly
-
@duiz Nice, I'm glad to help. I'll add this to the first post.
-
On Windows 7 I used your latest edit of the code and I'm getting this:
I tried on several different folders and it didn't work, the path is on F:\SNES 852, no "funny" characters.
-
@matchaman
Why you edited the script? Why you don't use the default path of the script? Can you post your script? -
I didn't edit the script at all, the only thing different is that I named it generator.ps1
I have my gamelist.xml and my files located in F:\SNES 852 (should I use something else in particular?)
Here is the exact code I use:
$doc = [xml] (Get-Content -raw gamelist.xml) foreach ($gameEl in $doc.DocumentElement.game) { # Use -replace to extract the filename without extension from the # path contained in the <path> element. $gameName = $gameEl.path -replace '^.*/(.*)\..*$', '$1' # Append elements 'video' and 'marquee', but only if they don't already # exist. if ($null -eq $gameEl.video) { $gameEl.AppendChild($doc.CreateElement('video')).InnerText = "./videos/${gameName}.mp4" } if ($null -eq $gameEl.marquee) { $gameEl.AppendChild($doc.CreateElement('marquee')).InnerText = "./marquees/${gameName}.png" } } rename-item gamelist.xml -newname oldgamelist.xml $writer = [System.IO.StreamWriter] "gamelist.xml" $doc.Save($writer) $writer.Close()
As for my gamelist.xml file, it's formatted as:
<gameList> <game> <path>./2020 Super Baseball (USA).zip</path> <name>2020 Super Baseball (USA)</name> <image>./images/2020 Super Baseball (USA).png</image> </game> <game> <path>./3 Ninjas Kick Back (USA).zip</path> <name>3 Ninjas Kick Back (USA)</name> <image>./images/3 Ninjas Kick Back (USA).png</image> </game> <game> <path>./7th Saga, The (USA).zip</path> <name>7th Saga, The (USA)</name> <image>./images/7th Saga, The (USA).png</image> </game> <game> <path>./90 Minutes - European Prime Goal (Europe).zip</path> <name>90 Minutes - European Prime Goal (Europe)</name> <image>./images/90 Minutes - European Prime Goal (Europe).png</image> </game> <game> <path>./A.S.P. - Air Strike Patrol (USA).zip</path> <name>A.S.P. - Air Strike Patrol (USA)</name> <image>./images/A.S.P. - Air Strike Patrol (USA).png</image> </game> <game> <path>./ABC Monday Night Football (USA).zip</path> <name>ABC Monday Night Football (USA)</name> <image>./images/ABC Monday Night Football (USA).png</image> </game> ...and so on until </gameList>
When I run the script, I briefly get that error window I managed to capture (after many attempts) and a new gamelist.xml that's 0 bytes and of course the backup one untouched.
-
@matchaman try to place your gamelist and the script at root o C: and run it there.
What operating system do you have?
-
Same result when placed on C: :( I am using Windows 7
This is the error I'm getting on the root directory:
Edit: OK, after shortening the list to a few games, the output is normal. Some character within the ROM names is causing this! Tonight I'll do a lot of trial and error and locate the little devil!
-
Sorry about the double post but I'll have to bump it in order to inform you that the symbol & in names causes the aforementioned problem.
Probably explains why some users experience difficulties with certain systems while others process without any issue. How can this be fixed?
Edit: I replaced
&
with&
as this appears to give the same result while it's safe for the script. I hope I helped :) -
Hello and thanks for this but... it doesn't work for me. I have test with Windows 7 Pro, Windows 8.1u1 and Windows 10 Pro.
Work with Windows 8.1u1, everything was OK but I install Windows 10 yesterday and it doesn't work now... :(
Error message :
Thanks for your help :)
-
I have windows 10 and it works perfectly for me, I don't understand very well the french message, but it seems there are some problem with one of your games in your original gamelist.
It's the entry after yumimi mix (japan).cue, try to take a copy of your original gamelist, then delete that entry after yumimi mix and test again if all it's working, if not, send me your gamelist and I'll try to do it here.
If it works, then enter that entry by hand.
Maybe, reading the name, you have japanesse characters??
Try what i said to you, if doesn't work upload your gamelist.xml somewhere so I can check what's the problem.
Regards.
-
Yes, it work perfectly :)
Sorry, it was my fault. On gamelist.xml, I have <rating>/rating> in line 1236 (like see in error code...). Replace with right arguments and work :)
Thousand sorry about this !!! And great works for this script help me very well !
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.