[Release] GUI for FunKiiU

Discussion in 'Wii U - Hacking & Backup Loaders' started by pyrofool, Apr 19, 2017.

  1. pyrofool
    OP

    pyrofool Member

    Newcomer
    27
    15
    Apr 29, 2012
    United States
    This is a frontend for FunKiiu.

    Why? Because I wanted to and figured others might want to use it.

    Thanks to cearp, cerea1killer and dojafoja.

    https://github.com/christopher-roelofs/FunKiiUFrontend/releases/

    Features:

    search input
    multiple downloads at once (change in settings)
    RSS feed for title key site

    Download and run frontend.py

    Requirements:
    python 2.7 with tkinter (should be in most distributions of python)

    Things I might/want to do in the future:

    A̶d̶d̶ ̶a̶ ̶c̶a̶n̶c̶e̶l̶ ̶o̶f̶ ̶c̶u̶r̶r̶e̶n̶t̶ ̶o̶r̶ ̶o̶n̶e̶ ̶o̶f̶ ̶t̶h̶e̶ ̶q̶u̶e̶u̶e̶d̶ ̶d̶o̶w̶n̶l̶o̶a̶d̶s̶ --done
    Add a Library tab to list all games in a specific folder and show information (may not be same dir as downloads)
    FTP. might end up in the same tab as library
    Copy game/s to location. probably end up in the same spot as ftp.
    Full wiiutdb info. --partially done in v1.4 (shows description of some games). Need a better way to link the gameid from wiiutdb to the game in titlekeys.json

    Changelog

    5-2-17
    Stop download right away when canceling.
    Remove game folder when canceled or failed.

    4-30-17 v1.4
    Preliminary wiiutdb support. Need better way to link 4-6 char id from wiiutdb to titlekeys.json.
    Add ability to cancel downloads.
    Add download_file to process_title_id class in FunKiiUmod and hook to callback log.

    4-29-17 v1.3
    Fork FunKiiU into FunKiiUmod.
    Fix more unicode issues.
    Show percent downloaded.
    Improve wording of settings descriptions.
    Handle cancel button for setting download directory.

    4-24-17 v1.2.1
    change startup threads a bit
    update patch demo/dlc descriptions
    add "compiled" versions for Windows and Linux

    4-19-17 v1.2
    inlcude modified FunKiiU until I refactor it later

    4-19-17 v1.1
    fix imports for FunKiiU

    4-19-17 v1.0
    initial release

    screen1.png screen2.png settings.png
     
    Last edited by pyrofool, May 2, 2017
  2. an07her

    an07her GBAtemp Regular

    Member
    105
    15
    Apr 9, 2014
    Looks great. Thank you for developing this. It will be useful.:grog:
    P.S. What does "patch demos" and "patch DLC" do?
     
    Last edited by an07her, Apr 20, 2017
  3. pyrofool
    OP

    pyrofool Member

    Newcomer
    27
    15
    Apr 29, 2012
    United States
    Patch DLC patches DLC to unlock all content and patch Demos patches the play time limit. I'll update the GUI with better descriptions.
     
    an07her likes this.
  4. pelago

    pelago Member

    Member
    964
    46
    Feb 20, 2006
  5. pyrofool
    OP

    pyrofool Member

    Newcomer
    27
    15
    Apr 29, 2012
    United States
    Yep. There were a couple things I wanted to change and decided to write my own. Mainly multiple downloads at once and having a listbox with search.
     
    pelago likes this.
  6. dojafoja

    dojafoja life elevated

    Member
    454
    298
    Jan 2, 2014
    Always good to see more varieties. You've added some nice features in there. I honestly lost interest in my FunKii-UI project. With limited time on my hands, I would try and implement so many features at once and things tend to get sloppy fast when I do that. Right now I have zero time to fix some of the issues so this is definitely a good thing that you've decided to write this. Also, thanks for writing it in Python. Someone else wrote a gui for FunKiiU in .NET and no disrespect but I felt like a Python tool deserved a Python GUI just to keep everything cross platform and maintain that essence of Python. Good work!
     
    pelago likes this.
  7. pyrofool
    OP

    pyrofool Member

    Newcomer
    27
    15
    Apr 29, 2012
    United States
    Thanks! I know what you mean about starting to get sloppy. I would like to go back and clean some things up later. I also want to update FunKiiU to make it more like a standalone library to make it easier to integrate.
     
  8. dojafoja

    dojafoja life elevated

    Member
    454
    298
    Jan 2, 2014
    I also had plans for better integrating FunKiiU and have actually made decent progress but I lost interest and haven't pushed any of my working copies to github. Even simple changes like having process_title_id() return True on successful downloads instead of implicitly returning None. I also had it reporting download progress to the GUI. I tried implementing multi threaded downloading but I got in over my head with that one lol. Either way thanks for contributing.
     
    pelago likes this.
  9. pelago

    pelago Member

    Member
    964
    46
    Feb 20, 2006
    I totally understand about the problems of having enough time, and/or losing interest. It would be really great if you could push your FunKiiU changes, even if in half-completed state, for someone else (maybe the OP) to work on. I really think it's good to have an open-source and cross-platform alternative to things with Wii U USB Helper, good as it is, and tighter integration between a GUI and the command-line app would be part of this.
     
    Last edited by pelago, Apr 20, 2017
  10. an07her

    an07her GBAtemp Regular

    Member
    105
    15
    Apr 9, 2014
    Queue doesn't work for me. They just stay queued.
     
  11. pyrofool
    OP

    pyrofool Member

    Newcomer
    27
    15
    Apr 29, 2012
    United States
    Is that with the newest version that has the binaries? I did notice an issue with the multiple downloads after I put the release up. Maybe try the previous version. I won't be able to check it out until after next week.
     
  12. an07her

    an07her GBAtemp Regular

    Member
    105
    15
    Apr 9, 2014
    No, it's the 1.2 python version. I'm gonna try the 1.2.1.

    P.S. Still the same.

    Code:
    Unhandled exception in thread started by <function download_games at 0x00000000037D03C8>
    Traceback (most recent call last):
      File "downloader.py", line 27, in download_games
        download.start()
      File "downloader.py", line 66, in start
        log("downloading:" + self.game.listname)
      File "logger.py", line 8, in log
        print(time.strftime("%I:%M:%S") + ": " + msg)
      File "C:\Python27\lib\encodings\cp866.py", line 12, in encode
        return codecs.charmap_encode(input,errors,encoding_map)
    UnicodeEncodeError: 'charmap' codec can't encode character u'\u2122' in position 36: character maps to <undefined>
    -----
    Unhandled exception in thread started by <function download_games at 0x00000000035C03C8>
    Traceback (most recent call last):
      File "downloader.py", line 27, in download_games
        download.start()
      File "downloader.py", line 66, in start
        log("downloading:" + self.game.listname)
      File "logger.py", line 8, in log
        print(time.strftime("%I:%M:%S") + ": " + msg)
      File "C:\Python27\lib\encodings\cp866.py", line 12, in encode
        return codecs.charmap_encode(input,errors,encoding_map)
    UnicodeEncodeError: 'charmap' codec can't encode character u'\u2122' in position 42: character maps to <undefined>
    I think this happens on games with : and TM characters.
     
    Last edited by an07her, Apr 27, 2017
  13. pyrofool
    OP

    pyrofool Member

    Newcomer
    27
    15
    Apr 29, 2012
    United States
    Thanks. I had some issues with Unicode that I kind of just worked around and it looks like it doesn't work everywhere. I'll have to figure out the right way to do it. I also reverted the threaded download code. I rewrote it last minute before ver 1.0 and I guess I didn't test it enough. I'll be working on the Unicode stuff this weekend.
     
    pelago likes this.
  14. dojafoja

    dojafoja life elevated

    Member
    454
    298
    Jan 2, 2014
    You can check out my latest pull request in the official FunKiiU github here https://github.com/llakssz/FunKiiU/pull/31 to get an idea on how I modified log() to handle all the Unicode errors. It works in all my testing on python 2 and python3
     
    pelago likes this.
  15. pyrofool
    OP

    pyrofool Member

    Newcomer
    27
    15
    Apr 29, 2012
    United States
    Awesome. Thanks. I updated the logger. I also set it to default utf-8 if the system encoding was not set which was the case when running with the binary made with pyinstaller.

    @an07her When you get a chance, download a zip of the master branch and see if it fixes your issue.

    edit - ver 1.3 should have the fix plus some extras in it.
     
    Last edited by pyrofool, Apr 30, 2017
    dojafoja likes this.