Skip to content

Commit

Permalink
Merge pull request #810 from Bond-009/localization
Browse files Browse the repository at this point in the history
Fix loading of rating files
  • Loading branch information
JustAMan committed Feb 4, 2019
2 parents 83af2db + ae5514a commit 181de97
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 15 deletions.
Expand Up @@ -43,7 +43,7 @@
<EmbeddedResource Include="Localization\iso6392.txt" />
<EmbeddedResource Include="Localization\countries.json" />
<EmbeddedResource Include="Localization\Core\*.json" />
<EmbeddedResource Include="Localization\Ratings\*.txt" />
<EmbeddedResource Include="Localization\Ratings\*.csv" />
</ItemGroup>

</Project>
38 changes: 24 additions & 14 deletions Emby.Server.Implementations/Localization/LocalizationManager.cs
Expand Up @@ -60,29 +60,35 @@ public class LocalizationManager : ILocalizationManager

public async Task LoadAll()
{
const string ratingsResource = "Emby.Server.Implementations.Ratings.";
const string ratingsResource = "Emby.Server.Implementations.Localization.Ratings.";

Directory.CreateDirectory(LocalizationPath);

var existingFiles = GetRatingsFiles(LocalizationPath).Select(Path.GetFileName);

// Extract from the assembly
foreach (var resource in _assembly.GetManifestResourceNames()
.Where(i => i.StartsWith(ratingsResource)))
foreach (var resource in _assembly.GetManifestResourceNames())
{
if (!resource.StartsWith(ratingsResource))
{
continue;
}

string filename = "ratings-" + resource.Substring(ratingsResource.Length);

if (!existingFiles.Contains(filename))
if (existingFiles.Contains(filename))
{
using (var stream = _assembly.GetManifestResourceStream(resource))
{
string target = Path.Combine(LocalizationPath, filename);
_logger.LogInformation("Extracting ratings to {0}", target);
continue;
}

using (var fs = _fileSystem.GetFileStream(target, FileOpenMode.Create, FileAccessMode.Write, FileShareMode.Read))
{
await stream.CopyToAsync(fs);
}
using (var stream = _assembly.GetManifestResourceStream(resource))
{
string target = Path.Combine(LocalizationPath, filename);
_logger.LogInformation("Extracting ratings to {0}", target);

using (var fs = _fileSystem.GetFileStream(target, FileOpenMode.Create, FileAccessMode.Write, FileShareMode.Read))
{
await stream.CopyToAsync(fs);
}
}
}
Expand Down Expand Up @@ -289,7 +295,8 @@ public IEnumerable<ParentalRating> GetParentalRatings()
/// <returns>Dictionary{System.StringParentalRating}.</returns>
private async Task LoadRatings(string file)
{
Dictionary<string, ParentalRating> dict = new Dictionary<string, ParentalRating>(StringComparer.OrdinalIgnoreCase);
Dictionary<string, ParentalRating> dict
= new Dictionary<string, ParentalRating>(StringComparer.OrdinalIgnoreCase);

using (var str = File.OpenRead(file))
using (var reader = new StreamReader(str))
Expand All @@ -309,7 +316,10 @@ private async Task LoadRatings(string file)
dict.Add(parts[0], (new ParentalRating { Name = parts[0], Value = value }));
}
#if DEBUG
_logger.LogWarning("Misformed line in {Path}", file);
else
{
_logger.LogWarning("Misformed line in {Path}", file);
}
#endif
}
}
Expand Down

0 comments on commit 181de97

Please sign in to comment.