mirror of
				https://github.com/jellyfin/jellyfin.git
				synced 2025-11-03 19:17:24 -05:00 
			
		
		
		
	beta fixes
This commit is contained in:
		
							parent
							
								
									e068e84ab6
								
							
						
					
					
						commit
						c0aec48a31
					
				@ -294,7 +294,7 @@ namespace MediaBrowser.Common.Implementations
 | 
			
		||||
 | 
			
		||||
        public static void LogEnvironmentInfo(ILogger logger, IApplicationPaths appPaths, bool isStartup)
 | 
			
		||||
        {
 | 
			
		||||
            logger.LogMultiline("Media Browser", LogSeverity.Info, GetBaseExceptionMessage(appPaths));
 | 
			
		||||
            logger.LogMultiline("Emby", LogSeverity.Info, GetBaseExceptionMessage(appPaths));
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        protected static StringBuilder GetBaseExceptionMessage(IApplicationPaths appPaths)
 | 
			
		||||
 | 
			
		||||
@ -107,7 +107,7 @@ namespace MediaBrowser.Controller.Persistence
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        /// <param name="type">The type.</param>
 | 
			
		||||
        /// <returns>IEnumerable{Guid}.</returns>
 | 
			
		||||
        IEnumerable<BaseItem> GetItemsOfType(Type type);
 | 
			
		||||
        IEnumerable<string> GetItemsOfType(Type type);
 | 
			
		||||
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// Saves the children.
 | 
			
		||||
 | 
			
		||||
@ -115,5 +115,10 @@ namespace MediaBrowser.Controller.Session
 | 
			
		||||
        /// <param name="cancellationToken">The cancellation token.</param>
 | 
			
		||||
        /// <returns>Task.</returns>
 | 
			
		||||
        Task SendMessage<T>(string name, T data, CancellationToken cancellationToken);
 | 
			
		||||
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// Called when [activity].
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        void OnActivity();
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -33,7 +33,7 @@ namespace MediaBrowser.Dlna.ContentDirectory
 | 
			
		||||
            var options = new HttpRequestOptions
 | 
			
		||||
            {
 | 
			
		||||
                CancellationToken = cancellationToken,
 | 
			
		||||
                UserAgent = "Media Browser",
 | 
			
		||||
                UserAgent = "Emby",
 | 
			
		||||
                RequestContentType = "text/xml; charset=\"utf-8\"",
 | 
			
		||||
                LogErrorResponseBody = true,
 | 
			
		||||
                Url = request.ContentDirectoryUrl
 | 
			
		||||
 | 
			
		||||
@ -47,6 +47,10 @@ namespace MediaBrowser.Dlna.PlayTo
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public void OnActivity()
 | 
			
		||||
        {
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public bool SupportsMediaControl
 | 
			
		||||
        {
 | 
			
		||||
            get { return IsSessionActive; }
 | 
			
		||||
 | 
			
		||||
@ -42,6 +42,9 @@ namespace MediaBrowser.MediaEncoding.Subtitles
 | 
			
		||||
 | 
			
		||||
                    subEvent.StartPositionTicks = GetTicks(sections[headers["Start"]]);
 | 
			
		||||
                    subEvent.EndPositionTicks = GetTicks(sections[headers["End"]]);
 | 
			
		||||
 | 
			
		||||
                    //RemoteNativeFormatting(subEvent);
 | 
			
		||||
                    
 | 
			
		||||
                    subEvent.Text = string.Join(",", sections.Skip(headers["Text"]));
 | 
			
		||||
                    subEvent.Text = subEvent.Text.Replace(@"\N", ParserValues.NewLine, StringComparison.OrdinalIgnoreCase);
 | 
			
		||||
                    subEvent.Text = Regex.Replace(subEvent.Text, @"\{(\\[\w]+\(?([\w\d]+,?)+\)?)+\}", string.Empty, RegexOptions.IgnoreCase);
 | 
			
		||||
@ -49,7 +52,6 @@ namespace MediaBrowser.MediaEncoding.Subtitles
 | 
			
		||||
                    trackInfo.TrackEvents.Add(subEvent);
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            RemoteNativeFormatting(trackInfo);
 | 
			
		||||
            return trackInfo;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@ -74,46 +76,43 @@ namespace MediaBrowser.MediaEncoding.Subtitles
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// Credit: https://github.com/SubtitleEdit/subtitleedit/blob/master/src/Logic/SubtitleFormats/AdvancedSubStationAlpha.cs
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        private void RemoteNativeFormatting(SubtitleTrackInfo subtitle)
 | 
			
		||||
        private void RemoteNativeFormatting(SubtitleTrackEvent p)
 | 
			
		||||
        {
 | 
			
		||||
            foreach (var p in subtitle.TrackEvents)
 | 
			
		||||
            int indexOfBegin = p.Text.IndexOf('{');
 | 
			
		||||
            string pre = string.Empty;
 | 
			
		||||
            while (indexOfBegin >= 0 && p.Text.IndexOf('}') > indexOfBegin)
 | 
			
		||||
            {
 | 
			
		||||
                int indexOfBegin = p.Text.IndexOf('{');
 | 
			
		||||
                string pre = string.Empty;
 | 
			
		||||
                while (indexOfBegin >= 0 && p.Text.IndexOf('}') > indexOfBegin)
 | 
			
		||||
                string s = p.Text.Substring(indexOfBegin);
 | 
			
		||||
                if (s.StartsWith("{\\an1}", StringComparison.Ordinal) ||
 | 
			
		||||
                    s.StartsWith("{\\an2}", StringComparison.Ordinal) ||
 | 
			
		||||
                    s.StartsWith("{\\an3}", StringComparison.Ordinal) ||
 | 
			
		||||
                    s.StartsWith("{\\an4}", StringComparison.Ordinal) ||
 | 
			
		||||
                    s.StartsWith("{\\an5}", StringComparison.Ordinal) ||
 | 
			
		||||
                    s.StartsWith("{\\an6}", StringComparison.Ordinal) ||
 | 
			
		||||
                    s.StartsWith("{\\an7}", StringComparison.Ordinal) ||
 | 
			
		||||
                    s.StartsWith("{\\an8}", StringComparison.Ordinal) ||
 | 
			
		||||
                    s.StartsWith("{\\an9}", StringComparison.Ordinal))
 | 
			
		||||
                {
 | 
			
		||||
                    string s = p.Text.Substring(indexOfBegin);
 | 
			
		||||
                    if (s.StartsWith("{\\an1}", StringComparison.Ordinal) ||
 | 
			
		||||
                        s.StartsWith("{\\an2}", StringComparison.Ordinal) ||
 | 
			
		||||
                        s.StartsWith("{\\an3}", StringComparison.Ordinal) ||
 | 
			
		||||
                        s.StartsWith("{\\an4}", StringComparison.Ordinal) ||
 | 
			
		||||
                        s.StartsWith("{\\an5}", StringComparison.Ordinal) ||
 | 
			
		||||
                        s.StartsWith("{\\an6}", StringComparison.Ordinal) ||
 | 
			
		||||
                        s.StartsWith("{\\an7}", StringComparison.Ordinal) ||
 | 
			
		||||
                        s.StartsWith("{\\an8}", StringComparison.Ordinal) ||
 | 
			
		||||
                        s.StartsWith("{\\an9}", StringComparison.Ordinal))
 | 
			
		||||
                    {
 | 
			
		||||
                        pre = s.Substring(0, 6);
 | 
			
		||||
                    }
 | 
			
		||||
                    else if (s.StartsWith("{\\an1\\", StringComparison.Ordinal) ||
 | 
			
		||||
                        s.StartsWith("{\\an2\\", StringComparison.Ordinal) ||
 | 
			
		||||
                        s.StartsWith("{\\an3\\", StringComparison.Ordinal) ||
 | 
			
		||||
                        s.StartsWith("{\\an4\\", StringComparison.Ordinal) ||
 | 
			
		||||
                        s.StartsWith("{\\an5\\", StringComparison.Ordinal) ||
 | 
			
		||||
                        s.StartsWith("{\\an6\\", StringComparison.Ordinal) ||
 | 
			
		||||
                        s.StartsWith("{\\an7\\", StringComparison.Ordinal) ||
 | 
			
		||||
                        s.StartsWith("{\\an8\\", StringComparison.Ordinal) ||
 | 
			
		||||
                        s.StartsWith("{\\an9\\", StringComparison.Ordinal))
 | 
			
		||||
                    {
 | 
			
		||||
                        pre = s.Substring(0, 5) + "}";
 | 
			
		||||
                    }
 | 
			
		||||
                    int indexOfEnd = p.Text.IndexOf('}');
 | 
			
		||||
                    p.Text = p.Text.Remove(indexOfBegin, (indexOfEnd - indexOfBegin) + 1);
 | 
			
		||||
 | 
			
		||||
                    indexOfBegin = p.Text.IndexOf('{');
 | 
			
		||||
                    pre = s.Substring(0, 6);
 | 
			
		||||
                }
 | 
			
		||||
                p.Text = pre + p.Text;
 | 
			
		||||
                else if (s.StartsWith("{\\an1\\", StringComparison.Ordinal) ||
 | 
			
		||||
                    s.StartsWith("{\\an2\\", StringComparison.Ordinal) ||
 | 
			
		||||
                    s.StartsWith("{\\an3\\", StringComparison.Ordinal) ||
 | 
			
		||||
                    s.StartsWith("{\\an4\\", StringComparison.Ordinal) ||
 | 
			
		||||
                    s.StartsWith("{\\an5\\", StringComparison.Ordinal) ||
 | 
			
		||||
                    s.StartsWith("{\\an6\\", StringComparison.Ordinal) ||
 | 
			
		||||
                    s.StartsWith("{\\an7\\", StringComparison.Ordinal) ||
 | 
			
		||||
                    s.StartsWith("{\\an8\\", StringComparison.Ordinal) ||
 | 
			
		||||
                    s.StartsWith("{\\an9\\", StringComparison.Ordinal))
 | 
			
		||||
                {
 | 
			
		||||
                    pre = s.Substring(0, 5) + "}";
 | 
			
		||||
                }
 | 
			
		||||
                int indexOfEnd = p.Text.IndexOf('}');
 | 
			
		||||
                p.Text = p.Text.Remove(indexOfBegin, (indexOfEnd - indexOfBegin) + 1);
 | 
			
		||||
 | 
			
		||||
                indexOfBegin = p.Text.IndexOf('{');
 | 
			
		||||
            }
 | 
			
		||||
            p.Text = pre + p.Text;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -13,13 +13,13 @@ namespace MediaBrowser.Model.Dlna.Profiles
 | 
			
		||||
 | 
			
		||||
            XDlnaDoc = "DMS-1.50";
 | 
			
		||||
 | 
			
		||||
            FriendlyName = "Media Browser";
 | 
			
		||||
            Manufacturer = "Media Browser";
 | 
			
		||||
            ModelDescription = "Media Browser";
 | 
			
		||||
            ModelName = "Media Browser";
 | 
			
		||||
            ModelNumber = "Media Browser";
 | 
			
		||||
            ModelUrl = "http://mediabrowser.tv/";
 | 
			
		||||
            ManufacturerUrl = "http://mediabrowser.tv/";
 | 
			
		||||
            FriendlyName = "Emby";
 | 
			
		||||
            Manufacturer = "Emby";
 | 
			
		||||
            ModelDescription = "Emby";
 | 
			
		||||
            ModelName = "Emby";
 | 
			
		||||
            ModelNumber = "Emby";
 | 
			
		||||
            ModelUrl = "http://emby.media/";
 | 
			
		||||
            ManufacturerUrl = "http://emby.media/";
 | 
			
		||||
 | 
			
		||||
            AlbumArtPn = "JPEG_SM";
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -150,7 +150,7 @@ namespace MediaBrowser.Server.Implementations.Connect
 | 
			
		||||
 | 
			
		||||
            if (string.IsNullOrWhiteSpace(wanApiAddress))
 | 
			
		||||
            {
 | 
			
		||||
                _logger.Warn("Cannot update Media Browser Connect information without a WanApiAddress");
 | 
			
		||||
                _logger.Warn("Cannot update Emby Connect information without a WanApiAddress");
 | 
			
		||||
                return;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
@ -411,7 +411,7 @@ namespace MediaBrowser.Server.Implementations.Connect
 | 
			
		||||
 | 
			
		||||
            if (!connectUser.IsActive)
 | 
			
		||||
            {
 | 
			
		||||
                throw new ArgumentException("The Media Browser account has been disabled.");
 | 
			
		||||
                throw new ArgumentException("The Emby account has been disabled.");
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            var user = GetUser(userId);
 | 
			
		||||
@ -517,7 +517,7 @@ namespace MediaBrowser.Server.Implementations.Connect
 | 
			
		||||
 | 
			
		||||
                if (!connectUser.IsActive)
 | 
			
		||||
                {
 | 
			
		||||
                    throw new ArgumentException("The Media Browser account has been disabled.");
 | 
			
		||||
                    throw new ArgumentException("The Emby account has been disabled.");
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                connectUserId = connectUser.Id;
 | 
			
		||||
 | 
			
		||||
@ -389,7 +389,7 @@ namespace MediaBrowser.Server.Implementations.EntryPoints.Notifications
 | 
			
		||||
            var notification = new NotificationRequest
 | 
			
		||||
            {
 | 
			
		||||
                UserIds = new List<string> { e.Argument.Id.ToString("N") },
 | 
			
		||||
                Name = "Welcome to Media Browser!",
 | 
			
		||||
                Name = "Welcome to Emby!",
 | 
			
		||||
                Description = "Check back here for more notifications."
 | 
			
		||||
            };
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -28,7 +28,10 @@ namespace MediaBrowser.Server.Implementations.HttpServer.Security
 | 
			
		||||
            if (!string.IsNullOrWhiteSpace(authorization.Token))
 | 
			
		||||
            {
 | 
			
		||||
                var auth = GetTokenInfo(requestContext);
 | 
			
		||||
                return _sessionManager.GetSessionByAuthenticationToken(auth, authorization.DeviceId, requestContext.RemoteIp, authorization.Version);
 | 
			
		||||
                if (auth != null)
 | 
			
		||||
                {
 | 
			
		||||
                    return _sessionManager.GetSessionByAuthenticationToken(auth, authorization.DeviceId, requestContext.RemoteIp, authorization.Version);
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            var session = _sessionManager.GetSession(authorization.DeviceId, authorization.Client, authorization.Version);
 | 
			
		||||
 | 
			
		||||
@ -1111,13 +1111,18 @@ namespace MediaBrowser.Server.Implementations.LiveTv
 | 
			
		||||
 | 
			
		||||
            var numComplete = 0;
 | 
			
		||||
 | 
			
		||||
            foreach (var program in list)
 | 
			
		||||
            foreach (var programId in list)
 | 
			
		||||
            {
 | 
			
		||||
                cancellationToken.ThrowIfCancellationRequested();
 | 
			
		||||
 | 
			
		||||
                if (!currentIdList.Contains(program.Id))
 | 
			
		||||
                if (!currentIdList.Contains(new Guid(programId)))
 | 
			
		||||
                {
 | 
			
		||||
                    await _libraryManager.DeleteItem(program).ConfigureAwait(false);
 | 
			
		||||
                    var program = _libraryManager.GetItemById(programId);
 | 
			
		||||
 | 
			
		||||
                    if (program != null)
 | 
			
		||||
                    {
 | 
			
		||||
                        await _libraryManager.DeleteItem(program).ConfigureAwait(false);
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                numComplete++;
 | 
			
		||||
 | 
			
		||||
@ -16,7 +16,7 @@
 | 
			
		||||
    "LabelNext": "Next",
 | 
			
		||||
    "LabelYoureDone": "You're Done!",
 | 
			
		||||
    "WelcomeToMediaBrowser": "Welcome to Media Browser!",
 | 
			
		||||
    "TitleMediaBrowser": "Media Browser",
 | 
			
		||||
    "TitleMediaBrowser": "Emby",
 | 
			
		||||
    "ThisWizardWillGuideYou": "This wizard will help guide you through the setup process. To begin, please select your preferred language.",
 | 
			
		||||
    "TellUsAboutYourself": "Tell us about yourself",
 | 
			
		||||
    "ButtonQuickStartGuide": "Quick start guide",
 | 
			
		||||
 | 
			
		||||
@ -27,7 +27,7 @@ namespace MediaBrowser.Server.Implementations.Notifications
 | 
			
		||||
                {
 | 
			
		||||
                     Type = NotificationType.ApplicationUpdateInstalled.ToString(),
 | 
			
		||||
                     DefaultDescription = "{ReleaseNotes}",
 | 
			
		||||
                     DefaultTitle = "A new version of Media Browser Server has been installed.",
 | 
			
		||||
                     DefaultTitle = "A new version of Emby Server has been installed.",
 | 
			
		||||
                     Variables = new List<string>{"Version"}
 | 
			
		||||
                },
 | 
			
		||||
 | 
			
		||||
@ -71,7 +71,7 @@ namespace MediaBrowser.Server.Implementations.Notifications
 | 
			
		||||
                new NotificationTypeInfo
 | 
			
		||||
                {
 | 
			
		||||
                     Type = NotificationType.ServerRestartRequired.ToString(),
 | 
			
		||||
                     DefaultTitle = "Please restart Media Browser Server to finish updating."
 | 
			
		||||
                     DefaultTitle = "Please restart Emby Server to finish updating."
 | 
			
		||||
                },
 | 
			
		||||
 | 
			
		||||
                new NotificationTypeInfo
 | 
			
		||||
@ -158,7 +158,7 @@ namespace MediaBrowser.Server.Implementations.Notifications
 | 
			
		||||
                knownTypes.Add(new NotificationTypeInfo
 | 
			
		||||
                {
 | 
			
		||||
                    Type = NotificationType.ApplicationUpdateAvailable.ToString(),
 | 
			
		||||
                    DefaultTitle = "A new version of Media Browser Server is available for download."
 | 
			
		||||
                    DefaultTitle = "A new version of Emby Server is available for download."
 | 
			
		||||
                });
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -522,7 +522,7 @@ namespace MediaBrowser.Server.Implementations.Persistence
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        public IEnumerable<BaseItem> GetItemsOfType(Type type)
 | 
			
		||||
        public IEnumerable<string> GetItemsOfType(Type type)
 | 
			
		||||
        {
 | 
			
		||||
            if (type == null)
 | 
			
		||||
            {
 | 
			
		||||
@ -533,7 +533,7 @@ namespace MediaBrowser.Server.Implementations.Persistence
 | 
			
		||||
            
 | 
			
		||||
            using (var cmd = _connection.CreateCommand())
 | 
			
		||||
            {
 | 
			
		||||
                cmd.CommandText = "select type,data from TypedBaseItems where type = @type";
 | 
			
		||||
                cmd.CommandText = "select guid from TypedBaseItems where type = @type";
 | 
			
		||||
 | 
			
		||||
                cmd.Parameters.Add(cmd, "@type", DbType.String).Value = type.FullName;
 | 
			
		||||
 | 
			
		||||
@ -541,12 +541,7 @@ namespace MediaBrowser.Server.Implementations.Persistence
 | 
			
		||||
                {
 | 
			
		||||
                    while (reader.Read())
 | 
			
		||||
                    {
 | 
			
		||||
                        var item = GetItem(reader);
 | 
			
		||||
 | 
			
		||||
                        if (item != null)
 | 
			
		||||
                        {
 | 
			
		||||
                            yield return item;
 | 
			
		||||
                        }
 | 
			
		||||
                        yield return reader.GetString(0);
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
@ -108,7 +108,7 @@ namespace MediaBrowser.Server.Implementations.ScheduledTasks
 | 
			
		||||
            }
 | 
			
		||||
            else
 | 
			
		||||
            {
 | 
			
		||||
                Logger.Info("A new version of Media Browser is available.");
 | 
			
		||||
                Logger.Info("A new version of " + _appHost.Name + " is available.");
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            progress.Report(100);
 | 
			
		||||
 | 
			
		||||
@ -43,6 +43,10 @@ namespace MediaBrowser.Server.Implementations.Session
 | 
			
		||||
            ResetPingTimer();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public void OnActivity()
 | 
			
		||||
        {
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private string PostUrl
 | 
			
		||||
        {
 | 
			
		||||
            get
 | 
			
		||||
 | 
			
		||||
@ -236,34 +236,44 @@ namespace MediaBrowser.Server.Implementations.Session
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            var activityDate = DateTime.UtcNow;
 | 
			
		||||
 | 
			
		||||
            var session = await GetSessionInfo(appName, appVersion, deviceId, deviceName, remoteEndPoint, user).ConfigureAwait(false);
 | 
			
		||||
 | 
			
		||||
            var lastActivityDate = session.LastActivityDate;
 | 
			
		||||
            session.LastActivityDate = activityDate;
 | 
			
		||||
 | 
			
		||||
            if (user == null)
 | 
			
		||||
            if (user != null)
 | 
			
		||||
            {
 | 
			
		||||
                return session;
 | 
			
		||||
                var userLastActivityDate = user.LastActivityDate ?? DateTime.MinValue;
 | 
			
		||||
                user.LastActivityDate = activityDate;
 | 
			
		||||
 | 
			
		||||
                // Don't log in the db anymore frequently than 10 seconds
 | 
			
		||||
                if ((activityDate - userLastActivityDate).TotalSeconds > 10)
 | 
			
		||||
                {
 | 
			
		||||
                    try
 | 
			
		||||
                    {
 | 
			
		||||
                        // Save this directly. No need to fire off all the events for this.
 | 
			
		||||
                        await _userRepository.SaveUser(user, CancellationToken.None).ConfigureAwait(false);
 | 
			
		||||
                    }
 | 
			
		||||
                    catch (Exception ex)
 | 
			
		||||
                    {
 | 
			
		||||
                        _logger.ErrorException("Error updating user", ex);
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            var lastActivityDate = user.LastActivityDate;
 | 
			
		||||
 | 
			
		||||
            user.LastActivityDate = activityDate;
 | 
			
		||||
 | 
			
		||||
            // Don't log in the db anymore frequently than 10 seconds
 | 
			
		||||
            if (lastActivityDate.HasValue && (activityDate - lastActivityDate.Value).TotalSeconds < 10)
 | 
			
		||||
            if ((activityDate - lastActivityDate).TotalSeconds > 10)
 | 
			
		||||
            {
 | 
			
		||||
                return session;
 | 
			
		||||
                EventHelper.FireEventIfNotNull(SessionActivity, this, new SessionEventArgs
 | 
			
		||||
                {
 | 
			
		||||
                    SessionInfo = session
 | 
			
		||||
 | 
			
		||||
                }, _logger);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            // Save this directly. No need to fire off all the events for this.
 | 
			
		||||
            await _userRepository.SaveUser(user, CancellationToken.None).ConfigureAwait(false);
 | 
			
		||||
 | 
			
		||||
            EventHelper.FireEventIfNotNull(SessionActivity, this, new SessionEventArgs
 | 
			
		||||
            var controller = session.SessionController;
 | 
			
		||||
            if (controller != null)
 | 
			
		||||
            {
 | 
			
		||||
                SessionInfo = session
 | 
			
		||||
 | 
			
		||||
            }, _logger);
 | 
			
		||||
                controller.OnActivity();
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            return session;
 | 
			
		||||
        }
 | 
			
		||||
@ -1680,7 +1690,7 @@ namespace MediaBrowser.Server.Implementations.Session
 | 
			
		||||
                deviceId = info.DeviceId;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            return GetSessionInfo(appName, appVersion, deviceId, deviceName, remoteEndpoint, user);
 | 
			
		||||
            return LogSessionActivity(appName, appVersion, deviceId, deviceName, remoteEndpoint, user);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public Task<SessionInfo> GetSessionByAuthenticationToken(string token, string deviceId, string remoteEndpoint)
 | 
			
		||||
 | 
			
		||||
@ -30,17 +30,28 @@ namespace MediaBrowser.Server.Implementations.Session
 | 
			
		||||
            Sockets = new List<IWebSocketConnection>();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public bool IsSessionActive
 | 
			
		||||
        private bool HasOpenSockets
 | 
			
		||||
        {
 | 
			
		||||
            get
 | 
			
		||||
            {
 | 
			
		||||
                return Sockets.Any(i => i.State == WebSocketState.Open);
 | 
			
		||||
            }
 | 
			
		||||
            get { return GetActiveSockets().Any(); }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public bool SupportsMediaControl
 | 
			
		||||
        {
 | 
			
		||||
            get { return GetActiveSockets().Any(); }
 | 
			
		||||
            get { return HasOpenSockets; }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private bool _isActive;
 | 
			
		||||
        public bool IsSessionActive
 | 
			
		||||
        {
 | 
			
		||||
            get
 | 
			
		||||
            {
 | 
			
		||||
                return _isActive;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public void OnActivity()
 | 
			
		||||
        {
 | 
			
		||||
            _isActive = true;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private IEnumerable<IWebSocketConnection> GetActiveSockets()
 | 
			
		||||
@ -64,6 +75,8 @@ namespace MediaBrowser.Server.Implementations.Session
 | 
			
		||||
        {
 | 
			
		||||
            if (!GetActiveSockets().Any())
 | 
			
		||||
            {
 | 
			
		||||
                _isActive = false;
 | 
			
		||||
 | 
			
		||||
                try
 | 
			
		||||
                {
 | 
			
		||||
                    _sessionManager.ReportSessionEnded(Session.Id);
 | 
			
		||||
 | 
			
		||||
@ -432,7 +432,7 @@ namespace MediaBrowser.Server.Startup.Common
 | 
			
		||||
 | 
			
		||||
            RegisterSingleInstance<ISearchEngine>(() => new SearchEngine(LogManager, LibraryManager, UserManager));
 | 
			
		||||
 | 
			
		||||
            HttpServer = ServerFactory.CreateServer(this, LogManager, "Media Browser", "web/index.html");
 | 
			
		||||
            HttpServer = ServerFactory.CreateServer(this, LogManager, "Emby", "web/index.html");
 | 
			
		||||
            RegisterSingleInstance(HttpServer, false);
 | 
			
		||||
            progress.Report(10);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -75,7 +75,7 @@ namespace MediaBrowser.ServerApplication
 | 
			
		||||
            // 
 | 
			
		||||
            notifyIcon1.ContextMenuStrip = contextMenuStrip1;
 | 
			
		||||
            notifyIcon1.Icon = ((System.Drawing.Icon)(resources.GetObject("notifyIcon1.Icon")));
 | 
			
		||||
            notifyIcon1.Text = "Media Browser";
 | 
			
		||||
            notifyIcon1.Text = "Emby";
 | 
			
		||||
            notifyIcon1.Visible = true;
 | 
			
		||||
            // 
 | 
			
		||||
            // contextMenuStrip1
 | 
			
		||||
@ -162,7 +162,7 @@ namespace MediaBrowser.ServerApplication
 | 
			
		||||
 | 
			
		||||
            if (_appHost.IsFirstRun)
 | 
			
		||||
            {
 | 
			
		||||
                Action action = () => notifyIcon1.ShowBalloonTip(5000, "Media Browser", "Welcome to Media Browser Server!", ToolTipIcon.Info);
 | 
			
		||||
                Action action = () => notifyIcon1.ShowBalloonTip(5000, "Emby", "Welcome to Emby Server!", ToolTipIcon.Info);
 | 
			
		||||
 | 
			
		||||
                contextMenuStrip1.Invoke(action);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
@ -123,7 +123,7 @@
 | 
			
		||||
            this.lblStatus.Name = "lblStatus";
 | 
			
		||||
            this.lblStatus.Size = new System.Drawing.Size(469, 59);
 | 
			
		||||
            this.lblStatus.TabIndex = 0;
 | 
			
		||||
            this.lblStatus.Text = "Loading Media Browser";
 | 
			
		||||
            this.lblStatus.Text = "Loading Emby Server";
 | 
			
		||||
            this.lblStatus.UseWaitCursor = true;
 | 
			
		||||
            // 
 | 
			
		||||
            // panel1
 | 
			
		||||
@ -162,7 +162,7 @@
 | 
			
		||||
            this.Name = "SplashForm";
 | 
			
		||||
            this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide;
 | 
			
		||||
            this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
 | 
			
		||||
            this.Text = "Media Browser";
 | 
			
		||||
            this.Text = "Emby";
 | 
			
		||||
            this.UseWaitCursor = true;
 | 
			
		||||
            this.panelMainContainer.ResumeLayout(false);
 | 
			
		||||
            this.panel2.ResumeLayout(false);
 | 
			
		||||
 | 
			
		||||
@ -180,11 +180,9 @@ namespace MediaBrowser.WebDashboard.Api
 | 
			
		||||
            sb.Append("<meta name=\"viewport\" content=\"width=device-width, initial-scale=1, user-scalable=no\">");
 | 
			
		||||
            //sb.Append("<meta name=\"apple-mobile-web-app-capable\" content=\"yes\">");
 | 
			
		||||
            sb.Append("<meta name=\"mobile-web-app-capable\" content=\"yes\">");
 | 
			
		||||
            sb.Append("<meta name=\"application-name\" content=\"Media Browser\">");
 | 
			
		||||
            sb.Append("<meta name=\"application-name\" content=\"Emby\">");
 | 
			
		||||
            //sb.Append("<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\">");
 | 
			
		||||
 | 
			
		||||
            sb.Append("<meta name=\"application-name\" content=\"Media Browser\">");
 | 
			
		||||
 | 
			
		||||
            sb.Append("<meta name=\"robots\" content=\"noindex, nofollow, noarchive\" />");
 | 
			
		||||
 | 
			
		||||
            // http://developer.apple.com/library/ios/#DOCUMENTATION/AppleApplications/Reference/SafariWebContent/ConfiguringWebApplications/ConfiguringWebApplications.html
 | 
			
		||||
 | 
			
		||||
@ -266,7 +266,7 @@ namespace MediaBrowser.XbmcMetadata.Images
 | 
			
		||||
 | 
			
		||||
        public string Name
 | 
			
		||||
        {
 | 
			
		||||
            get { return "Media Browser/Plex/Xbmc Images"; }
 | 
			
		||||
            get { return "Emby/Plex/Xbmc Images"; }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user