mirror of https://github.com/jellyfin/jellyfin.git
sync updates
This commit is contained in:
parent
bdb9cd77bc
commit
01f4ddbdc3
|
@ -821,9 +821,6 @@
|
||||||
<Compile Include="..\MediaBrowser.Model\Net\WebSocketState.cs">
|
<Compile Include="..\MediaBrowser.Model\Net\WebSocketState.cs">
|
||||||
<Link>Net\WebSocketState.cs</Link>
|
<Link>Net\WebSocketState.cs</Link>
|
||||||
</Compile>
|
</Compile>
|
||||||
<Compile Include="..\MediaBrowser.Model\News\NewsChannel.cs">
|
|
||||||
<Link>News\NewsChannel.cs</Link>
|
|
||||||
</Compile>
|
|
||||||
<Compile Include="..\MediaBrowser.Model\News\NewsItem.cs">
|
<Compile Include="..\MediaBrowser.Model\News\NewsItem.cs">
|
||||||
<Link>News\NewsItem.cs</Link>
|
<Link>News\NewsItem.cs</Link>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
|
|
@ -780,9 +780,6 @@
|
||||||
<Compile Include="..\MediaBrowser.Model\Net\WebSocketState.cs">
|
<Compile Include="..\MediaBrowser.Model\Net\WebSocketState.cs">
|
||||||
<Link>Net\WebSocketState.cs</Link>
|
<Link>Net\WebSocketState.cs</Link>
|
||||||
</Compile>
|
</Compile>
|
||||||
<Compile Include="..\MediaBrowser.Model\News\NewsChannel.cs">
|
|
||||||
<Link>News\NewsChannel.cs</Link>
|
|
||||||
</Compile>
|
|
||||||
<Compile Include="..\MediaBrowser.Model\News\NewsItem.cs">
|
<Compile Include="..\MediaBrowser.Model\News\NewsItem.cs">
|
||||||
<Link>News\NewsItem.cs</Link>
|
<Link>News\NewsItem.cs</Link>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
|
|
@ -265,7 +265,6 @@
|
||||||
<Compile Include="MediaInfo\SubtitleFormat.cs" />
|
<Compile Include="MediaInfo\SubtitleFormat.cs" />
|
||||||
<Compile Include="MediaInfo\TransportStreamTimestamp.cs" />
|
<Compile Include="MediaInfo\TransportStreamTimestamp.cs" />
|
||||||
<Compile Include="MediaInfo\VideoCodec.cs" />
|
<Compile Include="MediaInfo\VideoCodec.cs" />
|
||||||
<Compile Include="News\NewsChannel.cs" />
|
|
||||||
<Compile Include="News\NewsItem.cs" />
|
<Compile Include="News\NewsItem.cs" />
|
||||||
<Compile Include="News\NewsQuery.cs" />
|
<Compile Include="News\NewsQuery.cs" />
|
||||||
<Compile Include="Notifications\NotificationRequest.cs" />
|
<Compile Include="Notifications\NotificationRequest.cs" />
|
||||||
|
|
|
@ -1,12 +0,0 @@
|
||||||
using System.Collections.Generic;
|
|
||||||
|
|
||||||
namespace MediaBrowser.Model.News
|
|
||||||
{
|
|
||||||
public class NewsChannel
|
|
||||||
{
|
|
||||||
public string Title { get; set; }
|
|
||||||
public string Link { get; set; }
|
|
||||||
public string Description { get; set; }
|
|
||||||
public List<NewsItem> Items { get; set; }
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -192,10 +192,10 @@
|
||||||
"LabelPlayMethodDirectPlay": "Reproducci\u00f3n Directa",
|
"LabelPlayMethodDirectPlay": "Reproducci\u00f3n Directa",
|
||||||
"LabelAudioCodec": "Audio: {0}",
|
"LabelAudioCodec": "Audio: {0}",
|
||||||
"LabelVideoCodec": "Video: {0}",
|
"LabelVideoCodec": "Video: {0}",
|
||||||
"LabelLocalAccessUrl": "Local access: {0}",
|
"LabelLocalAccessUrl": "Direcci\u00f3n local: {0}",
|
||||||
"LabelRemoteAccessUrl": "Acceso remoto: {0}",
|
"LabelRemoteAccessUrl": "Acceso remoto: {0}",
|
||||||
"LabelRunningOnPort": "Running on http port {0}.",
|
"LabelRunningOnPort": "Ejecut\u00e1ndose en el puerto http {0}.",
|
||||||
"LabelRunningOnPorts": "Running on http port {0}, and https port {1}.",
|
"LabelRunningOnPorts": "Ejecut\u00e1ndose en el puerto http {0} y el puerto https {1}.",
|
||||||
"HeaderLatestFromChannel": "M\u00e1s recientes desde {0}",
|
"HeaderLatestFromChannel": "M\u00e1s recientes desde {0}",
|
||||||
"ButtonDownload": "Descargar",
|
"ButtonDownload": "Descargar",
|
||||||
"LabelUnknownLanaguage": "Idioma desconocido",
|
"LabelUnknownLanaguage": "Idioma desconocido",
|
||||||
|
@ -585,7 +585,7 @@
|
||||||
"MediaInfoRefFrames": "Tramas de referencia",
|
"MediaInfoRefFrames": "Tramas de referencia",
|
||||||
"TabPlayback": "Reproducci\u00f3n",
|
"TabPlayback": "Reproducci\u00f3n",
|
||||||
"TabNotifications": "Notificaciones",
|
"TabNotifications": "Notificaciones",
|
||||||
"TabExpert": "Expert",
|
"TabExpert": "Experto",
|
||||||
"HeaderSelectCustomIntrosPath": "Seleccionar Trayectorias Personalizadas de Intros",
|
"HeaderSelectCustomIntrosPath": "Seleccionar Trayectorias Personalizadas de Intros",
|
||||||
"HeaderRateAndReview": "Clasificar y Rese\u00f1ar",
|
"HeaderRateAndReview": "Clasificar y Rese\u00f1ar",
|
||||||
"HeaderThankYou": "Gracias",
|
"HeaderThankYou": "Gracias",
|
||||||
|
|
|
@ -192,10 +192,10 @@
|
||||||
"LabelPlayMethodDirectPlay": "Direct Play",
|
"LabelPlayMethodDirectPlay": "Direct Play",
|
||||||
"LabelAudioCodec": "Audio : {0}",
|
"LabelAudioCodec": "Audio : {0}",
|
||||||
"LabelVideoCodec": "Vid\u00e9o : {0}",
|
"LabelVideoCodec": "Vid\u00e9o : {0}",
|
||||||
"LabelLocalAccessUrl": "Local access: {0}",
|
"LabelLocalAccessUrl": "Acc\u00e8s local : {0}",
|
||||||
"LabelRemoteAccessUrl": "URL d'acc\u00e8s \u00e0 distance: {0}",
|
"LabelRemoteAccessUrl": "URL d'acc\u00e8s \u00e0 distance: {0}",
|
||||||
"LabelRunningOnPort": "Running on http port {0}.",
|
"LabelRunningOnPort": "En cours d'ex\u00e9cution sur le port http {0}.",
|
||||||
"LabelRunningOnPorts": "Running on http port {0}, and https port {1}.",
|
"LabelRunningOnPorts": "En cours d'ex\u00e9cution sur le port http {0} et https {1}.",
|
||||||
"HeaderLatestFromChannel": "Les plus r\u00e9cents de {0}",
|
"HeaderLatestFromChannel": "Les plus r\u00e9cents de {0}",
|
||||||
"ButtonDownload": "T\u00e9l\u00e9chargement",
|
"ButtonDownload": "T\u00e9l\u00e9chargement",
|
||||||
"LabelUnknownLanaguage": "Langue inconnue",
|
"LabelUnknownLanaguage": "Langue inconnue",
|
||||||
|
|
|
@ -620,7 +620,7 @@
|
||||||
"DashboardTourMobile": "Het dashboard van Media Browser werkt geweldig op smartphones en tablets. Beheer je server vanuit de palm van je hand, overal en altijd.",
|
"DashboardTourMobile": "Het dashboard van Media Browser werkt geweldig op smartphones en tablets. Beheer je server vanuit de palm van je hand, overal en altijd.",
|
||||||
"MessageRefreshQueued": "Vernieuwen wachtrij",
|
"MessageRefreshQueued": "Vernieuwen wachtrij",
|
||||||
"TabDevices": "Apparaten",
|
"TabDevices": "Apparaten",
|
||||||
"TabExtras": "Extras",
|
"TabExtras": "Extra's",
|
||||||
"DeviceLastUsedByUserName": "Het laatste gebruikt door {0}",
|
"DeviceLastUsedByUserName": "Het laatste gebruikt door {0}",
|
||||||
"HeaderDeleteDevice": "Verwijder apparaat",
|
"HeaderDeleteDevice": "Verwijder apparaat",
|
||||||
"DeleteDeviceConfirmation": "Weet u zeker dat u dit apparaat wilt verwijderen? Het zal opnieuw verschijnen als een gebruiker zich hiermee aanmeldt.",
|
"DeleteDeviceConfirmation": "Weet u zeker dat u dit apparaat wilt verwijderen? Het zal opnieuw verschijnen als een gebruiker zich hiermee aanmeldt.",
|
||||||
|
|
|
@ -192,10 +192,10 @@
|
||||||
"LabelPlayMethodDirectPlay": "\u0412\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e",
|
"LabelPlayMethodDirectPlay": "\u0412\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e",
|
||||||
"LabelAudioCodec": "\u0410\u0443\u0434\u0438\u043e: {0}",
|
"LabelAudioCodec": "\u0410\u0443\u0434\u0438\u043e: {0}",
|
||||||
"LabelVideoCodec": "\u0412\u0438\u0434\u0435\u043e: {0}",
|
"LabelVideoCodec": "\u0412\u0438\u0434\u0435\u043e: {0}",
|
||||||
"LabelLocalAccessUrl": "Local access: {0}",
|
"LabelLocalAccessUrl": "\u041b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u0430\u0434\u0440\u0435\u0441: {0}",
|
||||||
"LabelRemoteAccessUrl": "\u0412\u043d\u0435\u0448\u043d\u0438\u0439 \u0434\u043e\u0441\u0442\u0443\u043f: {0}",
|
"LabelRemoteAccessUrl": "\u0412\u043d\u0435\u0448\u043d\u0438\u0439 \u0434\u043e\u0441\u0442\u0443\u043f: {0}",
|
||||||
"LabelRunningOnPort": "Running on http port {0}.",
|
"LabelRunningOnPort": "\u0420\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0430 http-\u043f\u043e\u0440\u0442\u0443 {0}.",
|
||||||
"LabelRunningOnPorts": "Running on http port {0}, and https port {1}.",
|
"LabelRunningOnPorts": "\u0420\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0430 http-\u043f\u043e\u0440\u0442\u0443 {0} \u0438 https-\u043f\u043e\u0440\u0442\u0443 {1}.",
|
||||||
"HeaderLatestFromChannel": "\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435 \u0438\u0437 {0}",
|
"HeaderLatestFromChannel": "\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435 \u0438\u0437 {0}",
|
||||||
"ButtonDownload": "\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c",
|
"ButtonDownload": "\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c",
|
||||||
"LabelUnknownLanaguage": "\u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0439 \u044f\u0437\u044b\u043a",
|
"LabelUnknownLanaguage": "\u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0439 \u044f\u0437\u044b\u043a",
|
||||||
|
@ -585,7 +585,7 @@
|
||||||
"MediaInfoRefFrames": "\u041e\u043f\u043e\u0440\u043d\u044b\u0435 \u043a\u0430\u0434\u0440\u044b",
|
"MediaInfoRefFrames": "\u041e\u043f\u043e\u0440\u043d\u044b\u0435 \u043a\u0430\u0434\u0440\u044b",
|
||||||
"TabPlayback": "\u0412\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435",
|
"TabPlayback": "\u0412\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435",
|
||||||
"TabNotifications": "\u0423\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u044f",
|
"TabNotifications": "\u0423\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u044f",
|
||||||
"TabExpert": "Expert",
|
"TabExpert": "\u0414\u043b\u044f \u043e\u043f\u044b\u0442\u043d\u044b\u0445",
|
||||||
"HeaderSelectCustomIntrosPath": "\u0412\u044b\u0431\u043e\u0440 \u043f\u0443\u0442\u0438 \u043a \u043d\u0435\u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u043c \u0437\u0430\u0441\u0442\u0430\u0432\u043a\u0430\u043c",
|
"HeaderSelectCustomIntrosPath": "\u0412\u044b\u0431\u043e\u0440 \u043f\u0443\u0442\u0438 \u043a \u043d\u0435\u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u043c \u0437\u0430\u0441\u0442\u0430\u0432\u043a\u0430\u043c",
|
||||||
"HeaderRateAndReview": "\u041e\u0446\u0435\u043d\u043a\u0430 \u0438 \u043e\u0442\u0437\u044b\u0432",
|
"HeaderRateAndReview": "\u041e\u0446\u0435\u043d\u043a\u0430 \u0438 \u043e\u0442\u0437\u044b\u0432",
|
||||||
"HeaderThankYou": "\u0411\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u0438\u043c \u0432\u0430\u0441",
|
"HeaderThankYou": "\u0411\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u0438\u043c \u0432\u0430\u0441",
|
||||||
|
@ -620,7 +620,7 @@
|
||||||
"DashboardTourMobile": "\u0418\u043d\u0444\u043e\u043f\u0430\u043d\u0435\u043b\u044c Media Browser \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043e\u0442\u043b\u0438\u0447\u043d\u043e \u043d\u0430 \u0441\u043c\u0430\u0440\u0442\u0444\u043e\u043d\u0430\u0445 \u0438 \u043f\u043b\u0430\u043d\u0448\u0435\u0442\u0430\u0445. \u0423\u043f\u0440\u0430\u0432\u043b\u044f\u0439\u0442\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c \u0441 \u0432\u0430\u0448\u0435\u0439 \u043b\u0430\u0434\u043e\u043d\u0438 \u0432 \u043b\u044e\u0431\u043e\u0435 \u0432\u0440\u0435\u043c\u044f, \u0432 \u043b\u044e\u0431\u043e\u043c \u043c\u0435\u0441\u0442\u0435.",
|
"DashboardTourMobile": "\u0418\u043d\u0444\u043e\u043f\u0430\u043d\u0435\u043b\u044c Media Browser \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043e\u0442\u043b\u0438\u0447\u043d\u043e \u043d\u0430 \u0441\u043c\u0430\u0440\u0442\u0444\u043e\u043d\u0430\u0445 \u0438 \u043f\u043b\u0430\u043d\u0448\u0435\u0442\u0430\u0445. \u0423\u043f\u0440\u0430\u0432\u043b\u044f\u0439\u0442\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c \u0441 \u0432\u0430\u0448\u0435\u0439 \u043b\u0430\u0434\u043e\u043d\u0438 \u0432 \u043b\u044e\u0431\u043e\u0435 \u0432\u0440\u0435\u043c\u044f, \u0432 \u043b\u044e\u0431\u043e\u043c \u043c\u0435\u0441\u0442\u0435.",
|
||||||
"MessageRefreshQueued": "\u041f\u043e\u0434\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0432 \u043e\u0447\u0435\u0440\u0435\u0434\u0438",
|
"MessageRefreshQueued": "\u041f\u043e\u0434\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0432 \u043e\u0447\u0435\u0440\u0435\u0434\u0438",
|
||||||
"TabDevices": "\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430",
|
"TabDevices": "\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430",
|
||||||
"TabExtras": "Extras",
|
"TabExtras": "\u0412 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435",
|
||||||
"DeviceLastUsedByUserName": "\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435: {0}",
|
"DeviceLastUsedByUserName": "\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435: {0}",
|
||||||
"HeaderDeleteDevice": "\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e",
|
"HeaderDeleteDevice": "\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e",
|
||||||
"DeleteDeviceConfirmation": "\u0412\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u043e\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e? \u041e\u043d\u043e \u043f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u0441\u043d\u043e\u0432\u0430 \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0440\u0430\u0437, \u043a\u043e\u0433\u0434\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0432\u043e\u0439\u0434\u0451\u0442 \u0441 \u043d\u0435\u0433\u043e.",
|
"DeleteDeviceConfirmation": "\u0412\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u043e\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e? \u041e\u043d\u043e \u043f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u0441\u043d\u043e\u0432\u0430 \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0440\u0430\u0437, \u043a\u043e\u0433\u0434\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0432\u043e\u0439\u0434\u0451\u0442 \u0441 \u043d\u0435\u0433\u043e.",
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -107,7 +107,8 @@ namespace MediaBrowser.Server.Implementations.News
|
||||||
{
|
{
|
||||||
Date = i.Date,
|
Date = i.Date,
|
||||||
Name = i.Title,
|
Name = i.Title,
|
||||||
Description = i.Link,
|
Description = i.Description,
|
||||||
|
Url = i.Link,
|
||||||
UserIds = _userManager.Users.Select(u => u.Id.ToString("N")).ToList()
|
UserIds = _userManager.Users.Select(u => u.Id.ToString("N")).ToList()
|
||||||
|
|
||||||
}, cancellationToken));
|
}, cancellationToken));
|
||||||
|
|
|
@ -348,18 +348,18 @@ namespace MediaBrowser.Server.Implementations.Sync
|
||||||
|
|
||||||
public async Task SyncJobItems(SyncJobItem[] items, bool enableConversion, IProgress<double> progress, CancellationToken cancellationToken)
|
public async Task SyncJobItems(SyncJobItem[] items, bool enableConversion, IProgress<double> progress, CancellationToken cancellationToken)
|
||||||
{
|
{
|
||||||
var index = 0;
|
var numComplete = 0;
|
||||||
|
|
||||||
foreach (var item in items)
|
foreach (var item in items)
|
||||||
{
|
{
|
||||||
double percent = index;
|
|
||||||
percent /= items.Length;
|
|
||||||
|
|
||||||
progress.Report(100 * percent);
|
|
||||||
|
|
||||||
cancellationToken.ThrowIfCancellationRequested();
|
cancellationToken.ThrowIfCancellationRequested();
|
||||||
|
|
||||||
|
double percentPerItem = 1;
|
||||||
|
percentPerItem /= items.Length;
|
||||||
|
var startingPercent = numComplete * percentPerItem * 100;
|
||||||
|
|
||||||
var innerProgress = new ActionableProgress<double>();
|
var innerProgress = new ActionableProgress<double>();
|
||||||
|
innerProgress.RegisterAction(p => progress.Report(startingPercent + (percentPerItem * p)));
|
||||||
|
|
||||||
var job = _syncRepo.GetJob(item.JobId);
|
var job = _syncRepo.GetJob(item.JobId);
|
||||||
await ProcessJobItem(job, item, enableConversion, innerProgress, cancellationToken).ConfigureAwait(false);
|
await ProcessJobItem(job, item, enableConversion, innerProgress, cancellationToken).ConfigureAwait(false);
|
||||||
|
@ -367,7 +367,10 @@ namespace MediaBrowser.Server.Implementations.Sync
|
||||||
job = _syncRepo.GetJob(item.JobId);
|
job = _syncRepo.GetJob(item.JobId);
|
||||||
await UpdateJobStatus(job).ConfigureAwait(false);
|
await UpdateJobStatus(job).ConfigureAwait(false);
|
||||||
|
|
||||||
index++;
|
numComplete++;
|
||||||
|
double percent = numComplete;
|
||||||
|
percent /= items.Length;
|
||||||
|
progress.Report(100 * percent);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -432,9 +435,9 @@ namespace MediaBrowser.Server.Implementations.Sync
|
||||||
var streamInfo = new StreamBuilder().BuildVideoItem(options);
|
var streamInfo = new StreamBuilder().BuildVideoItem(options);
|
||||||
var mediaSource = streamInfo.MediaSource;
|
var mediaSource = streamInfo.MediaSource;
|
||||||
var externalSubs = streamInfo.GetExternalSubtitles("dummy", false);
|
var externalSubs = streamInfo.GetExternalSubtitles("dummy", false);
|
||||||
var hasExternalSubs = externalSubs.Count > 0;
|
|
||||||
|
|
||||||
var requiresConversion = streamInfo.PlayMethod == PlayMethod.Transcode || hasExternalSubs;
|
// Mark as requiring conversion if transcoding the video, or if any subtitles need to be extracted
|
||||||
|
var requiresConversion = streamInfo.PlayMethod == PlayMethod.Transcode || externalSubs.Any(i => RequiresExtraction(i, mediaSource));
|
||||||
|
|
||||||
if (requiresConversion && !enableConversion)
|
if (requiresConversion && !enableConversion)
|
||||||
{
|
{
|
||||||
|
@ -498,7 +501,7 @@ namespace MediaBrowser.Server.Implementations.Sync
|
||||||
jobItem.MediaSource = mediaSource;
|
jobItem.MediaSource = mediaSource;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (hasExternalSubs)
|
if (externalSubs.Count > 0)
|
||||||
{
|
{
|
||||||
// Save the job item now since conversion could take a while
|
// Save the job item now since conversion could take a while
|
||||||
await _syncRepo.Update(jobItem).ConfigureAwait(false);
|
await _syncRepo.Update(jobItem).ConfigureAwait(false);
|
||||||
|
@ -511,6 +514,13 @@ namespace MediaBrowser.Server.Implementations.Sync
|
||||||
await _syncRepo.Update(jobItem).ConfigureAwait(false);
|
await _syncRepo.Update(jobItem).ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private bool RequiresExtraction(SubtitleStreamInfo stream, MediaSourceInfo mediaSource)
|
||||||
|
{
|
||||||
|
var originalStream = mediaSource.MediaStreams.FirstOrDefault(i => i.Type == MediaStreamType.Subtitle && i.Index == stream.Index);
|
||||||
|
|
||||||
|
return originalStream != null && !originalStream.IsExternal;
|
||||||
|
}
|
||||||
|
|
||||||
private async Task ConvertSubtitles(SyncJobItem jobItem,
|
private async Task ConvertSubtitles(SyncJobItem jobItem,
|
||||||
IEnumerable<SubtitleStreamInfo> subtitles,
|
IEnumerable<SubtitleStreamInfo> subtitles,
|
||||||
StreamInfo streamInfo,
|
StreamInfo streamInfo,
|
||||||
|
|
|
@ -60,8 +60,8 @@ namespace MediaBrowser.Server.Implementations.Sync
|
||||||
|
|
||||||
public Task Execute(CancellationToken cancellationToken, IProgress<double> progress)
|
public Task Execute(CancellationToken cancellationToken, IProgress<double> progress)
|
||||||
{
|
{
|
||||||
return new SyncJobProcessor(_libraryManager, _syncRepo, _syncManager, _logger, _userManager, _tvSeriesManager, _mediaEncoder, _subtitleEncoder, _config, _fileSystem).Sync(progress,
|
return new SyncJobProcessor(_libraryManager, _syncRepo, _syncManager, _logger, _userManager, _tvSeriesManager, _mediaEncoder, _subtitleEncoder, _config, _fileSystem)
|
||||||
cancellationToken);
|
.Sync(progress, cancellationToken);
|
||||||
}
|
}
|
||||||
|
|
||||||
public IEnumerable<ITaskTrigger> GetDefaultTriggers()
|
public IEnumerable<ITaskTrigger> GetDefaultTriggers()
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
|
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
|
||||||
<metadata>
|
<metadata>
|
||||||
<id>MediaBrowser.Common.Internal</id>
|
<id>MediaBrowser.Common.Internal</id>
|
||||||
<version>3.0.543</version>
|
<version>3.0.544</version>
|
||||||
<title>MediaBrowser.Common.Internal</title>
|
<title>MediaBrowser.Common.Internal</title>
|
||||||
<authors>Luke</authors>
|
<authors>Luke</authors>
|
||||||
<owners>ebr,Luke,scottisafool</owners>
|
<owners>ebr,Luke,scottisafool</owners>
|
||||||
|
@ -12,7 +12,7 @@
|
||||||
<description>Contains common components shared by Media Browser Theater and Media Browser Server. Not intended for plugin developer consumption.</description>
|
<description>Contains common components shared by Media Browser Theater and Media Browser Server. Not intended for plugin developer consumption.</description>
|
||||||
<copyright>Copyright © Media Browser 2013</copyright>
|
<copyright>Copyright © Media Browser 2013</copyright>
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency id="MediaBrowser.Common" version="3.0.543" />
|
<dependency id="MediaBrowser.Common" version="3.0.544" />
|
||||||
<dependency id="NLog" version="3.1.0.0" />
|
<dependency id="NLog" version="3.1.0.0" />
|
||||||
<dependency id="SimpleInjector" version="2.6.1" />
|
<dependency id="SimpleInjector" version="2.6.1" />
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
|
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
|
||||||
<metadata>
|
<metadata>
|
||||||
<id>MediaBrowser.Common</id>
|
<id>MediaBrowser.Common</id>
|
||||||
<version>3.0.543</version>
|
<version>3.0.544</version>
|
||||||
<title>MediaBrowser.Common</title>
|
<title>MediaBrowser.Common</title>
|
||||||
<authors>Media Browser Team</authors>
|
<authors>Media Browser Team</authors>
|
||||||
<owners>ebr,Luke,scottisafool</owners>
|
<owners>ebr,Luke,scottisafool</owners>
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
|
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
|
||||||
<metadata>
|
<metadata>
|
||||||
<id>MediaBrowser.Model.Signed</id>
|
<id>MediaBrowser.Model.Signed</id>
|
||||||
<version>3.0.543</version>
|
<version>3.0.544</version>
|
||||||
<title>MediaBrowser.Model - Signed Edition</title>
|
<title>MediaBrowser.Model - Signed Edition</title>
|
||||||
<authors>Media Browser Team</authors>
|
<authors>Media Browser Team</authors>
|
||||||
<owners>ebr,Luke,scottisafool</owners>
|
<owners>ebr,Luke,scottisafool</owners>
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
|
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
|
||||||
<metadata>
|
<metadata>
|
||||||
<id>MediaBrowser.Server.Core</id>
|
<id>MediaBrowser.Server.Core</id>
|
||||||
<version>3.0.543</version>
|
<version>3.0.544</version>
|
||||||
<title>Media Browser.Server.Core</title>
|
<title>Media Browser.Server.Core</title>
|
||||||
<authors>Media Browser Team</authors>
|
<authors>Media Browser Team</authors>
|
||||||
<owners>ebr,Luke,scottisafool</owners>
|
<owners>ebr,Luke,scottisafool</owners>
|
||||||
|
@ -12,7 +12,7 @@
|
||||||
<description>Contains core components required to build plugins for Media Browser Server.</description>
|
<description>Contains core components required to build plugins for Media Browser Server.</description>
|
||||||
<copyright>Copyright © Media Browser 2013</copyright>
|
<copyright>Copyright © Media Browser 2013</copyright>
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency id="MediaBrowser.Common" version="3.0.543" />
|
<dependency id="MediaBrowser.Common" version="3.0.544" />
|
||||||
</dependencies>
|
</dependencies>
|
||||||
</metadata>
|
</metadata>
|
||||||
<files>
|
<files>
|
||||||
|
|
Loading…
Reference in New Issue