RetroPie forum home
    • Recent
    • Tags
    • Popular
    • Home
    • Docs
    • Register
    • Login

    [SCRIPT] RetroPie Limit Last Played Games

    Scheduled Pinned Locked Moved Projects and Themes
    shell scriptlast playedgameslimit
    57 Posts 5 Posters 6.0k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • M
      MadHorse
      last edited by

      Hi @hiulit,
      I'm so sorry, but checking the name introduced two more trouble.
      If the name contain a ' single quote, it will complain because it Failed to compile select expression

      Number of 'last played' games to limit is set to '10'.
      
      daphne
      ------
      'gamelist.xml' for 'daphne' found!
      > Creating 'gamelist-backups.xml' for 'daphne' ...
      'gamelist-backups.xml' for 'daphne' created successfully!
      Invalid predicate: /gameList/game[name='Dragon's Lair II: Time Warp (US v3.19)']/playcount
      compilation error: element with-param
      XSLT-with-param: Failed to compile select expression '/gameList/game[name='Dragon's Lair II: Time Warp (US v3.19)']/playcount'
      Invalid predicate: /gameList/game[name='Dragon's Lair']/playcount
      compilation error: element with-param
      XSLT-with-param: Failed to compile select expression '/gameList/game[name='Dragon's Lair']/playcount'
      > Removing the 'last played' games surplus for 'daphne' ...
      ERROR: There aren't enough 'last played' games to remove.
      Try lowering the '--nth' number.
      Now it's set to '10' and there are only 4 games in 'daphne'.
      

      Daphne gamelist.xml contains 6 played games, but 2 games are not counted beacuse of the XSLT-with-param: Failed to compile select expression.

      The other error is, if there are more games with the same name, it will give you another error

      Number of 'last played' games to limit is set to '10'.
      
      amiga
      -----
      'gamelist.xml' for 'amiga' found!
      > Creating 'gamelist-backups.xml' for 'amiga' ...
      'gamelist-backups.xml' for 'amiga' created successfully!
      ./retropie-limit-last-played-games.sh: line 125: [[: 1
      1: syntax error in expression (error token is "1")
      ./retropie-limit-last-played-games.sh: line 125: [[: 1
      1: syntax error in expression (error token is "1")
      > Removing the 'last played' games surplus for 'amiga' ...
      ERROR: There aren't enough 'last played' games to remove.
      Try lowering the '--nth' number.
      Now it's set to '10' and there is only 1 game in 'amiga'.
      

      and instead of the same lastplayed date and time, finding more games witht he same name is easier, you may have multiple version of the same game, for example you may have the same Amiga games on CD32,CDTV, ADF or for example in many languages, but when you scrape the games, you will have the same name for every version of the game unless you don't manually change it.
      One las note, the 2 amiga games with the same name, didn't have the same lastplayed date

      	<game>
      		<path>./Turrican2_v1.4_CDTV.lha</path>
      		<name>Turrican II : The Final Fight</name>
      		<desc>Turrican II: The Final Fight is a platformer/shooter as typically seen on consoles, but designed for home computers from the ground up.
      
      Its plot is - naturally - very simple: an evil mega-robot called The Machine attacks the United Planets Ship Avalon 1, slaughtering all who resist. All - except Bren McGuire, who manages to escape and slips into the experimental Turrican bionic armor. As Turrican, he strives to show The Machine who's the boss.
      
      Unlike other games of its type, this game contains three levels of horizontal shooter action in the spirit of R-Type or the developers' own Katakis. Six large worlds are to be explored, where you are basically free to go everywhere you want, since there is no automatic scrolling and the levels are packed with hidden extra lives and weapons. All those levels are very different: the first one in the rock desert is pretty colorful with parallaxing rainbow background and happy music, while the following worlds get darker and darker.</desc>
      		<image>./media/images/Turrican 2 (CDTV).png</image>
      		<rating>0.95</rating>
      		<releasedate>19910101T000000</releasedate>
      		<developer>Factor 5</developer>
      		<publisher>Rainbow Arts Software</publisher>
      		<genre>Platform</genre>
      		<playcount>1</playcount>
      		<lastplayed>20180719T150228</lastplayed>
      	</game>
      	<game>
      		<path>./Turrican2_v1.7_0029.lha</path>
      		<name>Turrican II : The Final Fight</name>
      		<desc>Turrican II: The Final Fight is a platformer/shooter as typically seen on consoles, but designed for home computers from the ground up.
      
      Its plot is - naturally - very simple: an evil mega-robot called The Machine attacks the United Planets Ship Avalon 1, slaughtering all who resist. All - except Bren McGuire, who manages to escape and slips into the experimental Turrican bionic armor. As Turrican, he strives to show The Machine who's the boss.
      
      Unlike other games of its type, this game contains three levels of horizontal shooter action in the spirit of R-Type or the developers' own Katakis. Six large worlds are to be explored, where you are basically free to go everywhere you want, since there is no automatic scrolling and the levels are packed with hidden extra lives and weapons. All those levels are very different: the first one in the rock desert is pretty colorful with parallaxing rainbow background and happy music, while the following worlds get darker and darker.</desc>
      		<image>./media/images/Turrican 2 (CDTV).png</image>
      		<rating>0.95</rating>
      		<releasedate>19910101T000000</releasedate>
      		<developer>Factor 5</developer>
      		<publisher>Rainbow Arts Software</publisher>
      		<genre>Platform</genre>
      		<playcount>1</playcount>
      		<lastplayed>20180720T005157</lastplayed>
      	</game>
      

      I beg your pardon, if it wasn't for me, you made a perfectly working script unless someone don't mess with the gamelist.sml file.
      I'm so sorry, may I help you in any way ?

      hiulitH 2 Replies Last reply Reply Quote 0
      • hiulitH
        hiulit @MadHorse
        last edited by

        @madhorse whooops, it's getting tricky! Haha! Would you mind copying a couple of your gamelists into pastebin.com or something similar so I can test with real game lists? In the virtual machine where I develop the scripts I only have a couple of games to test.

        The first issue involving the characters, I think I can escape them so it doesn't crash. The second one needs a little bit more of testing.

        Thanks a lot for helping me test the script, btw!

        My little contributions to the RetroPie project:

        • Shell-Script-Boilerplate
        • Fun-Facts-Splashscreens
        • Limit-Last-Played-Games
        ClydeC 1 Reply Last reply Reply Quote 0
        • hiulitH
          hiulit @MadHorse
          last edited by

          @madhorse your Daphne and Amiga game lists would be enough, I think.

          My little contributions to the RetroPie project:

          • Shell-Script-Boilerplate
          • Fun-Facts-Splashscreens
          • Limit-Last-Played-Games
          M 1 Reply Last reply Reply Quote 0
          • M
            MadHorse @hiulit
            last edited by

            @hiulit said in [SCRIPT] RetroPie Limit Last Played Games:

            @madhorse your Daphne and Amiga game lists would be enough, I think.

            No Problem,
            This is the Daphne Gamelist and this is the Amiga Gamelist

            Thanks a lot for helping me test the script, btw!

            Thanks to you for your work and for helping us to Limit the Last Played list :)

            1 Reply Last reply Reply Quote 1
            • ClydeC
              Clyde @hiulit
              last edited by

              @hiulit said in [SCRIPT] RetroPie Limit Last Played Games:

              @madhorse whooops, it's getting tricky! Haha!

              In my head, I heard your words in the voice of the first Doctor Who. Especially the laughter! šŸ˜„

              1 Reply Last reply Reply Quote 1
              • hiulitH
                hiulit
                last edited by hiulit

                Retropie Limit Last Played Games v2.1.1 is out!

                CHANGELOG

                Fixed

                • Issue with duplicate game names but different <lastplayed> tags in gamelist.xml. Now the script takes both the game name and its <lastplayed> tag to avoid duplicates. If there are more than one game with same name and <lastplayed> tag, the script won't work.
                • Escape game names with single quotes in gamelist.xml.
                • Escape ampersands (&) in gamelist.xml.

                @MadHorse all your issues should now be fixed! :P

                EDIT: Until you find more, hehe! ;)

                My little contributions to the RetroPie project:

                • Shell-Script-Boilerplate
                • Fun-Facts-Splashscreens
                • Limit-Last-Played-Games
                1 Reply Last reply Reply Quote 1
                • M
                  MadHorse
                  last edited by

                  AND THE WINNER IS @hiulit :D

                  You did it man, I made some fast test with the new version and it's working perfectly, it' s awesome.
                  Now, because I'm a BAD guy, i tried to trick the script and made a gamelist with 2 exactly duplicate games, same name and same date, obviously the script gave an error, and then it completed the work.

                  Anyway, if someone has messed up the gamelist.xml so badly is what I-(he) deserve :)))

                  You are the best, thank you for your hard work, i love your script.

                  1 Reply Last reply Reply Quote 0
                  • M
                    MadHorse
                    last edited by

                    Hi @hiulit I'm here again, unfortunately for another bug.
                    Usually in the gamelist.xml the & character is written as &amp;, probably there is something tricky with the escape of & because after you execute the script, it will transform it to &amp;amp;, if you execute it another time you will get &amp;amp;amp;
                    I'm so sorry to bring you bad news.

                    hiulitH 1 Reply Last reply Reply Quote 1
                    • hiulitH
                      hiulit @MadHorse
                      last edited by

                      @madhorse Hey! Yeah, totally my bad... Such a noob thing to do :( Or in this case, NOT to do..

                      I only check for unescaped & because in one of your gamelist.xml there were a lot of them and the software that parses the xml, which is xmlstarlet, was crashing because of that. So I assumed that scrapers would always add the unescaped & and I didn't take into account that it was possible for some scrapers to have the escaped version &amp;.

                      I'll fix it asap.

                      Thanks for the heads up! ;)

                      My little contributions to the RetroPie project:

                      • Shell-Script-Boilerplate
                      • Fun-Facts-Splashscreens
                      • Limit-Last-Played-Games
                      1 Reply Last reply Reply Quote 0
                      • hiulitH
                        hiulit
                        last edited by

                        New RetroPie Limit Last Played Games 2.1.2 is out!

                        @MadHorse if you could give it a try.... hehe! ;) Thanks!

                        CHANGELOG

                        [2.1.2] - 2018-09-20

                        Fixed

                        • Escape special characters function.

                        Added

                        • Validate XML function.

                        My little contributions to the RetroPie project:

                        • Shell-Script-Boilerplate
                        • Fun-Facts-Splashscreens
                        • Limit-Last-Played-Games
                        1 Reply Last reply Reply Quote 1
                        • M
                          MadHorse
                          last edited by

                          @hiulit hi, I made a quick test and now the & and &amp; aren't changed, great work.
                          I will do some more test hoping to not find more bugs, I don't want you to hate me :)

                          Thank you very much, you and your script are awesome

                          hiulitH 1 Reply Last reply Reply Quote 1
                          • hiulitH
                            hiulit @MadHorse
                            last edited by

                            @madhorse Cross fingers :P

                            You are very welcome. I think you and I are the only ones using this script, haha!

                            My little contributions to the RetroPie project:

                            • Shell-Script-Boilerplate
                            • Fun-Facts-Splashscreens
                            • Limit-Last-Played-Games
                            ClydeC M 2 Replies Last reply Reply Quote 0
                            • ClydeC
                              Clyde @hiulit
                              last edited by

                              @hiulit With me as an uninvolved onlooker. :)

                              hiulitH 1 Reply Last reply Reply Quote 1
                              • hiulitH
                                hiulit @Clyde
                                last edited by

                                @clyde haha, of course! ;)

                                My little contributions to the RetroPie project:

                                • Shell-Script-Boilerplate
                                • Fun-Facts-Splashscreens
                                • Limit-Last-Played-Games
                                1 Reply Last reply Reply Quote 0
                                • M
                                  MadHorse @hiulit
                                  last edited by

                                  @hiulit said in [SCRIPT] RetroPie Limit Last Played Games:

                                  @madhorse Cross fingers :P

                                  You are very welcome. I think you and I are the only ones using this script, haha!

                                  Hahah, maybe, probably because many peoples don't know about it :)

                                  ClydeC 1 Reply Last reply Reply Quote 0
                                  • ClydeC
                                    Clyde @MadHorse
                                    last edited by

                                    @madhorse Well, at least this thread will appear in the "unread" list every time a new post is posted here. :)

                                    hiulitH 1 Reply Last reply Reply Quote 0
                                    • hiulitH
                                      hiulit @Clyde
                                      last edited by

                                      @clyde @MadHorse Shhhh.. don't say it out loud or we'll get banned for bumping posts xD

                                      My little contributions to the RetroPie project:

                                      • Shell-Script-Boilerplate
                                      • Fun-Facts-Splashscreens
                                      • Limit-Last-Played-Games
                                      cyperghostC 1 Reply Last reply Reply Quote 0
                                      • cyperghostC
                                        cyperghost @hiulit
                                        last edited by

                                        @hiulit @Clyde

                                        I like Raspberry Bumber, with white chocolat it's the best

                                        The smell of

                                        • Freedom
                                        • Independence
                                        • New Sources
                                        • New Horizons

                                        Bumber BAR

                                        0_1538198981507_54ae4e7a-f96c-4fdc-8332-863491f7476a-grafik.png

                                        ClydeC 1 Reply Last reply Reply Quote 1
                                        • ClydeC
                                          Clyde @cyperghost
                                          last edited by

                                          @cyperghost You, sir, are my kind of silly. šŸ˜†

                                          1 Reply Last reply Reply Quote 0
                                          • hiulitH
                                            hiulit
                                            last edited by

                                            New minor version of Retropie Limit Last Played Games 2.1.3 is out!

                                            Changelog

                                            [2.1.3] - 2018-12-23

                                            Fixed

                                            • Files permissions.

                                            Added

                                            • Debug mode dialog when using the script via the EmulationStation's RetroPie menu.
                                            • Debug mode text in script's title when debug mode is on.

                                            My little contributions to the RetroPie project:

                                            • Shell-Script-Boilerplate
                                            • Fun-Facts-Splashscreens
                                            • Limit-Last-Played-Games
                                            1 Reply Last reply Reply Quote 1
                                            • First post
                                              Last post

                                            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.