Jump to content
Anthony Musgrove

New Plugin - Custom Scripting | Emby ScripterX

Recommended Posts

Anthony Musgrove
Posted (edited)

Ok not sure whats wrong but your plugin is generating errors in emby when an item is added - I might be misunderstanding what it needs.

 

My settings

5e8de4f5be2bd_Annotation20200408154953.j

and

5e8de5057ca39_Annotation20200408154958.j

 

all the rest are blank

 

if i run the script locally - it works

5e8de57470165_Annotation20200408155148.j

and log file created by test.bat

 

5e8de59ba1f63_Annotation20200408155154.j

which is correct

 

But does not work in Emby

 

I get these sorts of errors - e.g. Void execute_call_cmd(System.String)?

2020-04-08 15:42:35.450 Info LibraryMonitor: HomeVid (F:\EmbyTest\HomeVid) will be refreshed.
2020-04-08 15:42:35.588 Info Emby ScripterX: onItemAdded: F:\Video\Test.bat "-Name A Glimpse Of The Future Through An Augmented Reality Headset - Meron Gribetz -ID 38259c25-80f9-72c6-ee40-0d77afd1a506 -Type Folder -LibName Home videos & photos"
2020-04-08 15:42:35.628 Info Emby ScripterX: onItemAdded: F:\Video\Test.bat "-Name A Glimpse Of The Future Through An Augmented Reality Headset - Meron Gribetz -ID e220c930-78fb-6ee8-b399-f6f21b6bdb19 -Type Video -LibName Home videos & photos"
2020-04-08 15:42:35.675 Debug App: Running FolderImageProvider for F:\EmbyTest\HomeVid\A Glimpse Of The Future Through An Augmented Reality Headset - Meron Gribetz
2020-04-08 15:42:35.677 Info Emby ScripterX: onItemUpdated: 
2020-04-08 15:42:35.677 Error App: Error in ItemUpdated event handler
	*** Error Report ***
	Version: 4.5.0.5
	Command line: F:\EmbyCore\system\EmbyServer.dll -noautorunwebapp
	Operating system: Microsoft Windows NT 6.2.9200.0
	64-Bit OS: True
	64-Bit Process: True
	User Interactive: True
	Runtime: file:///F:/EmbyCore/system/System.Private.CoreLib.dll
	System.Environment.Version: 3.1.3
	Processor count: 8
	Program data path: F:\EmbyCore\programdata
	Application directory: F:\EmbyCore\system
	System.NullReferenceException: System.NullReferenceException: Object reference not set to an instance of an object.
	   at EmbyScripterX.ScripterXController.execute_call_cmd(String call_cmd)
	   at EmbyScripterX.ScripterXController._libraryManager_ItemUpdated(Object sender, ItemChangeEventArgs e)
	   at Emby.Server.Implementations.Library.LibraryManager.UpdateItems(List`1 items, BaseItem parent, ItemUpdateType updateReason, CancellationToken cancellationToken)
	Source: EmbyScripterX
	TargetSite: Void execute_call_cmd(System.String)
	
2020-04-08 15:42:35.679 Debug App: Running FFProbeProvider for F:\EmbyTest\HomeVid\A Glimpse Of The Future Through An Augmented Reality Headset - Meron Gribetz\A Glimpse Of The Future Through An Augmented Reality Headset - Meron Gribetz.mkv
2020-04-08 15:42:35.679 Info MediaProbeManager: ProcessRun 'ffprobe' Execute: F:\EmbyCore\system\ffprobe.exe -i file:"F:\EmbyTest\HomeVid\A Glimpse Of The Future Through An Augmented Reality Headset - Meron Gribetz\A Glimpse Of The Future Through An Augmented Reality Headset - Meron Gribetz.mkv" -threads 0 -v info -print_format json -show_streams -show_chapters -show_format -show_data
2020-04-08 15:42:35.791 Debug MediaProbeManager: ProcessRun 'ffprobe' Started.
2020-04-08 15:42:35.838 Info MediaProbeManager: ProcessRun 'ffprobe' Process exited with code 0
2020-04-08 15:42:35.846 Info App: ProcessRun 'extract-multi-image' Execute: F:\EmbyCore\system\ffmpeg.exe -f matroska -threads 4 -skip_list 8,300,600 -i file:"F:\EmbyTest\HomeVid\A Glimpse Of The Future Through An Augmented Reality Headset - Meron Gribetz\A Glimpse Of The Future Through An Augmented Reality Headset - Meron Gribetz.mkv" -an -sn -vsync 0 -f image2 "F:\EmbyCore\programdata\cache\temp\c9afa12fc2b84a0f91ee8270411b06d7\img_%05d.jpg"
2020-04-08 15:42:35.959 Debug App: ProcessRun 'extract-multi-image' Started.
2020-04-08 15:42:36.221 Info App: ProcessRun 'extract-multi-image' Process exited with code 0
2020-04-08 15:42:36.466 Debug App: Running VideoNfoProvider for F:\EmbyTest\HomeVid\A Glimpse Of The Future Through An Augmented Reality Headset - Meron Gribetz\A Glimpse Of The Future Through An Augmented Reality Headset - Meron Gribetz.mkv
2020-04-08 15:42:36.468 Debug LibraryMonitor: New file refresher created for F:\EmbyTest\HomeVid\A Glimpse Of The Future Through An Augmented Reality Headset - Meron Gribetz\A Glimpse Of The Future Through An Augmented Reality Headset - Meron Gribetz.nfo
2020-04-08 15:42:36.470 Info Emby ScripterX: onItemUpdated: 
2020-04-08 15:42:36.470 Error App: Error in ItemUpdated event handler
	*** Error Report ***
	Version: 4.5.0.5
	Command line: F:\EmbyCore\system\EmbyServer.dll -noautorunwebapp
	Operating system: Microsoft Windows NT 6.2.9200.0
	64-Bit OS: True
	64-Bit Process: True
	User Interactive: True
	Runtime: file:///F:/EmbyCore/system/System.Private.CoreLib.dll
	System.Environment.Version: 3.1.3
	Processor count: 8
	Program data path: F:\EmbyCore\programdata
	Application directory: F:\EmbyCore\system
	System.NullReferenceException: System.NullReferenceException: Object reference not set to an instance of an object.
	   at EmbyScripterX.ScripterXController.execute_call_cmd(String call_cmd)
	   at EmbyScripterX.ScripterXController._libraryManager_ItemUpdated(Object sender, ItemChangeEventArgs e)
	   at Emby.Server.Implementations.Library.LibraryManager.UpdateItems(List`1 items, BaseItem parent, ItemUpdateType updateReason, CancellationToken cancellationToken)
	Source: EmbyScripterX
	TargetSite: Void execute_call_cmd(System.String)
	

If i remove the path to cmd.exe - so the textbox is blank

 

i get 

 

2020-04-08 16:00:34.878 Error Emby ScripterX: Invalid interpreter path, please include the full path.

 

My understanding is that the path to cmd.exe is not needed in windows (win10 in this case) as its on the path variable - so not sure why its need??

 

Same would apply to powershell which is ultimately what i want to use so a simple

 

powershell -command "& F:\videos\ScripterX-test.ps1 -Name %item.name% -ID %item.id% -Type %item.type% -LibName %item.library.name%" - should work also - but currently does not - hence i reverted to a bat file for testing

 

(-Name, -ID etc are just parameters that the test powershell script understand - which is called by the bat file)

 

So hopefully its something simple :)

 

Thank you for this feedback :) Looking into this now!

 

 

Can you please do me a favor and set the interpreter path to c:\windows\system32\WindowsPowerShell\v1.0\powershell.exe (or whereever powershell.exe is located on your system - typically here), and set the textbox for the event to your command (ie: -command "& F:\videos\ScripterX-test.ps1 -Name %item.name% -ID %item.id% -Type %item.type% -LibName %item.library.name%")

 

So basically, the interpreter path will point to powershell.exe, and the onEvent textbox will be your arguments to powershell.

 

Can you please let me know if this works?

 

kindest regards.

Edited by Anthony.Musgrove

Share this post


Link to post
Share on other sites
Anthony Musgrove

Added %item.update.reason% As an available token for onItemUpdated, eg:

 

‪D:\embyscripts\test.bat Media Item Updated "%item.name%" "%item.path%" (Update Reason: %item.update.reason%)

 

Media Item Updated "1917" "D:\Media\Movies\1917.2019.1080p.BluRay.x264.AAC5.1-[YTS.MX] - Copy.mp4" (Update Reason: MetadataEdit) 
  • Like 1

Share this post


Link to post
Share on other sites
Anthony Musgrove

Added new functionality, 

 

5e8ea8bdd4731_ScripterX_Logo_1007.png

 

Added event:  on Library Scan Completed, no tokens available yet.

 

Configuration:

 

5e8ea9380efc3_onLibraryScanComplete.png

 

Output:

 

5e8ea947f0540_OnLibraryScanComplete_Outp

 

What sort of tokens/data would be useful for this function?  Let me know!

Share this post


Link to post
Share on other sites
PenkethBoy

 

Added: %series.id%, %series.name%, %season.id%, %season.name% 

 

If Item type is Episode, these tokens are available, if its a movie, it will ignore these tokens - any suggestions/comments/feedback on this is welcome.  I can also have it set these variables to a particular value if the item isn't an episode, for example, if it were a movie, %sseason.name% etc can be set to 'None' or 'NotAnEpisode' or 'Movie' ?  Any feedback welcome!

 

5e8e7d37dacef_ScripterX_Logo_1005.png

 

Eg:

TV Episode:

PlaybackStart ItemID: 593 - Name: "Brian: Portrait of a Dog" - Path: "D:\Media\TV\Family Guy\S01\S01E07 - Brian - Portrait Of A Dog.avi" - Username: Anthony - DeviceName: Firefox - ItemType: item type: Episode - LibraryName: TV - LibraryContentType: tvshows (seriesname: Family Guy) (season: Season 1) 
PlaybackStart ItemID: 593 - Name: "Brian: Portrait of a Dog" - Path: "D:\Media\TV\Family Guy\S01\S01E07 - Brian - Portrait Of A Dog.avi" - Username: Anthony - DeviceName: Firefox - ItemType: item type: Episode - LibraryName: TV - LibraryContentType: tvshows (seriesname: Family Guy) (season: Season 1) 
 
 
Movie: (see how %series.name, %season.name% are not resolved? thats because they don't exist, this is what I'm asking about - if you'd like them set to a default value etc)
PlaybackStart ItemID: 652 - Name: "1917" - Path: "D:\Media\Movies\1917.2019.1080p.BluRay.x264.AAC5.1-[YTS.MX] - Copy.mp4" - Username: Anthony - DeviceName: Firefox - ItemType: item type: Movie - LibraryName: Movies - LibraryContentType: movies (seriesname: %series.name%) (season: %season.name%) 
PlaybackStart ItemID: 652 - Name: "1917" - Path: "D:\Media\Movies\1917.2019.1080p.BluRay.x264.AAC5.1-[YTS.MX] - Copy.mp4" - Username: Anthony - DeviceName: Firefox - ItemType: item type: Movie - LibraryName: Movies - LibraryContentType: movies (seriesname: %series.name%) (season: %season.name%) 
 

 

For me - returning the variable name e.g. %series.name% - is fine as its then easy to check if there is "no" data

  • Like 1

Share this post


Link to post
Share on other sites
PenkethBoy

Thank you for this feedback :) Looking into this now!

 

 

Can you please do me a favor and set the interpreter path to c:\windows\system32\WindowsPowerShell\v1.0\powershell.exe (or whereever powershell.exe is located on your system - typically here), and set the textbox for the event to your command (ie: -command "& F:\videos\ScripterX-test.ps1 -Name %item.name% -ID %item.id% -Type %item.type% -LibName %item.library.name%")

 

So basically, the interpreter path will point to powershell.exe, and the onEvent textbox will be your arguments to powershell.

 

Can you please let me know if this works?

 

kindest regards.

 

 

Yep already tried that first before went to bat file and it does not work - nothing happens

 

To me its how you are calling the interpreter - that on the face of it is the issue

 

Could you add some debug lines to the emby log showing what you are passing to the system as we get the textbox returned in the log - but not how you are reading the initial command

 

so we can see if its something simple etc

 

 

If you compare what you are doing with how the Post Processing aspect of Emby dvr works

 

both of these are valid and work

 

5e8ec6be0a036_Capture.jpg

 

5e8ec6cc28a26_Capture2.jpg

  • Like 1

Share this post


Link to post
Share on other sites
PenkethBoy

 

Added %item.update.reason% As an available token for onItemUpdated, eg:

 

‪D:\embyscripts\test.bat Media Item Updated "%item.name%" "%item.path%" (Update Reason: %item.update.reason%)

 

Media Item Updated "1917" "D:\Media\Movies\1917.2019.1080p.BluRay.x264.AAC5.1-[YTS.MX] - Copy.mp4" (Update Reason: MetadataEdit) 

 

Yes thats a nice addition :)

  • Like 1

Share this post


Link to post
Share on other sites
PenkethBoy

Added new functionality, 

 

5e8ea8bdd4731_ScripterX_Logo_1007.png

 

Added event:  on Library Scan Completed, no tokens available yet.

 

Configuration:

 

5e8ea9380efc3_onLibraryScanComplete.png

 

Output:

 

5e8ea947f0540_OnLibraryScanComplete_Outp

 

What sort of tokens/data would be useful for this function?  Let me know!

Time taken would be good as emby reports that

 

Also if a scan is aborted/cancelled/failed - would be good additions - so you could abort your script as something went wrong or user did something good/bad :)

  • Like 1

Share this post


Link to post
Share on other sites
PenkethBoy

Ok - one other thing i noticed - not a big thing

 

But your variables are case sensitive

 

so %item.name% works but %Item.name% does not 

  • Like 1

Share this post


Link to post
Share on other sites
PenkethBoy

Thankyou for this info mate - I can't reproduce this one and the plugin GUID that appears to of caused the issue is 3c96f5bc-4182-4b86-b05d-f730f2611e45, which isn't the scripterx, could you please try clearing your browser cache and trying it again? Just for curiosity - because I'm not sure which plugin refers to GUID 3c96f5bc-4182-4b86-b05d-f730f2611e45

Yep - ignore this its another plugin on closer inspection that does not have an image

  • Like 1

Share this post


Link to post
Share on other sites
PenkethBoy

Here are my test scripts so you can compare on your end - see post #19 for details etc of how i tried it

 

Test-Scripts.zip

  • Like 1

Share this post


Link to post
Share on other sites
PenkethBoy

Just had a couple of ideas for consideration/discussion

 

1. After server update event - maybe delayed by say a couple of minutes to allow the server to be fully loaded etc - maybe the delay could be configurable as not everybodies server will be snappy

2. After restart/reboot - similar to the above

 

3. Have more than one configuration page - currently you can have various events trigger which could be covered by different scripts per event - or a generic script that then either deals with all the "random" events it gets or passes the events off to other scripts called form the generic one. But i am thinking (not thought this fully through) but it might be you want to have a config for say Powershell and one using bat files and one for bash or say python - so you have mutiple configs by interpreter. That you could turn on and off.

This might get to complicated - not 100% sure on this but might be worth kicking around once we have it working etc etc

 

4. One thing we need to address is multiple events happening in a short time period. What i mean is that some events from Emby appear to fire off in quick succession - i.e. item added - you can get an event for folder added (say movie in its own folder being added to Emby)  then the movie item is added and a few seconds later the movie item is added again (think this is after the metadata gets added along with images etc and nfo created) all for the same item. Yes the script being called could deal with this - but might be possible to suppress some of the calls - not sure - but worth exploring/discussion.

 

I'll let you get on with my other posts :) 

  • Like 1

Share this post


Link to post
Share on other sites
Anthony Musgrove

Thank you PenkethBoy - these comments and suggestions have been paramount to the development and maturation of this plugin so far!

 

I've just released version 1.0.0.8 on GitHub which addresses a lot of your issues :)  Powershell now works!  and you no longer have to enter the entire path to your interpreter!

 

5e8f42e18cdde_Logo_1008.png

 

Changes for 1.0.0.8:
 
- Addressed issues with having to supply entire path to interpreter.  
- Implemented better way to detect OS platform (IsWindows() IsLinux() IsOSX())
- Powershell.exe, cmd.exe, /bin/bash or a custom executable is now supported
 
- Examples now:
using powershell.exe as interpreter:
-File "D:\embyscripts\ScripterX-test.ps1" -Name %item.name% -ID %item.id% -Type %item.type% -LibName %item.library.name%
 
using cmd.exe as interpreter:
/s /c D:\embyscripts\test.bat AuthFail %username% %user.id% %device.id% %device.name%
 
using /bin/bash
/home/medius/scripts/test.sh AuthOK %username%
 
Some images:
 
5e8f4317039e5_Interpreter_Path.png
 
Powershell example:
 
5e8f43246063e_PowerShellExample.png
 
 
Some example notes, this applies to all events:
 
5e8f4338a93ab_Examples.png
  • Like 2

Share this post


Link to post
Share on other sites
PenkethBoy

Thanks

 

Quick question - will try out a bit later

 

i see you are using -file rather than -command - curious why?

  • Like 1

Share this post


Link to post
Share on other sites
Anthony Musgrove

Thanks

 

Quick question - will try out a bit later

 

i see you are using -file rather than -command - curious why?

 

No problems at all!  That's a good question, I just tested it with:

 

-command "& D:\embyscripts\ScripterX-test.ps1 -Name %item.name% -ID %item.id% -Type %item.type% -LibName %item.library.name%"

 

and it works perfectly;

 

Test result = 1917 662 Movie Movies

 

so either way will work fine :)

  • Like 1

Share this post


Link to post
Share on other sites
Anthony Musgrove
Posted (edited)

I have some interesting new features to discuss when I get home. I’ve found some more hooks to link up to, including a Refreshed function, start/finish. Discovered them while plugging around for the library scan durations and stuff. Can’t wait to dig into it and wire up to some useful functionality :).

Edited by Anthony.Musgrove
  • Like 2

Share this post


Link to post
Share on other sites
PenkethBoy

Will catch up with the changes in a bit

 

just on Github and the community scripts option that can also be picked from the gui will be cool when it comes in a future version

  • Like 1

Share this post


Link to post
Share on other sites
PenkethBoy

Hi - good and bad news with version .8 dll

 

Good

1. Test bat script works -  :) Tried media add and playback start - both work

2. If the script does not like something - then the error is returned - nice touch

2020-04-10 10:52:18.665 Info Emby ScripterX: onPlaybackStart: /s /c F:\Video\Test.bat '-Name "3 principles for creating safer AI Stuart Russell" -ID 44783 -Type Video -LibName "Home videos & photos"'
2020-04-10 10:52:18.902 Info HttpServer: HTTP POST http://localhost:8096/emby/Sessions/Playing/Progress. UserAgent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36
2020-04-10 10:52:18.903 Info HttpServer: HTTP Response 204 to ::1. Time: 1ms. http://localhost:8096/emby/Sessions/Playing/Progress
2020-04-10 10:52:19.047 Error Emby ScripterX: Error running script : The string is missing the terminator: '.
    + CategoryInfo          : ParserError: ( [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : TerminatorExpectedAtEndOfString
 

Bad

with Media Added  (playback not showing this problem)

i had seen these the other day but ignored them as just concentrated on getting the script to work - so this is not .8 specific

 

If i add a folder with a video inside to a library (mixed content type - just to test) - emby sees the folder and video and i get the two notifications via the plugin one for folder and one for video.

 

The issues

1. The dll appears to interrupt the rest of the Emby discovery process as once the event is picked up by the dll - emby stops (waiting for something to be returned?) - i.e. the video is only partly scrapped - missing images and the item detail screen is either missing or only has very basic info (if i uninstall the dll and reboot emby and do the same test - everything is normal) it varies depending i think on when the hang up occurs. 

The folder i copied into the library has images, an extrafanart sub directory, nfo etc besides the video - and as a mixed library it has metadata plugin disabled - so it should have no problem reading the nfo and images etc.

 

2. After this hangup occurs - then a library scan will not work

on my test machine (4.5.0.5 version) a normal scan is 2 to 4 seconds as it has very little content

The issue is that while i have been writing this message the lib scan has been stuck part way through for several minutes and looks like it will never complete

The emby log shows none of the usual messages that come with a library scan and there are no errors

 

The only thing i see is this a lot in the logs after the hang up

2020-04-10 10:59:29.292 Debug App: ScheduledTasksWebSocketListener stop transmitting over websocket to ::1
2020-04-10 10:59:29.294 Debug App: SessionInfosWebSocketListener Begin transmitting over websocket to ::1
2020-04-10 10:59:29.294 Debug App: ScheduledTasksWebSocketListener Begin transmitting over websocket to ::1
2020-04-10 10:59:29.296 Debug App: ActivityLogWebSocketListener Begin transmitting over websocket to ::1
2020-04-10 10:59:29.297 Debug App: ActivityLogWebSocketListener Begin transmitting over websocket to ::1

They may be a red herring - as if the server has issues then this might just be a result of the interaction between the server and the plugin for a media added event

 

The emby server remains alive in that you can interact with the UI etc

 

If i reboot the Emby server - the library scan completes fine in a couple of seconds

 

Then add another movie folder - same format as before - script sees the add folder and add video  events - and the server discover hangs again

 

The log "stops" at this point (and is not added to unless i use the UI)

2020-04-10 11:27:13.840 Debug LibraryMonitor: New file refresher created for F:\EmbyTest\HomeVid\A Smarter, More Precise Way To Think About Public Health - Sue Desmond-Hellmann
2020-04-10 11:27:43.933 Debug LibraryMonitor: Timer stopped.
2020-04-10 11:27:43.966 Info LibraryMonitor: HomeVid (F:\EmbyTest\HomeVid) will be refreshed.
2020-04-10 11:27:44.090 Info Emby ScripterX: onItemAdded: /s /c F:\Video\Test.bat "-ID 50012 -Type Folder"
2020-04-10 11:27:44.651 Info Emby ScripterX: Output from script: Test result =  50012 Folder 

2020-04-10 11:27:44.663 Info Emby ScripterX: onItemAdded: /s /c F:\Video\Test.bat "-ID 50013 -Type Video"
2020-04-10 11:27:45.233 Info Emby ScripterX: Output from script: Test result =  50013 Video 

2020-04-10 11:27:45.254 Debug App: Running FolderImageProvider for F:\EmbyTest\HomeVid\A Smarter, More Precise Way To Think About Public Health - Sue Desmond-Hellmann
2020-04-10 11:27:45.258 Info Emby ScripterX: onItemUpdated: 
2020-04-10 11:27:50.232 Debug XmlSerializer: Deserializing file F:\EmbyCore\programdata\config\notifications.xml

The time is now 11:32 and the log still has a last log entry of 11:27...

 

Could the plugin be interrupting the Emby logging perhaps?

 

Just tried the library scan task again it is hung up this time at 0%

 

So the issues are repeatable - when the plugin is loaded and a itemadded event fires.

 

Remove the plugin and reboot emby - no issues.

 

Hopefully that gives you enough info to find the issues etc. If not ask away :)

 

 

 

  • Like 2

Share this post


Link to post
Share on other sites
maegibbons

Excellent work @@Anthony.Musgrove for creating this plugin and @@PenkethBoy for his "as usual" systematic, logical and thorough testing!!

 

Krs

 

Mark

 

Sent from my SM-N976B using Tapatalk

  • Like 2

Share this post


Link to post
Share on other sites
Anthony Musgrove

Hi - good and bad news with version .8 dll

 

Good

1. Test bat script works -  :) Tried media add and playback start - both work

2. If the script does not like something - then the error is returned - nice touch

2020-04-10 10:52:18.665 Info Emby ScripterX: onPlaybackStart: /s /c F:\Video\Test.bat '-Name "3 principles for creating safer AI Stuart Russell" -ID 44783 -Type Video -LibName "Home videos & photos"'
2020-04-10 10:52:18.902 Info HttpServer: HTTP POST http://localhost:8096/emby/Sessions/Playing/Progress. UserAgent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36
2020-04-10 10:52:18.903 Info HttpServer: HTTP Response 204 to ::1. Time: 1ms. http://localhost:8096/emby/Sessions/Playing/Progress
2020-04-10 10:52:19.047 Error Emby ScripterX: Error running script : The string is missing the terminator: '.
    + CategoryInfo          : ParserError: ( [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : TerminatorExpectedAtEndOfString
 

Bad

with Media Added  (playback not showing this problem)

i had seen these the other day but ignored them as just concentrated on getting the script to work - so this is not .8 specific

 

If i add a folder with a video inside to a library (mixed content type - just to test) - emby sees the folder and video and i get the two notifications via the plugin one for folder and one for video.

 

The issues

1. The dll appears to interrupt the rest of the Emby discovery process as once the event is picked up by the dll - emby stops (waiting for something to be returned?) - i.e. the video is only partly scrapped - missing images and the item detail screen is either missing or only has very basic info (if i uninstall the dll and reboot emby and do the same test - everything is normal) it varies depending i think on when the hang up occurs. 

The folder i copied into the library has images, an extrafanart sub directory, nfo etc besides the video - and as a mixed library it has metadata plugin disabled - so it should have no problem reading the nfo and images etc.

 

2. After this hangup occurs - then a library scan will not work

on my test machine (4.5.0.5 version) a normal scan is 2 to 4 seconds as it has very little content

The issue is that while i have been writing this message the lib scan has been stuck part way through for several minutes and looks like it will never complete

The emby log shows none of the usual messages that come with a library scan and there are no errors

 

The only thing i see is this a lot in the logs after the hang up

2020-04-10 10:59:29.292 Debug App: ScheduledTasksWebSocketListener stop transmitting over websocket to ::1
2020-04-10 10:59:29.294 Debug App: SessionInfosWebSocketListener Begin transmitting over websocket to ::1
2020-04-10 10:59:29.294 Debug App: ScheduledTasksWebSocketListener Begin transmitting over websocket to ::1
2020-04-10 10:59:29.296 Debug App: ActivityLogWebSocketListener Begin transmitting over websocket to ::1
2020-04-10 10:59:29.297 Debug App: ActivityLogWebSocketListener Begin transmitting over websocket to ::1

They may be a red herring - as if the server has issues then this might just be a result of the interaction between the server and the plugin for a media added event

 

The emby server remains alive in that you can interact with the UI etc

 

If i reboot the Emby server - the library scan completes fine in a couple of seconds

 

Then add another movie folder - same format as before - script sees the add folder and add video  events - and the server discover hangs again

 

The log "stops" at this point (and is not added to unless i use the UI)

2020-04-10 11:27:13.840 Debug LibraryMonitor: New file refresher created for F:\EmbyTest\HomeVid\A Smarter, More Precise Way To Think About Public Health - Sue Desmond-Hellmann
2020-04-10 11:27:43.933 Debug LibraryMonitor: Timer stopped.
2020-04-10 11:27:43.966 Info LibraryMonitor: HomeVid (F:\EmbyTest\HomeVid) will be refreshed.
2020-04-10 11:27:44.090 Info Emby ScripterX: onItemAdded: /s /c F:\Video\Test.bat "-ID 50012 -Type Folder"
2020-04-10 11:27:44.651 Info Emby ScripterX: Output from script: Test result =  50012 Folder 

2020-04-10 11:27:44.663 Info Emby ScripterX: onItemAdded: /s /c F:\Video\Test.bat "-ID 50013 -Type Video"
2020-04-10 11:27:45.233 Info Emby ScripterX: Output from script: Test result =  50013 Video 

2020-04-10 11:27:45.254 Debug App: Running FolderImageProvider for F:\EmbyTest\HomeVid\A Smarter, More Precise Way To Think About Public Health - Sue Desmond-Hellmann
2020-04-10 11:27:45.258 Info Emby ScripterX: onItemUpdated: 
2020-04-10 11:27:50.232 Debug XmlSerializer: Deserializing file F:\EmbyCore\programdata\config\notifications.xml

The time is now 11:32 and the log still has a last log entry of 11:27...

 

Could the plugin be interrupting the Emby logging perhaps?

 

Just tried the library scan task again it is hung up this time at 0%

 

So the issues are repeatable - when the plugin is loaded and a itemadded event fires.

 

Remove the plugin and reboot emby - no issues.

 

Hopefully that gives you enough info to find the issues etc. If not ask away :)

 

Thank you so much mate for this testing this so thoroughly and reporting back on it so thoroughly, this is amazing.  I'm just at work at the moment, but I'll get onto this when I get home.  I'll do some testing around this exact scenario, I'm fairly certain it will be an easy issue to rectify. I'll let you know ASAP! :)

Share this post


Link to post
Share on other sites
Anthony Musgrove

Excellent work @@Anthony.Musgrove for creating this plugin and @@PenkethBoy for his "as usual" systematic, logical and thorough testing!!

 

Krs

 

Mark

 

Sent from my SM-N976B using Tapatalk

 

Thank you so very much mate, I absolutely agree PenkethBoy is a developers dream, absolutely amazing testing and reporting back - its really going to help this plugin evolve so quickly.   I can't wait to get this all ironed out :))

Share this post


Link to post
Share on other sites
PenkethBoy

i see i'm getting some luv this morning  :P

 

The better the bug report the more likely the dev is to find and fix :)

  • Like 2

Share this post


Link to post
Share on other sites
PenkethBoy

Thank you so much mate for this testing this so thoroughly and reporting back on it so thoroughly, this is amazing.  I'm just at work at the moment, but I'll get onto this when I get home.  I'll do some testing around this exact scenario, I'm fairly certain it will be an easy issue to rectify. I'll let you know ASAP! :)

Anthony

 

One thing to note i have not tried any other events so far other than itemadded and itemstart - so there might be issues with the others depending how much of you code is generic for an event

  • Like 1

Share this post


Link to post
Share on other sites
maegibbons

i see i'm getting some luv this morning [emoji14]

 

The better the bug report the more likely the dev is to find and fix :)

Don't let it go to your head! Get back to the testing.

 

Stay home. Protect the NHS. And save my life.

 

Krs

 

Mark

 

Sent from my SM-N976B using Tapatalk

  • Like 4

Share this post


Link to post
Share on other sites
PenkethBoy

:P Spoil Sport

  • Like 1

Share this post


Link to post
Share on other sites
Anthony Musgrove

Hehehe oh wow are you in healthcare too mate? I’m an ambo :P but in NSW Australia :))

Share this post


Link to post
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...