BASC-Archiver
BASC-Archiver copied to clipboard
Get a GUI!
Another thing suggested by @antonizoon is getting a GUI up and running.
I've never done any GUI work on Python myself but I'll have a look and a play with my notepad, see if I can come up with anything nice there. The ChanThreadWatch interface is well-done, as an example.
The ChanThreadWatch interface is well-done, as an example.
Agreed ... but really flesh out features and get everything rock solid before attempting a GUI, I for the record was glad to see you release this and have a more featured CLI option and wont be going back to GUI.
Yep, exactly my thoughts. The primary advantage of a GUI I can see is, for instance, letting home users can add threads while the program is running without a restart, but I'm gonna make sure everything stays rock solid when we start working on a GUI.
Remember, these are just interfaces. The backend, BASC-Archiver, is totally separate from the frontend, the interface just makes the function calls and won't take up too much effort.
And don't worry, the CLI interface will never be abandoned (for one, neither of us have much experience building desktop GUIs...).
Whether CLI or GUI, it's just different faces and interpretations of the same great API. We're just giving the user more options, so they can choose what works for them.
My current idea is to merge The Chandler in as an interface, since it shows downloaded threads quite elegantly and is a very light codebase. A great place to start.
I'll start having a look at The Chandler when I get time, see how well the GUI way of doing things meshes with the library. We'll likely just have two 'scripts' in the base dir, thread-archiver and thread-archiver-gui, since the way that CLI scripts and GUI programs load and implement their event loops is usually completely different, but I'll play some more with PyQt and all that fun GUI stuff.
I'm working on a gui in the gui
branch. Using PySide because PyQt has bad licensing (using PyQt itself means we'd need to relicense as GPL-only). The good thing about doing it this way is that it's controlled by Qt's .ui files, so we can just use Qt Designer to make interfaces with it.
I'll go through and experiment with it, see how it goes and see what sort of problems I run into with BASC-Archiver that need solving (multi-threaded concerns, etc).
Example image, very, VERY initial interface:
Just as a status report, I've been plugging the GUI into the new multi-threaded architecture. The GUI starts up, can download threads, and posts the status (counting down, downloading thread html/images/thumbnails, 404'd, etc) properly. However, there are lots of fun things I still need to do, options handling, several more messages, right-clicking and forcing certain statuses (stop/start/setting of download times), etc.
Hopefully most of those should be a decent way done in the next few days.