|
@@ -12,31 +12,33 @@ namespace molilian.core
|
|
|
{
|
|
{
|
|
|
public partial class UnionParseCore
|
|
public partial class UnionParseCore
|
|
|
{
|
|
{
|
|
|
- public static async Task<ActionResult> UnionParseAsync(string content, string channel, int commerceType, string ip, string oaid, string riskStrategy, int launchScene, int accountid = 0, int special_text = -1, string clickId = "", string type = "")
|
|
|
|
|
-
|
|
|
|
|
|
|
+ /// <summary>
|
|
|
|
|
+ /// 联盟转链统一入口
|
|
|
|
|
+ /// </summary>
|
|
|
|
|
+ public static async Task<ActionResult> UnionParseAsync(UnionParseRequest request)
|
|
|
{
|
|
{
|
|
|
- content = content.Trim();
|
|
|
|
|
|
|
+ request.Content = request.Content.Trim();
|
|
|
|
|
|
|
|
- if ("dp".Equals(type))
|
|
|
|
|
|
|
+ if ("dp".Equals(request.Type))
|
|
|
{
|
|
{
|
|
|
- return channel switch
|
|
|
|
|
|
|
+ return request.Channel switch
|
|
|
{
|
|
{
|
|
|
- "jd" => await DeeplinkJdParseAsync(content, commerceType, ip, oaid, riskStrategy, launchScene, accountid, special_text, clickId),
|
|
|
|
|
- "pdd" => await DeeplinkPddParseAsync(content, commerceType, ip, oaid, accountid, special_text),
|
|
|
|
|
- "tb" => await DeeplinkTaobaoParseAsync(content, commerceType, ip, oaid, riskStrategy, launchScene, accountid, special_text),
|
|
|
|
|
|
|
+ "jd" => await DeeplinkJdParseAsync(request),
|
|
|
|
|
+ "pdd" => await DeeplinkPddParseAsync(request),
|
|
|
|
|
+ "tb" => await DeeplinkTaobaoParseAsync(request),
|
|
|
};
|
|
};
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- return channel switch
|
|
|
|
|
|
|
+ return request.Channel switch
|
|
|
{
|
|
{
|
|
|
- //"wemeet" => await WemeetParseAsync(content, ip, oaid),
|
|
|
|
|
- //"bdpan" => await PanParseAsync(content, ip, oaid),
|
|
|
|
|
- "jd" => await JdParseAsync(content, type, commerceType, ip, oaid, riskStrategy, launchScene, accountid, special_text, clickId),
|
|
|
|
|
- "ks" => await KsParseAsync(content, commerceType, ip, oaid, accountid, special_text),
|
|
|
|
|
- "dy" => await DyParseAsync(content, commerceType, ip, oaid, special_text),
|
|
|
|
|
- "pdd" => await PddParseAsync(content, type, commerceType, ip, oaid, accountid, special_text),
|
|
|
|
|
- "tb" => await TaobaoParseAsync(content, commerceType, ip, oaid, riskStrategy, launchScene, accountid, special_text),
|
|
|
|
|
- _ => await DeeplinkParseCore.ParseAsync(content, channel, ip, oaid, special_text),
|
|
|
|
|
|
|
+ //"wemeet" => await WemeetParseAsync(request),
|
|
|
|
|
+ //"bdpan" => await PanParseAsync(request),
|
|
|
|
|
+ "jd" => await JdParseAsync(request),
|
|
|
|
|
+ "ks" => await KsParseAsync(request),
|
|
|
|
|
+ "dy" => await DyParseAsync(request),
|
|
|
|
|
+ "pdd" => await PddParseAsync(request),
|
|
|
|
|
+ "tb" => await TaobaoParseAsync(request),
|
|
|
|
|
+ _ => await DeeplinkParseCore.ParseAsync(request),
|
|
|
};
|
|
};
|
|
|
}
|
|
}
|
|
|
//return await DeeplinkParseCore.ParseAsync(content, channel, ip, oaid);
|
|
//return await DeeplinkParseCore.ParseAsync(content, channel, ip, oaid);
|
|
@@ -87,7 +89,14 @@ namespace molilian.core
|
|
|
var match = regex.Match(content);
|
|
var match = regex.Match(content);
|
|
|
if (match.Success)
|
|
if (match.Success)
|
|
|
{
|
|
{
|
|
|
- return await DeeplinkParseCore.ParseAsync(content, "bdpan", ip, oaid);
|
|
|
|
|
|
|
+ var request = new UnionParseRequest
|
|
|
|
|
+ {
|
|
|
|
|
+ Content = content,
|
|
|
|
|
+ Channel = "bdpan",
|
|
|
|
|
+ Ip = ip,
|
|
|
|
|
+ Oaid = oaid
|
|
|
|
|
+ };
|
|
|
|
|
+ return await DeeplinkParseCore.ParseAsync(request);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@@ -143,18 +152,16 @@ namespace molilian.core
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
- public static async Task<APIResult> TaobaoParseAsync(string content, int commerceType,
|
|
|
|
|
- string ip = "", string oaid = "", string riskStrategy = "", int launchScene = -1, int special_text = -1,
|
|
|
|
|
- int accountid = 0)
|
|
|
|
|
|
|
+ public static async Task<APIResult> TaobaoParseAsync(UnionParseRequest request)
|
|
|
{
|
|
{
|
|
|
bool other_aff = false;
|
|
bool other_aff = false;
|
|
|
AlimamaPlus alimama = null;
|
|
AlimamaPlus alimama = null;
|
|
|
//content = content.UrlDecode();
|
|
//content = content.UrlDecode();
|
|
|
- var result = AlimamaPlus.GetFormattedObject(content, ip, oaid);
|
|
|
|
|
|
|
+ var result = AlimamaPlus.GetFormattedObject(request.Content, request.Ip, request.Oaid);
|
|
|
|
|
|
|
|
- result.riskStrategy = riskStrategy;
|
|
|
|
|
- result.launchScene = launchScene;
|
|
|
|
|
- result.rawContent = content;
|
|
|
|
|
|
|
+ result.riskStrategy = request.RiskStrategy;
|
|
|
|
|
+ result.launchScene = request.LaunchScene;
|
|
|
|
|
+ result.rawContent = request.Content;
|
|
|
|
|
|
|
|
Dictionary<string, long> swData = new();
|
|
Dictionary<string, long> swData = new();
|
|
|
swData.Add("StartNew", 0);
|
|
swData.Add("StartNew", 0);
|
|
@@ -162,7 +169,7 @@ namespace molilian.core
|
|
|
|
|
|
|
|
try
|
|
try
|
|
|
{
|
|
{
|
|
|
- content = content[..Math.Min(1000, content.Length)];
|
|
|
|
|
|
|
+ string content = request.Content[..Math.Min(1000, request.Content.Length)];
|
|
|
|
|
|
|
|
string reason = string.Empty;
|
|
string reason = string.Empty;
|
|
|
|
|
|
|
@@ -185,7 +192,7 @@ namespace molilian.core
|
|
|
bool is_other = AlimamaPlus.MatchOtherInfo(content, arr2);
|
|
bool is_other = AlimamaPlus.MatchOtherInfo(content, arr2);
|
|
|
|
|
|
|
|
|
|
|
|
|
- var overrideContent = await OverrideRuleCore.ProcessAsync("tb", content, ip, oaid, riskStrategy, launchScene, special_text);
|
|
|
|
|
|
|
+ var overrideContent = await OverrideRuleCore.ProcessAsync("tb", content, request.Ip, request.Oaid, request.RiskStrategy, request.LaunchScene, request.SpecialText);
|
|
|
if (overrideContent != null)
|
|
if (overrideContent != null)
|
|
|
{
|
|
{
|
|
|
result.success = true;
|
|
result.success = true;
|
|
@@ -375,7 +382,7 @@ namespace molilian.core
|
|
|
}
|
|
}
|
|
|
//============================== 放弃转链-地区过滤 ==============================
|
|
//============================== 放弃转链-地区过滤 ==============================
|
|
|
|
|
|
|
|
- bool is_ignore2 = AlimamaPlus.ShouldIgnoreRequest(ip, oaid, riskStrategy, launchScene, out reason);
|
|
|
|
|
|
|
+ bool is_ignore2 = AlimamaPlus.ShouldIgnoreRequest(request.Ip, request.Oaid, request.RiskStrategy, request.LaunchScene, out reason);
|
|
|
|
|
|
|
|
if (is_ignore2)
|
|
if (is_ignore2)
|
|
|
{
|
|
{
|
|
@@ -403,9 +410,9 @@ namespace molilian.core
|
|
|
(bool isTaobaoUrl, string url) = AlimamaPlus.IsTaobaoUrl(content);
|
|
(bool isTaobaoUrl, string url) = AlimamaPlus.IsTaobaoUrl(content);
|
|
|
|
|
|
|
|
//============================== 放弃转链-没有匹配账号 ==============================
|
|
//============================== 放弃转链-没有匹配账号 ==============================
|
|
|
- TkPoolDTO? account = accountid > 0 ?
|
|
|
|
|
- await TkPoolCore.GetOneAsync(accountid) :
|
|
|
|
|
- await TkPoolCore.GetOneAsync(TkPoolCore.TkAction.parse, isTaobaoUrl, riskStrategy, launchScene);
|
|
|
|
|
|
|
+ TkPoolDTO? account = request.AccountId > 0 ?
|
|
|
|
|
+ await TkPoolCore.GetOneAsync(request.AccountId) :
|
|
|
|
|
+ await TkPoolCore.GetOneAsync(TkPoolCore.TkAction.parse, isTaobaoUrl, request.RiskStrategy, request.LaunchScene);
|
|
|
if (account == null)
|
|
if (account == null)
|
|
|
{
|
|
{
|
|
|
result.success = false;
|
|
result.success = false;
|
|
@@ -444,7 +451,7 @@ namespace molilian.core
|
|
|
using var cts = new CancellationTokenSource();
|
|
using var cts = new CancellationTokenSource();
|
|
|
cts.CancelAfter(timeout);
|
|
cts.CancelAfter(timeout);
|
|
|
|
|
|
|
|
- var requestTask = Task.Run(() => alimama.UnionParseAsync(ip, oaid, content, commerceType, result, isTaobaoUrl, riskStrategy, launchScene, cts.Token, swData), cts.Token);
|
|
|
|
|
|
|
+ var requestTask = Task.Run(() => alimama.UnionParseAsync(request.Ip, request.Oaid, content, request.CommerceType, result, isTaobaoUrl, request.RiskStrategy, request.LaunchScene, cts.Token, swData), cts.Token);
|
|
|
var delayTask = Task.Delay(timeout, cts.Token);
|
|
var delayTask = Task.Delay(timeout, cts.Token);
|
|
|
var completedTask = await Task.WhenAny(requestTask, delayTask);
|
|
var completedTask = await Task.WhenAny(requestTask, delayTask);
|
|
|
if (completedTask == requestTask)
|
|
if (completedTask == requestTask)
|
|
@@ -480,14 +487,14 @@ namespace molilian.core
|
|
|
{
|
|
{
|
|
|
//============================== 转链接口异常 ==============================
|
|
//============================== 转链接口异常 ==============================
|
|
|
_ = new LoggerLibrary("unionParse", "tb_error")
|
|
_ = new LoggerLibrary("unionParse", "tb_error")
|
|
|
- .Info(ip, oaid)
|
|
|
|
|
- .Info(content)
|
|
|
|
|
|
|
+ .Info(request.Ip, request.Oaid)
|
|
|
|
|
+ .Info(request.Content)
|
|
|
.Info(ex.Message, ex.StackTrace)
|
|
.Info(ex.Message, ex.StackTrace)
|
|
|
.SaveAsync();
|
|
.SaveAsync();
|
|
|
|
|
|
|
|
NotifyCore.Notify(new NifyMessage
|
|
NotifyCore.Notify(new NifyMessage
|
|
|
{
|
|
{
|
|
|
- message = $"【转链异常TB】\n{content}\n\n{ex.Message}\n{ex.StackTrace}",
|
|
|
|
|
|
|
+ message = $"【转链异常TB】\n{request.Content}\n\n{ex.Message}\n{ex.StackTrace}",
|
|
|
priority = NifyMessagePriority.high,
|
|
priority = NifyMessagePriority.high,
|
|
|
tags = ["red_circle"]
|
|
tags = ["red_circle"]
|
|
|
});
|
|
});
|
|
@@ -559,21 +566,20 @@ namespace molilian.core
|
|
|
}, code);
|
|
}, code);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- public static async Task<APIResult> JdParseAsync(string content, string type, int commerceType, string ip, string oaid,
|
|
|
|
|
- string riskStrategy = "", int launchScene = -1,
|
|
|
|
|
- int accountid = 0, int special_text = -1, string clickId = "", CancellationToken cancellationToken = default)
|
|
|
|
|
|
|
+ public static async Task<APIResult> JdParseAsync(UnionParseRequest request, CancellationToken cancellationToken = default)
|
|
|
{
|
|
{
|
|
|
var config = TkConfigCore.Get();
|
|
var config = TkConfigCore.Get();
|
|
|
- var result = JdUnionPlus.GetFormattedObject(content, ip, oaid, clickId);
|
|
|
|
|
|
|
+ var result = JdUnionPlus.GetFormattedObject(request.Content, request.Ip, request.Oaid, request.ClickId);
|
|
|
|
|
|
|
|
- result.rawContent = content;
|
|
|
|
|
- result.riskStrategy = riskStrategy;
|
|
|
|
|
- result.launchScene = launchScene;
|
|
|
|
|
|
|
+ result.rawContent = request.Content;
|
|
|
|
|
+ result.riskStrategy = request.RiskStrategy;
|
|
|
|
|
+ result.launchScene = request.LaunchScene;
|
|
|
bool IfExceptional = false;
|
|
bool IfExceptional = false;
|
|
|
bool is_hide = false;
|
|
bool is_hide = false;
|
|
|
|
|
+ string content = request.Content;
|
|
|
try
|
|
try
|
|
|
{
|
|
{
|
|
|
- var overrideContent = await OverrideRuleCore.ProcessAsync("jd", content, ip, oaid, riskStrategy, launchScene, special_text);
|
|
|
|
|
|
|
+ var overrideContent = await OverrideRuleCore.ProcessAsync("jd", content, request.Ip, request.Oaid, request.RiskStrategy, request.LaunchScene, request.SpecialText);
|
|
|
if (overrideContent != null)
|
|
if (overrideContent != null)
|
|
|
{
|
|
{
|
|
|
result.success = true;
|
|
result.success = true;
|
|
@@ -585,7 +591,7 @@ namespace molilian.core
|
|
|
return JdParseOutput(result);
|
|
return JdParseOutput(result);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- switch (type)
|
|
|
|
|
|
|
+ switch (request.Type)
|
|
|
{
|
|
{
|
|
|
case "goods":
|
|
case "goods":
|
|
|
string pattern = "sku=(\\d+)";
|
|
string pattern = "sku=(\\d+)";
|
|
@@ -604,6 +610,15 @@ namespace molilian.core
|
|
|
}
|
|
}
|
|
|
content = $"https://item.jd.com/{goods_id}.html";
|
|
content = $"https://item.jd.com/{goods_id}.html";
|
|
|
}
|
|
}
|
|
|
|
|
+ else
|
|
|
|
|
+ {
|
|
|
|
|
+ result.success = false;
|
|
|
|
|
+ result.deeplink_url = string.Empty;
|
|
|
|
|
+ result.message = "放弃转链";
|
|
|
|
|
+ result.reason = "无效商品ID";
|
|
|
|
|
+ _ = TkLogCore.ParseLogAsync(result, is_hide);
|
|
|
|
|
+ return JdParseOutput(result);
|
|
|
|
|
+ }
|
|
|
break;
|
|
break;
|
|
|
default:
|
|
default:
|
|
|
content = content.UrlDecode();
|
|
content = content.UrlDecode();
|
|
@@ -633,7 +648,7 @@ namespace molilian.core
|
|
|
string itemId = null;
|
|
string itemId = null;
|
|
|
|
|
|
|
|
//============================== 放弃转链-地区过滤 ==============================
|
|
//============================== 放弃转链-地区过滤 ==============================
|
|
|
- if (!TestParseCore.InWhitelist(result.ip, result.oaid) && accountid == 0 && JdUnionPlus.ShouldIgnoreRequest(config, ip, oaid, riskStrategy, launchScene, out string reason))
|
|
|
|
|
|
|
+ if (!TestParseCore.InWhitelist(result.ip, result.oaid) && request.AccountId == 0 && JdUnionPlus.ShouldIgnoreRequest(config, request.Ip, request.Oaid, request.RiskStrategy, request.LaunchScene, out string reason))
|
|
|
{
|
|
{
|
|
|
result.link_type = JdUnionPlus.GetLinkType(result.shortLinkurl, out out_url, out itemId);
|
|
result.link_type = JdUnionPlus.GetLinkType(result.shortLinkurl, out out_url, out itemId);
|
|
|
|
|
|
|
@@ -689,7 +704,7 @@ namespace molilian.core
|
|
|
|
|
|
|
|
bool is_numeric = result.shortLinkurl.Contains(itemId);
|
|
bool is_numeric = result.shortLinkurl.Contains(itemId);
|
|
|
|
|
|
|
|
- var account = accountid > 0 ? await JdPoolCore.GetOneAsync(accountid, JdPoolCore.JdAction.parse) : await JdPoolCore.GetOneAsync(JdPoolCore.JdAction.parse, riskStrategy, launchScene, is_numeric);
|
|
|
|
|
|
|
+ var account = request.AccountId > 0 ? await JdPoolCore.GetOneAsync(request.AccountId, JdPoolCore.JdAction.parse) : await JdPoolCore.GetOneAsync(JdPoolCore.JdAction.parse, request.RiskStrategy, request.LaunchScene, is_numeric);
|
|
|
if (account == null)
|
|
if (account == null)
|
|
|
{
|
|
{
|
|
|
result.success = false;
|
|
result.success = false;
|
|
@@ -712,7 +727,7 @@ namespace molilian.core
|
|
|
result.proxy_name = plus._proxyName;
|
|
result.proxy_name = plus._proxyName;
|
|
|
result.proxy_node = plus._proxy?.Address?.Host;
|
|
result.proxy_node = plus._proxy?.Address?.Host;
|
|
|
|
|
|
|
|
- result = await plus.JdParseAsync(content, commerceType, clickId, result, cancellationToken);
|
|
|
|
|
|
|
+ result = await plus.JdParseAsync(content, request.CommerceType, request.ClickId, result, cancellationToken);
|
|
|
}
|
|
}
|
|
|
catch (Exception ex)
|
|
catch (Exception ex)
|
|
|
{
|
|
{
|
|
@@ -726,7 +741,7 @@ namespace molilian.core
|
|
|
{
|
|
{
|
|
|
IfExceptional = true;
|
|
IfExceptional = true;
|
|
|
_ = new LoggerLibrary("unionParse", "jd_error")
|
|
_ = new LoggerLibrary("unionParse", "jd_error")
|
|
|
- .Info(ip, oaid)
|
|
|
|
|
|
|
+ .Info(request.Ip, request.Oaid)
|
|
|
.Info(content)
|
|
.Info(content)
|
|
|
.Info(ex.Message, ex.StackTrace)
|
|
.Info(ex.Message, ex.StackTrace)
|
|
|
.SaveAsync();
|
|
.SaveAsync();
|
|
@@ -753,15 +768,15 @@ namespace molilian.core
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
- public static async Task<APIResult> DyParseAsync(string content, int commerceType, string ip, string oaid, int special_text = -1, CancellationToken cancellationToken = default)
|
|
|
|
|
|
|
+ public static async Task<APIResult> DyParseAsync(UnionParseRequest request, CancellationToken cancellationToken = default)
|
|
|
{
|
|
{
|
|
|
- var result = DyUnionPlus.GetFormattedObject(content, ip, oaid);
|
|
|
|
|
- content = content.UrlDecode();
|
|
|
|
|
|
|
+ var result = DyUnionPlus.GetFormattedObject(request.Content, request.Ip, request.Oaid);
|
|
|
|
|
+ string content = request.Content.UrlDecode();
|
|
|
result.rawContent = content;
|
|
result.rawContent = content;
|
|
|
bool IfExceptional = false;
|
|
bool IfExceptional = false;
|
|
|
try
|
|
try
|
|
|
{
|
|
{
|
|
|
- var overrideContent = await OverrideRuleCore.ProcessAsync("dy", content, ip, oaid, string.Empty, 0, special_text);
|
|
|
|
|
|
|
+ var overrideContent = await OverrideRuleCore.ProcessAsync("dy", content, request.Ip, request.Oaid, string.Empty, 0, request.SpecialText);
|
|
|
if (overrideContent != null)
|
|
if (overrideContent != null)
|
|
|
{
|
|
{
|
|
|
result.success = true;
|
|
result.success = true;
|
|
@@ -783,7 +798,7 @@ namespace molilian.core
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- if (DyUnionPlus.ShouldIgnoreRequest(ip, oaid, out string reason))
|
|
|
|
|
|
|
+ if (DyUnionPlus.ShouldIgnoreRequest(request.Ip, request.Oaid, out string reason))
|
|
|
{
|
|
{
|
|
|
result.success = false;
|
|
result.success = false;
|
|
|
result.message = "放弃转链";
|
|
result.message = "放弃转链";
|
|
@@ -801,7 +816,7 @@ namespace molilian.core
|
|
|
_ = TkLogCore.ParseLogAsync(result);
|
|
_ = TkLogCore.ParseLogAsync(result);
|
|
|
return new APIResult(result);
|
|
return new APIResult(result);
|
|
|
}
|
|
}
|
|
|
- result = await DyUnionPlus.DyParseAsync(account, content, commerceType, result, cancellationToken);
|
|
|
|
|
|
|
+ result = await DyUnionPlus.DyParseAsync(account, content, request.CommerceType, result, cancellationToken);
|
|
|
}
|
|
}
|
|
|
catch (Exception ex)
|
|
catch (Exception ex)
|
|
|
{
|
|
{
|
|
@@ -815,7 +830,7 @@ namespace molilian.core
|
|
|
{
|
|
{
|
|
|
IfExceptional = true;
|
|
IfExceptional = true;
|
|
|
_ = new LoggerLibrary("unionParse", "dy_error")
|
|
_ = new LoggerLibrary("unionParse", "dy_error")
|
|
|
- .Info(ip, oaid)
|
|
|
|
|
|
|
+ .Info(request.Ip, request.Oaid)
|
|
|
.Info(content)
|
|
.Info(content)
|
|
|
.Info(ex.Message, ex.StackTrace)
|
|
.Info(ex.Message, ex.StackTrace)
|
|
|
.SaveAsync();
|
|
.SaveAsync();
|
|
@@ -846,13 +861,12 @@ namespace molilian.core
|
|
|
}, IfExceptional ? APIResultCodeEnum.NotAcceptable : APIResultCodeEnum.OK);
|
|
}, IfExceptional ? APIResultCodeEnum.NotAcceptable : APIResultCodeEnum.OK);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- public static async Task<APIResult> PddParseAsync(string content, string type, int commerceType, string ip, string oaid,
|
|
|
|
|
- int accountid = 0, int special_text = -1, CancellationToken cancellationToken = default)
|
|
|
|
|
|
|
+ public static async Task<APIResult> PddParseAsync(UnionParseRequest request, CancellationToken cancellationToken = default)
|
|
|
{
|
|
{
|
|
|
- var result = PddUnionPlus.GetFormattedObject(content, ip, oaid);
|
|
|
|
|
|
|
+ var result = PddUnionPlus.GetFormattedObject(request.Content, request.Ip, request.Oaid);
|
|
|
|
|
|
|
|
|
|
|
|
|
- var overrideContent = await OverrideRuleCore.ProcessAsync("pdd", content, ip, oaid, string.Empty, 0, special_text);
|
|
|
|
|
|
|
+ var overrideContent = await OverrideRuleCore.ProcessAsync("pdd", request.Content, request.Ip, request.Oaid, string.Empty, 0, request.SpecialText);
|
|
|
if (overrideContent != null)
|
|
if (overrideContent != null)
|
|
|
{
|
|
{
|
|
|
result.success = true;
|
|
result.success = true;
|
|
@@ -863,8 +877,8 @@ namespace molilian.core
|
|
|
return PddParseOutput(result);
|
|
return PddParseOutput(result);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-
|
|
|
|
|
- switch (type)
|
|
|
|
|
|
|
+ string content = request.Content;
|
|
|
|
|
+ switch (request.Type)
|
|
|
{
|
|
{
|
|
|
case "goods":
|
|
case "goods":
|
|
|
string pattern = "goods_id=(\\d+)";
|
|
string pattern = "goods_id=(\\d+)";
|
|
@@ -926,7 +940,7 @@ namespace molilian.core
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
//============================== 放弃转链-地区过滤 ==============================
|
|
//============================== 放弃转链-地区过滤 ==============================
|
|
|
- if (accountid == 0 && PddUnionPlus.ShouldIgnoreRequest(config, ip, oaid, out string reason))
|
|
|
|
|
|
|
+ if (request.AccountId == 0 && PddUnionPlus.ShouldIgnoreRequest(config, request.Ip, request.Oaid, out string reason))
|
|
|
{
|
|
{
|
|
|
result.success = false;
|
|
result.success = false;
|
|
|
result.message = "放弃转链";
|
|
result.message = "放弃转链";
|
|
@@ -943,7 +957,7 @@ namespace molilian.core
|
|
|
{
|
|
{
|
|
|
for (int j = 0; j < 3; j++)
|
|
for (int j = 0; j < 3; j++)
|
|
|
{
|
|
{
|
|
|
- account = PddPoolCore.GetOne(PddUnionWorkMode.All, accountid);
|
|
|
|
|
|
|
+ account = PddPoolCore.GetOne(PddUnionWorkMode.All, request.AccountId);
|
|
|
if (account == null) continue;
|
|
if (account == null) continue;
|
|
|
|
|
|
|
|
if (account.cis_limit > 0)
|
|
if (account.cis_limit > 0)
|
|
@@ -1005,7 +1019,7 @@ namespace molilian.core
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
var plus = new PddUnionPlus(account);
|
|
var plus = new PddUnionPlus(account);
|
|
|
- result = await plus.PddParseAsync(content, commerceType, result, cancellationToken);
|
|
|
|
|
|
|
+ result = await plus.PddParseAsync(content, request.CommerceType, result, cancellationToken);
|
|
|
}
|
|
}
|
|
|
catch (Exception ex)
|
|
catch (Exception ex)
|
|
|
{
|
|
{
|
|
@@ -1019,7 +1033,7 @@ namespace molilian.core
|
|
|
{
|
|
{
|
|
|
IfExceptional = true;
|
|
IfExceptional = true;
|
|
|
_ = new LoggerLibrary("unionParse", "pdd_error")
|
|
_ = new LoggerLibrary("unionParse", "pdd_error")
|
|
|
- .Info(ip, oaid)
|
|
|
|
|
|
|
+ .Info(request.Ip, request.Oaid)
|
|
|
.Info(content)
|
|
.Info(content)
|
|
|
.Info(ex.Message, ex.StackTrace)
|
|
.Info(ex.Message, ex.StackTrace)
|
|
|
.SaveAsync();
|
|
.SaveAsync();
|
|
@@ -1057,11 +1071,10 @@ namespace molilian.core
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- public static async Task<APIResult> KsParseAsync(string content, int commerceType, string ip, string oaid,
|
|
|
|
|
- int accountid = 0, int special_text = -1, CancellationToken cancellationToken = default)
|
|
|
|
|
|
|
+ public static async Task<APIResult> KsParseAsync(UnionParseRequest request, CancellationToken cancellationToken = default)
|
|
|
{
|
|
{
|
|
|
- var result = KsUnionPlus.GetFormattedObject(content, ip, oaid);
|
|
|
|
|
- content = content.UrlDecode();
|
|
|
|
|
|
|
+ var result = KsUnionPlus.GetFormattedObject(request.Content, request.Ip, request.Oaid);
|
|
|
|
|
+ string content = request.Content.UrlDecode();
|
|
|
result.rawContent = content;
|
|
result.rawContent = content;
|
|
|
bool IfExceptional = false;
|
|
bool IfExceptional = false;
|
|
|
try
|
|
try
|
|
@@ -1069,7 +1082,7 @@ namespace molilian.core
|
|
|
var config = TkConfigCore.Get();
|
|
var config = TkConfigCore.Get();
|
|
|
|
|
|
|
|
|
|
|
|
|
- var overrideContent = await OverrideRuleCore.ProcessAsync("ks", content, ip, oaid, string.Empty, 0, special_text);
|
|
|
|
|
|
|
+ var overrideContent = await OverrideRuleCore.ProcessAsync("ks", content, request.Ip, request.Oaid, string.Empty, 0, request.SpecialText);
|
|
|
if (overrideContent != null)
|
|
if (overrideContent != null)
|
|
|
{
|
|
{
|
|
|
result.success = true;
|
|
result.success = true;
|
|
@@ -1105,7 +1118,7 @@ namespace molilian.core
|
|
|
|
|
|
|
|
|
|
|
|
|
//============================== 放弃转链-地区过滤 ==============================
|
|
//============================== 放弃转链-地区过滤 ==============================
|
|
|
- if (accountid == 0 && KsUnionPlus.ShouldIgnoreRequest(config, ip, oaid, out string reason))
|
|
|
|
|
|
|
+ if (request.AccountId == 0 && KsUnionPlus.ShouldIgnoreRequest(config, request.Ip, request.Oaid, out string reason))
|
|
|
{
|
|
{
|
|
|
result.success = false;
|
|
result.success = false;
|
|
|
result.message = "放弃转链";
|
|
result.message = "放弃转链";
|
|
@@ -1114,7 +1127,7 @@ namespace molilian.core
|
|
|
_ = TkLogCore.ParseLogAsync(result);
|
|
_ = TkLogCore.ParseLogAsync(result);
|
|
|
return KsParseOutput(result);
|
|
return KsParseOutput(result);
|
|
|
}
|
|
}
|
|
|
- var account = accountid > 0 ? KsPoolCore.GetOne(accountid, KsPoolCore.KsAction.parse) : KsPoolCore.GetOne(KsPoolCore.KsAction.parse);
|
|
|
|
|
|
|
+ var account = request.AccountId > 0 ? KsPoolCore.GetOne(request.AccountId, KsPoolCore.KsAction.parse) : KsPoolCore.GetOne(KsPoolCore.KsAction.parse);
|
|
|
if (account == null)
|
|
if (account == null)
|
|
|
{
|
|
{
|
|
|
result.success = false;
|
|
result.success = false;
|
|
@@ -1129,7 +1142,7 @@ namespace molilian.core
|
|
|
|
|
|
|
|
var plus = new KsUnionPlus(account);
|
|
var plus = new KsUnionPlus(account);
|
|
|
|
|
|
|
|
- result = await plus.KsParseAsync(content, commerceType, result, cancellationToken);
|
|
|
|
|
|
|
+ result = await plus.KsParseAsync(content, request.CommerceType, result, cancellationToken);
|
|
|
}
|
|
}
|
|
|
catch (Exception ex)
|
|
catch (Exception ex)
|
|
|
{
|
|
{
|
|
@@ -1143,7 +1156,7 @@ namespace molilian.core
|
|
|
{
|
|
{
|
|
|
IfExceptional = true;
|
|
IfExceptional = true;
|
|
|
_ = new LoggerLibrary("unionParse", "jd_error")
|
|
_ = new LoggerLibrary("unionParse", "jd_error")
|
|
|
- .Info(ip, oaid)
|
|
|
|
|
|
|
+ .Info(request.Ip, request.Oaid)
|
|
|
.Info(content)
|
|
.Info(content)
|
|
|
.Info(ex.Message, ex.StackTrace)
|
|
.Info(ex.Message, ex.StackTrace)
|
|
|
.SaveAsync();
|
|
.SaveAsync();
|