Jump to content

Developing a standalone embystat server


reggi

Recommended Posts

Painkiller8818
25 minutes ago, reggi said:

Looks like S05E13 (We Love You to DeAth) does not exist on thetvdb. Not sure which of the two is wrong here. That's why it is stating you have a missing episode. 

Thanks for the info. I would say themoviedb is wrong as thetvdb and imdb both have 25 episodes with the correct names.

Thetvdb is unfortunately the most inaccurate of all for tv shows but pretty good for movies

Link to comment
Share on other sites

I'm looking more into the tmdb episodes. Seems like that S05E13 is a special episode, so maybe I can try to skip that one. On thetvdb it is marked as S00E10. I'll have a look what kind of info I get back from tmdb to see how I can skip those specials in the sync.

Link to comment
Share on other sites

horstepipe

Hey reggi

I was about to use your nice tool to basically find series with missing seasons.

Logging in on a remote server was successful, then I was trying to start a sync of my tv shows.

The first shows processed fine, but after some time I'm getting an SQLite error:

2022-06-12 17:01:12.368] [EmbyStat.Jobs.Jobs.Sync.ShowSyncJob]  [INF] Found 0 missing episodes for show Arielle, die Meerjungfrau
[2022-06-12 17:01:12.944] [EmbyStat.Jobs.Jobs.Sync.ShowSyncJob]  [INF] Found 0 missing episodes for show Armitage III
[2022-06-12 17:01:13.354] [EmbyStat.Jobs.Jobs.Sync.ShowSyncJob]  [ERR] Error while running job
Microsoft.Data.Sqlite.SqliteException (0x80004005): SQLite Error 19: 'FOREIGN KEY constraint failed'.
   at Microsoft.Data.Sqlite.SqliteException.ThrowExceptionForRC(Int32 rc, sqlite3 db)
   at Microsoft.Data.Sqlite.SqliteDataReader.NextResult()
   at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader(CommandBehavior behavior)
   at Microsoft.Data.Sqlite.SqliteCommand.ExecuteNonQuery()
   at System.Data.Common.DbCommand.ExecuteNonQueryAsync(CancellationToken cancellationToken)
--- End of stack trace from previous location ---
   at Dapper.SqlMapper.ExecuteMultiImplAsync(IDbConnection cnn, CommandDefinition command, IEnumerable multiExec) in /_/Dapper/SqlMapper.Async.cs:line 624
   at EmbyStat.Core.Shows.ShowRepository.UpsertShows(IEnumerable`1 shows)
   at EmbyStat.Core.Shows.ShowRepository.UpsertShows(IEnumerable`1 shows)
   at EmbyStat.Core.Shows.ShowRepository.UpsertShows(IEnumerable`1 shows)
   at EmbyStat.Core.Shows.ShowRepository.UpsertShows(IEnumerable`1 shows)
   at EmbyStat.Jobs.Jobs.Sync.ShowSyncJob.ProcessShowBlock(Library library, IEnumerable`1 genres, Int32 index, Int32 limit, Double increment)
   at EmbyStat.Jobs.Jobs.Sync.ShowSyncJob.ProcessShowsAsync()
   at EmbyStat.Jobs.Jobs.Sync.ShowSyncJob.RunJobAsync()
   at EmbyStat.Jobs.BaseJob.Execute()
[2022-06-12 17:01:13.563] [EmbyStat.Jobs.Jobs.Sync.ShowSyncJob]  [ERR] SQLite Error 19: 'FOREIGN KEY constraint failed'.
[2022-06-12 17:01:13.575] [EmbyStat.Jobs.Jobs.Sync.ShowSyncJob]  [ERR] Job failed, check logs for more info.
[2022-06-12 17:01:13.594] [Hangfire.AutomaticRetryAttribute]  [WRN] Failed to process the job '09d2eb49-7e52-44ca-8572-2b0e59d0a608': an exception occurred. Retry attempt 1 of 2 will be performed in 00:00:20.
Microsoft.Data.Sqlite.SqliteException (0x80004005): SQLite Error 19: 'FOREIGN KEY constraint failed'.
   at Microsoft.Data.Sqlite.SqliteException.ThrowExceptionForRC(Int32 rc, sqlite3 db)
   at Microsoft.Data.Sqlite.SqliteDataReader.NextResult()
   at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader(CommandBehavior behavior)
   at Microsoft.Data.Sqlite.SqliteCommand.ExecuteNonQuery()
   at System.Data.Common.DbCommand.ExecuteNonQueryAsync(CancellationToken cancellationToken)
--- End of stack trace from previous location ---
   at Dapper.SqlMapper.ExecuteMultiImplAsync(IDbConnection cnn, CommandDefinition command, IEnumerable multiExec) in /_/Dapper/SqlMapper.Async.cs:line 624
   at EmbyStat.Core.Shows.ShowRepository.UpsertShows(IEnumerable`1 shows)
   at EmbyStat.Core.Shows.ShowRepository.UpsertShows(IEnumerable`1 shows)
   at EmbyStat.Core.Shows.ShowRepository.UpsertShows(IEnumerable`1 shows)
   at EmbyStat.Core.Shows.ShowRepository.UpsertShows(IEnumerable`1 shows)
   at EmbyStat.Jobs.Jobs.Sync.ShowSyncJob.ProcessShowBlock(Library library, IEnumerable`1 genres, Int32 index, Int32 limit, Double increment)
   at EmbyStat.Jobs.Jobs.Sync.ShowSyncJob.ProcessShowsAsync()
   at EmbyStat.Jobs.Jobs.Sync.ShowSyncJob.RunJobAsync()
   at EmbyStat.Jobs.BaseJob.Execute()
   at EmbyStat.Jobs.BaseJob.Execute()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
[2022-06-12 17:01:13.697] [Microsoft.EntityFrameworkCore.Query]  [WRN] The query uses the 'First'/'FirstOrDefault' operator without 'OrderBy' and filter operators. This may lead to unpredictable results.
[2022-06-12 17:01:13.712] [Microsoft.EntityFrameworkCore.Query]  [WRN] The query uses the 'First'/'FirstOrDefault' operator without 'OrderBy' and filter operators. This may lead to unpredictable results.

any idea?

 

best regards

Link to comment
Share on other sites

t123thomas

Hi Reggi Thanks for the development of this tool, I finally got it working

My observations are :

When I statrt the tool from windows as admin it will lunch the the command screen as below but I can not get into loH6555 then I  will go back to the command screen pressed enter on the the key board the I will be able to lunch the application

The first scripts will not luanch the tool

[2022-06-12 16:18:03.793] []  [INF] --------------------------------------------------------------------
[2022-06-12 16:18:03.879] []  [INF] System info:
[2022-06-12 16:18:03.882] []  [INF]     Environment     Production
[2022-06-12 16:18:03.884] []  [INF]     Debugger        False
[2022-06-12 16:18:03.903] []  [INF]     Process Name    EmbyStat
[2022-06-12 16:18:03.905] []  [INF]     Log level:      Information
[2022-06-12 16:18:03.908] []  [INF]     Port:           6555
[2022-06-12 16:18:03.910] []  [INF]     URL's:          http://*
[2022-06-12 16:18:03.915] []  [INF]     ConfigDir:      C:\ProgramData\EmbyStat
[2022-06-12 16:18:03.917] []  [INF]     DataDir:        C:\ProgramData\EmbyStat
[2022-06-12 16:18:03.919] []  [INF]     LogDir:         C:\ProgramData\EmbyStat\logs
[2022-06-12 16:18:03.921] []  [INF]     Can update:     True
[2022-06-12 16:18:03.922] []  [INF]     As service:     False
[2022-06-12 16:18:03.925] []  [INF] --------------------------------------------------------------------

After I pressed entered on the key board these scripts was generated then I was able to luannch the tool

[2022-06-12 16:18:08.244] [Microsoft.Hosting.Lifetime]  [INF] Now listening on: http://[::]:6555
[2022-06-12 16:18:10.206] [Microsoft.Hosting.Lifetime]  [INF] Application started. Press Ctrl+C to shut down.
[2022-06-12 16:18:10.208] [Microsoft.Hosting.Lifetime]  [INF] Hosting environment: Production
[2022-06-12 16:18:10.210] [Microsoft.Hosting.Lifetime]  [INF] Content root path: C:\Program Files\EmbyStat

 

My movies and Tvshoes Sync with embyserve,

;Dashbaord looks like its under construction as its blank/no analysis except for this noticification

Welcome to EmbyStat

This is a static welcome page (not translated). Currently this is still a work in progress and a lot of stuff is not yet implemented or broken. If you find a bug feel free to log it on https://github.com/mregni/EmbyStat

I did a full remake of the frontend in React (instead of Angular). It has taken me a lot of time but I think that the UI looks better and less buggy. Currently the biggest thing that is missing are shows. They will be re-added in the next beta release soon.

Any page with the following image is in need of review by me, so it can be buggy.

Let me know if you have spectic function that you will like to test

 

Thanks for the eforts

 

;

Link to comment
Share on other sites

t123thomas

[2022-06-12 18:47:38.395] []  [INF] --------------------------------------------------------------------
[2022-06-12 18:47:38.482] []  [INF] System info:
[2022-06-12 18:47:38.487] []  [INF]     Environment     Production
[2022-06-12 18:47:38.490] []  [INF]     Debugger        False
[2022-06-12 18:47:38.556] []  [INF]     Process Name    EmbyStat
[2022-06-12 18:47:38.560] []  [INF]     Log level:      Information
[2022-06-12 18:47:38.563] []  [INF]     Port:           6555
[2022-06-12 18:47:38.567] []  [INF]     URL's:          http://*
[2022-06-12 18:47:38.571] []  [INF]     ConfigDir:      C:\ProgramData\EmbyStat
[2022-06-12 18:47:38.574] []  [INF]     DataDir:        C:\ProgramData\EmbyStat
[2022-06-12 18:47:38.582] []  [INF]     LogDir:         C:\ProgramData\EmbyStat\logs
[2022-06-12 18:47:38.586] []  [INF]     Can update:     True
[2022-06-12 18:47:38.591] []  [INF]     As service:     False
[2022-06-12 18:47:38.594] []  [INF] --------------------------------------------------------------------
[2022-06-12 18:47:50.598] [Microsoft.Hosting.Lifetime]  [INF] Now listening on: http://[::]:6555
[2022-06-12 18:48:29.952] [EmbyStat.Common.Exceptions.BusinessExceptionFilterAttribute]  [ERR] Exception occured
System.NullReferenceException: Object reference not set to an instance of an object.
   at EmbyStat.Controllers.Settings.SettingsController.Get()
   at lambda_method77(Closure , Object , Object[] )
   at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.SyncActionResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeActionMethodAsync()
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeNextActionFilterAsync()
--- End of stack trace from previous location ---
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()
--- End of stack trace from previous location ---
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextExceptionFilterAsync>g__Awaited|26_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
[2022-06-12 18:48:29.952] [EmbyStat.Common.Exceptions.BusinessExceptionFilterAttribute]  [ERR] Exception occured
System.NullReferenceException: Object reference not set to an instance of an object.
   at EmbyStat.Services.MediaServerService..ctor(IClientStrategy clientStrategy, IMediaServerRepository mediaServerRepository, ISessionService sessionService, ISettingsService settingsService, ILogger`1 logger, IStatisticsRepository statisticsRepository, IJobRepository jobRepository)
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Span`1& arguments, Signature sig, Boolean constructor, Boolean wrapExceptions)
   at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite constructorCallSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitDisposeCache(ServiceCallSite transientCallSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(ServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite constructorCallSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitDisposeCache(ServiceCallSite transientCallSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(ServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite constructorCallSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitDisposeCache(ServiceCallSite transientCallSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(ServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.Resolve(ServiceCallSite callSite, ServiceProviderEngineScope scope)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.DynamicServiceProviderEngine.<>c__DisplayClass2_0.<RealizeService>b__0(ServiceProviderEngineScope scope)
   at Microsoft.Extensions.DependencyInjection.ServiceProvider.GetService(Type serviceType, ServiceProviderEngineScope serviceProviderEngineScope)
   at Microsoft.Extensions.DependencyInjection.ActivatorUtilities.GetService(IServiceProvider sp, Type type, Type requiredBy, Boolean isDefaultParameterRequired)
   at lambda_method79(Closure , IServiceProvider , Object[] )
   at Microsoft.AspNetCore.Mvc.Controllers.ControllerActivatorProvider.<>c__DisplayClass7_0.<CreateActivator>b__0(ControllerContext controllerContext)
   at Microsoft.AspNetCore.Mvc.Controllers.ControllerFactoryProvider.<>c__DisplayClass6_0.<CreateControllerFactory>g__CreateController|0(ControllerContext controllerContext)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()
--- End of stack trace from previous location ---
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextExceptionFilterAsync>g__Awaited|26_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
[2022-06-12 18:48:53.415] [Microsoft.Hosting.Lifetime]  [INF] Application started. Press Ctrl+C to shut down.
[2022-06-12 18:48:53.419] [Microsoft.Hosting.Lifetime]  [INF] Hosting environment: Production
[2022-06-12 18:48:53.423] [Microsoft.Hosting.Lifetime]  [INF] Content root path: C:\Program Files\EmbyStat
[2022-06-12 18:49:22.745] [Microsoft.EntityFrameworkCore.Database.Command]  [ERR] Failed executing DbCommand (5ms) [Parameters=[@p15='?' (Size = 36), @p0='?' (DbType = Int32), @p1='?' (Size = 36), @p2='?' (Size = 17), @p3='?' (DbType = Boolean), @p4='?' (DbType = Boolean), @p5='?' (DbType = DateTimeOffset), @p6='?' (Size = 17), @p7='?' (Size = 6), @p8='?' (Size = 84), @p9='?', @p10='?' (DbType = Boolean), @p11='?' (Size = 32), @p12='?' (DbType = Boolean), @p13='?' (Size = 6), @p14='?' (Size = 368)], CommandType='Text', CommandTimeout='30']
UPDATE "Users" SET "AccessFailedCount" = @p0, "ConcurrencyStamp" = @p1, "Email" = @p2, "EmailConfirmed" = @p3, "LockoutEnabled" = @p4, "LockoutEnd" = @p5, "NormalizedEmail" = @p6, "NormalizedUserName" = @p7, "PasswordHash" = @p8, "PhoneNumber" = @p9, "PhoneNumberConfirmed" = @p10, "SecurityStamp" = @p11, "TwoFactorEnabled" = @p12, "UserName" = @p13, "RefreshTokens" = @p14
WHERE "Id" = @p15;
SELECT changes();
[2022-06-12 18:49:22.812] [Microsoft.EntityFrameworkCore.Update]  [ERR] An exception occurred in the database while saving changes for context type 'EmbyStat.Repositories.EsDbContext'.
Microsoft.EntityFrameworkCore.DbUpdateException: An error occurred while saving the entity changes. See the inner exception for details.
 ---> Microsoft.Data.Sqlite.SqliteException (0x80004005): SQLite Error 8: 'attempt to write a readonly database'.
   at Microsoft.Data.Sqlite.SqliteException.ThrowExceptionForRC(Int32 rc, sqlite3 db)
   at Microsoft.Data.Sqlite.SqliteDataReader.NextResult()
   at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader(CommandBehavior behavior)
   at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReaderAsync(CommandBehavior behavior, CancellationToken cancellationToken)
   at Microsoft.Data.Sqlite.SqliteCommand.ExecuteDbDataReaderAsync(CommandBehavior behavior, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.ExecuteAsync(IRelationalConnection connection, CancellationToken cancellationToken)
   --- End of inner exception stack trace ---
   at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.ExecuteAsync(IRelationalConnection connection, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(IList`1 entriesToSave, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(StateManager stateManager, Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.DbContext.SaveChangesAsync(Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken)
Microsoft.EntityFrameworkCore.DbUpdateException: An error occurred while saving the entity changes. See the inner exception for details.
 ---> Microsoft.Data.Sqlite.SqliteException (0x80004005): SQLite Error 8: 'attempt to write a readonly database'.
   at Microsoft.Data.Sqlite.SqliteException.ThrowExceptionForRC(Int32 rc, sqlite3 db)
   at Microsoft.Data.Sqlite.SqliteDataReader.NextResult()
   at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader(CommandBehavior behavior)
   at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReaderAsync(CommandBehavior behavior, CancellationToken cancellationToken)
   at Microsoft.Data.Sqlite.SqliteCommand.ExecuteDbDataReaderAsync(CommandBehavior behavior, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.ExecuteAsync(IRelationalConnection connection, CancellationToken cancellationToken)
   --- End of inner exception stack trace ---
   at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.ExecuteAsync(IRelationalConnection connection, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(IList`1 entriesToSave, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(StateManager stateManager, Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.DbContext.SaveChangesAsync(Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken)
[2022-06-12 18:49:24.032] [EmbyStat.Common.Exceptions.BusinessExceptionFilterAttribute]  [ERR] Exception occured
Microsoft.EntityFrameworkCore.DbUpdateException: An error occurred while saving the entity changes. See the inner exception for details.
 ---> Microsoft.Data.Sqlite.SqliteException (0x80004005): SQLite Error 8: 'attempt to write a readonly database'.
   at Microsoft.Data.Sqlite.SqliteException.ThrowExceptionForRC(Int32 rc, sqlite3 db)
   at Microsoft.Data.Sqlite.SqliteDataReader.NextResult()
   at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader(CommandBehavior behavior)
   at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReaderAsync(CommandBehavior behavior, CancellationToken cancellationToken)
   at Microsoft.Data.Sqlite.SqliteCommand.ExecuteDbDataReaderAsync(CommandBehavior behavior, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.ExecuteAsync(IRelationalConnection connection, CancellationToken cancellationToken)
   --- End of inner exception stack trace ---
   at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.ExecuteAsync(IRelationalConnection connection, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(IList`1 entriesToSave, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(StateManager stateManager, Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.DbContext.SaveChangesAsync(Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.DbContext.SaveChangesAsync(Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken)
   at Microsoft.AspNetCore.Identity.EntityFrameworkCore.UserStore`9.UpdateAsync(TUser user, CancellationToken cancellationToken)
   at Microsoft.AspNetCore.Identity.UserManager`1.UpdateUserAsync(TUser user)
   at EmbyStat.Services.AccountService.Authenticate(AuthenticateRequest login, String remoteIp)
   at EmbyStat.Controllers.Account.AccountController.Login(AuthenticateRequest login)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.TaskOfIActionResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeActionMethodAsync>g__Awaited|12_0(ControllerActionInvoker invoker, ValueTask`1 actionResultValueTask)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeNextActionFilterAsync>g__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()
--- End of stack trace from previous location ---
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextExceptionFilterAsync>g__Awaited|26_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
[2022-06-12 18:49:34.280] [Microsoft.EntityFrameworkCore.Database.Command]  [ERR] Failed executing DbCommand (1ms) [Parameters=[@p15='?' (Size = 36), @p0='?' (DbType = Int32), @p1='?' (Size = 36), @p2='?' (Size = 17), @p3='?' (DbType = Boolean), @p4='?' (DbType = Boolean), @p5='?' (DbType = DateTimeOffset), @p6='?' (Size = 17), @p7='?' (Size = 6), @p8='?' (Size = 84), @p9='?', @p10='?' (DbType = Boolean), @p11='?' (Size = 32), @p12='?' (DbType = Boolean), @p13='?' (Size = 6), @p14='?' (Size = 368)], CommandType='Text', CommandTimeout='30']
UPDATE "Users" SET "AccessFailedCount" = @p0, "ConcurrencyStamp" = @p1, "Email" = @p2, "EmailConfirmed" = @p3, "LockoutEnabled" = @p4, "LockoutEnd" = @p5, "NormalizedEmail" = @p6, "NormalizedUserName" = @p7, "PasswordHash" = @p8, "PhoneNumber" = @p9, "PhoneNumberConfirmed" = @p10, "SecurityStamp" = @p11, "TwoFactorEnabled" = @p12, "UserName" = @p13, "RefreshTokens" = @p14
WHERE "Id" = @p15;
SELECT changes();
[2022-06-12 18:49:34.293] [Microsoft.EntityFrameworkCore.Update]  [ERR] An exception occurred in the database while saving changes for context type 'EmbyStat.Repositories.EsDbContext'.
Microsoft.EntityFrameworkCore.DbUpdateException: An error occurred while saving the entity changes. See the inner exception for details.
 ---> Microsoft.Data.Sqlite.SqliteException (0x80004005): SQLite Error 8: 'attempt to write a readonly database'.
   at Microsoft.Data.Sqlite.SqliteException.ThrowExceptionForRC(Int32 rc, sqlite3 db)
   at Microsoft.Data.Sqlite.SqliteDataReader.NextResult()
   at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader(CommandBehavior behavior)
   at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReaderAsync(CommandBehavior behavior, CancellationToken cancellationToken)
   at Microsoft.Data.Sqlite.SqliteCommand.ExecuteDbDataReaderAsync(CommandBehavior behavior, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.ExecuteAsync(IRelationalConnection connection, CancellationToken cancellationToken)
   --- End of inner exception stack trace ---
   at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.ExecuteAsync(IRelationalConnection connection, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(IList`1 entriesToSave, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(StateManager stateManager, Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.DbContext.SaveChangesAsync(Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken)
Microsoft.EntityFrameworkCore.DbUpdateException: An error occurred while saving the entity changes. See the inner exception for details.
 ---> Microsoft.Data.Sqlite.SqliteException (0x80004005): SQLite Error 8: 'attempt to write a readonly database'.
   at Microsoft.Data.Sqlite.SqliteException.ThrowExceptionForRC(Int32 rc, sqlite3 db)
   at Microsoft.Data.Sqlite.SqliteDataReader.NextResult()
   at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader(CommandBehavior behavior)
   at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReaderAsync(CommandBehavior behavior, CancellationToken cancellationToken)
   at Microsoft.Data.Sqlite.SqliteCommand.ExecuteDbDataReaderAsync(CommandBehavior behavior, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.ExecuteAsync(IRelationalConnection connection, CancellationToken cancellationToken)
   --- End of inner exception stack trace ---
   at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.ExecuteAsync(IRelationalConnection connection, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(IList`1 entriesToSave, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(StateManager stateManager, Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.DbContext.SaveChangesAsync(Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken)
[2022-06-12 18:49:34.959] [EmbyStat.Common.Exceptions.BusinessExceptionFilterAttribute]  [ERR] Exception occured
Microsoft.EntityFrameworkCore.DbUpdateException: An error occurred while saving the entity changes. See the inner exception for details.
 ---> Microsoft.Data.Sqlite.SqliteException (0x80004005): SQLite Error 8: 'attempt to write a readonly database'.
   at Microsoft.Data.Sqlite.SqliteException.ThrowExceptionForRC(Int32 rc, sqlite3 db)
   at Microsoft.Data.Sqlite.SqliteDataReader.NextResult()
   at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader(CommandBehavior behavior)
   at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReaderAsync(CommandBehavior behavior, CancellationToken cancellationToken)
   at Microsoft.Data.Sqlite.SqliteCommand.ExecuteDbDataReaderAsync(CommandBehavior behavior, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.ExecuteAsync(IRelationalConnection connection, CancellationToken cancellationToken)
   --- End of inner exception stack trace ---
   at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.ExecuteAsync(IRelationalConnection connection, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(IList`1 entriesToSave, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(StateManager stateManager, Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.DbContext.SaveChangesAsync(Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.DbContext.SaveChangesAsync(Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken)
   at Microsoft.AspNetCore.Identity.EntityFrameworkCore.UserStore`9.UpdateAsync(TUser user, CancellationToken cancellationToken)
   at Microsoft.AspNetCore.Identity.UserManager`1.UpdateUserAsync(TUser user)
   at EmbyStat.Services.AccountService.Authenticate(AuthenticateRequest login, String remoteIp)
   at EmbyStat.Controllers.Account.AccountController.Login(AuthenticateRequest login)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.TaskOfIActionResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeActionMethodAsync>g__Awaited|12_0(ControllerActionInvoker invoker, ValueTask`1 actionResultValueTask)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeNextActionFilterAsync>g__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()
--- End of stack trace from previous location ---
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextExceptionFilterAsync>g__Awaited|26_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)

 

Link to comment
Share on other sites

Hi @horstepipe and @t123thomas can you please run embystat with flag "-g 1" so I get debugging information in the logs? It will post a lot of logging, so please PM me with the log file instead of posting it here. It also can contain your IP address and stuff, so please do a quick check before sending it to me.

  • Thanks 1
Link to comment
Share on other sites

t123thomas
12 hours ago, reggi said:

Hi @horstepipe and @t123thomas can you please run embystat with flag "-g 1" so I get debugging information in the logs? It will post a lot of logging, so please PM me with the log file instead of posting it here. It also can contain your IP address and stuff, so please do a quick check before sending it to me.

Sorry silly question, how to run this -g 1

Link to comment
Share on other sites

11 hours ago, t123thomas said:

Sorry silly question, how to run this -g 1

If you are running it locally, you can open a command window where embystat.exe is located and then run "embystat.exe -g 1" command in the window. If that works send me the log file in a PM.

Link to comment
Share on other sites

One bug i found was that it dosent update when i make changes to a movie.

For example i have changed a few *.iso movies to *.mkv because i want Emby to be able to rum them better.

But Embystat dosen't seem to see these changes.

Link to comment
Share on other sites

Just released beta.37 that will normally will fix the current exceptions. Also I added 3 more sorting columns in the show list (state, seasons and episodes)

@Ametz, I will look into your issue asap. I'm using the MinDateLastSaved on Emby to check if I need to update the media. Looks like that fails for some reason. I created a github issue for tracking here

  • Thanks 1
Link to comment
Share on other sites

Junglejim
On 21/06/2022 at 16:15, reggi said:

Just released beta.37 that will normally will fix the current exceptions. Also I added 3 more sorting columns in the show list (state, seasons and episodes)

@Ametz, I will look into your issue asap. I'm using the MinDateLastSaved on Emby to check if I need to update the media. Looks like that fails for some reason. I created a github issue for tracking here

Hi mate, still having no luck spinning this up in a docker. I added the '--update-enable false' flag as CLI_ARGS to docker compose but that didn't work.

This is my compose file..

---
version: "2.1"
services:
  embystat:
    image: lscr.io/linuxserver/embystat:latest
    container_name: embystat
    environment:
      - PUID=998
      - PGID=100
      - TZ=Australia/Adelaide
      - CLI_ARGS=--update-enable false
    volumes:
      - /var/lib/docker/appdata/embystat:/config
    ports:
      - 6555:6555
    restart: unless-stopped

Scratch the above.. I finally got it running with the above compose file. Not sure why it suddenly decided to work but glad it did. :)

Is the CLI_ARGS=--update-enable false correct? Do I still need that?

Edited by Junglejim
Link to comment
Share on other sites

Junglejim

Got it running but now I have a problem with specials and the episode count. I think that's to do with TvMaze, they don't seem to cater for specials like TvDB.

Personally I think TvMaze is a piece of crap but I understand why you would use it because of TvDB's move to charge for there community DB.. LOL, What a joke that is. Wish I'd never contributed to that site!!

Maybe have TvMaze as the fallback and go with TMDB as primary?

Never mind, I think its back to the plugin for me (for tvshow count, hopefully you can get it sorted). :)

Edited by Junglejim
Link to comment
Share on other sites

  • 3 weeks later...

Finally found time to test again...
I'm testing on a virtual Win10 Pro where I have cleaned up - I think, at least - all left over stuff from earlier EmbyStat installs.
The install goes without any errors - but EmbyStat does not pick up any movies nor shows.
EmbyStat seems to connect to Emby Server - at least the Server Info page is populated. Although Plugins section is empty...
Anyone have an idea to where I fail?
The attached logfile is from the install. 
A "Show synchronization" task job looks like:

5:36 PM 07/10/2022	SHOW-SYNC	---------------------------------
5:36 PM 07/10/2022	SHOW-SYNC	Job finished after 1 minute.
5:36 PM 07/10/2022	SHOW-SYNC	---------------------------------
5:36 PM 07/10/2022	SHOW-SYNC	Calculations done
5:36 PM 07/10/2022	SHOW-SYNC	Calculating show statistics
5:36 PM 07/10/2022	SHOW-SYNC	0 libraries are selected, getting ready for processing
5:36 PM 07/10/2022	SHOW-SYNC	Processing shows
5:36 PM 07/10/2022	SHOW-SYNC	Processing genres
5:36 PM 07/10/2022	SHOW-SYNC	Processing information from 48146 people
5:36 PM 07/10/2022	SHOW-SYNC	---------------------------------
5:36 PM 07/10/2022	SHOW-SYNC	Starting job
5:36 PM 07/10/2022	SHOW-SYNC	---------------------------------
5:36 PM 07/10/2022	JOBS	SHOW-SYNC job queued

 

log20220710.txt

Link to comment
Share on other sites

Hi @pju, if you go to the settings page. Can you see if any libaries are selected for scanning? 

Seems that no libraries are selected for scanning resulting in an empty show and movie page. I'll have a detailed look when I get home 

Link to comment
Share on other sites

Hi,
Nope, both movies and shows are blank. 
Just thought an old issue might have re-surfaced - all my libraries are "Mixed Content".
But making a library with type "movies" made no difference. Still not detected.

A curious question - when calling EmbyStat.exe - is there a difference between "-g 1" and "--log-level 1" ?
Emby Server is btw latest: 4.7.5.0.

log20220711.txt

Link to comment
Share on other sites

On 7/11/2022 at 10:00 AM, pju said:

Hi,
Nope, both movies and shows are blank. 
Just thought an old issue might have re-surfaced - all my libraries are "Mixed Content".
But making a library with type "movies" made no difference. Still not detected.

A curious question - when calling EmbyStat.exe - is there a difference between "-g 1" and "--log-level 1" ?
Emby Server is btw latest: 4.7.5.0.

log20220711.txt 349.93 kB · 0 downloads

I'm working on the "mixed content" issue. Does your mixed libraries contains movies and shows or only movies for example?

It's a quick fix to enable syncing the mixed libraries, but letting EmbyStat scan mixed libraries for movies AND shows is a bigger change I need to make.

Link to comment
Share on other sites

I'm afraid it is a mix 😞 
Crime is crime -whether being a movie or a show.

I even have some (few) mixed within a folder. Here the Swedish police saga "Beck", which started with a couple of cinema films and the came as TV-series. And I want to keep it together under "Beck".
But that is not a must - the movies can be put into Series 00.

image.png.72229a7bc9a601bc24b733d5107fcf7e.png

But I created a library of type "Movies"  - and that did not show either. Is that because I have mixed content in other libraries?
Can see we were around this in 2020 but a lot of water under the bridges since that 🙂 

 

 

Link to comment
Share on other sites

@pju seems like I found a solution and I will upload a new release just before I go on holiday. Let hope it works on your server as well now.

You will be able to select mixed libraries for shows and movies. I also tested with my dev server and both movies and shows are picked up by EmbyStat in the mixed content library so seems promising. I'll upload a version this evening and let you know when that happens.

Link to comment
Share on other sites

👍 Great, thanks a lot!

And don't let it get in the way for your holiday.

Link to comment
Share on other sites

  • 3 weeks later...
On 7/29/2022 at 9:07 AM, reggi said:

It's a bit late but I created a new release Release v0.2.0-beta.38 · mregni/EmbyStat (github.com)

Let's hope that fixes your issues with the mixed libraries :)

Yes, works fine 👍
But - resulting in new comments 😉

  1. Seems that EmbyStat data goes into the install folder, not matter what is set during setup.
    I have attached 2 screen dumps to show where I wanted the data folder and where it went.
  2. EmbyStat see 156 shows and I count 158 "series.xml" files, so out of curiosity I went hunting for the cause.
    (Is there a way to dump the show list for a compare?)
    And as a "let me try", I created a filter "Starting with 'A'". That made EmbyStat pretty unhappy as can be seen in the logfile.
  3. I could wish being able to set TMDB as primary lookup. I have never used TVDB as primary so the chances for TMDB id being present and correct is way bigger.
  4. Since my language is not an option I set the language to English - no problem, I like to use English anyway.
    But - that also gives me the format: AM/PM and worse: mm/dd/yyyy.  Maybe you could offer to use the OS regional settings for date/time.

I must say you've done a great piece of work since I last saw it. Very good job!

EmbyStat CMD Window.PNG

EmbyStat Setup Confirmation Window.PNG

log20220731.txt

Link to comment
Share on other sites

Thanks for the feedback!

I created some GitHub issues to track all of them

Installer issue: Installer data folder not used after install · Issue #1851 · mregni/EmbyStat (github.com)

Using TMDB will take some risks because they sometimes count a special episode as a normal one and there is no way for me to know if it's a special episode. This was a bug when I first used TMDB because people were seeing too many episodes in a season. I'm not sure if I will make it possible to select an indexer for every show for now but I need to think about it some more.

Separating language and date formats have been on my mind as well and I will think about how I can easily implement this in the near future for sure. I'll keep you posted. For now, I also have to work with mm/dd/yyyy

Link to comment
Share on other sites

6 hours ago, reggi said:

Thanks for the feedback!

I created some GitHub issues to track all of them

Installer issue: Installer data folder not used after install · Issue #1851 · mregni/EmbyStat (github.com)

Using TMDB will take some risks because they sometimes count a special episode as a normal one and there is no way for me to know if it's a special episode. This was a bug when I first used TMDB because people were seeing too many episodes in a season. I'm not sure if I will make it possible to select an indexer for every show for now but I need to think about it some more.

Separating language and date formats have been on my mind as well and I will think about how I can easily implement this in the near future for sure. I'll keep you posted. For now, I also have to work with mm/dd/yyyy

Thanks for the info.

Looked back through the topic to recap the TVDB/TMDB/IMDB discussion - and guess it's an everlasting thing. None of the providers are 100% correct and their API policy is hard to predict. I were thinking of something like the Emby Library setup where fetchers can be prioritized. Then it's my own problem if the stats gets wrong😀

Looked at the GitHub issue and I definitely prefer the solution where I can point my data to somewhere else but the install disk.
In my example I use "D:" for both but that's because it's a  testserver. In real life I would never place code and data on the same disk. And preferably not code and log either.
But it did work until recently, didn't it ?

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...