Hacking [Release] GUI for FunKiiU

  • Thread starter Thread starter pyrofool
  • Start date Start date
  • Views Views 9,475
  • Replies Replies 14
  • Likes Likes 4

pyrofool

Active Member
Newcomer
Joined
Apr 29, 2012
Messages
32
Reaction score
16
Trophies
1
XP
1,325
Country
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,
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,
Looks great. Thank you for developing this. It will be useful.:grog:
P.S. What does "patch demos" and "patch DLC" do?

Patch DLC patches DLC to unlock all content and patch Demos patches the play time limit. I'll update the GUI with better descriptions.
 
  • Like
Reactions: an07her
  • Like
Reactions: pelago
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.
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!
 
  • Like
Reactions: pelago
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!

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.
 
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.
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.
 
  • Like
Reactions: pelago
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.
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,
Queue doesn't work for me. They just stay queued.

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.
 
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,
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.

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.
 
  • Like
Reactions: pelago
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.
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
 
  • Like
Reactions: pelago
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

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,
  • Like
Reactions: dojafoja

Site & Scene News

Popular threads in this forum