parent
d22a3b16b2
commit
9d7a615a7f
Binary file not shown.
|
@ -166,8 +166,7 @@
|
|||
</Reference>
|
||||
<Reference Include="Robot.Framework, Version=4.5.2101.7, Culture=neutral, processorArchitecture=x86">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\Debug\Robot.Framework.dll</HintPath>
|
||||
<Private>False</Private>
|
||||
<HintPath>..\DLL\Robot.Framework.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="SqlSugar, Version=4.9.9.3, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
|
|
|
@ -208,6 +208,7 @@
|
|||
<DependentUpon>UpdateForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Util.cs" />
|
||||
<Compile Include="Utils\CacheHelper.cs" />
|
||||
<Compile Include="Utils\Common.cs" />
|
||||
<Compile Include="Utils\ProtoBufExtension.cs" />
|
||||
<Compile Include="Utils\RegistryHelper.cs" />
|
||||
|
|
|
@ -39,18 +39,6 @@ namespace PCRobot
|
|||
|
||||
private void PCRobotForm_Load(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
WeChatActivateHelper.Set_Hosts("", "");
|
||||
//WeChatActivateHelper.Set_Hosts("dldir1v6.qq.com", "127.0.0.1");
|
||||
//WeChatActivateHelper.Set_Hosts("dldir1.qq.com", "127.0.0.1");
|
||||
//LogHelper.GetSingleObj().Info("屏蔽", "屏蔽微信自动更新成功");
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
LogHelper.GetSingleObj().Info("屏蔽", "屏蔽微信自动更新异常");
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
WeChatActivateHelperV2.Init(2);
|
||||
|
|
|
@ -288,14 +288,22 @@ namespace PCRobot.PCWechat.Enterprise
|
|||
do
|
||||
{
|
||||
Thread.Sleep(200);
|
||||
Cache cache = HttpRuntime.Cache;
|
||||
object item = cache[RemoteCache];
|
||||
if (item != null)
|
||||
//Cache cache = HttpRuntime.Cache;
|
||||
//object item = cache[RemoteCache];
|
||||
//if (item != null)
|
||||
//{
|
||||
// cache.Remove(RemoteCache);
|
||||
// var r = item as RemoteLoginCode;
|
||||
// return r;
|
||||
//}
|
||||
|
||||
if (CacheHelper.Exist(RemoteCache))
|
||||
{
|
||||
cache.Remove(RemoteCache);
|
||||
var r = item as RemoteLoginCode;
|
||||
CacheHelper.Remove(RemoteCache);
|
||||
var r = CacheHelper.Get<RemoteLoginCode>(RemoteCache);
|
||||
return r;
|
||||
}
|
||||
|
||||
} while (awaitTime >= DateTime.Now);
|
||||
return null;
|
||||
}).Result;
|
||||
|
|
|
@ -161,10 +161,12 @@ namespace PCRobot.PCWechat.Enterprise
|
|||
|
||||
var codeInfo = new RemoteLoginCode() { pid = MT_APP_READY_MSG_BIND[dwClientid], cImgB64 = cfBase64, b64Md5 = HttpHelper.ToMD5(cfBase64), rType = RobotType.客户端企业微信, t = HttpExtend.GetTimeStamp(DateTime.Now) };
|
||||
|
||||
Cache cache = HttpRuntime.Cache;
|
||||
//Cache cache = HttpRuntime.Cache;
|
||||
////查找 md5 的缓存,不存在则返回null
|
||||
//cache.Insert(RemoteCache, codeInfo, null, DateTime.Now.AddSeconds(3), Cache.NoSlidingExpiration);
|
||||
|
||||
//查找 md5 的缓存,不存在则返回null
|
||||
object item = cache[RemoteCache];
|
||||
cache.Insert(RemoteCache, codeInfo, null, DateTime.Now.AddSeconds(3), Cache.NoSlidingExpiration);
|
||||
CacheHelper.Add(RemoteCache, codeInfo, 5);
|
||||
|
||||
RemoteLoginCodes.Add(codeInfo);
|
||||
}
|
||||
|
|
|
@ -369,14 +369,22 @@ namespace PCRobot.PCWechat.Routine
|
|||
do
|
||||
{
|
||||
Thread.Sleep(200);
|
||||
Cache cache = HttpRuntime.Cache;
|
||||
object item = cache[RemoteCache];
|
||||
if (item != null)
|
||||
//Cache cache = HttpRuntime.Cache;
|
||||
//object item = cache[RemoteCache];
|
||||
//if (item != null)
|
||||
//{
|
||||
// cache.Remove(RemoteCache);
|
||||
// var r = item as RemoteLoginCode;
|
||||
// return r;
|
||||
//}
|
||||
|
||||
if (CacheHelper.Exist(RemoteCache))
|
||||
{
|
||||
cache.Remove(RemoteCache);
|
||||
var r = item as RemoteLoginCode;
|
||||
CacheHelper.Remove(RemoteCache);
|
||||
var r = CacheHelper.Get<RemoteLoginCode>(RemoteCache);
|
||||
return r;
|
||||
}
|
||||
|
||||
} while (awaitTime >= DateTime.Now);
|
||||
return null;
|
||||
}).Result;
|
||||
|
|
|
@ -95,10 +95,14 @@ namespace PCRobot.PCWechat.Routine
|
|||
|
||||
var codeInfo = new RemoteLoginCode() { pid = pid, cImgB64 = cfBase64, b64Md5 = HttpHelper.ToMD5(cfBase64), rType = RobotType.客户端微信, t = HttpExtend.GetTimeStamp(DateTime.Now) };
|
||||
|
||||
Cache cache = HttpRuntime.Cache;
|
||||
//Cache cache = HttpRuntime.Cache;
|
||||
////查找 md5 的缓存,不存在则返回null
|
||||
//object item = cache[RemoteCache];
|
||||
//cache.Insert(RemoteCache, codeInfo, null, DateTime.Now.AddSeconds(3), Cache.NoSlidingExpiration);
|
||||
|
||||
|
||||
//查找 md5 的缓存,不存在则返回null
|
||||
object item = cache[RemoteCache];
|
||||
cache.Insert(RemoteCache, codeInfo, null, DateTime.Now.AddSeconds(3), Cache.NoSlidingExpiration);
|
||||
CacheHelper.Add(RemoteCache, codeInfo, 5);
|
||||
|
||||
RemoteLoginCodes.Add(codeInfo);
|
||||
}
|
||||
|
@ -1173,10 +1177,12 @@ namespace PCRobot.PCWechat.Routine
|
|||
if (!string.IsNullOrWhiteSpace(url))
|
||||
{
|
||||
//CheckUrlCache.Add(url.Trim(), int.Parse(data["status"].ToString()));
|
||||
Cache cache = HttpRuntime.Cache;
|
||||
//查找 md5 的缓存,不存在则返回null
|
||||
object item = cache[url.Trim()];
|
||||
cache.Insert(url.Trim(), int.Parse(data["status"].ToString()), null, DateTime.Now.AddSeconds(8), Cache.NoSlidingExpiration);
|
||||
//Cache cache = HttpRuntime.Cache;
|
||||
////查找 md5 的缓存,不存在则返回null
|
||||
//object item = cache[url.Trim()];
|
||||
//cache.Insert(url.Trim(), int.Parse(data["status"].ToString()), null, DateTime.Now.AddSeconds(8), Cache.NoSlidingExpiration);
|
||||
|
||||
CacheHelper.Add(url.Trim(), int.Parse(data["status"].ToString()), 10);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1297,10 +1303,13 @@ namespace PCRobot.PCWechat.Routine
|
|||
|
||||
var md5Text = Common.GetMD5(string.Join(",", wxids));
|
||||
|
||||
Cache cache = HttpRuntime.Cache;
|
||||
//查找 md5 的缓存,不存在则返回null
|
||||
object item = cache[md5Text];
|
||||
cache.Insert(md5Text, data["room_wxid"].ToString(), null, DateTime.Now.AddSeconds(8), Cache.NoSlidingExpiration);
|
||||
//Cache cache = HttpRuntime.Cache;
|
||||
////查找 md5 的缓存,不存在则返回null
|
||||
//object item = cache[md5Text];
|
||||
//cache.Insert(md5Text, data["room_wxid"].ToString(), null, DateTime.Now.AddSeconds(8), Cache.NoSlidingExpiration);
|
||||
|
||||
CacheHelper.Add(md5Text, data["room_wxid"].ToString(), 10);
|
||||
|
||||
}
|
||||
break;
|
||||
case MsgType.MT_ROOM_DEL_NOTIFY_MSG://群成员删除通知
|
||||
|
|
|
@ -1268,10 +1268,15 @@ namespace PCRobot.PCWechat.Routine
|
|||
{
|
||||
Thread.Sleep(200);
|
||||
//if (CheckUrlCache.ContainsKey(url)) return CheckUrlCache[url];
|
||||
Cache cache = HttpRuntime.Cache;
|
||||
object item = cache[url];
|
||||
if (item != null)
|
||||
return int.Parse(item.ToString());
|
||||
//Cache cache = HttpRuntime.Cache;
|
||||
//object item = cache[url];
|
||||
//if (item != null)
|
||||
// return int.Parse(item.ToString());
|
||||
|
||||
if (CacheHelper.Exist(url))
|
||||
{
|
||||
return CacheHelper.Get<int>(url);
|
||||
}
|
||||
} while (awaitTime >= DateTime.Now);
|
||||
return -1;
|
||||
}).Result;
|
||||
|
|
|
@ -6,6 +6,7 @@ using System.IO;
|
|||
using System.Text;
|
||||
using System.Threading;
|
||||
using System.Windows.Forms;
|
||||
using WechatHelper;
|
||||
|
||||
namespace PCRobot
|
||||
{
|
||||
|
|
|
@ -738,11 +738,18 @@ namespace PCRobot.Utils
|
|||
{
|
||||
try
|
||||
{
|
||||
Cache cache = HttpRuntime.Cache;
|
||||
//Cache cache = HttpRuntime.Cache;
|
||||
////查找 md5 的缓存,不存在则返回null
|
||||
//object item = cache[key];
|
||||
//if (item == null)
|
||||
// cache.Insert(key, value, null, DateTime.Now.AddSeconds(secondes), System.Web.Caching.Cache.NoSlidingExpiration);
|
||||
//return true;
|
||||
|
||||
//查找 md5 的缓存,不存在则返回null
|
||||
object item = cache[key];
|
||||
if (item == null)
|
||||
cache.Insert(key, value, null, DateTime.Now.AddSeconds(secondes), System.Web.Caching.Cache.NoSlidingExpiration);
|
||||
if (!CacheHelper.Exist(key))
|
||||
{
|
||||
CacheHelper.Add(key, value, secondes);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
catch (Exception ex)
|
||||
|
@ -761,10 +768,15 @@ namespace PCRobot.Utils
|
|||
{
|
||||
try
|
||||
{
|
||||
Cache cache = HttpRuntime.Cache;
|
||||
object item = cache[key];
|
||||
if (item != null)
|
||||
return item as T;
|
||||
//Cache cache = HttpRuntime.Cache;
|
||||
//object item = cache[key];
|
||||
//if (item != null)
|
||||
// return item as T;
|
||||
|
||||
if (CacheHelper.Exist(key))
|
||||
{
|
||||
return CacheHelper.Get<T>(key);
|
||||
}
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
|
@ -781,8 +793,10 @@ namespace PCRobot.Utils
|
|||
{
|
||||
try
|
||||
{
|
||||
Cache cache = HttpRuntime.Cache;
|
||||
cache.Remove(key);
|
||||
//Cache cache = HttpRuntime.Cache;
|
||||
//cache.Remove(key);
|
||||
|
||||
CacheHelper.Remove(key);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -804,10 +818,13 @@ namespace PCRobot.Utils
|
|||
{
|
||||
try
|
||||
{
|
||||
//var MD5 = GetMD5($"{text}");
|
||||
//Cache cache = HttpRuntime.Cache;
|
||||
//object item = cache[MD5];
|
||||
//return item != null ? true : false;
|
||||
|
||||
var MD5 = GetMD5($"{text}");
|
||||
Cache cache = HttpRuntime.Cache;
|
||||
object item = cache[MD5];
|
||||
return item != null ? true : false;
|
||||
return CacheHelper.Exist(MD5);
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
|
@ -826,12 +843,19 @@ namespace PCRobot.Utils
|
|||
{
|
||||
try
|
||||
{
|
||||
//var MD5 = GetMD5($"{text}");
|
||||
//Cache cache = HttpRuntime.Cache;
|
||||
////查找 md5 的缓存,不存在则返回null
|
||||
//object item = cache[MD5];
|
||||
//if (item == null)
|
||||
// cache.Insert(MD5, 1, null, DateTime.Now.AddSeconds(secondes), System.Web.Caching.Cache.NoSlidingExpiration);
|
||||
//return true;
|
||||
|
||||
var MD5 = GetMD5($"{text}");
|
||||
Cache cache = HttpRuntime.Cache;
|
||||
//查找 md5 的缓存,不存在则返回null
|
||||
object item = cache[MD5];
|
||||
if (item == null)
|
||||
cache.Insert(MD5, 1, null, DateTime.Now.AddSeconds(secondes), System.Web.Caching.Cache.NoSlidingExpiration);
|
||||
if (!CacheHelper.Exist(MD5))
|
||||
{
|
||||
CacheHelper.Add(MD5, "", secondes);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
catch (Exception ex)
|
||||
|
@ -850,10 +874,13 @@ namespace PCRobot.Utils
|
|||
{
|
||||
try
|
||||
{
|
||||
//var MD5 = GetMD5(ToAllTrim($"{robotname}{username}{text}"));
|
||||
//Cache cache = HttpRuntime.Cache;
|
||||
//object item = cache[MD5];
|
||||
//return item != null ? true : false;
|
||||
|
||||
var MD5 = GetMD5(ToAllTrim($"{robotname}{username}{text}"));
|
||||
Cache cache = HttpRuntime.Cache;
|
||||
object item = cache[MD5];
|
||||
return item != null ? true : false;
|
||||
return CacheHelper.Exist(MD5);
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
|
@ -872,12 +899,19 @@ namespace PCRobot.Utils
|
|||
{
|
||||
try
|
||||
{
|
||||
//var MD5 = GetMD5(ToAllTrim($"{robotname}{username}{text}"));
|
||||
//Cache cache = HttpRuntime.Cache;
|
||||
////查找 md5 的缓存,不存在则返回null
|
||||
//object item = cache[MD5];
|
||||
//if (item == null)
|
||||
// cache.Insert(MD5, 1, null, DateTime.Now.AddSeconds(seconds), System.Web.Caching.Cache.NoSlidingExpiration);
|
||||
//return true;
|
||||
|
||||
var MD5 = GetMD5(ToAllTrim($"{robotname}{username}{text}"));
|
||||
Cache cache = HttpRuntime.Cache;
|
||||
//查找 md5 的缓存,不存在则返回null
|
||||
object item = cache[MD5];
|
||||
if (item == null)
|
||||
cache.Insert(MD5, 1, null, DateTime.Now.AddSeconds(seconds), System.Web.Caching.Cache.NoSlidingExpiration);
|
||||
if (!CacheHelper.Exist(MD5))
|
||||
{
|
||||
CacheHelper.Add(MD5, "", seconds);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
catch (Exception ex)
|
||||
|
|
|
@ -324,6 +324,10 @@ namespace WechatHelper
|
|||
public static void Remove_Hosts(string hosts_str)
|
||||
{
|
||||
string path = System.Environment.GetFolderPath(Environment.SpecialFolder.System) + "\\drivers\\etc\\hosts";
|
||||
if (File.GetAttributes(path) == (FileAttributes.ReadOnly | FileAttributes.Archive))
|
||||
{
|
||||
File.SetAttributes(path, FileAttributes.Archive);
|
||||
}
|
||||
string[] hosts = File.ReadAllLines(path);
|
||||
List<string> list = hosts.ToList();
|
||||
//int index = list.FindIndex(x => x.Contains(hosts_str));
|
||||
|
|
|
@ -223,8 +223,24 @@ namespace PCRobot.Utils
|
|||
/// </summary>
|
||||
private static void ShieldingWeChatUpdateFunction()
|
||||
{
|
||||
SetHost("dldir1v6.qq.com", "127.0.0.1");
|
||||
SetHost("dldir1.qq.com", "127.0.0.1");
|
||||
//SetHost("dldir1v6.qq.com", "127.0.0.1");
|
||||
//SetHost("dldir1.qq.com", "127.0.0.1");
|
||||
|
||||
DelHost("dldir1v6.qq.com");
|
||||
DelHost("dldir1.qq.com");
|
||||
}
|
||||
|
||||
public static void DelHost(string hosts_str)
|
||||
{
|
||||
string path = System.Environment.GetFolderPath(Environment.SpecialFolder.System) + "\\drivers\\etc\\hosts";
|
||||
if (File.GetAttributes(path) == (FileAttributes.ReadOnly | FileAttributes.Archive))
|
||||
{
|
||||
File.SetAttributes(path, FileAttributes.Archive);
|
||||
}
|
||||
string[] hosts = File.ReadAllLines(path);
|
||||
List<string> list = hosts.ToList();
|
||||
list.RemoveAll(x => x.Contains(hosts_str));
|
||||
File.WriteAllLines(path, list.ToArray());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
|
|
@ -341,6 +341,7 @@ namespace TBRebate.Uses
|
|||
var msgid = Guid.NewGuid().ToString();
|
||||
try
|
||||
{
|
||||
debug(msgid, e.Message);
|
||||
var db = ApiClient.GetSession();
|
||||
|
||||
var tbinfoTemps = db.FindTbInfoTempGroups();
|
||||
|
@ -391,7 +392,7 @@ namespace TBRebate.Uses
|
|||
|
||||
var tb_cps = CpsClient.Members.FirstOrDefault(f => f.cpstype == CpsType.阿里妈妈 && f.username == pids[1]);
|
||||
if (tb_cps == null) throw new Exception($"@阿里妈妈推广位异常,请检测后重试!,{pid}");
|
||||
|
||||
debug(msgid, "推广位");
|
||||
//关键词/标题
|
||||
var keyword = string.Empty;
|
||||
//是否是标题
|
||||
|
@ -425,6 +426,7 @@ namespace TBRebate.Uses
|
|||
}
|
||||
}
|
||||
#endregion
|
||||
debug(msgid, "找xx");
|
||||
#region 判断消息是否符合标题验证,如果符合将判断为标题搜索
|
||||
if (string.IsNullOrEmpty(keyword) && Class1.Config.SearchTitleSwitch == SwitchType.开启 && !Regex.IsMatch(message, Tools.Reg_QRCode_Goods))//开启淘宝标题搜索
|
||||
{
|
||||
|
@ -446,7 +448,7 @@ namespace TBRebate.Uses
|
|||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
debug(msgid, "标题");
|
||||
#region 宝贝二维码识别
|
||||
string QRCodeUrl = string.Empty;
|
||||
if (Class1.Config.QRCodeSearchSwitch == SwitchType.开启)
|
||||
|
@ -459,6 +461,8 @@ namespace TBRebate.Uses
|
|||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
debug(msgid, "二维码");
|
||||
var tbAnalysis = new TbAnalysis();
|
||||
|
||||
var title = string.Empty;//商品标题
|
||||
|
@ -469,7 +473,6 @@ namespace TBRebate.Uses
|
|||
{
|
||||
item_id = tbAnalysis.FindItemIdByUrlAndTklAndMkl(string.IsNullOrEmpty(QRCodeUrl) ? message : QRCodeUrl, api, pids);
|
||||
//TODO 淘宝商品Id转成字符串Id
|
||||
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
@ -543,13 +546,13 @@ namespace TBRebate.Uses
|
|||
#endregion
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 标题搜索和商品id搜索
|
||||
if (!string.IsNullOrWhiteSpace(title) || !string.IsNullOrEmpty(keyword) || !string.IsNullOrEmpty(item_id))
|
||||
{
|
||||
if (!ApiClient.Setting.SystemConfig.message_warning_switch)
|
||||
e.SendMessage(Class1.Config.SearchingTip);
|
||||
|
||||
debug(msgid, "查询中..");
|
||||
var titleSuccess = false;//判断是否是标题搜索
|
||||
try
|
||||
{
|
||||
|
@ -563,6 +566,8 @@ namespace TBRebate.Uses
|
|||
//商品的详细信息
|
||||
Dictionary<string, object> objData = null;
|
||||
|
||||
debug(msgid, "累计次数");
|
||||
|
||||
if (!string.IsNullOrEmpty(keyword) && IsTitle && string.IsNullOrEmpty(item_id))//符合搜索标题查询宝贝
|
||||
{
|
||||
try
|
||||
|
@ -581,6 +586,7 @@ namespace TBRebate.Uses
|
|||
objData = api.SendTaobao("taobao.tbk.item.info.get", new { num_iids = item_id, biz_scene_id = biz_scene_id });
|
||||
}
|
||||
|
||||
debug(msgid, "获取商品信息");
|
||||
//商品有返利
|
||||
if (objData != null && objData.Count != 0)
|
||||
{
|
||||
|
@ -625,6 +631,8 @@ namespace TBRebate.Uses
|
|||
}
|
||||
}
|
||||
|
||||
debug(msgid, "商品信息解析1");
|
||||
|
||||
//商品链接
|
||||
var item_url = tbk_item["item_url"].ToString();
|
||||
//店铺名称
|
||||
|
@ -688,6 +696,8 @@ namespace TBRebate.Uses
|
|||
//实时佣金的时候special_id不为空
|
||||
var SpecialIdNotNull = false;
|
||||
|
||||
debug(msgid, "商品信息解析2");
|
||||
|
||||
#region 申请高佣(通过设置的返利模式获取对应的高佣信息)
|
||||
switch (Class1.Config.QueryComparisonSwitch)
|
||||
{
|
||||
|
@ -760,10 +770,12 @@ namespace TBRebate.Uses
|
|||
break;
|
||||
}
|
||||
#endregion
|
||||
|
||||
debug(msgid, "商品信息解析3");
|
||||
if (privilege == null) throw new Exception("申请高佣失败,原因未知");
|
||||
|
||||
var privilege_data = privilege["data"] as Dictionary<string, object>;
|
||||
|
||||
debug(msgid, "商品信息解析4");
|
||||
#region 获取商品佣金
|
||||
if (commission_rate == 0)
|
||||
{
|
||||
|
@ -773,7 +785,7 @@ namespace TBRebate.Uses
|
|||
commission_rate = double.Parse(privilege_data["min_commission_rate"].ToString());
|
||||
}
|
||||
#endregion
|
||||
|
||||
debug(msgid, "商品信息解析5");
|
||||
//新商品ID的话,获取新的字符串IdB段
|
||||
if (privilege_data.ContainsKey("item_id"))
|
||||
{
|
||||
|
@ -792,7 +804,7 @@ namespace TBRebate.Uses
|
|||
var coupon_price = 0.00d;
|
||||
//优惠券满减比较的价格(原价和最终的价格,满减金额好像是通过判断原价进行比较的)
|
||||
var coupon_comparison_price = (reserve_price > zk_final_price ? reserve_price : zk_final_price);
|
||||
|
||||
debug(msgid, "商品信息解析6");
|
||||
#region 有无券模式 获取对应的优惠券地址和优惠券金额
|
||||
if (Class1.Config.NoCouponModeSwitch == SwitchType.关闭)
|
||||
{
|
||||
|
@ -1090,7 +1102,7 @@ namespace TBRebate.Uses
|
|||
coupon_price = 0.00d;
|
||||
}
|
||||
#endregion
|
||||
|
||||
debug(msgid, "商品信息解析7");
|
||||
if (endPrice == -1 && zk_final_price > coupon_price)
|
||||
endPrice = (double)((decimal)zk_final_price - (decimal)coupon_price);
|
||||
else if (zk_final_price <= coupon_price)
|
||||
|
@ -1104,10 +1116,11 @@ namespace TBRebate.Uses
|
|||
{
|
||||
throw new Exception("无结果");
|
||||
}
|
||||
debug(msgid, "商品信息解析8");
|
||||
|
||||
//用券后 给用户的佣金
|
||||
var useCoupon_commFee = db.FindItemPoint(memberTmp, useCoupon_totalCommFee, 1, CpsType.阿里妈妈, out compute);
|
||||
|
||||
debug(msgid, "商品信息解析9");
|
||||
Compute compute1 = null;
|
||||
|
||||
//不用券 佣金
|
||||
|
@ -1116,7 +1129,7 @@ namespace TBRebate.Uses
|
|||
{
|
||||
throw new Exception("无结果");
|
||||
}
|
||||
|
||||
debug(msgid, "商品信息解析10");
|
||||
//不用券 给用户的佣金
|
||||
var unuseCoupon_commFee = db.FindItemPoint(memberTmp, unuseCoupon_totalCommFee, 1, CpsType.阿里妈妈, out compute1);
|
||||
|
||||
|
@ -1132,13 +1145,13 @@ namespace TBRebate.Uses
|
|||
pids = _tlj.adzone_pid.Split('_');
|
||||
}
|
||||
#endregion
|
||||
|
||||
debug(msgid, "商品信息解析11");
|
||||
//判断是否有淘礼金,有淘礼金用淘礼金,没有就用购物地址
|
||||
var couponUrl = string.IsNullOrWhiteSpace(tljUrl) ? coupon_click_url : tljUrl;
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(activityId))
|
||||
couponUrl = couponUrl + "&activityId=" + activityId;
|
||||
|
||||
debug(msgid, "商品信息解析12");
|
||||
//更新私域用户备案信息
|
||||
if (Class1.Config.QueryComparisonSwitch == QueryComparisonType.查询使用实时佣金 && !SpecialIdNotNull && string.IsNullOrWhiteSpace(e.Groupid))
|
||||
{
|
||||
|
@ -1155,6 +1168,7 @@ namespace TBRebate.Uses
|
|||
plugin.OnLog($"更细私域异常关系 :({e.RobotInfo.nick}【{e.RobotInfo.name}】){ex.Message}");
|
||||
}
|
||||
}
|
||||
debug(msgid, "商品信息解析13");
|
||||
#region 获取淘口令 tkl
|
||||
TklInfo tklInfo = null;
|
||||
var tkl = string.Empty;
|
||||
|
@ -1196,14 +1210,18 @@ namespace TBRebate.Uses
|
|||
throw new Exception($"@获取淘口令异常:{ex.Message} - {ex.StackTrace}");
|
||||
}
|
||||
#endregion
|
||||
debug(msgid, "商品信息解析14");
|
||||
//淘口令的前/后符号有没有设置.有设置将替换掉
|
||||
tkl = tbAnalysis.ReplaceTklModifier(tklInfo.tkl);
|
||||
debug(msgid, "商品信息解析15");
|
||||
//中间页地址
|
||||
//var composeUrl = api.ComposeTbClick(item_id, pict_url, tklInfo.tkl, couponUrl, true);
|
||||
var composeUrl = api.ComposeTbClick(item_id, pict_url, tklInfo.tkl, tklInfo.isoUrl, true, pid, ApiClient.Setting.SystemConfig.ZjyComposeType == ComposeType.有推荐商品);
|
||||
// 获取短连接
|
||||
//couponUrl = tbAnalysis.FindShortUrlBySrcUrl(couponUrl, api);
|
||||
couponUrl = tklInfo.isoUrl;
|
||||
|
||||
debug(msgid, "商品信息解析16");
|
||||
#region 淘礼金
|
||||
if (!string.IsNullOrWhiteSpace(tljUrl))
|
||||
{
|
||||
|
@ -1224,12 +1242,11 @@ namespace TBRebate.Uses
|
|||
.Replace("[商品图片]", mess.Contains("[商品图片]") ? "[图片=" + ApiClient.GetQRImage(title, zk_final_price.ToString(), coupon_price.ToString(), ((decimal)zk_final_price - (decimal)coupon_price).ToString(), pict_url, composeUrl, ApiClient.QrImageType.模板B, CpsType.阿里妈妈) + "]" : string.Empty)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
#endregion
|
||||
#region 正常订单
|
||||
else
|
||||
{
|
||||
debug(msgid, "商品信息解析17");
|
||||
//有券的情况
|
||||
if (coupon_price != 0)
|
||||
{
|
||||
|
@ -1266,6 +1283,8 @@ namespace TBRebate.Uses
|
|||
}
|
||||
else//没有券的情况
|
||||
{
|
||||
|
||||
debug(msgid, "商品信息解析18");
|
||||
var mess = string.Empty;
|
||||
if (e.ChatType == ChatType.微信 || e.ChatType == ChatType.企业微信 || (e.ChatType == ChatType.QQ && string.IsNullOrWhiteSpace(Class1.Config.QQSearchSuccessWithoutCouponTip)))
|
||||
mess = Class1.Config.SearchSuccessWithoutCouponTip;
|
||||
|
@ -1295,6 +1314,7 @@ namespace TBRebate.Uses
|
|||
}
|
||||
}
|
||||
#endregion
|
||||
debug(msgid, "商品信息解析19");
|
||||
#region 记录用户信息,宝贝信息,平台信息,查询时间等
|
||||
db.Insertable(new fl_query_hist()
|
||||
{
|
||||
|
@ -1311,7 +1331,7 @@ namespace TBRebate.Uses
|
|||
compute_configdic = compute == null ? string.Empty : JsonConvert.SerializeObject(compute)
|
||||
}).ExecuteCommand();
|
||||
db.UpdateRecord(memberTmp.id);
|
||||
|
||||
debug(msgid, "商品信息解析20");
|
||||
var shared = new Dictionary<string, object>();
|
||||
shared["msg_type"] = "查询宝贝";
|
||||
shared["cps_type"] = CpsType.阿里妈妈;
|
||||
|
@ -1325,10 +1345,12 @@ namespace TBRebate.Uses
|
|||
var sharedEvent = new SharedEvents(shared);
|
||||
EventClient.OnEvent(sender, sharedEvent);
|
||||
#endregion
|
||||
debug(msgid, "商品信息解析21");
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
debug(msgid, "商品信息解析22");
|
||||
if (Class1.Config.ShopAdSwitch == SwitchType.开启)
|
||||
{
|
||||
#region 商品没有返利,店铺参加了推广,下单后有返利
|
||||
|
@ -1497,6 +1519,7 @@ namespace TBRebate.Uses
|
|||
}
|
||||
#endregion
|
||||
}
|
||||
debug(msgid, "商品信息解析23");
|
||||
#region 强返
|
||||
//判断是否为天猫商品
|
||||
var flag_tianmao = api.IsTianmao(item_id);
|
||||
|
@ -1633,7 +1656,7 @@ namespace TBRebate.Uses
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
debug(msgid, "商品信息解析24");
|
||||
if (string.IsNullOrWhiteSpace(keyword) && !string.IsNullOrWhiteSpace(title) && Class1.Config.SearchTitleSwitch_NoCommission == SwitchType.开启)
|
||||
{
|
||||
keyword = title;
|
||||
|
@ -1643,7 +1666,7 @@ namespace TBRebate.Uses
|
|||
}
|
||||
else
|
||||
e.SendMessage(Class1.Config.SearchNoCommissionTip.Replace("[关键词]", keyword).Replace("[商品标题]", title));//未搜索到提示语
|
||||
|
||||
debug(msgid, "商品信息解析25");
|
||||
db.UpdateRecord(memberTmp.id);
|
||||
|
||||
var shared = new Dictionary<string, object>();
|
||||
|
@ -1665,6 +1688,7 @@ namespace TBRebate.Uses
|
|||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
debug(msgid, "商品信息解析26");
|
||||
if (Regex.IsMatch(ex.Message, @"sub_msg\"":\""无结果", RegexOptions.IgnoreCase) || ex.Message == "无结果" || Regex.IsMatch(ex.Message, @"sub_msg\"":\""非淘客宝贝", RegexOptions.IgnoreCase))
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(keyword) && !string.IsNullOrWhiteSpace(title) && Class1.Config.SearchTitleSwitch_NoCommission == SwitchType.开启)
|
||||
|
@ -1713,10 +1737,10 @@ namespace TBRebate.Uses
|
|||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
debug(msgid, "商品信息解析27");
|
||||
if (ex.Message.StartsWith("@"))
|
||||
plugin.OnLog($"E :({e.RobotInfo.nick}【{e.RobotInfo.name}】){ex.Message.Replace("@", "")}");
|
||||
else
|
||||
|
|
|
@ -178,8 +178,7 @@
|
|||
</Reference>
|
||||
<Reference Include="Robot.Framework, Version=4.5.2101.7, Culture=neutral, processorArchitecture=x86">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\Debug\Robot.Framework.dll</HintPath>
|
||||
<Private>False</Private>
|
||||
<HintPath>..\..\DLL\Robot.Framework.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="SqlSugar, Version=4.9.9.3, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
|
|
|
@ -1793,7 +1793,6 @@ t = {target}");
|
|||
compose = ComposeTbClick(itemId, img, tkl, url, isShortUrl, DwzType, target, isCircleZjy);
|
||||
else
|
||||
compose = ComposeTbClick(itemId, img, tkl, url, pid, isTuiGuang, target, isCircleZjy);
|
||||
|
||||
return GetComposeUrl(compose, isShortUrl, DwzType, target);
|
||||
}
|
||||
|
||||
|
|
|
@ -985,6 +985,84 @@ html = {html}");
|
|||
return html;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 检查抖音App授权时间
|
||||
/// </summary>
|
||||
/// <param name="input"></param>
|
||||
/// <returns></returns>
|
||||
/// <exception cref="BusinessException"></exception>
|
||||
/// <exception cref="Exception"></exception>
|
||||
public static bool CheckAppAuthTime(string cookies,string userAgent)
|
||||
{
|
||||
var param = $"page=1&page_size=21&auth_status=0";
|
||||
|
||||
var sign = GetSign(param,userAgent);
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(sign))
|
||||
{
|
||||
param = $"{param}&_signature={sign}";
|
||||
}
|
||||
|
||||
var xb = GetXbogus(param,userAgent);
|
||||
|
||||
HttpHelper http = new HttpHelper();
|
||||
HttpItem item = new HttpItem()
|
||||
{
|
||||
URL = $"https://buyin.jinritemai.com/api/kol/doudian/app/list?{param}&X-Bogus={xb}",
|
||||
Method = "GET",
|
||||
Timeout = 5000,
|
||||
ReadWriteTimeout = 5000 * 2,
|
||||
IsToLower = false,
|
||||
Cookie = cookies,
|
||||
UserAgent = userAgent,
|
||||
Accept = "text/html, application/xhtml+xml, */*",
|
||||
ContentType = "application/x-www-form-urlencoded",
|
||||
Referer = "https://buyin.jinritemai.com/dashboard/shopwindow/goods-list",
|
||||
Allowautoredirect = false,
|
||||
AutoRedirectCookie = false,
|
||||
ResultType = ResultType.String
|
||||
};
|
||||
|
||||
item.Header.Add("Accept-Language", "zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2");
|
||||
item.Header.Add("Accept-Encoding", "deflate");
|
||||
|
||||
HttpResult result = http.GetHtml(item);
|
||||
string html = result.Html;
|
||||
|
||||
if (string.IsNullOrWhiteSpace(html))
|
||||
{
|
||||
throw new Exception("数据异常");
|
||||
}
|
||||
|
||||
var jObj = JObject.Parse(html);
|
||||
|
||||
if (jObj == null)
|
||||
{
|
||||
throw new Exception("获取失败");
|
||||
}
|
||||
|
||||
if (jObj["code"]?.Value<int>() == 0)
|
||||
{
|
||||
var jArr = jObj["data"].ToArray();
|
||||
foreach (var tmp in jArr)
|
||||
{
|
||||
if (tmp["app_id"]?.Value<string>() == "7066380295942964749")
|
||||
{
|
||||
if (DateTime.TryParse(tmp["expire_time"]?.Value<string>(), out var expireTime))
|
||||
{
|
||||
if (expireTime > DateTime.Now)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
public List<string> DownOrder(DateTime start_time, DateTime end_time, int _page_index, DouyinQueryOrderType type)
|
||||
{
|
||||
int num = 0;
|
||||
|
@ -1035,7 +1113,7 @@ html = {html}");
|
|||
|
||||
var html = result.Html;
|
||||
|
||||
if (result.Header.AllKeys.Contains("Set-Cookie"))
|
||||
if (result.Header.AllKeys.Contains("Set-Cookie") || result.Header.AllKeys.Contains("set-cookie"))
|
||||
{
|
||||
var msTokenStr = result.Header["set-cookie"].ToString();
|
||||
var reg = Regex.Match(msTokenStr, @"(msToken=.+?;)", RegexOptions.IgnoreCase);
|
||||
|
|
|
@ -130,6 +130,7 @@
|
|||
this.groupBox2.TabIndex = 2;
|
||||
this.groupBox2.TabStop = false;
|
||||
this.groupBox2.Text = "第二步 填写授权结果";
|
||||
this.groupBox2.Visible = false;
|
||||
//
|
||||
// simpleButton3
|
||||
//
|
||||
|
|
|
@ -122,6 +122,11 @@ namespace Api.Framework.Cps
|
|||
{
|
||||
webControl1.WebView.EvalScript(
|
||||
"document.getElementsByClassName('auxo-btn auxo-btn-primary auxo-btn-lg')[0].click()", false);
|
||||
}
|
||||
//https://buyin.jinritemai.com/dashboard/institution/through-power?app_id=7066380295942964749&state=160781175b224be294337798d16aa579
|
||||
else if (e.Url.Contains("https://buyin.jinritemai.com/dashboard/institution/through-power"))
|
||||
{
|
||||
|
||||
}
|
||||
//else if (e.Url.ToLower().Contains("cps.api.52cmg.cn/api/douyin.asmx"))//授权成功页面
|
||||
else if (e.Url.ToLower().Contains($"{ApiClient.Setting.SystemConfig.cps_server_api}api/douyin.asmx"))//授权成功页面
|
||||
|
@ -160,28 +165,72 @@ namespace Api.Framework.Cps
|
|||
LogHelper.GetSingleObj().Info("抖音登录获取到用户数据", json);
|
||||
CheckLoginCk(json, CK, UserAgent);
|
||||
|
||||
if (!IsJumpAuthorizationUrl)
|
||||
var isLoadAuthorizationUrl = true;
|
||||
if (!DouyinApiV2.CheckAppAuthTime(CK ?? ck, UserAgent))
|
||||
{
|
||||
Task.Run(() =>
|
||||
isLoadAuthorizationUrl = false;
|
||||
Task.Factory.StartNew(() =>
|
||||
{
|
||||
int num = 0;
|
||||
do
|
||||
{
|
||||
num++;
|
||||
Thread.Sleep(2000);
|
||||
webControl1.WebView.EvalScript("document.getElementsByClassName('auxo-menu-item auxo-menu-item-only-child headerNav-item basicSettings_daren')[0].click()", false);
|
||||
Thread.Sleep(2000);
|
||||
webControl1.WebView.EvalScript("document.getElementsByClassName('auxo-menu-item auxo-menu-item-only-child')[12].click()", false);
|
||||
|
||||
EventClient.OnEvent("抖音登录", $"请求跳转授权页面,第{num}次");
|
||||
webControl1.WebView.LoadUrl(AuthorizeLoginUrl);
|
||||
Thread.Sleep(2000);
|
||||
webControl1.WebView.EvalScript(@"var apps = document.getElementsByClassName('app-name text4-weight');
|
||||
for(var i = 0; i < apps.length; i++)
|
||||
{
|
||||
if (apps[i].innerText == '易赚')
|
||||
{
|
||||
apps[i].parentNode.getElementsByClassName('auxo-btn auxo-btn-dashed auxo-btn-sm')[0].click();
|
||||
break;
|
||||
}
|
||||
}
|
||||
", false);
|
||||
Thread.Sleep(1000);
|
||||
|
||||
Thread.Sleep(10000);
|
||||
} while (num < 13 && !IsJumpAuthorizationUrl);
|
||||
webControl1.WebView.EvalScript("document.getElementsByClassName('auxo-btn auxo-btn-primary')[0].click()", false);
|
||||
Thread.Sleep(1000);
|
||||
LoadAuthorizationUrl();
|
||||
});
|
||||
}
|
||||
|
||||
if (isLoadAuthorizationUrl)
|
||||
{
|
||||
LoadAuthorizationUrl();
|
||||
}
|
||||
|
||||
//if (!IsJumpAuthorizationUrl)
|
||||
//{
|
||||
// Task.Run(() =>
|
||||
// {
|
||||
// int num = 0;
|
||||
// do
|
||||
// {
|
||||
// num++;
|
||||
|
||||
// EventClient.OnEvent("抖音登录", $"请求跳转授权页面,第{num}次");
|
||||
// webControl1.WebView.LoadUrl(AuthorizeLoginUrl);
|
||||
|
||||
// Thread.Sleep(10000);
|
||||
// } while (num < 13 && !IsJumpAuthorizationUrl);
|
||||
// });
|
||||
//}
|
||||
}
|
||||
}
|
||||
catch (Exception)
|
||||
{ }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 加载授权地址
|
||||
/// </summary>
|
||||
private void LoadAuthorizationUrl()
|
||||
{
|
||||
this.webView1.LoadUrl(AuthorizeLoginUrl);
|
||||
//this.webView1.LoadUrl($"https://cps.api.52cmg.cn/api/auth/login?type=5&state={Math.Abs(Guid.NewGuid().GetHashCode())}");
|
||||
}
|
||||
|
||||
private static string AuthorizeLoginUrl => $"{ApiClient.Setting.SystemConfig.cps_server_api}api/douyin.asmx/login";
|
||||
|
||||
private string UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36";
|
||||
|
@ -331,6 +380,12 @@ namespace Api.Framework.Cps
|
|||
LogHelper.GetSingleObj().Info("抖音登录获取到用户数据", json);
|
||||
if (CheckLoginCk(json, this.textBox1.Text, UserAgent))
|
||||
{
|
||||
IsAuthorization = true;
|
||||
EventClient.OnEvent("抖音登录", "抖音授权登录成功!");
|
||||
|
||||
this.DialogResult = DialogResult.OK;
|
||||
|
||||
return;
|
||||
this.groupBox2.Enabled = true;
|
||||
BaseForm.ShowSuccessAutoClose("验证成功,您可以继续授权Api");
|
||||
}
|
||||
|
@ -378,6 +433,14 @@ namespace Api.Framework.Cps
|
|||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
IsAuthorization = true;
|
||||
EventClient.OnEvent("抖音登录", "抖音授权登录成功!");
|
||||
flag = true;
|
||||
|
||||
this.DialogResult = DialogResult.OK;
|
||||
}
|
||||
|
||||
if (!flag)
|
||||
throw new Exception("抖音授权登录失败!");
|
||||
|
|
|
@ -537,7 +537,7 @@ xml:字符长度:{(string.IsNullOrWhiteSpace(xml) ? "0" : $"{xml.Length}")}");
|
|||
}
|
||||
#endregion
|
||||
|
||||
#region MyRegion
|
||||
#region 二维码解析
|
||||
[DllImport("PsyQrDcd.dll"), HandleProcessCorruptedStateExceptions]
|
||||
private static extern int DecodePictureFile(string filename);
|
||||
|
||||
|
|
|
@ -202,6 +202,12 @@
|
|||
<Compile Include="QQSdk\QPlus\QQLoginForm.Designer.cs">
|
||||
<DependentUpon>QQLoginForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="QQSdk\QPlus\SetQQForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="QQSdk\QPlus\SetQQForm.Designer.cs">
|
||||
<DependentUpon>SetQQForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="QQSdk\QQBase.cs" />
|
||||
<Compile Include="QQSdk\QQEventManage.cs" />
|
||||
<Compile Include="Utils\Common.cs" />
|
||||
|
@ -294,6 +300,9 @@
|
|||
<DependentUpon>QQLoginForm.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="QQSdk\QPlus\SetQQForm.resx">
|
||||
<DependentUpon>SetQQForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="WXSdk\UIForm\BrowserForm.resx">
|
||||
<DependentUpon>BrowserForm.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
using Chat.Framework.QQSdk.Events;
|
||||
using Chat.Framework.Utils;
|
||||
using Robot.Framework;
|
||||
using Robot.Framework.Entities;
|
||||
using Robot.Framework.SDK;
|
||||
using System;
|
||||
using System.Linq;
|
||||
|
@ -9,6 +8,7 @@ using System.Text;
|
|||
using System.Text.RegularExpressions;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using LoginStatus = Robot.Framework.Entities.LoginStatus;
|
||||
|
||||
namespace Chat.Framework.QQSdk.QPlus
|
||||
{
|
||||
|
@ -33,9 +33,9 @@ namespace Chat.Framework.QQSdk.QPlus
|
|||
internal QQClientImpl_QQPlus(QQClient QQClient)
|
||||
{
|
||||
this.QQClient = QQClient;
|
||||
this.QQ = QQClient.User.QQ;
|
||||
this.Nickname = QQClient.User.NickName;
|
||||
this.IsLogin = QQClient.User.LoginStatus == LoginStatus.Login;
|
||||
this.QQ = QQClient.User?.QQ ?? 0;
|
||||
this.Nickname = QQClient.User?.NickName ??string.Empty;
|
||||
this.IsLogin = (QQClient.User?.LoginStatus ?? LoginStatus.Logout) == LoginStatus.Login;
|
||||
//this.Password = Robot.Framework.Utils.Util.ToHex(QQClient.User.md5_1, "", "{0}");
|
||||
//this.Password = QQClient.ToString();
|
||||
this.IsEQQ = QQClient.QQProtocol != "PCQQ";
|
||||
|
|
|
@ -30,6 +30,7 @@ namespace Chat.Framework.QQSdk.QPlus
|
|||
{
|
||||
InitializeComponent();
|
||||
qClient = new QQClient();
|
||||
qClient.User = new QQUser(0,new byte[0]);
|
||||
qPlusClient = new QQClientImpl_QQPlus(qClient);
|
||||
qClient.LoginStatusChanged += client_LoginStatusChanged;
|
||||
}
|
||||
|
@ -75,6 +76,7 @@ namespace Chat.Framework.QQSdk.QPlus
|
|||
}
|
||||
qPlusClient.Password = pass;
|
||||
qClient.QQProtocol = radioButton1.Checked ? "PCQQ" : "企业QQ";
|
||||
qClient.LoadRobotConfig(qq);
|
||||
qClient.Login();
|
||||
}
|
||||
else
|
||||
|
@ -188,9 +190,20 @@ namespace Chat.Framework.QQSdk.QPlus
|
|||
}
|
||||
}
|
||||
|
||||
private uint QQ = 0;
|
||||
private void picQR_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (sender == null)
|
||||
{
|
||||
var set = new SetQQForm();
|
||||
if (set.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
QQ = set.QQ;
|
||||
}
|
||||
}
|
||||
|
||||
qClient.User = new QQUser(0, new byte[0]);
|
||||
qClient.LoadRobotConfig(QQ);
|
||||
qClient.Login();
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue