[ home / board list / faq / random / create / bans / search / manage / irc ] [ ]

/hydrus/ - Hydrus Network

Bug reports, feature requests, and other discussion for the hydrus network.

Catalog

8chan Bitcoin address: 1NpQaXqmCBji6gfX8UgaQEmEstvVY7U32C
The next generation of Infinity is here (discussion) (contribute)
Name
Email
Subject
Comment *
File
* = required field[▶ Show post options & limits]
Confused? See the FAQ.
Embed
(replaces files and can be used instead)
Options
Password (For file and post deletion.)

Allowed file types:jpg, jpeg, gif, png, webm, mp4, swf, pdf
Max filesize is 8 MB.
Max image dimensions are 10000 x 10000.
You may upload 1 per post.


New user? Start here ---> http://hydrusnetwork.github.io/hydrus/

YouTube embed. Click thumbnail to play.

 No.875

win32

zip: https://github.com/hydrusnetwork/hydrus/releases/download/v162/Hydrus.Network.162.-.Win32.-.Extract.only.zip

exe: https://github.com/hydrusnetwork/hydrus/releases/download/v162/Hydrus.Network.162.-.Win32.-.Installer.exe

os x

app: https://github.com/hydrusnetwork/hydrus/releases/download/v162/Hydrus.Network.162.-.OS.X.-.App.dmg

tar.gz: https://github.com/hydrusnetwork/hydrus/releases/download/v162/Hydrus.Network.162.-.OS.X.-.Extract.only.tar.gz

linux

tar.gz: https://github.com/hydrusnetwork/hydrus/releases/download/v162/Hydrus.Network.162.-.Linux.-.Executable.tar.gz

source

tar.gz: https://github.com/hydrusnetwork/hydrus/archive/v162.tar.gz

I had a pretty good week with some disappointing hurdles. In preparation for many future improvements, I rewrote some critical behind the scenes code, and several things you never see now work a lot better. Unfortunately, my changes meant several unexpected things had to be changed, and I was forced to delete some obselete data and also force people to update if they want to keep connecting to my server.

management panels

I have improved how the panel on the left, where you usually put in your search terms, works. It can collapse into a piece of data that stores in the database in a faster and better way, meaning that gui sessions now support all types of page, and they also remember some subtle things like the file and tag services you were searching with and include current/pending status.

With the new system, it will be easy to add new things to remember, like sort and collect status, and exact thumbnail order and selection status. I want sessions to eventually be perfect replicas, including remembering url queues and queue position for download pages. I plan to add these things in the coming months.

Unfortunately, all existing gui sessions will be deleted on the update to v162. The change involves nested serialisation, and I just didn't have the time to write a proper converter from the old system to the new, especially with how bad the old system (which is now deleted) was. The session deletions include the 'last session', if you use that. When you start v162, you will get a single blank page, and an empty list of gui sessions. So, if you want to recreate your sessions, make a list of them and their open pages and their predicates before you update. If you have some thumbnails that cannot be recreated with predicates, like some sitting in an import page, assign those thumbnails a temporary local tag before you update, and then search for that local tag after you update to get them back.

The big rewrite included changing the predicate object, which also affects export folders, which meant I had to update them as well. All existing export folders will be deleted on the update to v162. Do the same thing as for sessions–make a note of all your export folders before you update, and then recreate them afterwards. They work a bit better now, remembering include current and pending and so on just like session pages. Since they are moved to the new system, I will be able to improve them much easier from now on.

Please let me know if you discover a certain predicate or any other search state that will not save to a session. For instance, at one point in testing today, I thought everything was fine and then discovered that ratings and file service predicates were not working, so I had to go back and fix them.

network version increment

While doing this work, I discovered a small flaw in how I was bundling my new network update objects. It wasn't an error, but it was slightly inefficient in speed and bandwidth and quite a bit ugly, and would make analysing serialised objects for problems an additional pain. Since I want to eventually convert everything in the network to my new speedy protocol, and much of the work I have done for management panels uses some of this code, I realised that if I ever wanted to correct the flaw, I would have to do it this week, before I start rolling everything out. This is like getting the foundation of a building level–best done before you have many stories built.

As a result, updating the client or the server this week will take a couple of minutes as some cached data is reformatted to the better protocol.

And because the network protocol has changed, I had to increment the network version, which means that v161 and previous clients will not be able to talk to v162 servers and vice versa. I prefer to give at least a week's warning whenever I do this, but I was forced to make the decision yesterday morning as I saw how very much more difficult it would be to do in any subsequent week. So, if you have a v161 client and connect to my server, you will get a few odd popup errors until you update to v162. If you do not connect to any servers, or if you only connect to servers that you know will stay at v161, then you can update whenever you want.

The pretty 'you are using the wrong version of hydrus for this server' popup message doesn't seem to be working, so I will look into that.

full list

- on update, all previous gui sessions are deleted!

- on update, all export folders are deleted!

- made an important efficiency improvement to the new serialisation protocol–network version is incremented as a result

- finished extracting management data from management panel

- management data is wrapped in management controller, a new JSONable class

- pages collapsed to a single class

- page and management panel instantiation completely rewritten for the new system

- created new JSONable guisession class for better session management

- db is updated to store all this stuff in JSON rather than YAML

- session loading is much less bloaty for clients with many sessions

- all page types are now serialisable and hence addable to a session

- moved predicates to JSON

- moved filesearchcontext to JSON

- autocomplete dropdowns now remember their tag service, include current, include pending and synchronised status over sessions

- export folders now remember their file and tag services, and also include current and pending status

- some general improvements to export folder code

- cleanup of export folder dialog code

- added a test for export folders

- some general refactoring

- some general cleaning

- significant refactoring of predicate variables

- fixed a bug in multi-version update from before v154

- if you do not have any ratings services, the 'manage->tags/ratings' submenu will now just be 'manage tags'

- changed some thumbnail menu entries to say 'selected files' instead of 'all files', which is more accurate, see if you like it

next week

I spent almost all this week on the rewrite, so I didn't have time to get to some important bugs people have reported. I will work on those, and any problems that may appear from all the changes this week, and then have a look at pixiv and ugoira.

 No.888

I'm getting something like this at random intervals:

TypeError: <include.ClientData.Booru object at 0x0D0DA150> is not JSON serializable

Database Error!

<include.ClientData.Booru object at 0x0D0DA150> is not JSON serializable

Unknown Caller, probably GUI.

Traceback (most recent call last):


File "C:\code\Hydrus\build\client\out00-PYZ.pyz\include.HydrusDB", line 172, in _ProcessJob


File "C:\code\Hydrus\build\client\out00-PYZ.pyz\include.ClientDB", line 6007, in _Write


File "C:\code\Hydrus\build\client\out00-PYZ.pyz\include.ClientDB", line 4698, in _SetJSONDump


File "C:\code\Hydrus\build\client\out00-PYZ.pyz\json", line 243, in dumps


File "C:\code\Hydrus\build\client\out00-PYZ.pyz\json.encoder", line 207, in encode


File "C:\code\Hydrus\build\client\out00-PYZ.pyz\json.encoder", line 270, in iterencode


File "C:\code\Hydrus\build\client\out00-PYZ.pyz\json.encoder", line 184, in default


 No.901

File: 1435790556399.jpg (1.8 MB, 1734x2262, 289:377, cafc24ae45fde89116c48e5be0….jpg)

>>888

Thank you for this–I think I know what it is. I suspect that booru download pages are not saving to gui sessions correctly. You can stop the errors appearing by closing all booru download pages. I will make sure it is fixed for next week.




[Return][Go to top][Catalog][Post a Reply]
Delete Post [ ]
[]
[ home / board list / faq / random / create / bans / search / manage / irc ] [ ]