42 lines
1.0 KiB
C#
42 lines
1.0 KiB
C#
using DotBased.Logging;
|
|
using Jint;
|
|
|
|
namespace Manager.YouTube.Interpreter;
|
|
|
|
public class PlayerEngine
|
|
{
|
|
public string Version { get; set; }
|
|
public Engine JsEngine { get; set; }
|
|
private ILogger Logger { get; set; }
|
|
|
|
public PlayerEngine(string version, string script)
|
|
{
|
|
if (string.IsNullOrEmpty(version))
|
|
{
|
|
throw new ArgumentNullException(nameof(version));
|
|
}
|
|
|
|
if (string.IsNullOrEmpty(script))
|
|
{
|
|
throw new ArgumentNullException(nameof(script));
|
|
}
|
|
|
|
Logger = LogService.RegisterLogger(typeof(PlayerEngine), version);
|
|
Version = version;
|
|
JsEngine = new Engine().Execute(script).SetValue("log", new Action<object>(obj =>
|
|
{
|
|
var logStr = obj.ToString();
|
|
if (string.IsNullOrEmpty(logStr))
|
|
{
|
|
return;
|
|
}
|
|
Logger.Information(logStr);
|
|
}));
|
|
|
|
}
|
|
|
|
public void InitializePlayer()
|
|
{
|
|
JsEngine.Execute("createPlayer");
|
|
}
|
|
} |