[ / / / / / / / / / / / / / ] [ dir / fur / general / htg / newbrit / startrek / stol / strek / ttgg ]

/hydrus/ - Hydrus Network

Bug reports, feature requests, and other discussion for the hydrus network.
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 16 MB.
Max image dimensions are 15000 x 15000.
You may upload 5 per post.


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

Current to-do list has: 1,136 items

Current big job: writing login manager and flushing out domain manager


YouTube embed. Click thumbnail to play.

00c76b No.6941

windows

zip: https://github.com/hydrusnetwork/hydrus/releases/download/v277/Hydrus.Network.277.-.Windows.-.Extract.only.zip

exe: https://github.com/hydrusnetwork/hydrus/releases/download/v277/Hydrus.Network.277.-.Windows.-.Installer.exe

os x

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

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

linux

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

source

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

I had an ok week. There are some small, mostly ui improvements and the first step of the new domain system is ready. Sankaku seems to work again!

domain manager and sankaku

The way the hydrus client adds metadata to its internet requests is now handled in a much more flexible way. It can now give different 'header' information to different locations and can be completely user-customised. If you are interested and expert enough to know what an 'http header' is, please check the extremely barebone first start at services->manage network rules.

When you update, this new system will default with a new 'User-Agent' for the sankakucomplex.com domain that so far seems to make the downloader work again! On your first attempt to download anything from sankaku, you will get a new Yes/No popup message verifying that this new rule is ok to be applied, and then everything should work again.

A user informed me that sankaku prefer to not have more than 100 requests per 7 minutes. Since we now have a neat bandwidth engine to handle this stuff, I have also set the update to add some appropriately padded rules (80rq per 7 minutes and 1rq per 4 seconds) for the domain. Unless you for certain know that your situation is different, I suggest you not edit these specific sankaku rules. The sankaku downloader thus runs slower than usual, so please expect to leave it to run it in the background.

Although new users will have both Sankaku Channel and Idol in their booru lists, existing users may not. If you are missing them but would like to try either out, please check out the user-run wiki here:

https://github.com/CuddleBear92/Hydrus-Presets-and-Scripts

The big table of currently supported booru parsers is here:

https://github.com/CuddleBear92/Hydrus-Presets-and-Scripts/wiki/0--Supported-websites

Do read the wiki more in-depth if you like, but the quick explanation is to download the linked .yaml files and then drag-and-drop them onto the services->manage boorus dialog. Here are the direct sankaku links:

https://raw.githubusercontent.com/CuddleBear92/Hydrus-Presets-and-Scripts/master/Downloader%20Presets/NSFW/sankaku%20chan%20(NSFW).yaml

https://raw.githubusercontent.com/CuddleBear92/Hydrus-Presets-and-Scripts/master/Downloader%20Presets/NSFW/idol%20complex%20(NSFW).yaml

I expect to expand all these systems in the future. The domain stuff will be rolled into the larger import/export improvements as well, so users who create downloaders that need certain headers will be able to just bundle it together as one import png. (Here the 'does this header look legit Y/N?' popups will come into larger play, as well.)

full list

- expanded the domain manager into a legit serialisable object that holds data and saves itself on changes. to begin with, it supports custom http headers for particular on network contexts

- the global User-Agent (which now defaults to 'hydrus client') is set through this new manager, as attached to the 'global' network context

- wrote a basic panel to edit custom http headers under services->manage network rules (this panel will be fleshed out with more in future–please ignore if you are not an advanced user)

- wrote a panel to edit an individual custom http header

- wrote a panel to edit/select network contexts. this will get a bunch more use elsewhere as the overhaul continues

- flushed out and tested the new popup yes/no button system

- sanakucomplex.com has a User-Agent entry in the new custom header system–on the first sank request, you will be presented with a yes/no popup asking if it is ok to use.

- if you ok the user-agent, sankaku now seems to work again!

- sankakucomplex.com network context will get some specific conservative bandwidth rules (80 rqs per 7m, 1 rq per 4s) on update

- added an option to options->gui to reverse the page tab shift behaviour

- 'don't scroll down on key navigation event if thumb is at least this % visible' value is now 75%. it is also editable under options->gui

- the hydrus icon used on frames is now the non-transparent version that shows up better on dark backgrounds

- the standard hydrus.ico used in web favicons and the executable builds is now also non-transparent (this should also propagate up to OS shortcuts and taskbar icons wherever the frame icon is not inherited)

- file export drag and drop events will now defocus the currently focused media on successful drop (e.g. if you drag a video to an external media player, it will stop rendering clientside), just like for open externally

- database analyze maintenance should be more reliable with respect to fresh repository syncs

- reduced default impermanent session timeout in new networking engine to 60m (should fix/reduce some hentai foundry 503s)

- misc ui improvements and speedup

- misc fixes

next week

I am still on-and-off ill atm. Some days I feel great and am out exercising like normal, but others I am barely dragging myself out of bed and then have to crash out early. Other people I know who had this took two-three weeks to get over it, and I am just about finishing week two now, so things should be looking up soon.

I am nonetheless pleased with the progress on the User-Agent stuff this week, and now that I have a simple domain manager object in place, I'm better able to fit smaller improvements in in a single week. I will now try to do the same thing for the login engine–getting a barebones system out so I can iterate on it.

d069c5 No.6943

File: 2f590d1d7249fd8⋯.png (616.89 KB, 1920x1080, 16:9, FRZ_100K_10.png)

> - 'don't scroll down on key navigation event if thumb is at least this % visible' value is now 75%. it is also editable under options->gui

Thank you Dev!

I noticed that the to-do list has grown again, can we see what is in it?


882097 No.6946

>>6941

>>6943

>I noticed that the to-do list has grown again, can we see what is in it?

>I noticed that the to-do list has grown again, can we see what is in it?

Ill second that, would be nice to see what's on the list.


c3e38b No.6947

Sweet! Time to raid Artefact's server again.


208eda No.6952

Awesome that you got sankaku working again! :)

Is it possible to strip specific tags when importing files (either via import or download page)?

E.g., I don't really need my files tagged with things like "highres" or "absurdres" and would like to auto-remove those on import.

I tried to do it via tag siblings, but it doesn't seem like you can replace tags with "nothing".

I know you can mass-remove tags from existing files, but that means we need to run that operation manually every time new files are added or new tags are fetched for existing files.

Thanks!


d347b4 No.6953

>>6952

Tag censorship.

I tried having Sankaku without bandwidth limits and I did get a good few hundred downloads in at max speed, before got any errors, but they did eventually pop up. So at least for me some limits are required. Hopefully I'm not banned or anything…


208eda No.6954

>>6953

Thanks, I thought this would not apply when exporting files, so I didn't try it before. Seems to work fine.


208eda No.6955

>>6953

Huh, I have to correct my last statement, it doesn't seem to apply to exports.

>>6941

Any chance you might add an auto-remover for tags like I described >>6952 that also works when exporting (so it doesn't just hide the tags in hydrus, it actually removes them or strips them when exporting media with tags?


7eef45 No.6956

When dragging a thumbnail to Firefox, upon dropping it in Firefox, the image disappears from the preview window in hydrus.


5937e3 No.6960

sankaku only allows non-members to search with two tags at once, which is some hot-garbage bullshit. buullllllshit

anyways, is there a way we can have the hydrus downloader be logged in on sankaku to get around this?


c3e38b No.6962

>>6960

He's working on revamping the downloader engine, which will include a log-in feature. Be patient anon.


52fa2d No.6964

File: c02d33d3d666f86⋯.jpg (5.98 KB, 213x237, 71:79, 1506312200706.jpg)

File: 10e764c23a90047⋯.png (353.61 KB, 515x767, 515:767, file_2.png)

File: 2028328a1d00055⋯.png (376.59 KB, 720x707, 720:707, file_3.png)

Is there any way for me to make it so that, while in tag management, hitting esc applies and closes instead of cancels and closes, or is there another quick way to do this? I'm migrating into hydrus and I have to tag a lot of files and I'd like to do so as fast as possible without taking my hands off the keyboard.

With that in mind, can I make a shortcut for switching between tag sources (local, ptr, etc.) while in the tag manager?

Thanks as always hydrus.


882097 No.6970

welp had a power out, and my nvme didn't like it.

its been about 6 days, there were no massive issues till now so thought shit was done.

so when grabbing all the files off desu archive because the person in charge came back, 1 file was given hydrus a hard time, so I restarted the client thinking it was a glitch that would solve itself with a reboot…

got errors that caused half the tabs I had open to not work. so I run the chkdks, and there are some issues

restart with /f and reboot…

now the client while not tossing

database image is malformed

anymore, is not tossing 122+ errors like thi

~~~~~~~~

DBException

OperationalError: no such table: external_caches.specific_current_mappings_cache_1_3

Traceback (most recent call last):

File "include\HydrusThreading.py", line 230, in run

callable( *args, **kwargs )

File "include\ClientGUIPages.py", line 698, in THREADLoadInitialMediaResults

more_media_results = self._controller.Read( 'media_results', group_of_initial_hashes )

File "include\HydrusController.py", line 363, in Read

return self._Read( action, *args, **kwargs )

File "include\HydrusController.py", line 120, in _Read

result = self.db.Read( action, HC.HIGH_PRIORITY, *args, **kwargs )

File "include\HydrusDB.py", line 845, in Read

return job.GetResult()

File "include\HydrusData.py", line 1768, in GetResult

raise e

DBException: OperationalError: no such table: external_caches.specific_current_mappings_cache_1_3

Database Traceback (most recent call last):

File "include\HydrusDB.py", line 522, in _ProcessJob

result = self._Read( action, *args, **kwargs )

File "include\ClientDB.py", line 7902, in _Read

elif action == 'media_results': result = self._GetMediaResultsFromHashes( *args, **kwargs )

File "include\ClientDB.py", line 5164, in _GetMediaResultsFromHashes

return self._GetMediaResults( query_hash_ids )

File "include\ClientDB.py", line 5073, in _GetMediaResults

tag_data.extend( ( hash_id, ( tag_service_id, HC.CONTENT_STATUS_CURRENT, tag_id ) ) for ( hash_id, tag_id ) in self._SelectFromList( 'SELECT hash_id, tag_id FROM ' + cache_current_mappings_table_name + ' WHERE hash_id IN %s;', hash_ids ) )

File "include\ClientDB.py", line 5073, in <genexpr>

tag_data.extend( ( hash_id, ( tag_service_id, HC.CONTENT_STATUS_CURRENT, tag_id ) ) for ( hash_id, tag_id ) in self._SelectFromList( 'SELECT hash_id, tag_id FROM ' + cache_current_mappings_table_name + ' WHERE hash_id IN %s;', hash_ids ) )

File "include\HydrusDB.py", line 639, in _SelectFromList

for row in self._c.execute( chunk_statement, chunk ):

OperationalError: no such table: external_caches.specific_current_mappings_cache_1_3

Database Traceback (most recent call last):

File "include\HydrusDB.py", line 522, in _ProcessJob

result = self._Read( action, *args, **kwargs )

File "include\ClientDB.py", line 7902, in _Read

elif action == 'media_results': result = self._GetMediaResultsFromHashes( *args, **kwargs )

File "include\ClientDB.py", line 5164, in _GetMediaResultsFromHashes

return self._GetMediaResults( query_hash_ids )

File "include\ClientDB.py", line 5073, in _GetMediaResults

tag_data.extend( ( hash_id, ( tag_service_id, HC.CONTENT_STATUS_CURRENT, tag_id ) ) for ( hash_id, tag_id ) in self._SelectFromList( 'SELECT hash_id, tag_id FROM ' + cache_current_mappings_table_name + ' WHERE hash_id IN %s;', hash_ids ) )

File "include\ClientDB.py", line 5073, in <genexpr>

tag_data.extend( ( hash_id, ( tag_service_id, HC.CONTENT_STATUS_CURRENT, tag_id ) ) for ( hash_id, tag_id ) in self._SelectFromList( 'SELECT hash_id, tag_id FROM ' + cache_current_mappings_table_name + ' WHERE hash_id IN %s;', hash_ids ) )

File "include\HydrusDB.py", line 639, in _SelectFromList

for row in self._c.execute( chunk_statement, chunk ):

OperationalError: no such table: external_caches.specific_current_mappings_cache_1_3

~~~~~~~~


882097 No.6971

>>6970

and

~~~~~~~~

DBException

OperationalError: no such table: external_caches.specific_current_mappings_cache_20_3

Traceback (most recent call last):

File "include\HydrusThreading.py", line 230, in run

callable( *args, **kwargs )

File "include\ClientGUIPages.py", line 698, in THREADLoadInitialMediaResults

more_media_results = self._controller.Read( 'media_results', group_of_initial_hashes )

File "include\HydrusController.py", line 363, in Read

return self._Read( action, *args, **kwargs )

File "include\HydrusController.py", line 120, in _Read

result = self.db.Read( action, HC.HIGH_PRIORITY, *args, **kwargs )

File "include\HydrusDB.py", line 845, in Read

return job.GetResult()

File "include\HydrusData.py", line 1768, in GetResult

raise e

DBException: OperationalError: no such table: external_caches.specific_current_mappings_cache_20_3

Database Traceback (most recent call last):

File "include\HydrusDB.py", line 522, in _ProcessJob

result = self._Read( action, *args, **kwargs )

File "include\ClientDB.py", line 7902, in _Read

elif action == 'media_results': result = self._GetMediaResultsFromHashes( *args, **kwargs )

File "include\ClientDB.py", line 5164, in _GetMediaResultsFromHashes

return self._GetMediaResults( query_hash_ids )

File "include\ClientDB.py", line 5073, in _GetMediaResults

tag_data.extend( ( hash_id, ( tag_service_id, HC.CONTENT_STATUS_CURRENT, tag_id ) ) for ( hash_id, tag_id ) in self._SelectFromList( 'SELECT hash_id, tag_id FROM ' + cache_current_mappings_table_name + ' WHERE hash_id IN %s;', hash_ids ) )

File "include\ClientDB.py", line 5073, in <genexpr>

tag_data.extend( ( hash_id, ( tag_service_id, HC.CONTENT_STATUS_CURRENT, tag_id ) ) for ( hash_id, tag_id ) in self._SelectFromList( 'SELECT hash_id, tag_id FROM ' + cache_current_mappings_table_name + ' WHERE hash_id IN %s;', hash_ids ) )

File "include\HydrusDB.py", line 639, in _SelectFromList

for row in self._c.execute( chunk_statement, chunk ):

OperationalError: no such table: external_caches.specific_current_mappings_cache_20_3

Database Traceback (most recent call last):

File "include\HydrusDB.py", line 522, in _ProcessJob

result = self._Read( action, *args, **kwargs )

File "include\ClientDB.py", line 7902, in _Read

elif action == 'media_results': result = self._GetMediaResultsFromHashes( *args, **kwargs )

File "include\ClientDB.py", line 5164, in _GetMediaResultsFromHashes

return self._GetMediaResults( query_hash_ids )

File "include\ClientDB.py", line 5073, in _GetMediaResults

tag_data.extend( ( hash_id, ( tag_service_id, HC.CONTENT_STATUS_CURRENT, tag_id ) ) for ( hash_id, tag_id ) in self._SelectFromList( 'SELECT hash_id, tag_id FROM ' + cache_current_mappings_table_name + ' WHERE hash_id IN %s;', hash_ids ) )

File "include\ClientDB.py", line 5073, in <genexpr>

tag_data.extend( ( hash_id, ( tag_service_id, HC.CONTENT_STATUS_CURRENT, tag_id ) ) for ( hash_id, tag_id ) in self._SelectFromList( 'SELECT hash_id, tag_id FROM ' + cache_current_mappings_table_name + ' WHERE hash_id IN %s;', hash_ids ) )

File "include\HydrusDB.py", line 639, in _SelectFromList

for row in self._c.execute( chunk_statement, chunk ):

OperationalError: no such table: external_caches.specific_current_mappings_cache_20_3

~~~~~

I have no idea what I need to do to fix this, if it's fixable, there is no backup of the client db, the images are on a separate hdd so in a worst case of needing to re import, it would be a time consuming relatively non issue, however I would like to keep little work I put into sorting the db if that's possible.


52fa2d No.6972

>>6964

I figured out that esc has different functionality in the tag manager depending on where you launched it, if you launch it from a thumbnail it will cancel, if you launch it from the media viewer it will apply and close.

I'd still like the latter functionality in the former menu though if possible.


7dba1c No.6974

>>6970

>>6971

may want to repost that with code tags so it's easier to read [.code] [/.code] minus the dots


882097 No.6977

DBException
OperationalError: no such table: external_caches.specific_current_mappings_cache_20_3
Traceback (most recent call last):
File "include\HydrusThreading.py", line 230, in run
callable( *args, **kwargs )
File "include\ClientGUIPages.py", line 698, in THREADLoadInitialMediaResults
more_media_results = self._controller.Read( 'media_results', group_of_initial_hashes )
File "include\HydrusController.py", line 363, in Read
return self._Read( action, *args, **kwargs )
File "include\HydrusController.py", line 120, in _Read
result = self.db.Read( action, HC.HIGH_PRIORITY, *args, **kwargs )
File "include\HydrusDB.py", line 845, in Read
return job.GetResult()
File "include\HydrusData.py", line 1768, in GetResult
raise e
DBException: OperationalError: no such table: external_caches.specific_current_mappings_cache_20_3
Database Traceback (most recent call last):
File "include\HydrusDB.py", line 522, in _ProcessJob
result = self._Read( action, *args, **kwargs )
File "include\ClientDB.py", line 7902, in _Read
elif action == 'media_results': result = self._GetMediaResultsFromHashes( *args, **kwargs )
File "include\ClientDB.py", line 5164, in _GetMediaResultsFromHashes
return self._GetMediaResults( query_hash_ids )
File "include\ClientDB.py", line 5073, in _GetMediaResults
tag_data.extend( ( hash_id, ( tag_service_id, HC.CONTENT_STATUS_CURRENT, tag_id ) ) for ( hash_id, tag_id ) in self._SelectFromList( 'SELECT hash_id, tag_id FROM ' + cache_current_mappings_table_name + ' WHERE hash_id IN %s;', hash_ids ) )
File "include\ClientDB.py", line 5073, in <genexpr>
tag_data.extend( ( hash_id, ( tag_service_id, HC.CONTENT_STATUS_CURRENT, tag_id ) ) for ( hash_id, tag_id ) in self._SelectFromList( 'SELECT hash_id, tag_id FROM ' + cache_current_mappings_table_name + ' WHERE hash_id IN %s;', hash_ids ) )
File "include\HydrusDB.py", line 639, in _SelectFromList
for row in self._c.execute( chunk_statement, chunk ):
OperationalError: no such table: external_caches.specific_current_mappings_cache_20_3
Database Traceback (most recent call last):
File "include\HydrusDB.py", line 522, in _ProcessJob
result = self._Read( action, *args, **kwargs )
File "include\ClientDB.py", line 7902, in _Read
elif action == 'media_results': result = self._GetMediaResultsFromHashes( *args, **kwargs )
File "include\ClientDB.py", line 5164, in _GetMediaResultsFromHashes
return self._GetMediaResults( query_hash_ids )
File "include\ClientDB.py", line 5073, in _GetMediaResults
tag_data.extend( ( hash_id, ( tag_service_id, HC.CONTENT_STATUS_CURRENT, tag_id ) ) for ( hash_id, tag_id ) in self._SelectFromList( 'SELECT hash_id, tag_id FROM ' + cache_current_mappings_table_name + ' WHERE hash_id IN %s;', hash_ids ) )
File "include\ClientDB.py", line 5073, in <genexpr>
tag_data.extend( ( hash_id, ( tag_service_id, HC.CONTENT_STATUS_CURRENT, tag_id ) ) for ( hash_id, tag_id ) in self._SelectFromList( 'SELECT hash_id, tag_id FROM ' + cache_current_mappings_table_name + ' WHERE hash_id IN %s;', hash_ids ) )
File "include\HydrusDB.py", line 639, in _SelectFromList
for row in self._c.execute( chunk_statement, chunk ):
OperationalError: no such table: external_caches.specific_current_mappings_cache_20_3


882097 No.6978

DBException
OperationalError: no such table: external_caches.specific_current_mappings_cache_1_3
Traceback (most recent call last):
File "include\HydrusThreading.py", line 230, in run
callable( *args, **kwargs )
File "include\ClientGUIPages.py", line 698, in THREADLoadInitialMediaResults
more_media_results = self._controller.Read( 'media_results', group_of_initial_hashes )
File "include\HydrusController.py", line 363, in Read
return self._Read( action, *args, **kwargs )
File "include\HydrusController.py", line 120, in _Read
result = self.db.Read( action, HC.HIGH_PRIORITY, *args, **kwargs )
File "include\HydrusDB.py", line 845, in Read
return job.GetResult()
File "include\HydrusData.py", line 1768, in GetResult
raise e
DBException: OperationalError: no such table: external_caches.specific_current_mappings_cache_1_3
Database Traceback (most recent call last):
File "include\HydrusDB.py", line 522, in _ProcessJob
result = self._Read( action, *args, **kwargs )
File "include\ClientDB.py", line 7902, in _Read
elif action == 'media_results': result = self._GetMediaResultsFromHashes( *args, **kwargs )
File "include\ClientDB.py", line 5164, in _GetMediaResultsFromHashes
return self._GetMediaResults( query_hash_ids )
File "include\ClientDB.py", line 5073, in _GetMediaResults
tag_data.extend( ( hash_id, ( tag_service_id, HC.CONTENT_STATUS_CURRENT, tag_id ) ) for ( hash_id, tag_id ) in self._SelectFromList( 'SELECT hash_id, tag_id FROM ' + cache_current_mappings_table_name + ' WHERE hash_id IN %s;', hash_ids ) )
File "include\ClientDB.py", line 5073, in <genexpr>
tag_data.extend( ( hash_id, ( tag_service_id, HC.CONTENT_STATUS_CURRENT, tag_id ) ) for ( hash_id, tag_id ) in self._SelectFromList( 'SELECT hash_id, tag_id FROM ' + cache_current_mappings_table_name + ' WHERE hash_id IN %s;', hash_ids ) )
File "include\HydrusDB.py", line 639, in _SelectFromList
for row in self._c.execute( chunk_statement, chunk ):
OperationalError: no such table: external_caches.specific_current_mappings_cache_1_3
Database Traceback (most recent call last):
File "include\HydrusDB.py", line 522, in _ProcessJob
result = self._Read( action, *args, **kwargs )
File "include\ClientDB.py", line 7902, in _Read
elif action == 'media_results': result = self._GetMediaResultsFromHashes( *args, **kwargs )
File "include\ClientDB.py", line 5164, in _GetMediaResultsFromHashes
return self._GetMediaResults( query_hash_ids )
File "include\ClientDB.py", line 5073, in _GetMediaResults
tag_data.extend( ( hash_id, ( tag_service_id, HC.CONTENT_STATUS_CURRENT, tag_id ) ) for ( hash_id, tag_id ) in self._SelectFromList( 'SELECT hash_id, tag_id FROM ' + cache_current_mappings_table_name + ' WHERE hash_id IN %s;', hash_ids ) )
File "include\ClientDB.py", line 5073, in <genexpr>
tag_data.extend( ( hash_id, ( tag_service_id, HC.CONTENT_STATUS_CURRENT, tag_id ) ) for ( hash_id, tag_id ) in self._SelectFromList( 'SELECT hash_id, tag_id FROM ' + cache_current_mappings_table_name + ' WHERE hash_id IN %s;', hash_ids ) )
File "include\HydrusDB.py", line 639, in _SelectFromList
for row in self._c.execute( chunk_statement, chunk ):
OperationalError: no such table: external_caches.specific_current_mappings_cache_1_3


00c76b No.6984

>>6971

>>6970

>>6977

>>6978

Thank you for this report. I just replied to your email.


00c76b No.6985

File: a5f2e568a0e2a3a⋯.gif (75.68 KB, 500x708, 125:177, a5f2e568a0e2a3a37b57d40b6a….gif)

>>6946

>>6943

It is in an application on my desktop, and I am afraid I do not have the time to convert it into a public form. As well as literally going through all 1,000-odd items and converting additional notes into whatever format would be appropriate for the online system I would be uploading it to, I would also have to sanitise it of any personal information that is stored in some of the bug reports and so on. A lot of it is short notes to myself as well that include slang or would require some other rewriting to be more widely comprehensible.

I also found with the github issue tracker that having lots of items up in public lead to more discussion and further idea generation than actual work and getting things done, so I ended up looking at it less and less and ultimately turned it all off a few weeks ago. I am hesitant to start put any time into opening things up again.

The actual list is mostly stuff like "add a splitter size manual override in the options'" and "think about a bmp cache" and "collapse accented symbols in autocomplete". It keeps growing, and parts of it are out of my control, although I have improved some of my workflows in recent months. I had a week where it only grew by three items a little while ago!

I use ToDoList by AbstractSpoon and recommend it to anyone for solo project or daily task management. 6.8.10 is the best version.

>>6955

I didn't realise tag censorship didn't work for exports–I will add that for v277, thank you for the report. I also fixed tag siblings on export to .txt files this week as well.

Tag censorship is a little messy at the moment. I would like in future to write some better db-level support for it, but for now it is mostly just a gui-level facade, so there are some odd holes like this where the real data slips through.

>>6956

I added that this week–would you like an option to turn it off?

The idea was to emulate 'open externally' behaviour if you DnD an image to an external movie player.

>>6960

>>6962

Yeah, the login system should allow you to login to sankaku or any other booru, at which point any premium benefits of that account should apply to hydrus as well. It should roll out in pieces over the coming weeks.

Sank also limits non-logged-in users to 500 results per query. It just 404s on page 26 and above.

>>6964

>>6972

Yeah, you've hit a quiet difference between the two windows here–the manage tags as launched from thumbs, which can apply to multiple files, is a true modal dialog that only applies its changes when OKed, whereas the media viewer's one is a generic frame window that allows interaction with parent windows while it is open and applies changes to its single file as soon as they are entered (it also follows the media canvas's current media if you scroll while it is open).

An escape will always 'cancel' a dialog, rolling back any changes, while it will just close a frame window at its current state.

Perhaps I could add a 'you have pending changes, are you sure you want to cancel?' question to a close manage tags dialog event?

Otherwise, please just hit Enter on an empty tag input to close the dialog with an OK status. e.g.:

Hit F3

type 'blue_eyes'

hit enter

hit enter

Will add the tag and close the dialog with changes saved.

You can quickly jump from service to service by similarly pressing Up or Down Arrow on an empty autocomplete tag input box (so insert Down after Hit F3 above to change to the PTR or whatever).

Page Up and Down on an empty input should also browse the current media from the media viewer's manage tags frame.

I hope to have most shortcuts converted to the new shortcut engine, so you'll eventually be able to customise them, but Escape is pretty core to dialogs and I am not sure I can overwrite it reliably.


52fa2d No.6988

File: b4d3068fa7efee6⋯.jpg (40.93 KB, 500x577, 500:577, 1377925877641.jpg)

>>6985

In relation to entering tags and keybindings.

As it is now, that's perfect, I was just not aware of the keys or behavior, thanks for the response.


882097 No.7003

20k images, nothing failed so far, THANK YOU for the help.

Through this I have run into a few things I wanted to make note of

1) my import folder tried to import images, of the 300 that were in it when the db was broke 5 imported. once the db was fixed, the rest of them all would not import, I had my db on a 3 minute import to get the task done with… so, if an image fails to import the way mine were it seems the program remembers they failed and won't make an attempt, at least this is what the behavior seems like. I suggest in this case making making an override check box like the pause one that is a 'on the next check retry everything in folder'

2) on the note of import folders I have another question, the main folders I have are

A) a folder on my 4tb drive that I was imported images from I downloaded a long time ago

B) a folder on my 8tb drive that I put image archives into to import into the folder

C) a folder on my 8tb drive that my normal browsing saves images to when I like them that gets check daily.

I honestly have no real need for the A and B folders to have a timed check, just an 'I got images in there, get them' kind of deal. I set these up a long time ago because importing from the folders was SO much faster than importing from a drag and drop

Would there be a way to in a drop down menu option have an import now option for various folders you have with what you import them as as the displayed option?

3) with importing urls to a page of images download, if I pause the downloading of images, it also stops the importing of links. I have one downloader going for 10k images right now, and I want to set this up to run overnight so I want to get the what… 600~ links all imported and parsed out, with around 10k images a tab as I find going through 10k is a far more manageable number than 40~k at a time… seriously the fucking tab is taking forever to get through because of its size and relative I don't want to go through it all in one go.

would there be a way to allow the links to parse separately from allowing the parsed links to download?

and just on the current state of my archive just for your reference.

I have 1.2 million images

of which I have 187k potential duplicates

Now I want to power through images and get things rated and sorted, however the prospect of 1:10 being a duplicate is a bit hard find the will to go through them

Then with duplicates, the way I sort imports will show me the deleted images just as a confirmation that they are shit and I did the right thing deleting them, however if I am looking at a duplicate of an image that I like and see no reason it should be deleted, I have to question why it was deleted in the first place and with no ability to assess it.

So i'm at a stand still where I can't go through duplicates, and I can't bring myself to rate/tag things till I know i'm not redoing the same thing over and over again.

The database fuck up may have taken my duplicate search ability away for now, but really i'm not able to do much of anything with that till tagging why thing are deleted or something of the sort happens so when a file I try to import gets sorted over to the deleted folders I know why.

What I mean is unless getting a rebuilding the duplicate search db was already on the docket there's no real reason to bend over backwards for me over it till other things happen first.


b8cb00 No.7025

>>6985

An option to keep the image in the preview window when dragging and dropping would be nice, yes, please. It helps when dragging and dropping to posting windows to double check.


1eb955 No.7036

>>7025

I've set it so it'll pause–rather than nullifying–across the program on 'open externally' or a successful DnD event. This is the same behaviour as the media viewer does on open externally, which on second thought makes more sense to me for all 'hey, the media ain't changed, but another program may be doing something fun with it'. Please give a go and let me know if you would still like any different behaviour.

I'm still thinking what is appropriate for flash files, where I don't have good pause control but also don't really want to force the user to have audio dupe. I might revert them to the embed button, if that is simple to do.

>>7003

Thank you for this feedback.

Please check the little icon button on the manage import folders dialog (go into the specific folder) to see your 'failed' files. It is the same 'file import status' button you'll see on a downloader or a subscription. Import folders remember them there and won't try them again unless you tell it to. I happened to add a right-click->retry failed menu option to that this week to make that a bit easier, as well!

Yeah, I think I was talking with someone else recently about having a 'manual' import folder. I'm all for it. I'll see if I can squeeze it into the next week or two.

Sure, I will split the page of images download into two loops with separate pause buttons. I did this with the thread watcher the other week and it went very well.

The potential duplicates number gets inflated for large groups (like when you have twenty variants of a the same image–they can each pair with each other, which can be hundreds of possible pairs). This first version of the dupe system does not work well for these large groups yet. I suspect that users with very large collections may like to wait for future versions of the dupe system, which will handle more complicate situations more efficiently, rather than trying to plough through a huge number of decions as you say.

I will keep your thoughts on adding some kind of 'this was deleted because of a dupe' in mind, however. I expect I'll be adding several stopgaps in this system before I can get around to a full second iteration.




[Return][Go to top][Catalog][Nerve Center][Cancer][Post a Reply]
Delete Post [ ]
[]
[ / / / / / / / / / / / / / ] [ dir / fur / general / htg / newbrit / startrek / stol / strek / ttgg ]