Skip to content

Latest commit

 

History

History
320 lines (214 loc) · 14.6 KB

CHANGELOG.md

File metadata and controls

320 lines (214 loc) · 14.6 KB

4.0.0.3 General

  • WEB:GET, WEB:POST now allows tokens in URL ('script' field), and POST payload file ('parameters' field), addressing [Github Issue#57]

4.0.0.2 General

New functionality

  • Added SendMessage:SessionID to configure ScripterX to send an on screen notification to a particular sessionid when certain conditions are met. How to use this will be available on the Wiki shortly, and is also available on the support forum.

4.0.0.1 General

  • Added token %session.id% to all Session events on request of digitalirony, to address [Github Discussion#60]

4.0.0.0 General

  • Compiled against BETA 4.7+ packages and libraries
  • Modified LiveTV functionality to suit new library adjustments
  • Required: Testing, Testing, Testing - please report any issues to the GitHub ISSUE LIST (Thank you!)

3.0.5.5

General

  • Rectified reference to Emby LiveTV, create new platform and baseline for debugging moving forward

3.0.5.3

General

  • Added some logical housekeeping to onRecordingTimerCreated to address [Github Issue#45]
  • Rectified reported bug for _onAuthenticationSuccess not executing. [Github Issue#43], issue was that two instances of %server.name% were trying to be added to the token context. Changed the 'Auth' server name token to %user.server.name%

3.0.5.2

General

  • Cleaned up boolean parsing in conditions.

3.0.5.1

General

  • Urgent bugfix, Jint rollback to stable version, was affecting condition parsing.

3.0.5.0

General

  • Added event onUserDataSaved which is triggered for various reasons within Emby. Initially added to support the functionality of when a user 'likes/favorites' a selected media item.
  • %userdata.save.reason% will be one of 7 values: Import, PlaybackFinished, PlaybackProgress, PlaybackStart, TogglePlayed, UpdateHideFromResume, UpdateUserRating

3.0.4.9

General

  • Revamp/revive of ScripterX project; modified all references to the ScripterX website, the website is now https://emby-scripterx.com
  • Compiled against latest core nuget packages

3.0.4.8

General

Packages

  • Consequently, _onRecordingTimerCreated and _onRecordingTimerCancelled are now available for packages as event subscriptions.

3.0.4.7

General

Packages


3.0.4.6

General

Packages

  • Rectified reported [Github Issue#40]: _onAuthenticationFailed never called when expected. This was due to a mis-typing of the event name (it was coded as onAuthenticatedFailed mistakenly). This has been rectified, and _onAuthenticationFailed is now called as expected.

v3.0.4.5

General

Packages

  • Introduced API extensions. This new feature is an amazing way to extend your Emby API without having to write a plugin to do so. In your package you can 'register' and 'unregister' your own Package API commands that will direct to a defined callback when they're called from the Emby API. For more information - please see the ScripterX wiki page Packages > API Extensions

v3.0.4.4

General

  • Added 'Person' to [Entity Types] for conditions on actions.
  • Rectified bug where a 'Person' %library.* values would be substituted as errors. This stems from these types of entities not belonging to a library, and not having any path or parent. So now, any entity without a path and parent will not attempt to have its library type or name ascertained, as it doesn't have one.

Packages

  • Rectified reported [Github Issue#37]: .JsonPost() was not sending the correct accept header, now rectified (please see issue notes). Set the default content-type for .Post() to application/x-www-form-urlencoded. Headers can be overridden (see next log entry)

  • Implemented a CustomHeaderBuilder container that you can use to create custom headers for your Get, JsonPost or Post request. Rectified issue relating to the new parameter being mandatory, it is no longer mandatory and you can submit your request using the default headers by ommitting the third parameter of the request (JsonPost,Post) or second parameter of a Get request. (please see wiki on how to create a CustomHeaderBuilder and how it works.)


v3.0.4.3

Packages


v3.0.4.2

Packages

  • Rectified reported [Github Issue#36]: Scripting errors were logged as Debug rather than Error. Scripting errors didn't include a proper stacktrace. This has now been changed such that a scripting error is now logged as an Error, and includes the entire stacktrace.

  • Added requested [Github Feature Request#35]: added context.allTokens() which returns a JSON Object keyed to the token's name, value being the value of the token. For example, ScripterX.Log.Info("Failed to authenticate, allTokens = " + context.allTokens()); yields allTokens = { "%server.name%": "MediusDev2", "%server.port.local.http%": "8096", ... }

  • Added (as requested requested [Github Feature Request#34]) two new API functions: /ScripterX/Packages/Instances/{packageId} (Get a list of Installed Packages with PackageId) and /ScripterX/Packages/Info/{installationId} (Get Installed Package Information)


v3.0.4.1

General

  • Added new Action types for User manipulation: onUserConfigurationUpdated, onUserPasswordChanged, onUserCreated, onUserDeleted, onUserLockedOut

Packages

  • Added new subscription functions for User manipulation: _onUserConfigurationUpdated(context), _onUserPasswordChanged(context), _onUserCreated(context), _onUserDeleted(context), _onUserLockedOut(context)

v3.0.4.0

General

  • Continued working towards mouse driven Actions interface. This should be finalised very soon.

Packages

  • Packages now have a configuration framework. Check out our wiki for more information regarding package configuration here

v3.0.3.5

General

  • Rectified reported [Github Issue#32] where Package function subscriptions were mislabelled, they all require an underscore prefix.
  • Added additional Package event subscriptions - _onAttachLiveTV(live_tv_name, live_tv_url), _onLibraryRefreshStart(library_name), _onLibraryRefreshEnded(library_name)

v3.0.3.4

General

  • Rectified reported [Github Issue#31] where packages couldn't install. This was due to the Package Installer not successfully checking for the 'Packages' directory before attempting to move files into the package's repository.

v3.0.3.3

General

  • Clean up formatting and styling for dropdown box on Actions interface; preliminary stages of mouse-drive Actions interface
  • Removed the requirement for specifying a "script file" in an action thus giving the user the ability to specify a custom executable in the "Interpreter" field, without having to specify a "script file".

v3.0.3.2

General

  • Integrated SMTP mail into Packages. A Package can now send an email out, by using the following syntax:
var smtp_server = ScripterX.Email.Server();

smtp_server.Host = "mail.mysmtpserver.com"; smtp_server.Port = 465; smtp_server.useAuth = true; smtp_server.useSsl = true; smtp_server.ignoreCertificateErrors = false;

smtp_server.AuthUsername = "senderauthusername@myemail.com"; smtp_server.AuthPassword = "mYSmTpPassWoRd!";

function _onAuthenticationFailed(context) { // Lets send an email to advise of the failed authentication

 var email = ScripterX.Email.Create();
 
 email.FromName = context.Token("%server.name%").value;
 email.From = send_email_from_addr;
 
 email.To = "mynotificationemail@address.here";
 
 email.Subject = "Failed authentication on " + context.Token("%server.name%").value;
 
 email.TextBody = "Authentication Failed on your Emby Server " + context.Token("%server.name%").value;
 email.TextBody += "\nFrom IP Address: " + context.Token("%device.remote.ipaddress%").value;
 email.TextBody += "\nUsing username: " + context.Token("%username%").value;
 email.TextBody += "\nWith password: " + context.Token("%password%").value;

 email.HtmlBody = "Authentication Failed on your Emby Server <strong>" + context.Token("%server.name%").value + "</strong>";
 email.HtmlBody += "<br/>From IP Address: <strong>" + context.Token("%device.remote.ipaddress%").value + "</strong>";
 email.HtmlBody += "<br/>Using username: <strong>" + context.Token("%username%").value + "</strong>";
 email.HtmlBody += "<br/>With password: <strong>" + context.Token("%password%").value + "</strong>";
 
 ScripterX.Email.Send(smtp_server, email);

}


v3.0.3.1

General

  • Rectified Playback context factory, resolved issue where some values may be null and would thus throw an exception. Now utilising the correct GetValueOrDefault(), default being 0 on all nullable numbers.

v3.0.3

General

  • Added ability to send an email using Actions. To do this, use the following configuration:

Run [script] = server=smtp.server.host:smtp.port;fromname=My Emby Server;from=myservers@email.address;to=recipient@email.address;subject=My mail subject;auth=mysmtpauthusername:mysmtpauthpassword;ignorecertificate=false Using [Interpreter] = either smtp or smtp:secure (smtp:secure will use SSL, where as smtp will not) [Parameters] = email body

Example: Send an email when somebody fails to authenticate to your emby server:

[script]: server=mail.gmail.com:465;fromname=%server.name%;from=sender@gmail.com;to=recipient@gmail.com;subject=Authentication Failure;auth=mygmail@email.address:myGmAiLpAsSwoRd;ignorecertificate=false [using]: smtp:secure [parameters]: Device %device.name% failed to authenticate from %device.remote.ipaddress% using username: %username%, password: %password%

Which yields an email that appears like the following:

Device Firefox failed to authenticate from 192.168.1.124 using username: Anthony, password: fakePasSWoRd!

v3.0.2

General

  • Added new tokens to Live TV record item: %recording.iskids%, %recording.islive%, %recording.ismanual%, %recording.ismovie%, %recording.isnew%, %recording.isnews%, %recording.isprepaddingrequired%, %recording.ispostpaddingrequired%, %recording.ispremiere%, %recording.isprogramseries%, %recording.isrepeat%, %recording.isseries%, %recording.issports%

v3.0.1

General

  • Resolved issue with various transcoding variables not being substituted. [Github Issue#27]

Packages

  • Added Debug to ScripterX.Log - usage ScripterX.Log.Debug('Add emby debug log entry here..')

  • Added Library to ScripterX:    ScripterX.Library.findMovieById(movieId), ScripterX.Library.findEpisodeById(episodeId),    ScripterX.Library.findSeasonById(seasonId), ScripterX.Library.findSeriesById(seriesId),    ScripterX.Library.isScanning(), ScripterX.Library.scanLibrary()    findXById returns an item context with the tokens available to that particular item type.

  • Added File Functions to ScripterX:    ScripterX.File.Append(filename, data), ScripterX.File.Write(filename, data),    ScripterX.File.ReadLine(filename, line_number), ScripterX.File.ReadAll(filename)