windows
zip: https://github.com/hydrusnetwork/hydrus/releases/download/v303/Hydrus.Network.303.-.Windows.-.Extract.only.zip
exe: https://github.com/hydrusnetwork/hydrus/releases/download/v303/Hydrus.Network.303.-.Windows.-.Installer.exe
os x
app: https://github.com/hydrusnetwork/hydrus/releases/download/v303/Hydrus.Network.303.-.OS.X.-.App.dmg
tar.gz: https://github.com/hydrusnetwork/hydrus/releases/download/v303/Hydrus.Network.303.-.OS.X.-.Extract.only.tar.gz
linux
tar.gz: https://github.com/hydrusnetwork/hydrus/releases/download/v303/Hydrus.Network.303.-.Linux.-.Executable.tar.gz
source
tar.gz: https://github.com/hydrusnetwork/hydrus/archive/v303.tar.gz
I had a great week mostly working on downloader code. There are some new options for gallery downloaders and subscriptions, and some downloader stuff for advanced users to play with as well.
downloader improvements
I have updated a great deal of the old downloader's behind-the-scenes to the new system. The way the client's various downloader objects handle pre-import status testing and tag application and many other things are now simpler, cleaner, and more unified.
As is often the case in this sort of stuff, you will likely not notice much difference beyond some small bug fixes, but I made great progress on the gallery overhaul this week, and I feel good about the coming weeks.
I also made subscription merging and separation much more powerful–you can now just separate some subscriptions from a large merged sub, and you can also extract them as a single new merged sub. Handling names for the results is also much better throughout.
You can now also alter the amount of time the client waits in between individual gallery page fetches. This used to be a static 5s, but you can now edit it under options->downloading. The new defaults are 5s for subscriptions and 15s for regular gallery downloads. The feedback during the gallery parsing stage is also improved–it'll count down this new flexible delay, and there should be some better error reporting and faster responsivity when you click.
The 'raw urls' downloader is now just called the 'urls' downloader. I expect to give this downloader a lot more to do in the coming weeks.
misc
You can now set the rough maximum width of the popup messages, in character widths, under options->gui. The default is 56, but if you have large or small font, please change it and let me know how this works for you, particularly if you have had problems with popup layout in the past.
I gave the 'export files' frame another pass, brushing up its code and how it generates paths. If you are a Linux user who has had crashes trying to open this frame, please give it another go and let me know what happens.
advanced downloader improvements
Advanced users who want to write parsers for the new download system only!
I have written some basic parts of the new gallery downloader. It isn't completely ready yet, but if you want to play with it, please do and let me know how you get on.
You can now link 'post urls' to parsers! If one is linked, the client will accept it as a drag-and-dropped URL and will open a 'urls' downloader and queue it up and parse it (including tags and urls) all in the new system. The urls downloader accepts these parse-linkable URLs in its standard text/paste button input as well. There's a new system for setting 'tag import options' (based on url class) for the new engine under the network menu that I will eventually migrate all the old options to, as well.
I was pretty amazed that this came together this week. We'll need to figure out a bunch of page parsers as new defaults, but I think we should have easy drag-and-drop url support within a week or two.
There's also some new super-barebones 'what's in the network engine right now?' ui under network->review network jobs.
full list
- file post url classes can now be linked to parsers!
- the 'raw url' downloader is now just the 'url' downloader. if a dropped url is matched as a 'file post' url and links to a parser, it will download it with that parser and default tag import options
- url drag and drop now recognises file post urls that have linked parsers and will send them on to a url import page, just like 'raw' urls! they will use the new parsing system to parse tags and known urls and all that
- wrote a way for the new download system to store and edit default tag import options–this can now be found under network->manage default tag import options, although it does not do much yet. eventually the old options will be transferred here, and the different downloaders will consult it more
- refactored and cleaned up how some default tag import option calculation is done
- the fixed 5 second wait time between gallery page fetches is now editable for downloader pages and subscriptions under options->downloading. subscriptions default remains 5s, gallery default is now 15s
- the gallery downloader will present its 'x urls found so far' string in a more uniform and reactive way. it will also count down until the next page fetch
- subscriptions will now similarly react quicker while the gallery parse step is ongoing, and it will count down to the next page fetch
- the manage subscriptions dialog will now note in BIG RED TEXT if subscriptions are currently globally paused
- subscriptions now consume less parallel-timeslot overhead, meaning they sync much faster when they have no work to do (which is most of the time)
- separating subscriptions is now more sophisticated–if you wish, you can now choose just to separate a subset of the large subs's queries, and if you do so, you can decide whether to merge the extracted subs into a new larger sub or just have them as individuals. also, you will be asked for name/base_name for what to name the new subs
- since separating subs is more complicated, the button is only enabled when a single large sub is selected. please do your separating one sub at a time!
- merging subs will now ask if you want to rename the merged subs as it goes
- refactored a giant heap of duplicate import code into single locations in the new file import object–things like applying tags and generating pre-import status are all now done in one place. a number of weird behaviours (like not applying known url associations in certain circumstances) should now be a lot better and unified
- the way the db and other import testers handle whether a pending import is new or unknown is simplified
- optimised the way the importers figure out whether to display a new import
- the 'has the client seen this url before?' test used to figure out whether to download a file now explicitly ignores anything it isn't certain is a single-file File URL or Post URL (according to current url classes). associating 'gallery' known urls is no longer catastrophic to this system
- the simple downloader now associates the entered url with the files subsequently imported
- file import objects working in the new parsing system are aware of the new 'should this url be associated' option and will be given gallery urls to hold on to as appropriate
- url classes now have an explicit option as to whether they should be associated with files imported from them, which is not appropriate for dynamic CDN File URLs but is appropriate for multi-image tweet links (which will likely be Gallery URLs in the new system), for instance
- general importer code cleanup across the board
- threw together some early ui to show current jobs in the network engine under network->review network jobs
- popup messages will now try to set a max width of roughly 56 characters wide rather than 400 pixels. this value is editable under options->gui
- updated the listctrl in the export files frame and the way this frame generates and stores export filenames. let's see if linux users who had crashes with this have better luck
- refactored stuff out of the bloated ClientImporting file into seperate new files
- refactored client network bandwidth and session code out to their own files as well
- refactored client network objects to its own file
- cleaned up some open externally debug code linked to callto report mode
- a common grid layout used across the program will copy control tooltips to the string on the left
- removed the 'downloader' network context type, which was never fully introduced and wasn't turning out to offer much in the new bandwidth tracking system
next week
I want to keep going on this downloader work and get this week's advanced stuff ironed out and working by default.
I was crushed for time this week and couldn't get to some smaller issues, so I will put some time aside and make sure I catch up on those as well.