beta fixes

This commit is contained in:
Luke Pulverenti 2015-03-21 12:10:02 -04:00
parent e068e84ab6
commit c0aec48a31
23 changed files with 137 additions and 101 deletions

View file

@ -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)

View file

@ -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.

View file

@ -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();
}
}

View file

@ -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

View file

@ -47,6 +47,10 @@ namespace MediaBrowser.Dlna.PlayTo
}
}
public void OnActivity()
{
}
public bool SupportsMediaControl
{
get { return IsSessionActive; }

View file

@ -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;
}
}
}

View file

@ -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";

View file

@ -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;

View file

@ -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."
};

View file

@ -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);

View file

@ -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++;

View file

@ -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",

View file

@ -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."
});
}

View file

@ -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);
}
}
}

View file

@ -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);

View file

@ -43,6 +43,10 @@ namespace MediaBrowser.Server.Implementations.Session
ResetPingTimer();
}
public void OnActivity()
{
}
private string PostUrl
{
get

View file

@ -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)

View file

@ -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);

View file

@ -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);

View file

@ -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);
}

View file

@ -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);

View file

@ -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

View file

@ -266,7 +266,7 @@ namespace MediaBrowser.XbmcMetadata.Images
public string Name
{
get { return "Media Browser/Plex/Xbmc Images"; }
get { return "Emby/Plex/Xbmc Images"; }
}
}
}