Navnedia / D2L-Course-Launcher

A Flow Launcher plugin for students to quickly open Brightspace D2L course pages and other course content from Flow Launcher
GNU Affero General Public License v3.0
2 stars 0 forks source link

Configuration causing plugin to crash #4

Closed Katchowski closed 1 week ago

Katchowski commented 1 week ago

Please open new issue in: https://github.com/Navnedia/D2L-Course-Launcher/issues

  1. upload log file: C:\Users\katchowski\AppData\Roaming\FlowLauncher\Logs\1.19.1\2024-09-24.txt
  2. copy below exception message

Flow Launcher version: 1.19.1 OS Version: 22631.4169 IntPtr Length: 8 x64: True

Python Path: C:\Users\katchowski\AppData\Local\Programs\Python\Python312\python.exe Node Path: Date: 09/24/2024 14:46:41 Exception: D2L Course Launcher Exception: Websites: https://github.com/Navnedia/D2L-Course-Launcher Author: Navnedia Version: 0.2.0 Flow.Launcher.Core.ExternalPlugins.FlowPluginException: Traceback (most recent call last): File "C:\Users\katchowski\AppData\Roaming\FlowLauncher\Plugins\D2L-Course-Launcher\main.py", line 190, in CourseLauncher() File "C:\Users\katchowski\AppData\Roaming\FlowLauncher\Plugins\D2L-Course-Launcher\main.py", line 44, in init self.reload_data() # Load the configuration from file. ^^^^^^^^^^^^^^^^^^ File "C:\Users\katchowski\AppData\Roaming\FlowLauncher\Plugins\D2L-Course-Launcher\main.py", line 178, in reload_data data = json.load(fp) ^^^^^^^^^^^^^ File "C:\Users\katchowski\AppData\Local\Programs\Python\Python312\Lib\json__init.py", line 293, in load return loads(fp.read(), ^^^^^^^^^^^^^^^^ File "C:\Users\katchowski\AppData\Local\Programs\Python\Python312\Lib\json\init.py", line 346, in loads return _default_decoder.decode(s) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\katchowski\AppData\Local\Programs\Python\Python312\Lib\json\decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\katchowski\AppData\Local\Programs\Python\Python312\Lib\json\decoder.py", line 353, in raw_decode obj, end = self.scan_once(s, idx) ^^^^^^^^^^^^^^^^^^^^^^ json.decoder.JSONDecodeError: Expecting ',' delimiter: line 28 column 3 (char 590) Exception ignored in: <function Launcher.del at 0x0000024247750900> Traceback (most recent call last): File "C:\Users\katchowski\AppData\Roaming\FlowLauncher\Plugins\D2L-Course-Launcher\lib\flox\launcher.py", line 16, in del__ self.run(debug) File "C:\Users\katchowski\AppData\Roaming\FlowLauncher\Plugins\D2L-Course-Launcher\lib\flox\launcher.py", line 22, in run if len(sys.argv) > 1: ^^^^^^^^^^^^^ TypeError: object of type 'NoneType' has no len()

---> System.IO.InvalidDataException: Traceback (most recent call last): File "C:\Users\katchowski\AppData\Roaming\FlowLauncher\Plugins\D2L-Course-Launcher\main.py", line 190, in CourseLauncher() File "C:\Users\katchowski\AppData\Roaming\FlowLauncher\Plugins\D2L-Course-Launcher\main.py", line 44, in init self.reload_data() # Load the configuration from file. ^^^^^^^^^^^^^^^^^^ File "C:\Users\katchowski\AppData\Roaming\FlowLauncher\Plugins\D2L-Course-Launcher\main.py", line 178, in reload_data data = json.load(fp) ^^^^^^^^^^^^^ File "C:\Users\katchowski\AppData\Local\Programs\Python\Python312\Lib\json__init.py", line 293, in load return loads(fp.read(), ^^^^^^^^^^^^^^^^ File "C:\Users\katchowski\AppData\Local\Programs\Python\Python312\Lib\json\init.py", line 346, in loads return _default_decoder.decode(s) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\katchowski\AppData\Local\Programs\Python\Python312\Lib\json\decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\katchowski\AppData\Local\Programs\Python\Python312\Lib\json\decoder.py", line 353, in raw_decode obj, end = self.scan_once(s, idx) ^^^^^^^^^^^^^^^^^^^^^^ json.decoder.JSONDecodeError: Expecting ',' delimiter: line 28 column 3 (char 590) Exception ignored in: <function Launcher.del at 0x0000024247750900> Traceback (most recent call last): File "C:\Users\katchowski\AppData\Roaming\FlowLauncher\Plugins\D2L-Course-Launcher\lib\flox\launcher.py", line 16, in del__ self.run(debug) File "C:\Users\katchowski\AppData\Roaming\FlowLauncher\Plugins\D2L-Course-Launcher\lib\flox\launcher.py", line 22, in run if len(sys.argv) > 1: ^^^^^^^^^^^^^ TypeError: object of type 'NoneType' has no len()

at Flow.Launcher.Core.Plugin.JsonRPCPlugin.ExecuteAsync(ProcessStartInfo startInfo, CancellationToken token) in C:\projects\flow-launcher\Flow.Launcher.Core\Plugin\JsonRPCPlugin.cs:line 243 at Flow.Launcher.Core.Plugin.JsonRPCPlugin.ExecuteAsync(ProcessStartInfo startInfo, CancellationToken token) in C:\projects\flow-launcher\Flow.Launcher.Core\Plugin\JsonRPCPlugin.cs:line 248 at Flow.Launcher.Core.Plugin.JsonRPCPlugin.QueryAsync(Query query, CancellationToken token) in C:\projects\flow-launcher\Flow.Launcher.Core\Plugin\JsonRPCPlugin.cs:line 261 at Flow.Launcher.Core.Plugin.PluginManager.<>cDisplayClass28_0.<b0>d.MoveNext() in C:\projects\flow-launcher\Flow.Launcher.Core\Plugin\PluginManager.cs:line 248 --- End of stack trace from previous location --- at Flow.Launcher.Infrastructure.Stopwatch.DebugAsync(String message, Func`1 action) in C:\projects\flow-launcher\Flow.Launcher.Infrastructure\Stopwatch.cs:line 34 at Flow.Launcher.Core.Plugin.PluginManager.QueryForPluginAsync(PluginPair pair, Query query, CancellationToken token) in C:\projects\flow-launcher\Flow.Launcher.Core\Plugin\PluginManager.cs:line 247 --- End of inner exception stack trace --- at Flow.Launcher.Core.Plugin.PluginManager.<>cDisplayClass28_1.b1(ActionContext ) in C:\projects\flow-launcher\Flow.Launcher.Core\Plugin\PluginManager.cs:line 276 at Flow.Launcher.Plugin.Result.ExecuteAsync(ActionContext context) in //Flow.Launcher.Plugin/Result.cs:line 246 at Flow.Launcher.ViewModel.MainViewModel.OpenResultAsync(String index) in C:\projects\flow-launcher\Flow.Launcher\ViewModel\MainViewModel.cs:line 389 at CommunityToolkit.Mvvm.Input.AsyncRelayCommand.AwaitAndThrowIfFailed(Task executionTask) at System.Threading.Tasks.Task.<>c.b__128_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)

Navnedia commented 1 week ago

Thanks for submitting an issue! Based on the exception message you provided, it seems like this might be a problem with your config file. You might be missing a comma , delimiter (possibly on line 28) in your config file. Let me know if that resolves your issue or not, and if not, please attach your config file so I can test and look into it further.

In any case, I might go ahead and make another issue to consider adding more robust error handling in these situations to tell the user when the config file may have an error.

Katchowski commented 1 week ago

I was missing a , on line 28 of my config file, however the plugin is still not responding despite multipul restarts of the plugin, flow launcher, and my system. I will attach my attach my logs file as well as paste the raw error from the plugin.

Error Message Flow Launcher version: 1.19.1 OS Version: 22631.4169 IntPtr Length: 8 x64: True Python Path: C:\Users\katchowski\AppData\Roaming\FlowLauncher\Environments\Python\PythonEmbeddable-v3.11.4\pythonw.exe Node Path: Date: 09/25/2024 00:04:25 Exception: D2L Course Launcher Exception: Websites: https://github.com/Navnedia/D2L-Course-Launcher Author: Navnedia Version: 0.2.0 Flow.Launcher.Core.ExternalPlugins.FlowPluginException: Traceback (most recent call last): File "C:\Users\katchowski\AppData\Roaming\FlowLauncher\Plugins\D2L-Course-Launcher\main.py", line 190, in CourseLauncher() File "C:\Users\katchowski\AppData\Roaming\FlowLauncher\Plugins\D2L-Course-Launcher\main.py", line 44, in __init__ self.reload_data() # Load the configuration from file. ^^^^^^^^^^^^^^^^^^ File "C:\Users\katchowski\AppData\Roaming\FlowLauncher\Plugins\D2L-Course-Launcher\main.py", line 178, in reload_data data = json.load(fp) ^^^^^^^^^^^^^ File "json\__init__.py", line 293, in load File "json\__init__.py", line 346, in loads File "json\decoder.py", line 337, in decode File "json\decoder.py", line 353, in raw_decode json.decoder.JSONDecodeError: Expecting ',' delimiter: line 28 column 3 (char 590) Exception ignored in: Traceback (most recent call last): File "C:\Users\katchowski\AppData\Roaming\FlowLauncher\Plugins\D2L-Course-Launcher\lib\flox\launcher.py", line 16, in __del__ self.run(debug) File "C:\Users\katchowski\AppData\Roaming\FlowLauncher\Plugins\D2L-Course-Launcher\lib\flox\launcher.py", line 22, in run if len(sys.argv) > 1: ^^^^^^^^^^^^^ TypeError: object of type 'NoneType' has no len() ---> System.IO.InvalidDataException: Traceback (most recent call last): File "C:\Users\katchowski\AppData\Roaming\FlowLauncher\Plugins\D2L-Course-Launcher\main.py", line 190, in CourseLauncher() File "C:\Users\katchowski\AppData\Roaming\FlowLauncher\Plugins\D2L-Course-Launcher\main.py", line 44, in __init__ self.reload_data() # Load the configuration from file. ^^^^^^^^^^^^^^^^^^ File "C:\Users\katchowski\AppData\Roaming\FlowLauncher\Plugins\D2L-Course-Launcher\main.py", line 178, in reload_data data = json.load(fp) ^^^^^^^^^^^^^ File "json\__init__.py", line 293, in load File "json\__init__.py", line 346, in loads File "json\decoder.py", line 337, in decode File "json\decoder.py", line 353, in raw_decode json.decoder.JSONDecodeError: Expecting ',' delimiter: line 28 column 3 (char 590) Exception ignored in: Traceback (most recent call last): File "C:\Users\katchowski\AppData\Roaming\FlowLauncher\Plugins\D2L-Course-Launcher\lib\flox\launcher.py", line 16, in __del__ self.run(debug) File "C:\Users\katchowski\AppData\Roaming\FlowLauncher\Plugins\D2L-Course-Launcher\lib\flox\launcher.py", line 22, in run if len(sys.argv) > 1: ^^^^^^^^^^^^^ TypeError: object of type 'NoneType' has no len() at Flow.Launcher.Core.Plugin.JsonRPCPlugin.ExecuteAsync(ProcessStartInfo startInfo, CancellationToken token) in C:\projects\flow-launcher\Flow.Launcher.Core\Plugin\JsonRPCPlugin.cs:line 243 at Flow.Launcher.Core.Plugin.JsonRPCPlugin.ExecuteAsync(ProcessStartInfo startInfo, CancellationToken token) in C:\projects\flow-launcher\Flow.Launcher.Core\Plugin\JsonRPCPlugin.cs:line 248 at Flow.Launcher.Core.Plugin.JsonRPCPlugin.QueryAsync(Query query, CancellationToken token) in C:\projects\flow-launcher\Flow.Launcher.Core\Plugin\JsonRPCPlugin.cs:line 261 at Flow.Launcher.Core.Plugin.PluginManager.<>c__DisplayClass28_0.<b__0>d.MoveNext() in C:\projects\flow-launcher\Flow.Launcher.Core\Plugin\PluginManager.cs:line 248 --- End of stack trace from previous location --- at Flow.Launcher.Infrastructure.Stopwatch.DebugAsync(String message, Func`1 action) in C:\projects\flow-launcher\Flow.Launcher.Infrastructure\Stopwatch.cs:line 34 at Flow.Launcher.Core.Plugin.PluginManager.QueryForPluginAsync(PluginPair pair, Query query, CancellationToken token) in C:\projects\flow-launcher\Flow.Launcher.Core\Plugin\PluginManager.cs:line 247 --- End of inner exception stack trace --- at Flow.Launcher.Core.Plugin.PluginManager.<>c__DisplayClass28_1.b__1(ActionContext _) in C:\projects\flow-launcher\Flow.Launcher.Core\Plugin\PluginManager.cs:line 276 at Flow.Launcher.Plugin.Result.ExecuteAsync(ActionContext context) in /_/Flow.Launcher.Plugin/Result.cs:line 246 at Flow.Launcher.ViewModel.MainViewModel.OpenResultAsync(String index) in C:\projects\flow-launcher\Flow.Launcher\ViewModel\MainViewModel.cs:line 389 at CommunityToolkit.Mvvm.Input.AsyncRelayCommand.AwaitAndThrowIfFailed(Task executionTask) at System.Threading.Tasks.Task.<>c.b__128_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)

2024-09-25.txt

Navnedia commented 1 week ago

Interesting, it seems to be the same error message as before. Assuming the configuration file was actually saved after you fixed the comma, I might need to look into it further. Can you please attach the Configuration.json file you made so I can try to replicate the bug on my machine.

Also worth noting, just in case, that the config file must be located at: C:/Users/%USERPROFILE%/AppData/Roaming/FlowLauncher/Settings/Plugins/D2L Course Launcher/ and the name must be Configuration.json.

Katchowski commented 1 week ago

The og solution was correct, I was just editing a file that was in the wrong folder so it wasn't actually changing the config.

100% my fault

closing this issue.