Git Product home page Git Product logo

jl's People

Contributors

mertvn avatar rampaa avatar thovip119 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  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  avatar

jl's Issues

Better ordering of results

Currently, we sort results mainly by their frequency. This causes some words to have the wrong readings displayed in the first spot.
E.g.: 姉's first result should be あね, not ねえ

Auto hide popup if cursor is not over it - not working as intended? (close this)

Auto hide popup if cursor is not over it - not working as intended?
image
I tried this setting toggled on and off and it doesn't change anything.

So, I was thinking that it should work kind of like Yomichan where you mouse over the word, then you can mouse over the definition so that you can copy it, use it for other things.

In my JL, I'm unable to mouse over the definitions themselves while looking up words, because once I move my mouse into the popup window, it immediately closes.

If I change the Lookup Mode to left-click/touch, or to Text Select mode, then I'm able to mouse over the popup window and scroll through, select text, etc.

edit
Never mind, I just read about Mining Mode. Got it.

Autoupdater doesn't work in paths with spaces

(I'm testing JL as part of my continuous/ongoing effort to privately catalog Japanese learning tools)

Due to organizational error I have JL located in a directory whose global path has spaces in it: F:\from c\wareya\Desktop\READING\JL

When the application attempts to run the autoupdater, the following error window is raised:

explorer_2022-06-29_21-57-32

Running update-helper.cmd directly seems to work as it should, so this is most likely an issue with how the cmd script is being invoked.

Selected Dictionary Tabs should be remembered

the selected dictionary tab should be remembered instead of resetting to all dictionaries.

  • saves clicks. want to use/prioritize a certain dictionary (for example going mono for a session, or going with a dictionary that has example sentences and so on)

image

Arm64 release?

I build it by myself and run it without anything wrong. (about 800mb memory usage in taskmanager)

Do you willing publish arm version also? Thanks in advance!

Listen to hotkeys on an API endpoint / Add pause button

The only real hiccup I have with JL atm is around not being able to use hotkeys when it doesn't have focus. Using it with magpie requires that it not be focusable, but not being able to use hotkeys means I can't pause listening to websockets for example which ruins the experience when reading VNs as there can be a flow of previously seen text over the stream that pollutes the output in JL when I am just trying to read the log. This seems relatively easy to work around if JL starts a webserver to listen to hotkey input (a REST endpoint that takes in a simple JSON blob for example) that could then be invoked by autohotkey or some other software that don't require focus.

Something like the above might be nice to enable using hotkeys in general, but my primary want is to be able to pause getting text so having a button that can be clicked to invoke pausing / resuming reading text from sources without taking the focus away (I assume this is possible given that mouse click based lookup and mining is possible) would also be very helpful on its own.

Autohide Popup

would be nice if the popup would hide after x amount of ms if the mouse isn´t hovered over it.

Add a soft blinking animation to currently looked up words in text

A clean addition could be that if JL had a blinking animation for the currently looked up word. A soft blinking animation could be an unintrusive way of showing what is currently selected. Similar to how Yomichan look-ups highlight the text, JL could implement something similar to show what part of the text is currently being looked up.

An example of what I'm talking about -
CSS blinking animation example I found from Google:
https://codepen.io/bernheisel/pen/meOQxB
animation duration set to 2s.

Sources of definitions / filter by source - Missing function ?

EDIT : I've found the answer to my own question : it's indeed the popup in mining mode. As I'm not mining (as in creating cards for Anki if I got it well), it didn't occur to me to enter mining mode and so I totally missed this function. Sorry for the bother.

First : thanks for you work, I discovered JL a few days ago and I'm using it since then.

I was reading another issue (#31) where I saw the screenshot posted by the user.

I see in the upper part of the popup what seem to be a list of the used dictionaries : I can only suppose that that shows the sources of the definitions currently displayed and allows one to filter as well (clicking on one dict would show only the entries belonging to that dict etc.).

I don't understand why, but I've no such functionality and I would love to. My only guess is that it could be linked to Anki integration, as to my knowledge it's the only function I'm not using. Can someone enlighten me ?

Support additional audio types

It seems like JL doesn't play some common audio file types so it bugs out with some of the sources from the local audio server. This has become a bigger problem now that the recommended data source has opus audio. You simply get a "Error playing Audio" error if you configure the local audio server as a source with the recommended data source now. FWIW, JL can play the alternative / older mp3 sources but some of the older sources were using .aac (in particular, the nhk and shinmeikai8 sources).

The workaround for now is to use the new mp3 sources. But it would be nice if JL could support playing other audio types. A canonical list of the types used by the local audio server are available here: https://github.com/themoeway/local-audio-yomichan/blob/dadd63feb35e89b9030fd18c036d59c45020436b/plugin/server.py#L28

(Logs suggest JL only supports mp3 audio fwiw.

System.IO.InvalidDataException: Invalid MP3 file - no MP3 Frames Detected
   at NAudio.Wave.Mp3FileReaderBase..ctor(Stream inputStream, FrameDecompressorBuilder frameDecompressorBuilder, Boolean ownInputStream)
   at JL.Windows.Utilities.WindowsUtils.<>c__DisplayClass56_0.<PlayAudio>b__0() in D:\a\JL\JL\JL.Windows\Utilities\WindowsUtils.cs:line 362

)

Let us choose the browser for lookups with 'S'

would be be nice if we could specify the browser in a config file or something instead of using the default browser.

  • personally i use different browser for different things. for example: one browser for language learning, another for google services, yet another for web browsing and so on and i have them open in different windows desktop environments as well.
  • only have the necessary add-ons in my language learning browser

Exposing api: Handlebars templating when creating cards

Many basic mining setups involve handlebars in the generated Anki cards. Yomi uses Handlebars internally to generate Anki cards, but allows modifying the template used, creating an API where users can modify the template to generate cards.

This is used in many setups, for example:

The API for yomichan can be found at https://github.com/themoeway/yomitan/blob/d1c694535113206ba059e83958c1e8c9addd10b2/ext/js/templates/sandbox/anki-template-renderer.js.

Is it possible to add templating support?

Websocket support

Many textractor based tools have moved from clipboard polling to using a websocket. This method is more reliable and doesn't change your current text when you copy something else.

It may also be faster though I have not tested.

Server examples:

Client examples:

Would it be possible to consume text from a websocket server?

Dictionary Tabs should behave like browser tabs

dictionary tabs should have a dynamic width and should stay on the same row at all times, if possible.

  • cleaner more organized look. visual hierarchy and makes it easier to focus on the important parts

image

Pop-up window grabs focus, disregarding setting.

steps to replicate:
-just use JL normally
-after some amount of time pop-up window grabs attention even with "focus on lookup" set to "off"
-bug disappears whenever i switch to another window / open settings, just like in video
Bug also occured even before 1.5 update.

2022-03-24.19-11-15.mp4

Delete current logged line

Most hooks aren't perfect, and sometimes they can send more text than needed.

In my case, my hooks sends the entire backlog when i trigger it. This is annoying when doing it by accident as it inflates character count.

It would be nice to delete the last sent line (and deleting it from the statistics as well) to work around faulty hooks like this.

Idk if being able to delete every logged line is necessary; just the current one would be a big help.

Keep Focus while advancing dialog

JL should keep focus even after clicking into a VN to advance the dialog.

  • Want to be able keep using hotkeys, more efficient and convenient.
  • Adding a hotkey to advance the dialog would probably have the same effect.
  • something similar is already possible with (mousewheel) backlog.

Bug report: priorities not handled correctly while configuring audio sources

JL doesn't update priority for existing if other sources are removed. Adding newer sources afterward can then end up saving the new source with the same priority as the existing ones. This ends up showing the new source as lower priority than the older source with the same priority on the UI and JL immediately crashes if you try to reorder such sources. Editing the config JSON directly to set the priority to 1,2,3 as desired solves the issue but I figured I might as well report this.

Simplest reproduction steps:

  1. Add local audio server as a source by adding http://127.0.0.1:5050/?term={Term}&reading={Reading}&sources=jpod,nhk16,shinmeikai8,forvo as a URL (JSON) source
  2. Add forvo server as a source by adding http://127.0.0.1:8770/?expression={Term}&reading={Reading} as a URL (JSON) source
  3. Reorder the two sources added to be above the default jpod source in the UI
  4. Remove the forvo server source
  5. Add a new audio source (just adding the forvo source back works too). It should show up below the jpod source, i.e., with the lowest priority
  6. Try to move the new audio source higher in priority from the UI. JL should crash.

My OS is win10-x64 on an intel chip fwiw. I didn't test on other systems.

App freezes few seconds after starting it

Ever since the last update, there are certain times when the app simply freezes right after launching it, regardless of whether you are just using the overlay window or have opened any of the settings menus. It works for like 5-8 seconds after launch and then completely stops responding. The only way out is to kill the app from task manager, but once this issue happens, subsequent relaunches of the app continue having this same issue, and the only way seems to be restarting windows to make it work again. Another info that I can give is that this happens regardless of whether textractor is running or not.

Previously looked up words keeps popping up when looking up another word inside dictionary popups

I'm currently making the monolingual transition with JL. and every time I try to look up multiple words inside the dictionary popup, it keeps showing the previously looked up word instead of the new one.

My current workaround for this is adding a delay to auto-hide popups (1000ms), then waiting it out until looking up the next word. I have a keybind set to close the popup windows, but I mainly use Magpie when reading VNs, and it prevents me from using keybinds in JL. A suggestion I could make for this is adding a close popup button to the popup windows.

Adding Furigana to dictionary definitions

It would be ideal if the definition pop-up contained Furigana above the word being looked-up, as it helps associating a given kanji with its reading, in the same manner that Yomichan handles definitions.
Thank you for your amazing work, this software is a game changer in VN reading.

Crash while managing dictionaries

Hello.

I've added a few Yomichan/EPWING dicts : here is the list.

Capture

This is probably not exhaustive as I've not tested every combinations, but in this setup I can reproduce the crash (systematically) by trying to move up Daijirin or Daijisen. I can move them as I want as long as I won't try to move them to the 5th position and up from the bottom (position occupied by JMDICT here). Of course, I've tried to remove them and add them up but the crashes occurred again.

As every dict (including Daijirin and Daijisen) are functional nevertheless, I'm using it in this state.

Detect Dialog Skip

would be nice if JL detects dialog skipping in some form and takes that into consideration for the provided stats.

  • playing a different route of a VN can completely mess up stats, which makes them only useful for a short amount of time.

Crash when opening preferences

Hello,
I just downloaded the latest release for the first time and it crashes when I'm trying to open the preferences (both x86 and x64 versions).

Here's the full stack trace

2022-10-03 16:06:01.968 +02:00 [ERR] System.ArgumentException: 'NaN' is not a valid value for property 'Value'.
   at System.Windows.DependencyObject.SetValueCommon(DependencyProperty dp, Object value, PropertyMetadata metadata, Boolean coerceWithDeferredReference, Boolean coerceWithCurrentValue, OperationType operationType, Boolean isInternal)
   at System.Windows.DependencyObject.SetValue(DependencyProperty dp, Object value)
   at HandyControl.Controls.NumericUpDown.set_Value(Double value)
   at JL.Windows.ConfigManager.LoadPreferences(PreferencesWindow preferenceWindow) in D:\a\JL\JL\JL.Windows\ConfigManager.cs:line 741
   at JL.Windows.Utilities.WindowsUtils.ShowPreferencesWindow() in D:\a\JL\JL\JL.Windows\Utilities\WindowsUtils.cs:line 206
   at JL.Windows.GUI.MainWindow.ShowPreferences(Object sender, RoutedEventArgs e) in D:\a\JL\JL\JL.Windows\GUI\MainWindow.xaml.cs:line 572
   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.MenuItem.InvokeClickAfterRender(Object arg)
   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.Windows.Threading.DispatcherOperation.InvokeImpl()
   at System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(Object state)
   at MS.Internal.CulturePreservingExecutionContext.CallbackWrapper(Object obj)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
--- End of stack trace from previous location ---
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at MS.Internal.CulturePreservingExecutionContext.Run(CulturePreservingExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Windows.Threading.DispatcherOperation.Invoke()
   at System.Windows.Threading.Dispatcher.ProcessQueue()
   at System.Windows.Threading.Dispatcher.WndProcHook(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)
   at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
   at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
   at MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)
   at System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
   at System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame)
   at System.Windows.Threading.Dispatcher.Run()
   at System.Windows.Application.RunDispatcher(Object ignore)
   at System.Windows.Application.RunInternal(Window window)
   at System.Windows.Application.Run()
   at JL.Windows.App.Main()```

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.