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

Gamelist Excel export script

Scheduled Pinned Locked Moved Ideas and Development
emulationstatioexportgamelist
126 Posts 19 Posters 30.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
    mostym
    last edited by 7 Mar 2019, 20:12

    @mitu I just restarted it, and tried running the script and the same error occurred.

    M 1 Reply Last reply 7 Mar 2019, 20:15 Reply Quote 0
    • M
      mitu Global Moderator @mostym
      last edited by 7 Mar 2019, 20:15

      @mostym Sorry, but the problem is somewhere else. Did you use the RetroPie supplied image from retropie.org.uk/download or another image ?

      1 Reply Last reply Reply Quote 0
      • M
        mostym
        last edited by 7 Mar 2019, 20:19

        @mitu I downloaded it from the retropie download page, yes.

        1 Reply Last reply Reply Quote 0
        • P
          ppuspfc
          last edited by 21 Apr 2019, 18:03

          I am interested in this work. Congratulations

          1 Reply Last reply Reply Quote 0
          • F
            FetusSandwich
            last edited by 18 Apr 2020, 14:39

            @mitu Hopefully you don't mind me resurrecting this thread, as this was an amazing tool when it was working for me and I think more people in the RetroPie need visibility into your awesome work.

            Problem for me now is that: it was working for me, but now it has stopped running, and I'm completely unsure as to why.

            Here is the error at the end of the script. It seems to get through all gamelists with no errors, then provides me with:

            Traceback (most recent call last):
              File "export.py", line 583, in <module>
                systems = parse_systems()
              File "export.py", line 261, in parse_systems
                gamelist = et.parse(gamelist_path)
              File "/usr/lib/python2.7/xml/etree/ElementTree.py", line 1182, in parse
                tree.parse(source, parser)
              File "/usr/lib/python2.7/xml/etree/ElementTree.py", line 656, in parse
                parser.feed(data)
              File "/usr/lib/python2.7/xml/etree/ElementTree.py", line 1653, in feed
                self._raiseerror(v)
              File "/usr/lib/python2.7/xml/etree/ElementTree.py", line 1517, in _raiseerror
                raise err
            xml.etree.ElementTree.ParseError: not well-formed (invalid token): line 564, column 32
            

            Any troubleshooting or insight you could provide here would be greatly appreciated. Thanks!

            M 1 Reply Last reply 18 Apr 2020, 16:14 Reply Quote 0
            • M
              mitu Global Moderator @FetusSandwich
              last edited by 18 Apr 2020, 16:14

              @FetusSandwich Run it with --debug and see where it stops. Looks like an issue with a malformed gamelist.xml file.

              F 1 Reply Last reply 12 Jun 2020, 13:47 Reply Quote 0
              • F
                FetusSandwich @mitu
                last edited by 12 Jun 2020, 13:47

                @mitu Thanks for your help on this, mitu.

                I was indeed able to get this script running eventually and found my way eventually with error logs to the problem child gamelist. What a lifesaver this thing is...

                Thanks for the help.

                1 Reply Last reply Reply Quote 0
                • B
                  bgennette
                  last edited by bgennette 21 Dec 2020, 23:55

                  Just one tiny (or two) things to add ...

                  You must 'cd' back to the /home/pi/retropie directory to run the 'export.py' script,
                  otherwise it won't be found.

                  And speaking of finding ... the list will be at /home/pi/retropie/RetroPie/roms/export_list.xlsx

                  bye.

                  2 1 Reply Last reply 27 Jan 2021, 20:22 Reply Quote 0
                  • 2
                    2Play @bgennette
                    last edited by 27 Jan 2021, 20:22

                    @mitu
                    thank you for the py script!

                    I got from git the latest gamelist.py . i fixed an error found in one list (had &)

                    my case the error is below

                    2021-01-27 20:19:47,680 INFO   Exporting to file /home/pi/RetroPie/roms/export_list.xlsx
                    Traceback (most recent call last):
                      File "gamelist.py", line 600, in <module>
                        xlsx_export_workbook(systems, output, collections)
                      File "gamelist.py", line 416, in xlsx_export_workbook
                        string="{0} ({1})".format(s.info['fullname'], s.info['name'])
                    UnicodeEncodeError: 'ascii' codec can't encode character u'\xd6' in position 1: ordinal not in range(128)
                    

                    My locale is all set to US UTF8, latest Raspbian OS updates, pi4

                    Your friend,
                    2Play!

                    M 1 Reply Last reply 27 Jan 2021, 20:29 Reply Quote 0
                    • M
                      mitu Global Moderator @2Play
                      last edited by mitu 27 Jan 2021, 20:29

                      @2play If you provide the offending gamelist.xml, I can attempt to add a fix to the script.

                      2 1 Reply Last reply 28 Jan 2021, 12:04 Reply Quote 0
                      • 2
                        2Play @mitu
                        last edited by 2Play 28 Jan 2021, 12:04

                        @mitu I cant find a bad xml
                        I also replaced few 'Ö' (no other 'Ö', 'ğ', 'Ş', Ç')
                        re run and get same result. I googled the error:
                        'ascii' codec can't encode character u'\xd6'
                        and most pointers relate to how python converts things. And that this was fixed on Python3!
                        Ive exported full run if helps
                        https://pastebin.com/11GS3ZS5

                        Your friend,
                        2Play!

                        L M 2 Replies Last reply 28 Jan 2021, 16:31 Reply Quote 0
                        • L
                          Lolonois @2Play
                          last edited by 28 Jan 2021, 16:31

                          @2play From the distance: I assume your ~/.emulationsstation/es_systems.cfg contains a non ASCII character (Ö). Have a look there.
                          If you want to keep your O-umlaut, maybe adding a declaration to the es_systems.cfg is honored by the XML parser(elementree), so add <?xml version="1.0" encoding="UTF-8" standalone="yes" ?> and give it a try.

                          HTH

                          1 Reply Last reply Reply Quote 0
                          • M
                            mitu Global Moderator @2Play
                            last edited by 28 Jan 2021, 17:32

                            @2play said in Gamelist Excel export script:

                            Ive exported full run if helps
                            https://pastebin.com/11GS3ZS5

                            Unfortunately that doesn't hint me on what is wrong. Maybe @Lolonois has a point, check the systems' config and make sure it's properly XML formed.
                            Alternatively, you could try running the script via python3 (instead of just python), but make sure you install the XLSX module with python-pip3 so it's available for python3 also.

                            2 1 Reply Last reply 29 Jan 2021, 14:14 Reply Quote 0
                            • 2
                              2Play @mitu
                              last edited by 2Play 29 Jan 2021, 14:14

                              @Lolonois & @mitu
                              First of all a big thank you for your kind replies!
                              It is an amazing script @mitu

                              • @Lolonois I have changed the xml header: Not working with python v2

                              • @Lolonois You are correct on the Ö. It is in the LÖVE 2d Game Engine system name tag. If I remove command runs fine ( @mitu )

                              • @mitu Since I have Python 3.7.3 installed, I did as you advised.
                                Python 3 works and exports excel list without any changes (no removal of Ö from LÖVE)

                              So if I may suggest to ppl do below:

                              Check Python version 2 or 3

                              python --version
                              or
                              python3 --version
                              

                              Install Python3 If No Result Above

                              sudo apt-get install -y python3-dev python3-setuptools
                              

                              GET MITU GAMELIST LATEST FILE:

                              wget -O export.py https://gist.githubusercontent.com/cmitu/73cf0783e9e1e4e02d8ce5c44f7a8984/raw/4a7a8176f8b73ee7bc41ec8d884a9820d84ab639/gamelist.py
                              

                              XLSXWRITER Installation:

                              git clone --depth=1 https://github.com/jmcnamara/xlsxwriter
                              cd xlsxwriter
                              sudo python3 setup.py install
                              

                              RUN (normal):

                              python3 export.py /home/pi/RetroPie/roms/export_list.xlsx
                              

                              RUN (debug):

                              python3 export.py /home/pi/RetroPie/roms/export_list.xlsx -d
                              

                              Your friend,
                              2Play!

                              M 1 Reply Last reply 29 Jan 2021, 15:04 Reply Quote 0
                              • M
                                mitu Global Moderator @2Play
                                last edited by 29 Jan 2021, 15:04

                                @2play said in Gamelist Excel export script:

                                @Lolonois You are correct on the Ö. It is in the LÖVE 2d Game Engine system name tag. If I remove command runs fine ( @mitu )

                                I see. I'll try to see if it would work with Python2, otherwise I'll update the installation instruction on the first post.

                                Thanks for the update.

                                M 1 Reply Last reply 29 Jan 2021, 16:00 Reply Quote 0
                                • M
                                  mitu Global Moderator @mitu
                                  last edited by mitu 29 Jan 2021, 16:00

                                  @mitu said in Gamelist Excel export script:

                                  It is in the LÖVE 2d Game Engine system name tag. If I remove command runs fine ( @mitu )

                                  I already had Love as a system, but RetroPie doesn't configure it with LÖVE, just Love. Did you modify the name of the system manually ?

                                  Nevertheless, I added a fix for the issue and also fixed the bug of exporting empty comments for games that don't have any description.

                                  2 2 Replies Last reply 29 Jan 2021, 18:33 Reply Quote 1
                                  • 2
                                    2Play @mitu
                                    last edited by 2Play 29 Jan 2021, 18:33

                                    @mitu welcome, yes and thank you :-)
                                    Tested and now python 2 also works ok with your fix!

                                    Your friend,
                                    2Play!

                                    1 Reply Last reply Reply Quote 0
                                    • 2
                                      2Play @mitu
                                      last edited by 1 Feb 2021, 11:47

                                      @mitu gm friend

                                      i was checking today my es reported arcade set at 340 and export xls reports 331
                                      I have to check what is missing. but later due to work
                                      do you think is name related or script uses name tag counting?

                                      Your friend,
                                      2Play!

                                      1 Reply Last reply Reply Quote 0
                                      • MrPacMan17M
                                        MrPacMan17
                                        last edited by 9 Feb 2021, 08:19

                                        Wow, this script is awesome! Thank you very much for it. Much appreciated!

                                        1 Reply Last reply Reply Quote 0
                                        • J
                                          joesnow81
                                          last edited by 4 Jan 2022, 14:04

                                          I know this thread is very old now but hoping someone may be able to assist. I have used this script in the past and it worked flawlessly but when I went to run it today I got the following error

                                          2022-01-04 13:53:37,126 INFO Exporting to file /home/pi/RetroPie/roms/export_list.xlsx
                                          Traceback (most recent call last):
                                          File "export.py", line 599, in <module>
                                          xlsx_export_workbook(systems, output, collections)
                                          File "export.py", line 394, in xlsx_export_workbook
                                          if len(custom_collections)>0 :
                                          TypeError: object of type 'NoneType' has no len()

                                          The file is not being saved. Any idea what the above means and how to resolve it?

                                          M 1 Reply Last reply 4 Jan 2022, 16:36 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.

                                            This community forum collects and processes your personal information.
                                            consent.not_received