The first version of this release had no files as Github's file upload system wasn't working right and I released on Mediafire. It is now working again, and I have added the files.
- important:
- hydrus now runs completely and exclusively on python 3!
- for users who are updating, the client has special install instructions for just this week:
- if you are a windows or linux user who extracts to install, you will have to delete your old install's files (but keep your db folder!!!) before installing/extracting the new version so there are no 2/3 dll/so conflicts (don't delete your db folder!)
- if you use the windows installer to install, this v335 installer will do the clean install for you! there is absolutely no way this could go wrong, so no need to make a backup beforehand :^)
- if you are an os x user, I am now only releasing the client in the app. furthermore, the default app db location is now ~/Library/Hydrus (i.e. /Users/[you]/Library/Hydrus). you will have to move your existing db to this location to update, and thereafter you'll just be replacing the app in Applications!
- if you try to boot a non-clean mixed 2/3 install, the client will try to recognise that and give an error and dump out
- please check the release post for more detailed instructions here
- .
- semi-important:
- the db password feature may be one-time broken for unusual keyboard languages, so failures this version will be forgiven with an appropriate error message explaining the situation. feedback from чики брики lads appreciated
- I may have fixed the issue some linux/os x users were having launching external programs, including OS ffmpeg (it was a child process environment issue related to pyinstaller)
- although I did most of my devving here on py 3.6, the client seems to run ok on 3.5. I doubt 3.4 will do it, if you mean to run from source
- I moved from the old pycrypto to the new pycryptodome, so users who run from source will want to get this. I also dropped some libraries
- .
- misc bug fixes:
- fixed the 'load one of the default options' button on manage tag import options when a set of default options is orphaned by a deleted url class
- removed some popup flicker related to long error messages
- fixed some parsing testing ui error handling
- cleared up some bad text ctrl event handling that could sometimes cause a recursive loop
- listctrls should now sort text that includes numbers in the human-friendly 2 < 10 fashion
- cleaned up some bad external process calling code and improved how child process environment is set up
- finally figured out the basic problem of a long-time nested dialog event handling error that could sometimes freeze the ui. I may have fixed it in one case and will keep working on this
- .
- boring details:
- ran 2to3 to auto-convert what could be done
- updated environment to python 3
- went over a whole ton of unicode encoding/decoding manually to update it to python 3
- removed all the old tobytestring/tounicode calls in favour of new python 3 handling
- fixed all the file io to do bytes/str as appropriate
- corrected a bunch of / vs // int/float stuff
- fixed up twisted, which has some str/bytes stuff going on
- fixed all the listctrls to deal with column sorting None values amongst ints/strs
- fixed png export/import, which had some fun bytes/bytearray/int/str issues
- updated the swf header parsing code to py3 (more str/bytes stuff)
- misc float/int fixes
- fixed up some http.cookies handling, which has changed in py3
- improved some ancient loopback connection code that was only really checking to see if ports were in use
- cleaned up a bunch of now-invalid parameter tuples that 2to3 helpfully marked
- numerous misc other refactoring and so on
- updated the new network engine to now decode non-utf-8 responses correctly based on actual response header
- removed some old py2 manual http multipart code
- removed the old py2 'matroska or webm' parsing py, replacing it with some direct ffmpeg format inspection
- replaced all % formatting with the new .format system. I will slowly move to this rather than the current endless concatenation mess
- deleted some more misc old code
- tightened up some spammy network error reporting
- converted all /r/n to /n in my environment project, ha ha ha
- the ui seems to better support rarer unicode characters like 🔊
- updated some of the install/update/backup help for all this, and some misc other stuff as well
- fixed misc bugs