pull/1154/head
Luke Pulverenti 7 years ago
parent 4ceb9eb6c5
commit c6bd66a9f9

@ -36,10 +36,6 @@ namespace MediaBrowser.Providers.People
private readonly IHttpClient _httpClient; private readonly IHttpClient _httpClient;
private readonly ILogger _logger; private readonly ILogger _logger;
private int _requestCount;
private readonly object _requestCountLock = new object();
private DateTime _lastRequestCountReset;
public MovieDbPersonProvider(IFileSystem fileSystem, IServerConfigurationManager configurationManager, IJsonSerializer jsonSerializer, IHttpClient httpClient, ILogger logger) public MovieDbPersonProvider(IFileSystem fileSystem, IServerConfigurationManager configurationManager, IJsonSerializer jsonSerializer, IHttpClient httpClient, ILogger logger)
{ {
_fileSystem = fileSystem; _fileSystem = fileSystem;
@ -89,26 +85,8 @@ namespace MediaBrowser.Providers.People
if (searchInfo.IsAutomated) if (searchInfo.IsAutomated)
{ {
lock (_requestCountLock) // Don't hammer moviedb searching by name
{ return new List<RemoteSearchResult>();
if ((DateTime.UtcNow - _lastRequestCountReset).TotalHours >= 1)
{
_requestCount = 0;
_lastRequestCountReset = DateTime.UtcNow;
}
var requestCount = _requestCount;
if (requestCount >= 40)
{
//_logger.Debug("Throttling Tmdb people");
// This needs to be throttled
return new List<RemoteSearchResult>();
}
_requestCount = requestCount + 1;
}
} }
var url = string.Format(@"https://api.themoviedb.org/3/search/person?api_key={1}&query={0}", WebUtility.UrlEncode(searchInfo.Name), MovieDbProvider.ApiKey); var url = string.Format(@"https://api.themoviedb.org/3/search/person?api_key={1}&query={0}", WebUtility.UrlEncode(searchInfo.Name), MovieDbProvider.ApiKey);
@ -179,7 +157,10 @@ namespace MediaBrowser.Providers.People
var item = new Person(); var item = new Person();
result.HasMetadata = true; result.HasMetadata = true;
item.Name = info.name; // Take name from incoming info, don't rename the person
// TODO: This should go in PersonMetadataService, not each person provider
item.Name = id.Name;
item.HomePageUrl = info.homepage; item.HomePageUrl = info.homepage;
if (!string.IsNullOrWhiteSpace(info.place_of_birth)) if (!string.IsNullOrWhiteSpace(info.place_of_birth))

@ -41,7 +41,6 @@ namespace MediaBrowser.Server.Mono
public static void Main(string[] args) public static void Main(string[] args)
{ {
var applicationPath = Assembly.GetEntryAssembly().Location; var applicationPath = Assembly.GetEntryAssembly().Location;
var appFolderPath = Path.GetDirectoryName(applicationPath);
SetSqliteProvider(); SetSqliteProvider();
@ -66,18 +65,13 @@ namespace MediaBrowser.Server.Mono
AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException; AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
try RunApplication(appPaths, logManager, options);
{
RunApplication(appPaths, logManager, options);
}
finally
{
_logger.Info("Disposing app host");
if (_restartOnShutdown) _logger.Info("Disposing app host");
{
StartNewInstance(options); if (_restartOnShutdown)
} {
StartNewInstance(options);
} }
} }
} }
@ -121,8 +115,6 @@ namespace MediaBrowser.Server.Mono
new SystemEvents(logManager.GetLogger("SystemEvents")), new SystemEvents(logManager.GetLogger("SystemEvents")),
new NetworkManager(logManager.GetLogger("NetworkManager")))) new NetworkManager(logManager.GetLogger("NetworkManager"))))
{ {
appHost.ImageProcessor.ImageEncoder = ImageEncoderHelper.GetImageEncoder(_logger, logManager, fileSystem, options, () => appHost.HttpClient, appPaths, environmentInfo);
if (options.ContainsOption("-v")) if (options.ContainsOption("-v"))
{ {
Console.WriteLine(appHost.ApplicationVersion.ToString()); Console.WriteLine(appHost.ApplicationVersion.ToString());
@ -134,6 +126,9 @@ namespace MediaBrowser.Server.Mono
var initProgress = new Progress<double>(); var initProgress = new Progress<double>();
var task = appHost.Init(initProgress); var task = appHost.Init(initProgress);
appHost.ImageProcessor.ImageEncoder = ImageEncoderHelper.GetImageEncoder(_logger, logManager, fileSystem, options, () => appHost.HttpClient, appPaths, environmentInfo);
Task.WaitAll(task); Task.WaitAll(task);
Console.WriteLine("Running startup tasks"); Console.WriteLine("Running startup tasks");

@ -39,7 +39,6 @@ namespace MediaBrowser.ServerApplication
private static ILogger _logger; private static ILogger _logger;
public static bool IsRunningAsService = false; public static bool IsRunningAsService = false;
private static bool _canRestartService = false;
[DllImport("kernel32.dll", SetLastError = true)] [DllImport("kernel32.dll", SetLastError = true)]
static extern bool SetDllDirectory(string lpPathName); static extern bool SetDllDirectory(string lpPathName);
@ -58,11 +57,6 @@ namespace MediaBrowser.ServerApplication
var options = new StartupOptions(Environment.GetCommandLineArgs()); var options = new StartupOptions(Environment.GetCommandLineArgs());
IsRunningAsService = options.ContainsOption("-service"); IsRunningAsService = options.ContainsOption("-service");
if (IsRunningAsService)
{
//_canRestartService = CanRestartWindowsService();
}
var currentProcess = Process.GetCurrentProcess(); var currentProcess = Process.GetCurrentProcess();
ApplicationPath = currentProcess.MainModule.FileName; ApplicationPath = currentProcess.MainModule.FileName;
@ -86,22 +80,6 @@ namespace MediaBrowser.ServerApplication
ApplicationHost.LogEnvironmentInfo(logger, appPaths, true); ApplicationHost.LogEnvironmentInfo(logger, appPaths, true);
// Install directly
if (options.ContainsOption("-installservice"))
{
logger.Info("Performing service installation");
InstallService(ApplicationPath, logger);
return;
}
// Restart with admin rights, then install
if (options.ContainsOption("-installserviceasadmin"))
{
logger.Info("Performing service installation");
RunServiceInstallation(ApplicationPath);
return;
}
// Uninstall directly // Uninstall directly
if (options.ContainsOption("-uninstallservice")) if (options.ContainsOption("-uninstallservice"))
{ {
@ -120,8 +98,6 @@ namespace MediaBrowser.ServerApplication
AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException; AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
RunServiceInstallationIfNeeded(ApplicationPath);
if (IsAlreadyRunning(ApplicationPath, currentProcess)) if (IsAlreadyRunning(ApplicationPath, currentProcess))
{ {
logger.Info("Shutting down because another instance of Emby Server is already running."); logger.Info("Shutting down because another instance of Emby Server is already running.");
@ -156,6 +132,14 @@ namespace MediaBrowser.ServerApplication
return new Tuple<string, string>(processModulePath, Environment.CommandLine); return new Tuple<string, string>(processModulePath, Environment.CommandLine);
} }
private static bool IsServiceInstalled()
{
var serviceName = BackgroundService.GetExistingServiceName();
var ctl = ServiceController.GetServices().FirstOrDefault(s => s.ServiceName == serviceName);
return ctl != null;
}
/// <summary> /// <summary>
/// Determines whether [is already running] [the specified current process]. /// Determines whether [is already running] [the specified current process].
/// </summary> /// </summary>
@ -261,7 +245,7 @@ namespace MediaBrowser.ServerApplication
var resourcesPath = Path.GetDirectoryName(applicationPath); var resourcesPath = Path.GetDirectoryName(applicationPath);
if (runAsService) if (runAsService && IsServiceInstalled())
{ {
var systemPath = Path.GetDirectoryName(applicationPath); var systemPath = Path.GetDirectoryName(applicationPath);
@ -283,7 +267,7 @@ namespace MediaBrowser.ServerApplication
{ {
if (IsRunningAsService) if (IsRunningAsService)
{ {
return _canRestartService; return false;
} }
else else
{ {
@ -306,7 +290,7 @@ namespace MediaBrowser.ServerApplication
if (IsRunningAsService) if (IsRunningAsService)
{ {
return _canRestartService; return false;
} }
else else
{ {
@ -370,7 +354,7 @@ namespace MediaBrowser.ServerApplication
task = task.ContinueWith(new Action<Task>(a => appHost.RunStartupTasks()), TaskContinuationOptions.OnlyOnRanToCompletion | TaskContinuationOptions.AttachedToParent); task = task.ContinueWith(new Action<Task>(a => appHost.RunStartupTasks()), TaskContinuationOptions.OnlyOnRanToCompletion | TaskContinuationOptions.AttachedToParent);
if (runService) if (runService && IsServiceInstalled())
{ {
StartService(logManager); StartService(logManager);
} }
@ -447,37 +431,9 @@ namespace MediaBrowser.ServerApplication
{ {
var service = new BackgroundService(logManager.GetLogger("Service")); var service = new BackgroundService(logManager.GetLogger("Service"));
service.Disposed += service_Disposed;
ServiceBase.Run(service); ServiceBase.Run(service);
} }
/// <summary>
/// Handles the Disposed event of the service control.
/// </summary>
/// <param name="sender">The source of the event.</param>
/// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
static void service_Disposed(object sender, EventArgs e)
{
}
/// <summary>
/// Installs the service.
/// </summary>
private static void InstallService(string applicationPath, ILogger logger)
{
try
{
ManagedInstallerClass.InstallHelper(new[] { applicationPath });
logger.Info("Service installation succeeded");
}
catch (Exception ex)
{
logger.ErrorException("Uninstall failed", ex);
}
}
/// <summary> /// <summary>
/// Uninstalls the service. /// Uninstalls the service.
/// </summary> /// </summary>
@ -495,40 +451,6 @@ namespace MediaBrowser.ServerApplication
} }
} }
private static void RunServiceInstallationIfNeeded(string applicationPath)
{
var serviceName = BackgroundService.GetExistingServiceName();
var ctl = ServiceController.GetServices().FirstOrDefault(s => s.ServiceName == serviceName);
if (ctl == null)
{
RunServiceInstallation(applicationPath);
}
}
/// <summary>
/// Runs the service installation.
/// </summary>
private static void RunServiceInstallation(string applicationPath)
{
var startInfo = new ProcessStartInfo
{
FileName = applicationPath,
Arguments = "-installservice",
CreateNoWindow = true,
WindowStyle = ProcessWindowStyle.Hidden,
Verb = "runas",
ErrorDialog = false
};
using (var process = Process.Start(startInfo))
{
process.WaitForExit();
}
}
/// <summary> /// <summary>
/// Runs the service uninstallation. /// Runs the service uninstallation.
/// </summary> /// </summary>
@ -616,7 +538,7 @@ namespace MediaBrowser.ServerApplication
public static void Shutdown() public static void Shutdown()
{ {
if (IsRunningAsService) if (IsRunningAsService && IsServiceInstalled())
{ {
ShutdownWindowsService(); ShutdownWindowsService();
} }

@ -1,3 +1,3 @@
using System.Reflection; using System.Reflection;
[assembly: AssemblyVersion("3.2.30.11")] [assembly: AssemblyVersion("3.2.30.12")]

Loading…
Cancel
Save