Giter Site home page Giter Site logo

hatate-iqdb-tagger's People

Contributors

dependabot[bot] avatar nostrenz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

terrehbyte 2455dd

hatate-iqdb-tagger's Issues

Copying any tag crashes the app immediately (OpenClipboard Failed (Exception from HRESULT: 0x800401D0 (CLIPBRD_E_CANT_OPEN))

I am using Windows 11 21H2 and Release 12 of Hatate.

It would seem the method used to access the clipboard fails. I am unable to test if this affects other versions of Windows.

It's also possible the method employed requires administrative permissions, in which is it best to use a different method that doesn't need those perms?

System.Windows.Threading.DispatcherUnhandledExceptionEventArgs
OpenClipboard Failed (Exception from HRESULT: 0x800401D0 (CLIPBRD_E_CANT_OPEN))
mscorlib
System.Collections.ListDictionaryInternal
System.Runtime.InteropServices.COMException (0x800401D0): OpenClipboard Failed (Exception from HRESULT: 0x800401D0 (CLIPBRD_E_CANT_OPEN))
   at System.Runtime.InteropServices.Marshal.ThrowExceptionForHRInternal(Int32 errorCode, IntPtr errorInfo)
   at System.Windows.Clipboard.Flush()
   at System.Windows.Clipboard.CriticalSetDataObject(Object data, Boolean copy)
   at System.Windows.Clipboard.SetDataInternal(String format, Object data)
   at System.Windows.Clipboard.SetText(String text, TextDataFormat format)
   at System.Windows.Clipboard.SetText(String text)
   at Hatate.App.CopySelectedTagsToClipboard(ListBox from)
   at Hatate.MainWindow.<ContextMenu_MenuItem_Click>d__110.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.<>c.<ThrowAsync>b__6_0(Object state)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
   at System.Runtime.InteropServices.Marshal.ThrowExceptionForHRInternal(Int32 errorCode, IntPtr errorInfo)
   at System.Windows.Clipboard.Flush()
   at System.Windows.Clipboard.CriticalSetDataObject(Object data, Boolean copy)
   at System.Windows.Clipboard.SetDataInternal(String format, Object data)
   at System.Windows.Clipboard.SetText(String text, TextDataFormat format)
   at System.Windows.Clipboard.SetText(String text)
   at Hatate.App.CopySelectedTagsToClipboard(ListBox from)
   at Hatate.MainWindow.<ContextMenu_MenuItem_Click>d__110.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.<>c.<ThrowAsync>b__6_0(Object state)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)

Images duplicate when adding more than one image

Adding more than one image will sometimes cause different images to appear as the same in the thumbnails. Running the program like this will match the file and tag it as the incorrect picture.
image

Query Hydrus -> import inbox only

Does not seem to respect that. I have around 3k in my inbox, and it grabs all my images (over 10k).

As an aside, is there a way to simply grab untagged images? Similar to the inbox filter, that would be very helpful.

Crash when attempting to open 'Query Hydrus' menu

Hatate repeatedly crashes when attempting to open the 'Query Hydrus' menu.
Immediately when I click on the menu point, hatate crashes into the ground.

Have tried installing older hatate versions.
Have tried re-installing hatate.
Have tried restarting both hatate and hydrus.
Have not yet tried generating a new/different api key for hatate.
Yes, I have made sure the api key is correct.
It works when sending hatate found/and tagged files to hydrus.

It is only this one menu item that does not work, and this would be really important for my uses, as I have a lot of files I want to tag and having to go trough and add every single one of the 256 folders hydrus makes is not only an inefficient use of time, but also a waste of resources, as I'm importing a lot of files which are already tagged

The following log has been translated by deepL, as for some unbeknownst reason, the logs were printed in my computers native language, which is not english.

Crash Log System.Windows.Threading.DispatcherUnhandledExceptionEventArgs

The object cannot be converted from "Newtonsoft.Json.Linq.JObject" to "Newtonsoft.Json.Linq.JArray".

Hatate

System.Collections.ListDictionaryInternal

System.InvalidCastException: Object cannot be converted from type "Newtonsoft.Json.Linq.JObject" to type "Newtonsoft.Json.Linq.JArray".

in the following location: Hatate.HydrusQuery.d__7.MoveNext()

--- End of stack trace from the previous occurrence of the exception ---

in the following location: System.Runtime.CompilerServices.AsyncMethodBuilderCore.<>c.b__6_0(Object state)

in the following location: System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)

in the following location: System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)

in the following location: Hatate.HydrusQuery.d__7.MoveNext()

--- End of stack trace from the previous occurrence of the exception ---

at the next location: System.Runtime.CompilerServices.AsyncMethodBuilderCore.<>c.b__6_0(Object state)

in the following location: System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)

in the following location: System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)

Entries in list removed after search regardless of setting

Even if I untick the box under settings > Hatate, labeled Remove file from list after writing tags or sending to Hydrus, the entries that I search are always removed after processing.

I'm not sure if the entries that don't have a match are supposed to be removed as well, but that's the current behavior that I'm experiencing.

[Question] When sending automatically to hydrus is it intelligent?

So I have ALOT of pics i need to have tagged and etc. I see i can automatically send files to hydrus once searched but is it intelligent?

Will it send just the tags when the image in hydrus is bigger than the one Hatate found, or if the image Hatate found is bigger will it auto download it instead of sending just the tags?

Or is it dumb and only say downloads or only sends just tags and doesn't do what fits best in the situation?

Sending Danbooru URL to Hydrus Through API Sends Unparsable URL

I was having an issue where I would use Hatate, and then send the URL to Hydrus using the API, but the images would not be imported. I looked at the import log and found that many of them are being ignored because "Looks like HTML -- maybe the client needs to be taught how to parse this?" and the URL is along the lines of "https://danbooru.donmai.us/post/show/xxxxxx".

I believe the "show" part of the URL is causing the issue. I am unsure if this is a setting in Hydrus I need to fix or if it is a bug of Hatate. It would seem to me that removing the "/show" substring would resolve this issue when sending the URL to Hydrus.

See below for example of my log, specifically the "ignored" entries.

image

Minimum wait time is 5 seconds, even when set lower.

I've set the wait time in the program options to 1 second, however there's still a five-second wait between each file. SauceNao, if the user has Premium, can accept up to 25 files over a 30 second period, so it would be greatly appreciated to not have a mandatory minimum of 5 seconds of waiting between files.

Test URL is valid before sending to Hydrus

This isn't technically a bug, but sometimes SauceNAO will return a URL to a post that has been deleted, or replaced with a newer file. Is it possible for Hatate to test URLs for this before sending the URL to Hydrus?

Hydrus API support

Can you add Hydrus API support?
Would enable more automation on the client side without the need of folders and file creation at all.

Should be able to search up any query inside Hydrus and pull the files for IQDB lookup and such then send the resulting URL to the client for automated URL download.

EDIT: adding API link: http://hydrusnetwork.github.io/hydrus/help/client_api.html

Hatate interrupts window/input focus after each lookup

After each lookup, successful or not, Hatate appears to steal window and input focus from whatever application I'm working with. This happens pretty frequently when the delay between each search is set to something small like 5 seconds. This started after upgrading to Release 10.

My workflow for Hatate is as follows:

  1. Query Hydrus for a list of files to search
  2. Start the search, sending the file to Saucenao (and IQDB if that fails)
  3. Sending tags and URL to Hydrus

In hindsight, I probably don't need to send tags if Hydrus is going to handle it anyway, but I wouldn't imagine that would cause an issue.

If it's useful, my full config (w/ keys removed) is as follows:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <configSections>
        <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
            <section name="Hatate.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
        </sectionGroup>
    </configSections>
    <userSettings>
        <Hatate.Properties.Settings>
            <setting name="SearchedParenthesisValue" serializeAs="String">
                <value>1</value>
            </setting>
            <setting name="HydrusApiPort" serializeAs="String">
                <value />
            </setting>
            <setting name="HydrusApiHost" serializeAs="String">
                <value>REMOVED</value>
            </setting>
            <setting name="DeleteImported" serializeAs="String">
                <value>False</value>
            </setting>
            <setting name="HydrusApiAccessKey" serializeAs="String">
                <value>REMOVED</value>
            </setting>
            <setting name="SendUrlWithTags" serializeAs="String">
                <value>True</value>
            </setting>
            <setting name="AddImagesToHydrusPage" serializeAs="String">
                <value>True</value>
            </setting>
            <setting name="HydrusPageName" serializeAs="String">
                <value>hatate</value>
            </setting>
            <setting name="AutoSend" serializeAs="String">
                <value>True</value>
            </setting>
            <setting name="AssociateUrl" serializeAs="String">
                <value>True</value>
            </setting>
            <setting name="HydrusTagServiceKey" serializeAs="String">
                <value>REMOVED</value>
            </setting>
            <setting name="HydrusTagService" serializeAs="String">
                <value>lookup tags</value>
            </setting>
            <setting name="SauceNaoApiKey" serializeAs="String">
                <value>REMOVED</value>
            </setting>
            <setting name="HydrusQuery_ArchiveOnly" serializeAs="String">
                <value>False</value>
            </setting>
            <setting name="HydrusQuery_InboxOnly" serializeAs="String">
                <value>False</value>
            </setting>
            <setting name="HydrusQuery_WarnBeforeImport" serializeAs="String">
                <value>False</value>
            </setting>
            <setting name="HydrusQuery_Limit" serializeAs="String">
                <value>4000</value>
            </setting>
            <setting name="MatchType" serializeAs="String">
                <value>Additional</value>
            </setting>
            <setting name="NotfoundTag" serializeAs="String">
                <value>hatate:not found</value>
            </setting>
            <setting name="Similarity" serializeAs="String">
                <value>80</value>
            </setting>
            <setting name="LogMatchedUrls" serializeAs="String">
                <value>False</value>
            </setting>
            <setting name="ParseTags" serializeAs="String">
                <value>True</value>
            </setting>
            <setting name="AddNotfoundTag" serializeAs="String">
                <value>True</value>
            </setting>
            <setting name="SimilarityThreshold" serializeAs="String">
                <value>15</value>
            </setting>
            <setting name="StartupReleaseCheck" serializeAs="String">
                <value>True</value>
            </setting>
            <setting name="RemoveResultAfter" serializeAs="String">
                <value>True</value>
            </setting>
            <setting name="Delay" serializeAs="String">
                <value>2</value>
            </setting>
            <setting name="AddRating" serializeAs="String">
                <value>True</value>
            </setting>
            <setting name="CheckMatchType" serializeAs="String">
                <value>True</value>
            </setting>
            <setting name="ResizeImage" serializeAs="String">
                <value>False</value>
            </setting>
            <setting name="Sources" serializeAs="String">
                <value>[{"Value":0,"Ordering":1,"Enabled":false,"GetTags":true},{"Value":3,"Ordering":2,"Enabled":true,"GetTags":true},{"Value":1,"Ordering":3,"Enabled":false,"GetTags":true},{"Value":2,"Ordering":4,"Enabled":false,"GetTags":true},{"Value":7,"Ordering":5,"Enabled":false,"GetTags":true},{"Value":5,"Ordering":6,"Enabled":false,"GetTags":true},{"Value":10,"Ordering":7,"Enabled":true,"GetTags":true},{"Value":8,"Ordering":8,"Enabled":false,"GetTags":true},{"Value":6,"Ordering":9,"Enabled":false,"GetTags":true},{"Value":4,"Ordering":10,"Enabled":true,"GetTags":true},{"Value":11,"Ordering":11,"Enabled":false,"GetTags":true},{"Value":13,"Ordering":12,"Enabled":true,"GetTags":true},{"Value":15,"Ordering":13,"Enabled":false,"GetTags":true},{"Value":12,"Ordering":14,"Enabled":true,"GetTags":true},{"Value":14,"Ordering":15,"Enabled":false,"GetTags":true},{"Value":16,"Ordering":16,"Enabled":false,"GetTags":true},{"Value":9,"Ordering":17,"Enabled":false,"GetTags":true}]</value>
            </setting>
            <setting name="ThumbWidth" serializeAs="String">
                <value>300</value>
            </setting>
            <setting name="Randomize" serializeAs="String">
                <value>False</value>
            </setting>
            <setting name="TaggedTag" serializeAs="String">
                <value>hatate:tagged</value>
            </setting>
            <setting name="RetryMethod" serializeAs="String">
                <value>2</value>
            </setting>
            <setting name="AddTaggedTag" serializeAs="String">
                <value>True</value>
            </setting>
            <setting name="SearchEngine" serializeAs="String">
                <value>1</value>
            </setting>
            <setting name="FoundTag" serializeAs="String">
                <value>hatate:found</value>
            </setting>
            <setting name="AskTags" serializeAs="String">
                <value>False</value>
            </setting>
            <setting name="TagsCount" serializeAs="String">
                <value>0</value>
            </setting>
            <setting name="AddFoundTag" serializeAs="String">
                <value>True</value>
            </setting>
        </Hatate.Properties.Settings>
    </userSettings>
</configuration>

Is this intentional behavior or did I miss a setting somewhere?

URL OCD Send Mode?

Could we get an OCD URL Send mode that sends all urls within matching % to Hydrus instead of just the best results?
Want to have Hydrus parse all sites and grab all tags at the same time!

Crash, potentially caused by danbooru banned artist

Recently I encountered a consistent crash when selecting a danbooru link from the match drop down that points to a banned artist.
Here's the log:

System.Windows.Threading.DispatcherUnhandledExceptionEventArgs
Length cannot be less than zero.
Parameter name: length
mscorlib
System.Collections.ListDictionaryInternal
System.ArgumentOutOfRangeException: Length cannot be less than zero.
Parameter name: length
   at System.String.Substring(Int32 startIndex, Int32 length)
   at Hatate.Parser.Danbooru.Parse(Document doc)
   at Hatate.Parser.Page.FromUrl(String url)
   at Hatate.MainWindow.ParseBooruPage(Result result)
   at Hatate.MainWindow.ComboBox_Matches_SelectionChanged(Object sender, SelectionChangedEventArgs e)
   at System.Windows.Controls.SelectionChangedEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget)
   at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
   at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
   at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
   at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
   at System.Windows.UIElement.RaiseEvent(RoutedEventArgs e)
   at System.Windows.Controls.ComboBox.OnSelectionChanged(SelectionChangedEventArgs e)
   at System.Windows.Controls.Primitives.Selector.InvokeSelectionChanged(List`1 unselectedInfos, List`1 selectedInfos)
   at System.Windows.Controls.Primitives.Selector.SelectionChanger.End()
   at System.Windows.Controls.Primitives.Selector.SelectionChanger.SelectJustThisItem(ItemInfo info, Boolean assumeInItemsCollection)
   at System.Windows.Controls.ComboBox.NotifyComboBoxItemMouseUp(ComboBoxItem comboBoxItem)
   at System.Windows.Controls.ComboBoxItem.OnMouseLeftButtonUp(MouseButtonEventArgs e)
   at System.Windows.UIElement.OnMouseLeftButtonUpThunk(Object sender, MouseButtonEventArgs e)
   at System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget)
   at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
   at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
   at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
   at System.Windows.UIElement.ReRaiseEventAs(DependencyObject sender, RoutedEventArgs args, RoutedEvent newEvent)
   at System.Windows.UIElement.OnMouseUpThunk(Object sender, MouseButtonEventArgs e)
   at System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget)
   at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
   at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
   at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
   at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
   at System.Windows.UIElement.RaiseTrustedEvent(RoutedEventArgs args)
   at System.Windows.UIElement.RaiseEvent(RoutedEventArgs args, Boolean trusted)
   at System.Windows.Input.InputManager.ProcessStagingArea()
   at System.Windows.Input.InputManager.ProcessInput(InputEventArgs input)
   at System.Windows.Input.InputProviderSite.ReportInput(InputReport inputReport)
   at System.Windows.Interop.HwndMouseInputProvider.ReportInput(IntPtr hwnd, InputMode mode, Int32 timestamp, RawMouseActions actions, Int32 x, Int32 y, Int32 wheel)
   at System.Windows.Interop.HwndMouseInputProvider.FilterMessage(IntPtr hwnd, WindowMessage msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at System.Windows.Interop.HwndSource.InputFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)

and a link to an image that causes the crash:
https://gelbooru.com/index.php?id=3798194&page=post&s=view

Way to specify downloader page for the send url to hydrus option

It's very annoying to have to keep focusing on the downloader page while hatate is running. It makes browsing around without making a mess impossible.

Would be great to have something like hydrus companion where you select a page with a specified to import URLs through.

Adding saucenao tags for deleted pixiv images

Even when an image is gone from pixiv, saucenao often has useful information in its results.

Here's a result from saucenao (this example image does exist on pixiv but the result info on saucenao is the same):

<div class="resultmatchinfo">
    <div class="resultsimilarityinfo">94.19%
    </div>
    <div class="resultmiscinfo">
    </div>
</div>
<div class="resultcontent">
    <div class="resulttitle">
        <strong>��</strong>       <-- title tag
        <br>
    </div>
    <div class="resultcontentcolumn">
        <strong>Pixiv ID: </strong>
        <a href="https://www.pixiv.net/member_illust.php?mode=medium&amp;illust_id=95277212" <-- illust_id is the "pixiv work" tag in Hydrus
            class="linkify">95277212</a>
        <span style="padding-left:10px;">
            <a href="https://saucenao.com/info.php?lookup_type=0&amp;db=5&amp;id=95277212">
                <img src="/images/static/saucenao_info.png" width="10px" height="10px"></a>
        </span>
        <br>
        <strong>Member:</strong>
        <a href="https://www.pixiv.net/member.php?id=76820897" class="linkify">��says hi</a> <-- id is the "pixiv id" tag in Hydrus, the user's immutable pixiv id, and the inner text is the creator tag
        <span style="padding-left:10px;">
            <a href="https://saucenao.com/info.php?lookup_type=1&amp;db=5&amp;id=76820897">
                <img src="/images/static/saucenao_info.png" width="10px" height="10px"></a>
        </span>
        <br>
        <br>
    </div>
</div>

So even if the image is deleted we could still get these tags for Hydrus:

title:��
creator:��says hi
pixiv id:76820897
pixiv work:95277212

The immutable pixiv id is useful because pixiv users have had a tendency to change names for events such as cons.

As far as I can tell, Hatate doesn't do anything with these results to make tags out of them if the image was deleted from pixiv. Can we get these tags?

No tags from some Danbooru results

No matter how many times I try or wait, Hatate simply does not retrieve tags from some Danbooru results. For some others, I have to switch to a result from a 'working' site like Yandere then switch back to the Danbooru result. Even this is not guaranteed.

What could be the cause? Is there any way to force tag retrieval?

SauceNao tags not added

I tested the SauceNao with 280 images and Hatate says that the images were not found, however when I search for them manually, Ican see them on Saucenao and access the tags. I will test again later, will close this issue if I can fix this myself. If not, I'll add a comment and elaborate

adjustable thumbnail display size

These thumbnails are far too small for 4K screens imo.
image

Can we have it scale to canvas and have a drag able plane like you have for the split for tags and ignores?

Allow selection of specific db in saucenao

Please allow us to select a specific db, even numerically via the API, when searching saucenao, this is really helpful when the default top results are all very light on tags.

e621

It's probably known, but even when sauceNao find stuff on e621, hatate doesn't see those tags. I downloaded image from e621 and then put it into hatate and it still has 0 tags, while web version of sauceNao have link to the e621.

Threading

The UI seems to lock up a lot, moreso than any other program I can remember using. It does this when importing, it does this when searching for results. I'm sure it would take a bunch of work, but it would be very helpful if the UI continued to be responsive while the code is chugging away on what it needs to do.

edit: it's even hard to get the window back in focus when it is busy. It's not as though it's resource heavy. I'm easily swapping between many other windows while it works. But I can't alt tab to it while it's chugging away, or click to it or even move the window by dragging.

400 error even when connection works

For some reason i keep getting a pop up giving me a 400 error when connected to the hydrus api, but I have the app, api, and access key all set up. The image processing still continues but its really annoying having that pop up every once and a while.
unknown
.

URL send mode

An Alternative for the API mode would be an URL export mode which just lists all the matched urls by its criteria in a single text file or text files split on site.

This makes sense for easy imports if you dont want to add the API support for automation.
Would remove the need to manually import the files with the sidecar files but rather enable users to dump the files un-tagged and download the tags direct from the site its the latest parsers.

[Potential Bug or Help needed] System.Windows.Threading.DispatcherUnhandledExceptionEventArgs happens when searching

It happens when searching 3000+ picture. How can I deal with it
Bug details list as follow.

Bug Files

System.Windows.Threading.DispatcherUnhandledExceptionEventArgs 未将对象引用设置到对象的实例。 Hatate System.Collections.ListDictionaryInternal System.NullReferenceException: 未将对象引用设置到对象的实例。 在 Hatate.Parser.Pixiv.FromUrl(String url) 在 Hatate.MainWindow.ParseBooruPage(Result result) 在 Hatate.MainWindow.CheckMatches(Result result) 在 Hatate.MainWindow.d__23.MoveNext() --- 引发异常的上一位置中堆栈跟踪的末尾 --- 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 在 Hatate.MainWindow.d__20.MoveNext() --- 引发异常的上一位置中堆栈跟踪的末尾 --- 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 在 Hatate.MainWindow.d__20.MoveNext() --- 引发异常的上一位置中堆栈跟踪的末尾 --- 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 在 Hatate.MainWindow.d__19.MoveNext() --- 引发异常的上一位置中堆栈跟踪的末尾 --- 在 System.Runtime.CompilerServices.AsyncMethodBuilderCore.<>c.b__6_0(Object state) 在 System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs) 在 System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler) 在 Hatate.Parser.Pixiv.FromUrl(String url) 在 Hatate.MainWindow.ParseBooruPage(Result result) 在 Hatate.MainWindow.CheckMatches(Result result) 在 Hatate.MainWindow.d__23.MoveNext() --- 引发异常的上一位置中堆栈跟踪的末尾 --- 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 在 Hatate.MainWindow.d__20.MoveNext() --- 引发异常的上一位置中堆栈跟踪的末尾 --- 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 在 Hatate.MainWindow.d__20.MoveNext() --- 引发异常的上一位置中堆栈跟踪的末尾 --- 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 在 Hatate.MainWindow.d__19.MoveNext() --- 引发异常的上一位置中堆栈跟踪的末尾 --- 在 System.Runtime.CompilerServices.AsyncMethodBuilderCore.<>c.b__6_0(Object state) 在 System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs) 在 System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)

generated thumbnail size options?

Would be nice if users could set the size of the thumbnails if it has any say on the results.
Find many fails to match when the full size is working.

[FEATURE REQUEST] add ability to sort results/remove completed results

i've added to search about 4k files, and about 800 of them were not found. i could successfully copy source links for all completed results, but there is no way i can find all uncompleted easily and fast.

so, it would be nice if i could filter/sort results in app, remove all completed results from search screen, select all compleded/failed results, and, mb, rename files with failed search, so i could find them via file manager.

Release 5 Triggers Ransomware Alert in MalwareBytes

I was running the latest release and suddenly the process stopped and MalwareBytes popped up saying it quarantined it because of "Generic Ransomware". I'm sure this is a false positive, but I'm unsure if there is anything you can do on your end about it.

image

[R13] Trying to use Hatate with Windows 11 Parallels + Hydrus on MacOS

So this is a weird setup I admit but it's giving me weird errors. I can connect to the database when in the Hydrus API settings. It tests find and pulls all file repositories and tag services. I select one, but searching for tags in query brings up nothing. If I manually add files, it finds the tags, but I can't send it to Hydrus... I get an error 400.

Here are my client api settings in Hydrus

CleanShot 2023-02-07 at 19 34 28

Settings test

CleanShot 2023-02-07 at 19 35 21

Error message when importing back to Hydrus

CleanShot 2023-02-07 at 19 36 01

Any help in troubleshooting would be great! Thank you.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.