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

    Clearing the lastplayed and playcount from gamelist.xml's

    Scheduled Pinned Locked Moved Ideas and Development
    clearinglastplayedplaycountgamelist.xml
    34 Posts 13 Posters 15.2k 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.
    • D
      davidgrohl Banned
      last edited by davidgrohl

      Hi all,
      I've tried this usefull script but it doesn't work for me.
      I put it in /home/pi/Retropie/roms folder. Make it executable. Than launch it typing ./name_of_The_script.sh and it says:

      file: /home/pi/RetroPie/roms//gamelist.xml'
      ./clear_played.sh: 7: ./clear_played.sh: cannot create /home/pi/RetroPie/roms/
      /gamelist.xml.tmp : Directory nonexistent
      mv: cannont stat '/home/pi/RetroPie/roms/**/gamelist.xml.tmp' : No such file or directory

      What's the mistake?

      mituM 1 Reply Last reply Reply Quote 0
      • mituM
        mitu Global Moderator @davidgrohl
        last edited by

        @davidgrohl The script fragment expects the gamelist.xml located in the ROMs folders, but by default they're in /home/pi/.emulationstation/gamelists/<system_name>. Try the script posted by @kactius, it allows you to select one of the 2 locations for the gamelist.xml files.

        D I 2 Replies Last reply Reply Quote 1
        • D
          davidgrohl Banned @mitu
          last edited by

          @mitu said in Clearing the lastplayed and playcount from gamelist.xml's:

          @davidgrohl The script fragment expects the gamelist.xml located in the ROMs folders, but by default they're in /home/pi/.emulationstation/gamelists/<system_name>. Try the script posted by @kactius, it allows you to select one of the 2 locations for the gamelist.xml files.

          Thanks @mitu for reply. That scripts works with option 2.
          Great! Thanks a lot.

          1 Reply Last reply Reply Quote 1
          • I
            Invisible89 @mitu
            last edited by Invisible89

            @mitu said in Clearing the lastplayed and playcount from gamelist.xml's:

            @davidgrohl The script fragment expects the gamelist.xml located in the ROMs folders, but by default they're in /home/pi/.emulationstation/gamelists/<system_name>. Try the script posted by @kactius, it allows you to select one of the 2 locations for the gamelist.xml files.

            Hi guys.

            I'm trying to clear my last played games list, but it doesn't work :(

            I've created cleanlastplayed.sh file with this code:

            #!/bin/sh
            #clear_played.sh

            for f in /home/pi/RetroPie/roms/**/gamelist.xml
            do
            echo "file: $f"
            grep -e lastplayed -e playcount -v $f > "$f.tmp"
            mv -f "$f.tmp" $f
            done

            It's ok? Or I've to modify it with the name of the system name (**)?

            And where should I put this file? What directory?

            Thanks

            1 Reply Last reply Reply Quote 0
            • mituM
              mitu Global Moderator
              last edited by

              You should use a single wildcard (*) instead of the system name, but the script will only find the gamelist.xml files from the ROM folders, you might have some gamelist files in ~/.emulationstation/gamelists/<system> folders.

              I 1 Reply Last reply Reply Quote 0
              • I
                Invisible89 @mitu
                last edited by

                @mitu said in Clearing the lastplayed and playcount from gamelist.xml's:

                You should use a single wildcard (*) instead of the system name, but the script will only find the gamelist.xml files from the ROM folders, you might have some gamelist files in ~/.emulationstation/gamelists/<system> folders.

                Ok, i will try with only one windcard.

                But where i've to put my cleanlastplayed.sh file?

                mituM 1 Reply Last reply Reply Quote 0
                • mituM
                  mitu Global Moderator @Invisible89
                  last edited by

                  @Invisible89 said in Clearing the lastplayed and playcount from gamelist.xml's:

                  But where i've to put my cleanlastplayed.sh file?

                  It doesn't matter, as long as you execute it correctly. Let's say you save it in /home/pi/RetroPie/scripts.

                  #make the folder
                  mkdir -p $HOME/RetroPie/scripts
                  
                  # create the file in $HOME/RetroPie/scripts/lastplayed.sh
                  
                  # run the script
                  bash $HOME/$HOME/RetroPie/scripts/lastplayed.sh
                  
                  I 2 Replies Last reply Reply Quote 0
                  • I
                    Invisible89 @mitu
                    last edited by

                    @Invisible89 said in Clearing the lastplayed and playcount from gamelist.xml's:

                    @mitu said in Clearing the lastplayed and playcount from gamelist.xml's:

                    You should use a single wildcard (*) instead of the system name, but the script will only find the gamelist.xml files from the ROM folders, you might have some gamelist files in ~/.emulationstation/gamelists/<system> folders.

                    Ok, i will try with only one windcard.

                    But where i've to put my cleanlastplayed.sh file?

                    Ok, i understand.

                    Thanks

                    1 Reply Last reply Reply Quote 0
                    • I
                      Invisible89 @mitu
                      last edited by

                      @mitu said in Clearing the lastplayed and playcount from gamelist.xml's:

                      @Invisible89 said in Clearing the lastplayed and playcount from gamelist.xml's:

                      But where i've to put my cleanlastplayed.sh file?

                      It doesn't matter, as long as you execute it correctly. Let's say you save it in /home/pi/RetroPie/scripts.

                      #make the folder
                      mkdir -p $HOME/RetroPie/scripts
                      
                      # create the file in $HOME/RetroPie/scripts/lastplayed.sh
                      
                      # run the script
                      bash $HOME/$HOME/RetroPie/scripts/lastplayed.sh
                      

                      Ok, now I've this when I try to run the script:

                      pi@retropie:~/RetroPie/scripts $ ./delete_pla_last.sh
                      -bash: ./delete_pla_last.sh: Permission denied

                      What I've to do to take a permission?

                      Thanks

                      mituM 1 Reply Last reply Reply Quote 0
                      • mituM
                        mitu Global Moderator @Invisible89
                        last edited by

                        @Invisible89 said in Clearing the lastplayed and playcount from gamelist.xml's:

                        What I've to do to take a permission?

                        It's because you've not made the script executable - that's why in my example command I've run it through bash. Just run

                        chmod +x delete_pla_last.sh
                        

                        and re-run the script.

                        I 1 Reply Last reply Reply Quote 0
                        • I
                          Invisible89 @mitu
                          last edited by

                          @mitu said in Clearing the lastplayed and playcount from gamelist.xml's:

                          @Invisible89 said in Clearing the lastplayed and playcount from gamelist.xml's:

                          What I've to do to take a permission?

                          It's because you've not made the script executable - that's why in my example command I've run it through bash. Just run

                          chmod +x delete_pla_last.sh
                          

                          and re-run the script.

                          Finally! ;)

                          Done, thank you man!

                          1 Reply Last reply Reply Quote 0
                          • R
                            RetrOkada
                            last edited by

                            Hello, thanks for this script.

                            Unfortunately, when I attempt to run it, I receive the following message:
                            "
                            Clearlastplayed.sh, : 3:, clearlastplayed.sh, : syntax error: redirection unexpected
                            "

                            Anyone know what this means?

                            Cheers.

                            R 1 Reply Last reply Reply Quote 0
                            • R
                              RetrOkada @RetrOkada
                              last edited by

                              @RetrOkada Okay, so all sorted now. To run the script, I was entering sh "clearlastplayed.sh". I tried ./clearlastplayed.sh instead, and it worked perfectly.

                              I also removed the DOS line breaks from the script, so circumvented the "Bad Interpreter" issue.

                              1 Reply Last reply Reply Quote 0
                              • S
                                ssokolow
                                last edited by

                                Sorry for replying half a year later, but this is showing up in Google results and using grep to edit an XML file risks corrupting it if something else broke the assumption that it's pretty-printed in the right way.

                                (eg. Python's ElementTree XML library outputs minified XML by default and it took a few revisions to turn on pretty-printing in one of the scripts I wrote.)

                                The device I'm currently preparing for a family Christmas gift is using Batocera rather than RetroPie, but my solution for this should work on RetroPie too as long as it's got a standard Python 3.x installation.

                                https://gist.github.com/ssokolow/e1c4b6fceb65bcf4e6d886ce691280bf

                                (As you can probably tell, I got a little nerd-sniped about making it robust and friendly before I realized I was going way overboard for a self-itch-scratch and stopped short of writing an automated test suite.)

                                To just clear lastplayed and playcount without also clearing gametime, pass --remove-tag lastplayed --remove-tag playcount as arguments.

                                LolonoisL 1 Reply Last reply Reply Quote 2
                                • LolonoisL
                                  Lolonois @ssokolow
                                  last edited by Lolonois

                                  @ssokolow Nice work. Works like charm on a RetroPie setup too. Thanks for sharing it under MIT license.

                                  1 Reply Last reply Reply Quote 0
                                  • 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.