Jump to content

New Statistics plugin


reggi

Recommended Posts

Whether or not virtual items are created is now a library-level setting.  The setting must be different on your two installations.

Link to comment
Share on other sites

reggi

@@ebr

 

After testing it with enabling and disabling the option I see you are correct. I'll have to find another way to find the correct episode count for a show/season :)

Link to comment
Share on other sites

reggi

Hey Guys,

 

After 2 weeks of being sick and programming, I got a new version ready for testing.

 

I had to refactor a lot for the total episode count calculation. I changed it to use the TVDB API to calculate everything. 

You will see that the first step of the task will take a long time now. This is because he has to get all the info from the API. When you run it a second time it will only download the available updates (so it should go quicker)

 

Also, the percentage of the "viewed" column changed. Now it will show 100% when you viewed all the collected episodes. So it's completely possible that you have a show watched 100% but collected for only 80%.

And the collected column only counts the aired episodes on the day the task has run (no specials and no aired in the future)

 

Changelog

- New way of calculating total episode count

- show progress table header fixed (color + ordering)

- more bugs fixed

 

Now I'm working on a "view count on the day of the week" graph. Looks promising and will be included in the next update. It's still too buggy at the moment and I have to do some more styling.

 

Let me know if there are any strange numbers or new ideas for the plugin :)

Statistics 0.0.0.9.zip

  • Like 3
Link to comment
Share on other sites

MSattler

Hey Guys,

 

After 2 weeks of being sick and programming, I got a new version ready for testing.

 

I had to refactor a lot for the total episode count calculation. I changed it to use the TVDB API to calculate everything. 

You will see that the first step of the task will take a long time now. This is because he has to get all the info from the API. When you run it a second time it will only download the available updates (so it should go quicker)

 

Also, the percentage of the "viewed" column changed. Now it will show 100% when you viewed all the collected episodes. So it's completely possible that you have a show watched 100% but collected for only 80%.

And the collected column only counts the aired episodes on the day the task has run (no specials and no aired in the future)

 

Changelog

- New way of calculating total episode count

- show progress table header fixed (color + ordering)

- more bugs fixed

 

Now I'm working on a "view count on the day of the week" graph. Looks promising and will be included in the next update. It's still too buggy at the moment and I have to do some more styling.

 

Let me know if there are any strange numbers or new ideas for the plugin :)

 

My scheduled task fails now:

 

2017-03-11 09:25:42.5935 Info HttpClient: HttpClientManager GET: https://thetvdb.com/api/Updates.php?type=all&time=1489241106
2017-03-11 09:25:42.6405 Error TaskManager: Error
*** Error Report ***
Version: 3.2.6.0
Command line: B:\Users\Administrator\AppData\Roaming\Emby-Server\system\MediaBrowser.ServerApplication.exe -service
Operating system: Microsoft Windows NT 6.2.9200.0
64-Bit OS: True
64-Bit Process: True
Processor count: 8
Program data path: B:\Users\Administrator\AppData\Roaming\Emby-Server
Application directory: B:\Users\Administrator\AppData\Roaming\Emby-Server\system
System.AggregateException: One or more errors occurred. ---> System.ArgumentException: An item with the same key has already been added.
  at System.ThrowHelper.ThrowArgumentException(ExceptionResource resource)
  at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add)
  at System.Linq.Enumerable.ToDictionary[TSource,TKey,TElement](IEnumerable`1 source, Func`2 keySelector, Func`2 elementSelector, IEqualityComparer`1 comparer)
  at System.Linq.Enumerable.ToDictionary[TSource,TKey](IEnumerable`1 source, Func`2 keySelector, IEqualityComparer`1 comparer)
  at Statistics.Api.TheTvDbProvider.<GetSeriesIdsToUpdate>d__13.MoveNext()
  --- End of inner exception stack trace ---
  at System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification)
  at Statistics.Helpers.ShowProgressCalculator.GetShowsToUpdate(IEnumerable`1 showIds, String time, CancellationToken cancellationToken)
  at Statistics.ScheduledTasks.CalculateStatsTask.CalculateTotalEpisodes(CancellationToken cancellationToken)
  at Statistics.ScheduledTasks.CalculateStatsTask.<Execute>d__12.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
  at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
  at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
  at Emby.Common.Implementations.ScheduledTasks.ScheduledTaskWorker.<ExecuteInternal>d__68.MoveNext()
---> (Inner Exception #0) System.ArgumentException: An item with the same key has already been added.
  at System.ThrowHelper.ThrowArgumentException(ExceptionResource resource)
  at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add)
  at System.Linq.Enumerable.ToDictionary[TSource,TKey,TElement](IEnumerable`1 source, Func`2 keySelector, Func`2 elementSelector, IEqualityComparer`1 comparer)
  at System.Linq.Enumerable.ToDictionary[TSource,TKey](IEnumerable`1 source, Func`2 keySelector, IEqualityComparer`1 comparer)
  at Statistics.Api.TheTvDbProvider.<GetSeriesIdsToUpdate>d__13.MoveNext()<---
 
System.AggregateException
  at System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification)
  at Statistics.Helpers.ShowProgressCalculator.GetShowsToUpdate(IEnumerable`1 showIds, String time, CancellationToken cancellationToken)
  at Statistics.ScheduledTasks.CalculateStatsTask.CalculateTotalEpisodes(CancellationToken cancellationToken)
  at Statistics.ScheduledTasks.CalculateStatsTask.<Execute>d__12.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
  at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
  at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
  at Emby.Common.Implementations.ScheduledTasks.ScheduledTaskWorker.<ExecuteInternal>d__68.MoveNext()
InnerException: System.ArgumentException
System.ArgumentException: An item with the same key has already been added.
  at System.ThrowHelper.ThrowArgumentException(ExceptionResource resource)
  at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add)
  at System.Linq.Enumerable.ToDictionary[TSource,TKey,TElement](IEnumerable`1 source, Func`2 keySelector, Func`2 elementSelector, IEqualityComparer`1 comparer)
  at System.Linq.Enumerable.ToDictionary[TSource,TKey](IEnumerable`1 source, Func`2 keySelector, IEqualityComparer`1 comparer)
  at Statistics.Api.TheTvDbProvider.<GetSeriesIdsToUpdate>d__13.MoveNext()
  at System.ThrowHelper.ThrowArgumentException(ExceptionResource resource)
  at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add)
  at System.Linq.Enumerable.ToDictionary[TSource,TKey,TElement](IEnumerable`1 source, Func`2 keySelector, Func`2 elementSelector, IEqualityComparer`1 comparer)
  at System.Linq.Enumerable.ToDictionary[TSource,TKey](IEnumerable`1 source, Func`2 keySelector, IEqualityComparer`1 comparer)
  at Statistics.Api.TheTvDbProvider.<GetSeriesIdsToUpdate>d__13.MoveNext()
 
2017-03-11 09:25:42.6405 Info TaskManager: Calculate statistics for all users Failed after 0 minute(s) and 2 seconds
  • Like 1
Link to comment
Share on other sites

CBers

@@MSattler My task completed OK.

@@reggi Still having issues with textboxes being cropped on my phone.

 

2017-03-11%2014.28.17.png 

Also, the Collected stats I assume are for the all of the episodes in all seasons of a show?

I ask, as I only keep the current season, so a show like BONES has 12 seasons, but I only have the current one, which is still airing, but I have all episodes.

As I don't have the old seasons, it throws the Collected stats out (Collected title is chopped off as well).

2017-03-11%2014.30.20.png

 

Not sure where the 31 episodes come from for BONES either, as there have been over 230.

 

I also have all 10 episodes of CHANCE, but the stats say only 50%. It's correct that I haven't watched any as yet.

 

I won't go through each show :)

 

On my PC I see that there is a Score and Status column as well - they are not shown on my phone, even in landscape mode.

 

.

Edited by CBers
  • Like 1
Link to comment
Share on other sites

reggi

@@CBers

 

I haven't had the time to check the styling on a phone. I'll look into that soon.

 

For your show BONES, it shows you have 12,8% collected (I presume that is the one season you mentioned) and you have watched 26/31 episodes. 

The Strange part is that you say you only have 1 (still airing) episode. So could you maybe send a list of all files inside your BONES folder? I'll have to check what's going wrong here.

 

For your CHANCE show, is it this one? http://thetvdb.com/?tab=series&id=311196&lid=7

If so, you found a bug. The episodes from season 2 have no air date yet but get counted as total collectible episodes. That's why you get 50% collected instead of 100% because season 2 is not yet aired. I'll fix that in the next update!

 

@@MSattler

I sent you a PM about the crash you're having.

Link to comment
Share on other sites

PenkethBoy

Hi @@reggi

 

just a quick check and one thing i see is that in Show stats The blacklist shows no watched status 0/67 but on the user based stats screen i have watched 22hrs 50 mins (this is all the blacklist) with a list of six balcklist episodes i last watched

 

Thanks

 

Keep up the good work :)

Link to comment
Share on other sites

CBers

Yes, that is the correct CHANCE.

 

Just realised that I still had the previous season of BONES.

 

I have now deleted that and rerun the stats scheduled task and it now shows as:

 

Bones	2005	44.4%	4 / 9	0 / 0	3.7%

I have all 9 aired episodes and have only watched 4 of them.

Link to comment
Share on other sites

reggi

Here is a new version with a fix for @@MSattler 's crash. 

 

Nothing new is added so if the plugin works no need to update to this one.

Also, I changed the versioning numbering a bit so I can make subversions

 

 

Statistics 0.0.9.2.zip

Link to comment
Share on other sites

You need an image for the plugin as well :)

 

I don't think he can do that until it goes in the catalog.

Link to comment
Share on other sites

reggi

I don't think he can do that until it goes in the catalog.

 

No, I can't until I submit it to the catalog.

 

But if someone has any ideas for an image let me know :)

Link to comment
Share on other sites

Martum

Here is a new version with a fix for @@MSattler 's crash. 

 

Nothing new is added so if the plugin works no need to update to this one.

Also, I changed the versioning numbering a bit so I can make subversions

I've first download 0.0.9 simply because it was the newest available in your first post. But then my task crashed so I came back here to check and that's when I saw 0.0.9.2 which fixed the problem for me too.

Link to comment
Share on other sites

Happy2Play

I assume the task is failing because TVDB is offline.

Calculate statistics for all users failed.
2 minutes ago
One or more errors occurred.
Edited by Happy2Play
Link to comment
Share on other sites

Happy2Play

 

 
Is it working at your system again?

 

 

Actually it is still failing.

 

here is the error.  v0.0.9.2

Link to comment
Share on other sites

PenkethBoy

Today i am getting the same error as @@Happy2Play

 

tvdb update failure which fails the whole task

 

for info - same error on 9.0 and 9.2

Link to comment
Share on other sites

reggi

Today i am getting the same error as @@Happy2Play

 

tvdb update failure which fails the whole task

 

for info - same error on 9.0 and 9.2

 

Thanks for the feedback both, I will add some kind of fallback system so the task is not failing when TVDB is down (or can't be contacted)

  • Like 1
Link to comment
Share on other sites

Jdiesel

Is there a Linux version of this plugin?

 

No need for version specific plugins as Emby runs on Mono. Just copy the plugin into your plugins folder and restart Emby server.

Link to comment
Share on other sites

MSattler

Ok, I will try, I assumed it was Windows only as its a .DLL file

 

Linux packages don't use .DLL files.

 

All of Emby is .exe and .dll files native to Windows =)  They don't run in Linux directly, which is why Mono is used. =)

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...