Explorar o código

reload include config file; layout changed

HOME %!s(int64=2) %!d(string=hai) anos
pai
achega
0277ab2c92

+ 5 - 1
FNZCM/FNZCM.ConHost/ConfigFile.cs

@@ -16,6 +16,10 @@ namespace FNZCM.ConHost
 
     public class ConfigFile : IConfigFile
     {
+        static ConfigFile() => Reload();
+
+        public static void Reload() => Instance = JsonConvert.DeserializeObject<ConfigFile>(File.ReadAllText(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "config.json")));
+
         public string ListenPrefix { get; set; }
 
         public string Title { get; set; }
@@ -24,6 +28,6 @@ namespace FNZCM.ConHost
         public string[] MediaFilePattern { get; set; }
         public string[] BkFilePattern { get; set; }
 
-        public static IConfigFile Instance { get; } = JsonConvert.DeserializeObject<ConfigFile>(File.ReadAllText(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "config.json")));
+        public static IConfigFile Instance { get; private set; }
     }
 }

+ 3 - 3
FNZCM/FNZCM.ConHost/Ver2/LibraryModels2.cs

@@ -8,14 +8,14 @@ namespace FNZCM.ConHost.Ver2
 
         public string Name { get; }
 
-        public ConcurrentDictionary<string, Album2> Albums { get; } = new();
+        public ConcurrentDictionary<string, Disc> Discs { get; } = new();
     }
 
-    internal class Album2
+    internal class Disc
     {
         public string Name { get; }
 
-        public Album2(string name) => Name = name;
+        public Disc(string name) => Name = name;
 
         public ConcurrentDictionary<string, string> Bks { get; } = new();
 

+ 15 - 13
FNZCM/FNZCM.ConHost/Ver2/Program2.cs

@@ -62,6 +62,7 @@ namespace FNZCM.ConHost.Ver2
             _isLoading = true;
             try
             {
+                ConfigFile.Reload();
                 Console.WriteLine("Scanning libraries...");
                 MediaTags.Clear();
                 PathMapping.Clear();
@@ -80,11 +81,11 @@ namespace FNZCM.ConHost.Ver2
                     {
                         if (_isRunning == false) throw new OperationCanceledException();
 
-                        Console.WriteLine($" Album {albDir}");
+                        Console.WriteLine($" Disc {albDir}");
 
                         var albName = Path.GetFileName(albDir);
                         var albPath = albName.ToLower();
-                        var alb = lib.Albums[albPath] = new Album2(albName);
+                        var alb = lib.Discs[albPath] = new Disc(albName);
 
                         var coverFilePath = Path.Combine(albDir, "cover.jpg");
                         if (File.Exists(coverFilePath)) PathMapping[$"/cover/{libPath}/{albPath}/cover.jpg"] = coverFilePath;
@@ -248,12 +249,13 @@ namespace FNZCM.ConHost.Ver2
                     {
                         sb.Append("<li>");
                         sb.Append($"<a href='/list/{library.Key.FuckVlcAndEscape()}/'>{library.Value.Name}</a>");
+                        sb.Append($"<br/>&nbsp;&nbsp;&nbsp; Number of disc: {library.Value.Discs.Count}");
                         sb.Append("</li>");
                     }
 
                     sb.Append("</ul>");
 
-                    sb.Append("<a href=/scan/> Scan Libraries</a>");
+                    sb.Append("<a href=/scan/>Reload</a>");
 
                     context.Response.WriteText(sb.ToString());
                 }
@@ -264,7 +266,7 @@ namespace FNZCM.ConHost.Ver2
                     {
                         var sb = new StringBuilder();
                         sb.Append("<!DOCTYPE html><html lang=\"zh-cn\"><meta charset=\"UTF-8\">");
-                        sb.Append($"<title> Albums of {l.Name} - {ConfigFile.Instance.Title} </title>");
+                        sb.Append($"<title> Discs of {l.Name} - {ConfigFile.Instance.Title} </title>");
                         sb.Append(
                             "<style>" +
                             "a:link{ text-decoration: none; }" +
@@ -297,11 +299,11 @@ namespace FNZCM.ConHost.Ver2
 
                         if (_isLoading) sb.Append("<h2 style=position:fixed;right:0px;top:0px;margin:0>Still Loading...</h2>");
 
-                        sb.Append($"<h1>Albums of {l.Name}</h1>");
+                        sb.Append($"<h1>Discs of {l.Name}</h1>");
                         sb.Append("<div><a href=/>Back to home</a></div>");
 
                         //Cover list
-                        foreach (var a in l.Albums.OrderBy(p => p.Key))
+                        foreach (var a in l.Discs.OrderBy(p => p.Key))
                         {
                             sb.Append("<div class=item>");
 
@@ -313,7 +315,7 @@ namespace FNZCM.ConHost.Ver2
                             sb.Append("<div class=links>");
 
                             sb.Append("<div>");
-                            sb.Append($"<a class=button href=\"/list/{libName}/{a.Key}/tracks/\">[TRACKERS]</a>");
+                            sb.Append($"Number of track: {a.Value.MainTracks.Count} <a href=\"/list/{libName}/{a.Key}/tracks/\">[TRACKERS]</a>");
                             if (a.Value.Bks?.Count > 0) sb.Append($"<a class=button href=\"/list/{libName}/{a.Key}/bk/\">[BK]</a>");
                             sb.Append("</div>");
 
@@ -349,7 +351,7 @@ namespace FNZCM.ConHost.Ver2
                     var libName = pathParts[1];
                     var albPath = pathParts[2];
 
-                    if (Libraries.TryGetValue(libName, out var l) && l.Albums.TryGetValue(albPath, out var alb))
+                    if (Libraries.TryGetValue(libName, out var l) && l.Discs.TryGetValue(albPath, out var alb))
                     {
                         var sb = new StringBuilder();
                         sb.Append("<!DOCTYPE html><html lang=\"zh-cn\"><meta charset=\"UTF-8\">");
@@ -372,7 +374,7 @@ namespace FNZCM.ConHost.Ver2
                             var tag = GetTag($"/media/{libName}/{albPath}/{kvpTrack.Key}");
                             durTotal += tag.Duration;
                             sizeTotal += tag.Length;
-                            sbm.Append($" ({tag.Duration.FormatDuration()}) {tag.Length.FormatFileSize()}");
+                            sbm.Append($"<br> &nbsp; &nbsp; &nbsp; {tag.Duration.FormatDuration()} {tag.Length.FormatFileSize()}");
 
                             sbm.Append($"</li>");
                         }
@@ -394,7 +396,7 @@ namespace FNZCM.ConHost.Ver2
                                 var tag = GetTag($"/media/{libName}/{albPath}/{kvpSubSet.Key}/{kvpTrack.Key}");
                                 durTotal += tag.Duration;
                                 sizeTotal += tag.Length;
-                                sbm.Append($" ({tag.Duration.FormatDuration()}) {tag.Length.FormatFileSize()}");
+                                sbm.Append($"<br/> &nbsp; &nbsp; &nbsp; {tag.Duration.FormatDuration()} {tag.Length.FormatFileSize()}");
 
                                 sbm.Append($"</li>");
                             }
@@ -418,7 +420,7 @@ namespace FNZCM.ConHost.Ver2
                     var libName = pathParts[1];
                     var albPath = pathParts[2];
 
-                    if (Libraries.TryGetValue(libName, out var lib) && lib.Albums.TryGetValue(albPath, out var alb))
+                    if (Libraries.TryGetValue(libName, out var lib) && lib.Discs.TryGetValue(albPath, out var alb))
                     {
                         var sb = new StringBuilder();
                         sb.Append("<!DOCTYPE html><html lang=\"zh-cn\"><meta charset=\"UTF-8\">");
@@ -450,7 +452,7 @@ namespace FNZCM.ConHost.Ver2
                     var libName = pathParts[1];
                     var albPath = pathParts[2];
 
-                    if (Libraries.TryGetValue(libName, out var lib) && lib.Albums.TryGetValue(albPath, out var alb))
+                    if (Libraries.TryGetValue(libName, out var lib) && lib.Discs.TryGetValue(albPath, out var alb))
                     {
                         // ReSharper disable once BitwiseOperatorOnEnumWithoutFlags
                         var prefix = $"{request.Url.GetLeftPart(UriPartial.Scheme | UriPartial.Authority)}";
@@ -487,7 +489,7 @@ namespace FNZCM.ConHost.Ver2
                     var albPath = pathParts[2];
                     var subSetPath = pathParts[3];
 
-                    if (Libraries.TryGetValue(libName, out var lib) && lib.Albums.TryGetValue(albPath, out var alb))
+                    if (Libraries.TryGetValue(libName, out var lib) && lib.Discs.TryGetValue(albPath, out var alb))
                     {
                         // ReSharper disable once BitwiseOperatorOnEnumWithoutFlags
                         var prefix = $"{request.Url.GetLeftPart(UriPartial.Scheme | UriPartial.Authority)}";

+ 2 - 3
FNZCM/FNZCM.ConHost/config.json

@@ -1,9 +1,8 @@
 {
   "ListenPrefix": "http://+:38964/",
-  "Title": "FNZCM [Fuck Neteasy eaZy Cloud Music]",
+  "Title": "FNZ Cloud Music",
   "Libraries": {
-    "1. Main": "X:\\音乐库\\Main",
-    "2. Other Lossy": "X:\\音乐库\\OtherLossy"
+    "Artist Alan Walker": "X:/音乐库/Alan Walker"
   },
   "MediaFilePattern": [
     "*.flac",