dodo hold před 2 týdny
rodič
revize
17a212d4db

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 0 - 0
molilian.api/Properties/PublishProfiles/latest.pubxml.user


+ 19 - 4
molilian.core/Plus/Alimama/parse.cs

@@ -252,6 +252,14 @@ namespace molilian.core
                     item.exposeTracks = TracksCore.BuildBrwSimilarPath(TrackType.Expose, result, item, i);
                     item.pic = NormalizeAlicdnImageUrl(item.pic);
                 }
+
+                DateTime now = DateTime.Now;
+                if (now < new DateTime(2026, 8, 22))
+                {
+                    _ = new LoggerLibrary("AlimamaPlus", "PromotionImageCount")
+                        .Info(now.ToString("yyyy-MM-dd HH:mm:ss.fff"), i.ToString())
+                        .SaveAsync();
+                }
             }
 
             result.pic = NormalizeAlicdnImageUrl(result.pic);
@@ -306,8 +314,10 @@ namespace molilian.core
             {
                 return items.Count > 0 ? items.Skip(1).ToList() : [];
             }
+
             string requestUrl = "https://similar.molilian.com/api/unsafePromotionQuery";
-            string targetPic = pic.StartsWith("//") ? $"https:{pic}" : pic;
+            string targetPic = NormalizeAlicdnImageUrl(pic.StartsWith("//") ? $"https:{pic}" : pic, 1200);
+
             object postData = new
             {
                 url = targetPic,
@@ -365,9 +375,13 @@ namespace molilian.core
             return [];
         }
 
-        private static string NormalizeAlicdnImageUrl(string pic)
+        private static string NormalizeAlicdnImageUrl(string pic, int size = 400)
         {
-            const string formatSuffix = "_400x400q90.jpg_.webp";
+            string formatSuffix = size switch
+            {
+                1200 => "_1200x1200q90.jpg_.webp",
+                _ => "_400x400q90.jpg_.webp"
+            };
 
             if (string.IsNullOrWhiteSpace(pic))
             {
@@ -379,7 +393,7 @@ namespace molilian.core
                 return pic;
             }
 
-            if (pic.Contains(formatSuffix, StringComparison.OrdinalIgnoreCase))
+            if (Regex.IsMatch(pic, @"_\d+x\d+q\d+\.jpg_\.webp(?:[?#].*)?$", RegexOptions.IgnoreCase))
             {
                 return pic;
             }
@@ -793,6 +807,7 @@ namespace molilian.core
                 case "tbpush":
                 case "brwsimilar":
                 case "icon":
+                case "req":
                     if (IsDigitsOnly(content))
                     {
                         content = $"https://item.taobao.com/item.htm?id={content}";

+ 3 - 1
molilian.core/Plus/pdd/PddUnionPlus.cs

@@ -220,8 +220,10 @@ namespace molilian.core
         {
             switch (request.RiskStrategy)
             {
-                case "icon":
                 case "tbpush":
+                case "brwsimilar":
+                case "icon":
+                case "req":
                     if (AlimamaPlus.IsDigitsOnly(request.Content))
                     {
                         request.Content = $"https://mobile.yangkeduo.com/goods.html?goods_id={request.Content}";

Některé soubory nejsou zobrazeny, neboť je v těchto rozdílových datech změněno mnoho souborů