|
|
@@ -18,6 +18,8 @@ using TencentCloud.Tcm.V20210413.Models;
|
|
|
using System.Diagnostics;
|
|
|
using System.Threading;
|
|
|
using TencentCloud.Soe.V20180724.Models;
|
|
|
+using OfficeOpenXml.FormulaParsing.LexicalAnalysis;
|
|
|
+using System.Runtime.Intrinsics.Arm;
|
|
|
|
|
|
|
|
|
namespace molilian.core
|
|
|
@@ -27,6 +29,7 @@ namespace molilian.core
|
|
|
|
|
|
public static async Task<ActionResult> UnionParseAsync(string content, string channel, string ip, string oaid, int accountid = 0)
|
|
|
{
|
|
|
+ content = content.Trim();
|
|
|
return channel switch
|
|
|
{
|
|
|
"wemeet" => await WemeetParseAsync(content, ip, oaid),
|
|
|
@@ -73,7 +76,7 @@ namespace molilian.core
|
|
|
result.shortLinkurl,
|
|
|
result.deeplink_url,
|
|
|
result.itemName,
|
|
|
- });
|
|
|
+ }, result.success ? APIResultCodeEnum.OK : APIResultCodeEnum.NotAcceptable);
|
|
|
}
|
|
|
|
|
|
public static APIResult PanParse(string content, string ip, string oaid)
|
|
|
@@ -111,7 +114,7 @@ namespace molilian.core
|
|
|
result.shortLinkurl,
|
|
|
result.deeplink_url,
|
|
|
result.itemName,
|
|
|
- }, result.success ? APIResultCodeEnum.OK : APIResultCodeEnum.NotAcceptable);
|
|
|
+ }, !string.IsNullOrEmpty(result.deeplink_url) ? APIResultCodeEnum.OK : APIResultCodeEnum.NotAcceptable);
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -146,210 +149,74 @@ namespace molilian.core
|
|
|
try
|
|
|
{
|
|
|
string reason = string.Empty;
|
|
|
- //============================== 放弃转链-地区过滤 ==============================
|
|
|
- bool is_ignore2 = AlimamaPlus.ShouldIgnoreRequest(ip, oaid, out reason);
|
|
|
-
|
|
|
- if (is_ignore2)
|
|
|
- {
|
|
|
- result.success = false;
|
|
|
- result.message = "放弃转链";
|
|
|
- result.itemName = "点击打开淘宝APP";
|
|
|
- result.reason = reason;
|
|
|
- _ = TkLogCore.ParseLogAsync(result);
|
|
|
- return TaobaoParseOutput(result, swData, new
|
|
|
- {
|
|
|
- result.success,
|
|
|
- result.message,
|
|
|
- result.content,
|
|
|
- result.itemName,
|
|
|
- result.deeplink_url,
|
|
|
- });
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- //============================== 放弃转链-初步筛选 ==============================
|
|
|
- bool is_ignore = AlimamaPlus.FirstFilterIgnoreRequest(content, out reason);
|
|
|
-
|
|
|
- if (string.IsNullOrEmpty(result.shortLinkurl) && is_ignore)
|
|
|
- {
|
|
|
-
|
|
|
- //没有短链接都放弃
|
|
|
+ //============================== 放弃转链-平台错误 ==============================
|
|
|
+ //bool is_other = await AlimamaPlus.OtherPlatformAsync(content);
|
|
|
+ //if (is_other)
|
|
|
+ //{
|
|
|
+ // result.success = false;
|
|
|
+ // result.message = "放弃转链";
|
|
|
+ // result.reason = "初步筛选";
|
|
|
+ // result.itemName = "";
|
|
|
+ // result.deeplink_url = "";
|
|
|
+
|
|
|
+ // _ = TkLogCore.ParseLogAsync(result);
|
|
|
+ // return TaobaoParseOutput(result, swData, new
|
|
|
+ // {
|
|
|
+ // result.success,
|
|
|
+ // result.message,
|
|
|
+ // result.content,
|
|
|
+ // result.itemName,
|
|
|
+ // result.deeplink_url,
|
|
|
+ // });
|
|
|
+ //}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ ////一眼要排除
|
|
|
+ //if (content.Contains("bmlxkyy.com"))
|
|
|
+ //{
|
|
|
+ // result.success = false;
|
|
|
+ // result.message = "放弃转链";
|
|
|
+ // result.reason = "初步筛选";
|
|
|
+ // result.itemName = "";
|
|
|
+ // result.deeplink_url = "";
|
|
|
+
|
|
|
+ // _ = TkLogCore.ParseLogAsync(result);
|
|
|
+ // return TaobaoParseOutput(result, swData, new
|
|
|
+ // {
|
|
|
+ // result.success,
|
|
|
+ // result.message,
|
|
|
+ // result.content,
|
|
|
+ // result.itemName,
|
|
|
+ // result.deeplink_url,
|
|
|
+ // });
|
|
|
+ //}
|
|
|
+
|
|
|
+ var config = TkConfigCore.Get();
|
|
|
+ var arr = config.tk_whitelist_regular.Split('\n')
|
|
|
+ .Where(line => !string.IsNullOrWhiteSpace(line))
|
|
|
+ .ToList();
|
|
|
+
|
|
|
+ var arr2 = config.tk_blacklist_regular.Split('\n')
|
|
|
+ .Where(line => !string.IsNullOrWhiteSpace(line))
|
|
|
+ .ToList();
|
|
|
+
|
|
|
+ bool is_tao_url = !string.IsNullOrEmpty(result.shortLinkurl);
|
|
|
+ bool is_tao_token = AlimamaPlus.MatchRegexes(content, arr);
|
|
|
+ bool is_other = AlimamaPlus.MatchOtherInfo(content, arr2);
|
|
|
+
|
|
|
+
|
|
|
+ //============================== 放弃转链-初步筛选1 ==============================
|
|
|
+ if (!is_tao_url && !is_tao_token || is_other)
|
|
|
+ {
|
|
|
+ //没有链接都放弃
|
|
|
result.success = false;
|
|
|
result.message = "放弃转链";
|
|
|
- result.itemName = "点击打开淘宝APP";
|
|
|
- result.reason = "初步筛选";
|
|
|
+ result.reason = "初步筛选1";
|
|
|
+ result.itemName = "";
|
|
|
+ result.deeplink_url = "";
|
|
|
_ = TkLogCore.ParseLogAsync(result);
|
|
|
|
|
|
- //0621 临时增加
|
|
|
- if (content.Contains("bmlxkyy.com"))
|
|
|
- {
|
|
|
- result.itemName = "";
|
|
|
- result.deeplink_url = "";
|
|
|
- }
|
|
|
-
|
|
|
- return TaobaoParseOutput(result, swData, new
|
|
|
- {
|
|
|
- result.success,
|
|
|
- result.message,
|
|
|
- result.content,
|
|
|
- result.itemName,
|
|
|
- result.deeplink_url,
|
|
|
- });
|
|
|
- }
|
|
|
-
|
|
|
- //============================== 放弃转链-没有匹配账号 ==============================
|
|
|
- TkPoolDTO? account = accountid > 0 ?
|
|
|
- TkPoolCore.GetOne(accountid) :
|
|
|
- TkPoolCore.GetOne(TkPoolCore.TkAction.parse);
|
|
|
- if (account == null)
|
|
|
- {
|
|
|
- result.success = false;
|
|
|
- result.message = "放弃转链";
|
|
|
- result.reason = "没有匹配账号";
|
|
|
- result.itemName = "点击打开淘宝APP";
|
|
|
- _ = TkLogCore.ParseLogAsync(result);
|
|
|
- return TaobaoParseOutput(result, swData, new
|
|
|
- {
|
|
|
- result.success,
|
|
|
- result.message,
|
|
|
- result.content,
|
|
|
- result.couponAmount,
|
|
|
- result.taoToken,
|
|
|
- result.shortLinkurl,
|
|
|
- result.deeplink_url,
|
|
|
- });
|
|
|
- }
|
|
|
- result.accountId = account.id;
|
|
|
-
|
|
|
- alimama = new AlimamaPlus(account);
|
|
|
- result.accountName = account.company;
|
|
|
-
|
|
|
-
|
|
|
- int timeout = alimama._config.rt_max;
|
|
|
- using var cts = new CancellationTokenSource();
|
|
|
- cts.CancelAfter(timeout);
|
|
|
-
|
|
|
-
|
|
|
- var requestTask = Task.Run(() => alimama.UnionParse2Async(content, result, cts.Token, swData), cts.Token);
|
|
|
- var delayTask = Task.Delay(timeout, cts.Token);
|
|
|
- var completedTask = await Task.WhenAny(requestTask, delayTask);
|
|
|
- if (completedTask == requestTask)
|
|
|
- {
|
|
|
- result = await requestTask;
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- //============================== 放弃转链-请求超时 ==============================
|
|
|
- cts.Cancel();
|
|
|
- result.success = false;
|
|
|
- result.message = "放弃转链";
|
|
|
- result.reason = "请求超时";
|
|
|
- result.itemName = "点击打开淘宝APP";
|
|
|
- }
|
|
|
-
|
|
|
- result.accountName = account.company;
|
|
|
- //result = await alimama.UnionParse2Async(content, result);
|
|
|
- }
|
|
|
- catch (Exception ex)
|
|
|
- {
|
|
|
- //============================== 放弃转链-请求超时 ==============================
|
|
|
- if (ex.Message.Contains("was canceled"))
|
|
|
- {
|
|
|
- result.success = false;
|
|
|
- result.message = "放弃转链";
|
|
|
- result.reason = "请求超时";
|
|
|
- result.itemName = "点击打开淘宝APP";
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- //============================== 转链接口异常 ==============================
|
|
|
- _ = new LoggerLibrary("unionParse", "tb_error")
|
|
|
- .Info(ip, oaid)
|
|
|
- .Info(content)
|
|
|
- .Info(ex.Message, ex.StackTrace)
|
|
|
- .SaveAsync();
|
|
|
-
|
|
|
- NotifyCore.Notify(new NifyMessage
|
|
|
- {
|
|
|
- message = $"【转链异常TB】\n{content}\n\n{ex.Message}\n{ex.StackTrace}",
|
|
|
- priority = NifyMessagePriority.high,
|
|
|
- tags = ["red_circle"]
|
|
|
- });
|
|
|
- result.success = false;
|
|
|
- result.message = "转链接口异常";
|
|
|
- result.itemName = "点击打开淘宝APP";
|
|
|
- }
|
|
|
- }
|
|
|
- _ = TkLogCore.ParseLogAsync(result, alimama);
|
|
|
-
|
|
|
- return TaobaoParseOutput(result, swData, new
|
|
|
- {
|
|
|
- result.success,
|
|
|
- result.message,
|
|
|
- link_type = result.link_type.ToString(),
|
|
|
- channel = result?.channel.ToString(),
|
|
|
- result.channel_type,
|
|
|
- result.itemId,
|
|
|
- result.itemName,
|
|
|
- result.pic,
|
|
|
- result.promotionPrice,
|
|
|
- result.couponAmount,
|
|
|
- result.couponEffectiveStartTime,
|
|
|
- result?.couponEffectiveEndTime,
|
|
|
- result.shortLinkurl,
|
|
|
- result.deeplink_url,
|
|
|
- result.content,
|
|
|
- result.taoToken,
|
|
|
- });
|
|
|
- }
|
|
|
-
|
|
|
- public static async Task<APIResult> TaobaoParseAsync11(string content,
|
|
|
- string ip = "", string oaid = "",
|
|
|
- int accountid = 0)
|
|
|
- {
|
|
|
- AlimamaPlus alimama = null;
|
|
|
- content = content.UrlDecode();
|
|
|
- content = content[..Math.Min(1000, content.Length)];
|
|
|
- var result = AlimamaPlus.GetFormattedObject(content, ip, oaid);
|
|
|
-
|
|
|
- Dictionary<string, long> swData = new();
|
|
|
- swData.Add("StartNew", 0);
|
|
|
- Stopwatch stopwatch = Stopwatch.StartNew();
|
|
|
-
|
|
|
- result.rawContent = content;
|
|
|
- try
|
|
|
- {
|
|
|
- bool is_other = await AlimamaPlus.OtherPlatformAsync(content);
|
|
|
- stopwatch.Stop();
|
|
|
- swData.Add("OtherPlatform", stopwatch.ElapsedMilliseconds);
|
|
|
-
|
|
|
- if (is_other)
|
|
|
- {
|
|
|
- result.success = false;
|
|
|
- result.message = "放弃转链";
|
|
|
- result.reason = "平台错误";
|
|
|
-
|
|
|
- _ = TkLogCore.ParseLogAsync(result);
|
|
|
- return TaobaoParseOutput(result, swData, new
|
|
|
- {
|
|
|
- channel = result?.channel.ToString(),
|
|
|
- result.success,
|
|
|
- result.message,
|
|
|
- result.shortLinkurl,
|
|
|
- result.deeplink_url,
|
|
|
- }, APIResultCodeEnum.NotAcceptable);
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- if (!string.IsNullOrEmpty(result.shortLinkurl) && result.shortLinkurl.Contains("bmlxkyy.com"))
|
|
|
- {
|
|
|
- result.success = false;
|
|
|
- result.message = "放弃转链";
|
|
|
- result.itemName = "点击打开淘宝APP";
|
|
|
- result.reason = "初步筛选";
|
|
|
- _ = TkLogCore.ParseLogAsync(result);
|
|
|
return TaobaoParseOutput(result, swData, new
|
|
|
{
|
|
|
result.success,
|
|
|
@@ -360,21 +227,18 @@ namespace molilian.core
|
|
|
});
|
|
|
}
|
|
|
|
|
|
- stopwatch.Reset();
|
|
|
- stopwatch.Start();
|
|
|
- string reason = string.Empty;
|
|
|
- bool is_ignore = AlimamaPlus.FirstFilterIgnoreRequest(content, out reason);
|
|
|
- stopwatch.Stop();
|
|
|
- swData.Add("FirstFilterIgnoreRequest", stopwatch.ElapsedMilliseconds);
|
|
|
-
|
|
|
- if (string.IsNullOrEmpty(result.shortLinkurl) && is_ignore)
|
|
|
+ //============================== 放弃转链-初步筛选2 ==============================
|
|
|
+ bool is_aff_link = false;
|
|
|
+ if (!string.IsNullOrEmpty(result.shortLinkurl)) is_aff_link = AlimamaPlus.IsAffLink(result.shortLinkurl);
|
|
|
+ if ((!is_tao_url && is_tao_token) || is_aff_link)
|
|
|
{
|
|
|
//没有短链接都放弃
|
|
|
result.success = false;
|
|
|
result.message = "放弃转链";
|
|
|
+ result.reason = "初步筛选2";
|
|
|
result.itemName = "点击打开淘宝APP";
|
|
|
- result.reason = "初步筛选";
|
|
|
_ = TkLogCore.ParseLogAsync(result);
|
|
|
+
|
|
|
return TaobaoParseOutput(result, swData, new
|
|
|
{
|
|
|
result.success,
|
|
|
@@ -385,15 +249,9 @@ namespace molilian.core
|
|
|
});
|
|
|
}
|
|
|
|
|
|
-
|
|
|
- stopwatch.Reset();
|
|
|
- stopwatch.Start();
|
|
|
+ //============================== 放弃转链-地区过滤 ==============================
|
|
|
bool is_ignore2 = AlimamaPlus.ShouldIgnoreRequest(ip, oaid, out reason);
|
|
|
- stopwatch.Stop();
|
|
|
- swData.Add("ShouldIgnoreRequest", stopwatch.ElapsedMilliseconds);
|
|
|
|
|
|
-#if DEBUG
|
|
|
-#else
|
|
|
if (is_ignore2)
|
|
|
{
|
|
|
result.success = false;
|
|
|
@@ -410,17 +268,33 @@ namespace molilian.core
|
|
|
result.deeplink_url,
|
|
|
});
|
|
|
}
|
|
|
-#endif
|
|
|
|
|
|
- stopwatch.Reset();
|
|
|
- stopwatch.Start();
|
|
|
+ ////============================== 放弃转链-初步筛选 ==============================
|
|
|
+ //bool is_ignore = AlimamaPlus.FirstFilterIgnoreRequest(content, out reason);
|
|
|
+
|
|
|
+ //if (string.IsNullOrEmpty(result.shortLinkurl) && is_ignore)
|
|
|
+ //{
|
|
|
+ // //没有短链接都放弃
|
|
|
+ // result.success = false;
|
|
|
+ // result.message = "放弃转链";
|
|
|
+ // result.itemName = "点击打开淘宝APP";
|
|
|
+ // result.reason = "初步筛选";
|
|
|
+ // _ = TkLogCore.ParseLogAsync(result);
|
|
|
+
|
|
|
+ // return TaobaoParseOutput(result, swData, new
|
|
|
+ // {
|
|
|
+ // result.success,
|
|
|
+ // result.message,
|
|
|
+ // result.content,
|
|
|
+ // result.itemName,
|
|
|
+ // result.deeplink_url,
|
|
|
+ // });
|
|
|
+ //}
|
|
|
+
|
|
|
+ //============================== 放弃转链-没有匹配账号 ==============================
|
|
|
TkPoolDTO? account = accountid > 0 ?
|
|
|
TkPoolCore.GetOne(accountid) :
|
|
|
TkPoolCore.GetOne(TkPoolCore.TkAction.parse);
|
|
|
-
|
|
|
- stopwatch.Stop();
|
|
|
- swData.Add("GetOne", stopwatch.ElapsedMilliseconds);
|
|
|
-
|
|
|
if (account == null)
|
|
|
{
|
|
|
result.success = false;
|
|
|
@@ -440,21 +314,15 @@ namespace molilian.core
|
|
|
});
|
|
|
}
|
|
|
result.accountId = account.id;
|
|
|
+ result.accountName = account.company;
|
|
|
|
|
|
- stopwatch.Reset();
|
|
|
- stopwatch.Start();
|
|
|
alimama = new AlimamaPlus(account);
|
|
|
- result.accountName = account.company;
|
|
|
|
|
|
- stopwatch.Stop();
|
|
|
- swData.Add("AlimamaPlus", stopwatch.ElapsedMilliseconds);
|
|
|
|
|
|
int timeout = alimama._config.rt_max;
|
|
|
using var cts = new CancellationTokenSource();
|
|
|
cts.CancelAfter(timeout);
|
|
|
|
|
|
- stopwatch.Reset();
|
|
|
- stopwatch.Start();
|
|
|
|
|
|
var requestTask = Task.Run(() => alimama.UnionParse2Async(content, result, cts.Token, swData), cts.Token);
|
|
|
var delayTask = Task.Delay(timeout, cts.Token);
|
|
|
@@ -465,6 +333,7 @@ namespace molilian.core
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
+ //============================== 放弃转链-请求超时 ==============================
|
|
|
cts.Cancel();
|
|
|
result.success = false;
|
|
|
result.message = "放弃转链";
|
|
|
@@ -472,13 +341,12 @@ namespace molilian.core
|
|
|
result.itemName = "点击打开淘宝APP";
|
|
|
}
|
|
|
|
|
|
- stopwatch.Stop();
|
|
|
- swData.Add("UnionParse2Async", stopwatch.ElapsedMilliseconds);
|
|
|
result.accountName = account.company;
|
|
|
//result = await alimama.UnionParse2Async(content, result);
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
+ //============================== 放弃转链-请求超时 ==============================
|
|
|
if (ex.Message.Contains("was canceled"))
|
|
|
{
|
|
|
result.success = false;
|
|
|
@@ -488,6 +356,7 @@ namespace molilian.core
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
+ //============================== 转链接口异常 ==============================
|
|
|
_ = new LoggerLibrary("unionParse", "tb_error")
|
|
|
.Info(ip, oaid)
|
|
|
.Info(content)
|
|
|
@@ -501,8 +370,7 @@ namespace molilian.core
|
|
|
tags = ["red_circle"]
|
|
|
});
|
|
|
result.success = false;
|
|
|
- result.message = "放弃转链";
|
|
|
- result.reason = "转链接口异常";
|
|
|
+ result.message = "转链接口异常";
|
|
|
result.itemName = "点击打开淘宝APP";
|
|
|
}
|
|
|
}
|
|
|
@@ -529,214 +397,6 @@ namespace molilian.core
|
|
|
});
|
|
|
}
|
|
|
|
|
|
- public static async Task<APIResult> TaobaoParseAsync222(string content,
|
|
|
- string ip = "", string oaid = "")
|
|
|
- {
|
|
|
- AlimamaPlus alimama = null;
|
|
|
- content = content.UrlDecode();
|
|
|
- content = content[..Math.Min(1000, content.Length)];
|
|
|
- var result = AlimamaPlus.GetFormattedObject(content, ip, oaid);
|
|
|
-
|
|
|
- LoggerLibrary log = new("debug", "stopwatch");
|
|
|
- log.Info($"StartNew", content);
|
|
|
- Stopwatch stopwatch = Stopwatch.StartNew();
|
|
|
-
|
|
|
- result.rawContent = content;
|
|
|
- try
|
|
|
- {
|
|
|
- bool is_other = await AlimamaPlus.OtherPlatformAsync(content);
|
|
|
- stopwatch.Stop();
|
|
|
- log.Info($"AlimamaPlus.OtherPlatform\t{stopwatch.ElapsedMilliseconds}");
|
|
|
-
|
|
|
- if (is_other)
|
|
|
- {
|
|
|
- result.success = false;
|
|
|
- result.message = "放弃转链";
|
|
|
- result.reason = "平台错误";
|
|
|
-
|
|
|
- _ = TkLogCore.ParseLogAsync(result);
|
|
|
- return new APIResult(new
|
|
|
- {
|
|
|
- channel = result?.channel.ToString(),
|
|
|
- result.success,
|
|
|
- result.message,
|
|
|
- result.shortLinkurl,
|
|
|
- result.deeplink_url,
|
|
|
- }, APIResultCodeEnum.NotAcceptable);
|
|
|
- }
|
|
|
- if (string.IsNullOrEmpty(result.shortLinkurl) && AlimamaPlus.FirstFilterIgnoreRequest(content, out reason))
|
|
|
- {
|
|
|
- //没有短链接都放弃
|
|
|
- result.success = false;
|
|
|
- result.message = "放弃转链";
|
|
|
- result.itemName = "点击打开淘宝APP";
|
|
|
- result.reason = "初步筛选";
|
|
|
- _ = TkLogCore.ParseLogAsync(result);
|
|
|
- return new APIResult(new
|
|
|
- {
|
|
|
- result.success,
|
|
|
- result.message,
|
|
|
- result.content,
|
|
|
- result.itemName,
|
|
|
- result.deeplink_url,
|
|
|
- });
|
|
|
- }
|
|
|
-
|
|
|
- if (AlimamaPlus.ShouldIgnoreRequest(ip, oaid, out reason))
|
|
|
- {
|
|
|
- result.success = false;
|
|
|
- result.message = "放弃转链";
|
|
|
- result.itemName = "点击打开淘宝APP";
|
|
|
- result.reason = reason;
|
|
|
- _ = TkLogCore.ParseLogAsync(result);
|
|
|
- return new APIResult(new
|
|
|
- {
|
|
|
- result.success,
|
|
|
- result.message,
|
|
|
- result.content,
|
|
|
- result.itemName,
|
|
|
- result.deeplink_url,
|
|
|
- });
|
|
|
- }
|
|
|
- var account = TkPoolCore.GetOne(TkPoolCore.TkAction.parse);
|
|
|
- if (account == null)
|
|
|
- {
|
|
|
- result.success = false;
|
|
|
- result.message = "放弃转链";
|
|
|
- result.reason = "没有匹配账号";
|
|
|
- result.itemName = "点击打开淘宝APP";
|
|
|
- _ = TkLogCore.ParseLogAsync(result);
|
|
|
- return new APIResult(new
|
|
|
- {
|
|
|
- result.success,
|
|
|
- result.message,
|
|
|
- result.content,
|
|
|
- result.couponAmount,
|
|
|
- result.taoToken,
|
|
|
- result.shortLinkurl,
|
|
|
- result.deeplink_url,
|
|
|
- });
|
|
|
- }
|
|
|
- result.accountId = account.id;
|
|
|
- alimama = new AlimamaPlus(account);
|
|
|
- int timeout = alimama._config.rt_max;
|
|
|
-
|
|
|
- using var cts = new CancellationTokenSource();
|
|
|
- cts.CancelAfter(timeout);
|
|
|
- var requestTask = Task.Run(() => alimama.UnionParse2Async(content, result, cts.Token), cts.Token);
|
|
|
- var delayTask = Task.Delay(timeout, cts.Token);
|
|
|
- var completedTask = await Task.WhenAny(requestTask, delayTask);
|
|
|
- if (completedTask == requestTask)
|
|
|
- {
|
|
|
- result = await requestTask;
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- cts.Cancel();
|
|
|
- result.success = false;
|
|
|
- result.message = "放弃转链";
|
|
|
- result.reason = "请求超时";
|
|
|
- result.itemName = "点击打开淘宝APP";
|
|
|
- }
|
|
|
- //result = await alimama.UnionParse2Async(content, result);
|
|
|
- result.accountName = account.company;
|
|
|
- }
|
|
|
- catch (Exception ex)
|
|
|
- {
|
|
|
- if (ex.Message.Contains("was canceled"))
|
|
|
- {
|
|
|
- result.success = false;
|
|
|
- result.message = "放弃转链";
|
|
|
- result.reason = "请求超时";
|
|
|
- result.itemName = "点击打开淘宝APP";
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- _ = new LoggerLibrary("unionParse", "tb_error")
|
|
|
- .Info(ip, oaid)
|
|
|
- .Info(content)
|
|
|
- .Info(ex.Message, ex.StackTrace)
|
|
|
- .SaveAsync();
|
|
|
-
|
|
|
- NotifyCore.Notify(new NifyMessage
|
|
|
- {
|
|
|
- message = $"【转链异常TB】\n{content}\n\n{ex.Message}\n{ex.StackTrace}",
|
|
|
- priority = NifyMessagePriority.high,
|
|
|
- tags = ["red_circle"]
|
|
|
- });
|
|
|
- result.success = false;
|
|
|
- result.message = "放弃转链";
|
|
|
- result.reason = "转链接口异常";
|
|
|
- result.itemName = "点击打开淘宝APP";
|
|
|
- }
|
|
|
- }
|
|
|
- _ = TkLogCore.ParseLogAsync(result, alimama);
|
|
|
-
|
|
|
- return new APIResult(new
|
|
|
- {
|
|
|
- result.success,
|
|
|
- result.message,
|
|
|
- link_type = result.link_type.ToString(),
|
|
|
- channel = result?.channel.ToString(),
|
|
|
- result.channel_type,
|
|
|
- result.itemId,
|
|
|
- result.itemName,
|
|
|
- result.pic,
|
|
|
- result.promotionPrice,
|
|
|
- result.couponAmount,
|
|
|
- result.couponEffectiveStartTime,
|
|
|
- result?.couponEffectiveEndTime,
|
|
|
- result.shortLinkurl,
|
|
|
- result.deeplink_url,
|
|
|
- result.content,
|
|
|
- result.taoToken,
|
|
|
- });
|
|
|
- }
|
|
|
-
|
|
|
- //public static TkDataDTO testTaobaoParseAsync(string content, string ip = "", string oaid = "")
|
|
|
- //{
|
|
|
- // var result = AlimamaPlus.GetFormattedObject(content, ip, oaid);
|
|
|
- // content = content.UrlDecode();
|
|
|
- // content = content[..Math.Min(1000, content.Length)];
|
|
|
- // result.rawContent = content;
|
|
|
- // try
|
|
|
- // {
|
|
|
- // if (AlimamaPlus.OtherPlatform(content))
|
|
|
- // {
|
|
|
- // result.success = false;
|
|
|
- // result.message = "放弃转链";
|
|
|
- // result.reason = "平台错误";
|
|
|
- // return result;
|
|
|
- // }
|
|
|
- // string reason = string.Empty;
|
|
|
- // if (string.IsNullOrEmpty(result.shortLinkurl) && AlimamaPlus.FirstFilterIgnoreRequest(content, out reason))
|
|
|
- // {
|
|
|
- // //没有短链接都放弃
|
|
|
- // result.success = false;
|
|
|
- // result.message = "放弃转链";
|
|
|
- // result.itemName = "点击打开淘宝APP";
|
|
|
- // result.reason = "初步筛选";
|
|
|
- // return result;
|
|
|
- // }
|
|
|
-
|
|
|
- // if (AlimamaPlus.ShouldIgnoreRequest(ip, oaid, out reason))
|
|
|
- // {
|
|
|
- // result.success = false;
|
|
|
- // result.message = "放弃转链";
|
|
|
- // result.itemName = "点击打开淘宝APP";
|
|
|
- // result.reason = reason;
|
|
|
- // return result;
|
|
|
- // }
|
|
|
- // result.success = true;
|
|
|
- // return result;
|
|
|
- // }
|
|
|
- // catch (Exception ex)
|
|
|
- // {
|
|
|
- // result.success = false;
|
|
|
- // return result;
|
|
|
- // }
|
|
|
- //}
|
|
|
-
|
|
|
public static async Task<APIResult> JdParseAsync(string content, string ip, string oaid, CancellationToken cancellationToken = default)
|
|
|
{
|
|
|
var result = JdUnionPlus.GetFormattedObject(content, ip, oaid);
|