mirror of
https://github.com/jellyfin/jellyfin.git
synced 2024-09-08 04:18:06 +02:00
live tv guide improvements
This commit is contained in:
parent
77ac8826e3
commit
9682f60100
4 changed files with 76 additions and 13 deletions
|
@ -1514,6 +1514,10 @@ namespace MediaBrowser.Api.Playback
|
||||||
request.PlaySessionId = val;
|
request.PlaySessionId = val;
|
||||||
}
|
}
|
||||||
else if (i == 22)
|
else if (i == 22)
|
||||||
|
{
|
||||||
|
// api_key
|
||||||
|
}
|
||||||
|
else if (i == 23)
|
||||||
{
|
{
|
||||||
request.LiveStreamId = val;
|
request.LiveStreamId = val;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1421,5 +1421,13 @@
|
||||||
"LabelConversionCpuCoreLimitHelp": "Limit the number of CPU cores that will be used during sync conversion.",
|
"LabelConversionCpuCoreLimitHelp": "Limit the number of CPU cores that will be used during sync conversion.",
|
||||||
"OptionEnableFullSpeedConversion": "Enable full speed conversion",
|
"OptionEnableFullSpeedConversion": "Enable full speed conversion",
|
||||||
"OptionEnableFullSpeedConversionHelp": "By default, sync conversion is performed at a low speed to minimize resource consumption.",
|
"OptionEnableFullSpeedConversionHelp": "By default, sync conversion is performed at a low speed to minimize resource consumption.",
|
||||||
"HeaderPlaylists": "Playlists"
|
"HeaderPlaylists": "Playlists",
|
||||||
|
"HeaderSelectDate": "Select Date",
|
||||||
|
"HeaderWelcomeExclamation": "Welcome!",
|
||||||
|
"HeaderMyPreferences": "My Preferences",
|
||||||
|
"ButtonMyPreferencesWelcomeYes": "Yes, I'd like to set my preferences now.",
|
||||||
|
"ButtonMyPreferencesWelcomeNo": "No thanks, I'll do it later.",
|
||||||
|
"MyPreferencesWelcomeMessage1": "We've presented your library in a way we think you'll enjoy. The appearance and grouping of content can be changed anytime by adjusting your preferences. Your preferences will apply to all Emby apps.",
|
||||||
|
"MyPreferencesWelcomeMessage2": "Would you like to set your preferences now?",
|
||||||
|
"ToAccessPreferencesHelp": "To access your preferences later, click your user icon in the top right header and select My Preferences."
|
||||||
}
|
}
|
||||||
|
|
|
@ -750,6 +750,9 @@ namespace MediaBrowser.Server.Implementations.Sync
|
||||||
|
|
||||||
foreach (var jobItem in jobItemResult.Items)
|
foreach (var jobItem in jobItemResult.Items)
|
||||||
{
|
{
|
||||||
|
var requiresSaving = false;
|
||||||
|
var removeFromDevice = false;
|
||||||
|
|
||||||
if (request.LocalItemIds.Contains(jobItem.ItemId, StringComparer.OrdinalIgnoreCase))
|
if (request.LocalItemIds.Contains(jobItem.ItemId, StringComparer.OrdinalIgnoreCase))
|
||||||
{
|
{
|
||||||
var job = _repo.GetJob(jobItem.JobId);
|
var job = _repo.GetJob(jobItem.JobId);
|
||||||
|
@ -759,13 +762,13 @@ namespace MediaBrowser.Server.Implementations.Sync
|
||||||
{
|
{
|
||||||
// Tell the device to remove it since it has been marked for removal
|
// Tell the device to remove it since it has been marked for removal
|
||||||
_logger.Debug("Adding ItemIdsToRemove {0} because IsMarkedForRemoval is set.", jobItem.ItemId);
|
_logger.Debug("Adding ItemIdsToRemove {0} because IsMarkedForRemoval is set.", jobItem.ItemId);
|
||||||
response.ItemIdsToRemove.Add(jobItem.ItemId);
|
removeFromDevice = true;
|
||||||
}
|
}
|
||||||
else if (user == null)
|
else if (user == null)
|
||||||
{
|
{
|
||||||
// Tell the device to remove it since the user is gone now
|
// Tell the device to remove it since the user is gone now
|
||||||
_logger.Debug("Adding ItemIdsToRemove {0} because the user is no longer valid.", jobItem.ItemId);
|
_logger.Debug("Adding ItemIdsToRemove {0} because the user is no longer valid.", jobItem.ItemId);
|
||||||
response.ItemIdsToRemove.Add(jobItem.ItemId);
|
removeFromDevice = true;
|
||||||
}
|
}
|
||||||
else if (job.UnwatchedOnly)
|
else if (job.UnwatchedOnly)
|
||||||
{
|
{
|
||||||
|
@ -777,23 +780,42 @@ namespace MediaBrowser.Server.Implementations.Sync
|
||||||
{
|
{
|
||||||
// Tell the device to remove it since it has been played
|
// Tell the device to remove it since it has been played
|
||||||
_logger.Debug("Adding ItemIdsToRemove {0} because it has been marked played.", jobItem.ItemId);
|
_logger.Debug("Adding ItemIdsToRemove {0} because it has been marked played.", jobItem.ItemId);
|
||||||
response.ItemIdsToRemove.Add(jobItem.ItemId);
|
removeFromDevice = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Tell the device to remove it since it's no longer available
|
// Tell the device to remove it since it's no longer available
|
||||||
_logger.Debug("Adding ItemIdsToRemove {0} because it is no longer available.", jobItem.ItemId);
|
_logger.Debug("Adding ItemIdsToRemove {0} because it is no longer available.", jobItem.ItemId);
|
||||||
response.ItemIdsToRemove.Add(jobItem.ItemId);
|
removeFromDevice = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
_logger.Debug("Setting status to RemovedFromDevice for {0} because it is no longer on the device.", jobItem.ItemId);
|
_logger.Debug("Setting status to Queued for {0} because it is no longer on the device.", jobItem.ItemId);
|
||||||
|
|
||||||
// Content is no longer on the device
|
// Content is no longer on the device
|
||||||
jobItem.Status = SyncJobItemStatus.RemovedFromDevice;
|
if (jobItem.IsMarkedForRemoval)
|
||||||
|
{
|
||||||
|
jobItem.Status = SyncJobItemStatus.RemovedFromDevice;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
jobItem.Status = SyncJobItemStatus.Queued;
|
||||||
|
}
|
||||||
|
requiresSaving = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (removeFromDevice)
|
||||||
|
{
|
||||||
|
response.ItemIdsToRemove.Add(jobItem.ItemId);
|
||||||
|
jobItem.IsMarkedForRemoval = true;
|
||||||
|
requiresSaving = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (requiresSaving)
|
||||||
|
{
|
||||||
await UpdateSyncJobItemInternal(jobItem).ConfigureAwait(false);
|
await UpdateSyncJobItemInternal(jobItem).ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -837,6 +859,9 @@ namespace MediaBrowser.Server.Implementations.Sync
|
||||||
|
|
||||||
foreach (var jobItem in jobItemResult.Items)
|
foreach (var jobItem in jobItemResult.Items)
|
||||||
{
|
{
|
||||||
|
var requiresSaving = false;
|
||||||
|
var removeFromDevice = false;
|
||||||
|
|
||||||
if (request.SyncJobItemIds.Contains(jobItem.Id, StringComparer.OrdinalIgnoreCase))
|
if (request.SyncJobItemIds.Contains(jobItem.Id, StringComparer.OrdinalIgnoreCase))
|
||||||
{
|
{
|
||||||
var job = _repo.GetJob(jobItem.JobId);
|
var job = _repo.GetJob(jobItem.JobId);
|
||||||
|
@ -846,13 +871,13 @@ namespace MediaBrowser.Server.Implementations.Sync
|
||||||
{
|
{
|
||||||
// Tell the device to remove it since it has been marked for removal
|
// Tell the device to remove it since it has been marked for removal
|
||||||
_logger.Debug("Adding ItemIdsToRemove {0} because IsMarkedForRemoval is set.", jobItem.Id);
|
_logger.Debug("Adding ItemIdsToRemove {0} because IsMarkedForRemoval is set.", jobItem.Id);
|
||||||
response.ItemIdsToRemove.Add(jobItem.Id);
|
removeFromDevice = true;
|
||||||
}
|
}
|
||||||
else if (user == null)
|
else if (user == null)
|
||||||
{
|
{
|
||||||
// Tell the device to remove it since the user is gone now
|
// Tell the device to remove it since the user is gone now
|
||||||
_logger.Debug("Adding ItemIdsToRemove {0} because the user is no longer valid.", jobItem.Id);
|
_logger.Debug("Adding ItemIdsToRemove {0} because the user is no longer valid.", jobItem.Id);
|
||||||
response.ItemIdsToRemove.Add(jobItem.Id);
|
removeFromDevice = true;
|
||||||
}
|
}
|
||||||
else if (job.UnwatchedOnly)
|
else if (job.UnwatchedOnly)
|
||||||
{
|
{
|
||||||
|
@ -864,23 +889,42 @@ namespace MediaBrowser.Server.Implementations.Sync
|
||||||
{
|
{
|
||||||
// Tell the device to remove it since it has been played
|
// Tell the device to remove it since it has been played
|
||||||
_logger.Debug("Adding ItemIdsToRemove {0} because it has been marked played.", jobItem.Id);
|
_logger.Debug("Adding ItemIdsToRemove {0} because it has been marked played.", jobItem.Id);
|
||||||
response.ItemIdsToRemove.Add(jobItem.Id);
|
removeFromDevice = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Tell the device to remove it since it's no longer available
|
// Tell the device to remove it since it's no longer available
|
||||||
_logger.Debug("Adding ItemIdsToRemove {0} because it is no longer available.", jobItem.Id);
|
_logger.Debug("Adding ItemIdsToRemove {0} because it is no longer available.", jobItem.Id);
|
||||||
response.ItemIdsToRemove.Add(jobItem.Id);
|
removeFromDevice = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
_logger.Debug("Setting status to RemovedFromDevice for {0} because it is no longer on the device.", jobItem.Id);
|
_logger.Debug("Setting status to Queued for {0} because it is no longer on the device.", jobItem.Id);
|
||||||
|
|
||||||
// Content is no longer on the device
|
// Content is no longer on the device
|
||||||
jobItem.Status = SyncJobItemStatus.RemovedFromDevice;
|
if (jobItem.IsMarkedForRemoval)
|
||||||
|
{
|
||||||
|
jobItem.Status = SyncJobItemStatus.RemovedFromDevice;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
jobItem.Status = SyncJobItemStatus.Queued;
|
||||||
|
}
|
||||||
|
requiresSaving = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (removeFromDevice)
|
||||||
|
{
|
||||||
|
response.ItemIdsToRemove.Add(jobItem.Id);
|
||||||
|
jobItem.IsMarkedForRemoval = true;
|
||||||
|
requiresSaving = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (requiresSaving)
|
||||||
|
{
|
||||||
await UpdateSyncJobItemInternal(jobItem).ConfigureAwait(false);
|
await UpdateSyncJobItemInternal(jobItem).ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -166,6 +166,13 @@ namespace MediaBrowser.ServerApplication
|
||||||
|
|
||||||
contextMenuStrip1.Invoke(action);
|
contextMenuStrip1.Invoke(action);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
notifyIcon1.DoubleClick += notifyIcon1_DoubleClick;
|
||||||
|
}
|
||||||
|
|
||||||
|
void notifyIcon1_DoubleClick(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
BrowserLauncher.OpenDashboard(_appHost, _logger);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void LocalizeText()
|
private void LocalizeText()
|
||||||
|
|
Loading…
Reference in a new issue