Git Product home page Git Product logo

vrchatlifelog's Introduction

VRChatLifelog

VRChatのログを解析して,過去に訪問したワールドや交流したユーザーを記録するツール

メイン画面のスクリーンショット

vrchatlifelog's People

Contributors

rioil avatar

Stargazers

 avatar

Watchers

 avatar

vrchatlifelog's Issues

ログの処理中に例外が発生することがある

出力されたログ

2022-12-01 18:37:27.4583 [Info] Reading C:\Users\rio\AppData\LocalLow\VRChat\VRChat\output_log_07-25-12.txt... 
2022-12-01 18:37:27.7878 [Info] Watching file changed to C:\Users\rio\AppData\LocalLow\VRChat\VRChat\output_log_2022-12-01_18-01-39.txt 
2022-12-01 18:37:27.7878 [Info] Starting log directory watching... 
2022-12-01 18:37:27.7878 [Info] Log directory watching started 
2022-12-01 18:37:27.9018 [Debug] Hosting started 
2022-12-01 22:26:31.1522 [Info] New log file created : C:\Users\rio\AppData\LocalLow\VRChat\VRChat\output_log_2022-12-01_22-26-31.txt 
2022-12-01 22:26:31.1522 [Info] Watching file changed to C:\Users\rio\AppData\LocalLow\VRChat\VRChat\output_log_2022-12-01_22-26-31.txt 
2022-12-01 22:26:31.1522 [Info] New log file created : C:\Users\rio\AppData\LocalLow\VRChat\VRChat\output_log_2022-12-01_22-26-31.txt 
2022-12-01 22:26:31.1522 [Info] Watching file changed to C:\Users\rio\AppData\LocalLow\VRChat\VRChat\output_log_2022-12-01_22-26-31.txt 
2022-12-01 22:46:35.3401 [Error] CurrentDomain_UnhandledException System.NullReferenceException: Object reference not set to an instance of an object.
   at VRChatLogWathcer.Models.LogWathcerService.<>c__DisplayClass27_0.<<ChangeWatchingFile>b__0>d.MoveNext() in D:\rio\dev\C#\VRChatLifelog\VRChatLogWathcer\Models\LogWathcerService.cs:line 320
--- End of stack trace from previous location ---
   at VRChatLogWathcer.Models.LogWathcerService.StopLogFileWatching() in D:\rio\dev\C#\VRChatLifelog\VRChatLogWathcer\Models\LogWathcerService.cs:line 374
   at VRChatLogWathcer.Models.LogWathcerService.ChangeWatchingFile(String filePath) in D:\rio\dev\C#\VRChatLifelog\VRChatLogWathcer\Models\LogWathcerService.cs:line 317
   at VRChatLogWathcer.Models.LogWathcerService.OnFileCreated(String fileFullPath) in D:\rio\dev\C#\VRChatLifelog\VRChatLogWathcer\Models\LogWathcerService.cs:line 186
   at System.Threading.Tasks.Task.<>c.<ThrowAsync>b__128_1(Object state)
   at System.Threading.QueueUserWorkItemCallback.<>c.<.cctor>b__6_0(QueueUserWorkItemCallback quwi)
   at System.Threading.ExecutionContext.RunForThreadPoolUnsafe[TState](ExecutionContext executionContext, Action`1 callback, TState& state)
   at System.Threading.QueueUserWorkItemCallback.Execute()
   at System.Threading.ThreadPoolWorkQueue.Dispatch()
   at System.Threading.PortableThreadPool.WorkerThread.WorkerThreadStart()

search-msファイルの条件数の制限について確認する

#12 では複数ロケーションで取られた写真を表示するためにsearch-msファイルを利用しています.
search-msスキーマでの最大クエリ長は超えることが出来ますが,search-msファイルにも条件数の制限があると思われます.
制限について調査し,制限の緩和方法があれば対応します.

PublicインスタンスへのJoin時のログが正しく記録されない

インスタンスJoinログを認識するための正規表現パターンが間違っているため,ログが正しく記録されていません.
この不具合が存在する状態でPublicインスタンスにJoinしたログは,ワールド名以外の情報が直近に滞在していたPublicインスタンス以外の情報になってしまっています.

絞り込み処理で例外が発生する

絞り込み処理を実行したときに例外が発生することがあります.

再現手順

- 日時を指定して絞り込み
- 表示されたインスタンスのどれかを選択
- 選択中のインスタンスを右クリックして,そのワールドで絞り込み
- プレイヤーのどれかを選択
- 選択中のプレイヤーを右クリックして,そのプレイヤーで絞り込み

プレイヤーで絞り込みを行うだけ

ログ

image

2024-04-12 08:23:00.5380 [Error] Dispatcher_UnhandledException System.InvalidOperationException: The source 'IQueryable' doesn't implement 'IAsyncEnumerable<VRChatLifelog.Data.LocationHistory>'. Only sources that implement 'IAsyncEnumerable' can be used for Entity Framework asynchronous operations.
   at Microsoft.EntityFrameworkCore.EntityFrameworkQueryableExtensions.AsAsyncEnumerable[TSource](IQueryable`1 source)
   at Microsoft.EntityFrameworkCore.EntityFrameworkQueryableExtensions.ToListAsync[TSource](IQueryable`1 source, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.EntityFrameworkQueryableExtensions.ToArrayAsync[TSource](IQueryable`1 source, CancellationToken cancellationToken)
   at VRChatLifelog.ViewModels.MainWindowViewModel.ApplyFilter() in D:\rio\dev\CSharp\VRChatLifelog\VRChatLifelog\ViewModels\MainWindowViewModel.cs:line 213
   at System.Threading.Tasks.Task.<>c.<ThrowAsync>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)

VRChatの起動と同じタイミングで起動するとエラーが発生する

既存ファイル読み取り中に,VRChatの起動によって古いファイルが削除されると例外が発生します

2022-05-17 07:22:29.3449 [Error] error occurred System.IO.FileNotFoundException: Could not find file 'C:\Users\rio\AppData\LocalLow\VRChat\VRChat\output_log_22-40-44.txt'.
File name: 'C:\Users\rio\AppData\LocalLow\VRChat\VRChat\output_log_22-40-44.txt'
   at Microsoft.Win32.SafeHandles.SafeFileHandle.CreateFile(String fullPath, FileMode mode, FileAccess access, FileShare share, FileOptions options)
   at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String fullPath, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize)
   at System.IO.Strategies.OSFileStreamStrategy..ctor(String path, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize)
   at VRChatLogWathcer.Models.LogWathcerService.ReadLogFile(String path) in D:\rio\dev\C#\VRChatLifelog\VRChatLogWathcer\Models\LogWathcerService.cs:line 220
   at VRChatLogWathcer.Models.LogWathcerService.<StartLogFileWatching>b__21_2(String path) in D:\rio\dev\C#\VRChatLifelog\VRChatLogWathcer\Models\LogWathcerService.cs:line 290
   at VRChatLogWathcer.Extensions.IEnumerableExtensions.ForEach[T](IEnumerable`1 items, Action`1 action) in D:\rio\dev\C#\VRChatLifelog\VRChatLogWathcer\Extensions\IEnumerableExtensions.cs:line 15
   at VRChatLogWathcer.Models.LogWathcerService.StartLogFileWatching() in D:\rio\dev\C#\VRChatLifelog\VRChatLogWathcer\Models\LogWathcerService.cs:line 290
   at VRChatLogWathcer.Models.LogWathcerService.ExecuteAsync(CancellationToken stoppingToken) in D:\rio\dev\C#\VRChatLifelog\VRChatLogWathcer\Models\LogWathcerService.cs:line 88
   at Microsoft.Extensions.Hosting.Internal.Host.StartAsync(CancellationToken cancellationToken)
   at VRChatLogWathcer.App.OnStartup(StartupEventArgs e) in D:\rio\dev\C#\VRChatLifelog\VRChatLogWathcer\App.xaml.cs:line 71
   at System.Threading.Tasks.Task.<>c.<ThrowAsync>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)
   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 VRChatLogWathcer.App.Main() in D:\rio\dev\C#\VRChatLifelog\VRChatLogWathcer\App.xaml.cs:line 31

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.