Commit eb35e92c authored by wuliangshun's avatar wuliangshun

添加获取cookie

parent 9e241f7e
......@@ -12,6 +12,7 @@ using iqiyiWin.Response;
using iqiyiWin.Response.User.CouponList;
using iqiyiWin.Response.User.LockDraw;
using iqiyiWin.Response.User.MovieBean;
using iqiyiWin.Response.User.Sign;
using iqiyiWin.Util;
using Newtonsoft.Json;
......@@ -20,6 +21,118 @@ namespace iqiyiWin.Api
public class User
{
private static Random NonceRandom = new Random();
public static CookieCollection GetSupportAreacode()
{
var queryList = new SortedDictionary<string, string>();
queryList.Add("local", "1");
queryList.Add("use_case", "1");
queryList.Add("ptid", "02032001010000000000");
queryList.Add("agenttype", "12");
var cookieContainer = new CookieContainer();
var response = HttpUtils.DoPostResult(cookieContainer, "https://m.iqiyi.com/", "https://passport.iqiyi.com" + "/apis/phone/get_support_areacode.action?smart", UrlUtils.BuildQueryStringUrl(queryList).Substring(1), null);
return response.Cookie;
//var response = JsonConvert.DeserializeObject<object>(responseStr);
}
public static string UserLogin(IqiyiAccount iqiyiAccount)
{
var guid = Guid.NewGuid().ToString();
// 获取P00004 & QC005
var cookieCollection = GetSupportAreacode();
var cookieContainer = new CookieContainer();
var QC005 = "";
var cookieItem = new Cookie();
foreach (var v in cookieCollection)
{
var ckItem = v as Cookie;
if(ckItem.Name == "QC005")
{
QC005 = ckItem.Value;
}
cookieItem.Name = ckItem.Name;
cookieItem.Value = ckItem.Value;
cookieItem.Domain = ckItem.Domain;
cookieContainer.Add(cookieItem);
}
// 获取QC006
var QC006 = IqiyiSign.GetQC006();
var QC007 = "DIRECT";
// 写入 QC006 & QC007
cookieItem.Name = "QC006";
cookieItem.Value = QC006;
cookieItem.Domain = ".iqiyi.com";
cookieContainer.Add(cookieItem);
cookieItem.Name = "QC007";
cookieItem.Value = QC007;
cookieItem.Domain = ".iqiyi.com";
cookieContainer.Add(cookieItem);
var signRequst = new IqiyiH5DfpSignRequest()
{
Dim = IqiyiSign.GetDim(QC005, QC006, guid)
};
signRequst.Sig = IqiyiSign.H5Sign(signRequst.Dim + signRequst.Plat + signRequst.Ver).ToUpper();
SortedDictionary<string, string> signQueryList = JsonConvert.DeserializeObject<SortedDictionary<string, string>>(JsonConvert.SerializeObject(signRequst));
var signResponseStr = HttpUtils.DoPost(cookieContainer, "https://m.iqiyi.com/", "https://cook.iqiyi.com" + "/security/dfp_pcw/sign", UrlUtils.BuildQueryStringUrl(signQueryList).Substring(1), null, 10000);
var signResponse = JsonConvert.DeserializeObject<SignResponse>(signResponseStr);
if (signResponse.Code != "0")
{
return "";
}
var request = new IqiyiH5UserLoginRequest()
{
Email = iqiyiAccount.MobileNo,
Passwd = IqiyiSign.Encryption(iqiyiAccount.Password),
Dfp = signResponse.Result.Dfp
};
cookieItem.Name = "__uuid";
cookieItem.Value = guid;
cookieItem.Domain = ".iqiyi.com";
cookieContainer.Add(cookieItem);
//cookieItem.Name = "__dfp";
//cookieItem.Value = signResponse.Result.Dfp + "@" + signResponse.Result.ExpireAt + "@" + signResponse.Result.ExpireAt;
//cookieItem.Domain = ".iqiyi.com";
//cookieContainer.Add(cookieItem);
SortedDictionary<string, string> queryList = JsonConvert.DeserializeObject<SortedDictionary<string, string>>(JsonConvert.SerializeObject(request));
var responseObject = HttpUtils.DoPostResult(cookieContainer, "https://m.iqiyi.com/", "https://passport.iqiyi.com" + "/apis/reglogin/login.action", UrlUtils.BuildQueryStringUrl(queryList).Substring(1), null, 10000);
var response = JsonConvert.DeserializeObject<IqiyiH5BaseResponse<object>>(responseObject.Body);
if (response != null && response.Code == "A00000")
{
var resultCookies = responseObject.Cookie;
var P00001 = "";
foreach (var item in resultCookies)
{
var ckItem = item as Cookie;
if(ckItem.Name == "P00001")
{
P00001 = ckItem.Value;
break;
}
}
return P00001;
}
else
{
// UILogUtils.Error($"爱奇艺票务 【获取观影豆】失败: {iqiyiAccount.MobileNo} {(response == null ? responseStr : response.Msg)}");
return response.Msg;
}
}
/// <summary>
/// 查询观影豆
/// </summary>
......
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace iqiyiWin.Enums
{
public enum ReacquireCookieEnums
{
/// <summary>
/// 为获取
/// </summary>
[Description("未获取")]
NoReacquire = 0,
/// <summary>
/// 获取成功
/// </summary>
[Description("获取成功")]
ReacquireSuccess = 1,
/// <summary>
/// 获取失败
/// </summary>
[Description("获取失败")]
ReacquireError = 2,
}
}
......@@ -39,5 +39,10 @@ namespace iqiyiWin.Enums
/// </summary>
[Description("领取新手任务豆")]
ReceiveNewbieTask = 5,
/// <summary>
/// 重新获取Cookie
/// </summary>
[Description("重新获取Cookie")]
ReacquireCookie = 6,
}
}
......@@ -9,22 +9,29 @@ using System.Threading;
using System.Threading.Tasks;
using System.Timers;
using System.Windows.Forms;
using iqiyiWin.Enums;
using iqiyiWin.Model;
using iqiyiWin.Util;
namespace iqiyiWin
{
public partial class FormWebBrower : Form
{
public static Boolean IsInjection = false;
System.Timers.Timer loadHtmlTimer = new System.Timers.Timer();
public static IqiyiAccount IqiyiAccount = new IqiyiAccount();
public FormWebBrower()
{
WebBrowserFeaturesUtils.SetWebBrowserFeatures(11);
IsInjection = false;
InitializeComponent();
Init();
}
public void Init()
public void Init(IqiyiAccount iqiyiAccount)
{
wb_login.Navigate("https://m.iqiyi.com/user.html#baseLogin");
wb_login.ScriptErrorsSuppressed = true;
IqiyiAccount = iqiyiAccount;
wb_login.Navigate("https://m.iqiyi.com/user.html?redirect_url=https%3A%2F%2Fmovie.iqiyi.com%2Fuser%2Fmine#baseLogin");
wb_login.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(wb_login_DocumentCompleted);//加载完成后的事件
}
/// <summary>
......@@ -35,19 +42,46 @@ namespace iqiyiWin
private void wb_login_DocumentCompleted(object sender, EventArgs e)
{
wb_login.ScriptErrorsSuppressed = true;
//if (wb_login.Document.Cookie != null)
//{
// wb_login.Document.Cookie.Remove(0, wb_login.Document.Cookie.Length - 1);
//}
var url = wb_login.Url.ToString();
var title = wb_login.DocumentTitle;
if (url == "https://m.iqiyi.com/user.html#baseLogin")
if (url == "https://m.iqiyi.com/user.html?redirect_url=https%3A%2F%2Fmovie.iqiyi.com%2Fuser%2Fmine#baseLogin")
{
if (wb_login.Document.GetElementById("phoneNumber") != null)
{
if(!IsInjection)
{
IsInjection = true;
LoadOtherHtml(IqiyiAccount.MobileNo, IqiyiAccount.Password);
}
}
//loadHtmlTimer.Stop();
// TODO
//if (!loadHtmlTimer.Enabled)
//{
// loadHtmlTimer.Enabled = true;
// loadHtmlTimer.Interval =5 * 1000;
// loadHtmlTimer.Start();
// loadHtmlTimer.Elapsed += new System.Timers.ElapsedEventHandler(loadHtmlTimerElapsed);
//}
}
else if(url == "https://m.iqiyi.com/user.html?redirect_url=https%3A%2F%2Fmovie.iqiyi.com%2Fuser%2Fmine#hrisk?isHideAppLogin=true")
{
var html = wb_login.DocumentText;
LoadOtherHtml("15005885021","axs970610");
// 当前存在分线
var a = wb_login.Document.Cookie;
}
else
{
//loadHtmlTimer.Stop();
var cookie = wb_login.Document.Cookie.Replace("\r", "").Replace("\n", ""); ;
var cookieList = cookie.Split(';');
var p00001 = "";
var __dfp = "";
foreach (var item in cookieList)
{
var key = item.Split('=')[0].Trim();
......@@ -55,18 +89,59 @@ namespace iqiyiWin
if(key == "P00001")
{
p00001 = value;
break;
}
else if(key == "__dfp")
{
__dfp = value;
}
}
if(p00001.Length > 0)
{
IqiyiAccount.Cookie = p00001 + "|" + __dfp;
IqiyiAccount.Status = (int)ReacquireCookieEnums.ReacquireSuccess;
}
else
{
IqiyiAccount.Status = (int)ReacquireCookieEnums.ReacquireError;
}
wb_login.Document.Cookie.Remove(0, (wb_login.Document.Cookie.Length - 1));
foreach (var v in wb_login.Document.Cookie.Split(';'))
{
string[] item = v.Split('=');
if (item.Length == 2)
{
string name = item[0];
string value = item[1];
WebBrowserCookie.InternetSetCookie(wb_login.Url.ToString(), name, "");
}
}
wb_login.Url = null;
wb_login.Document.OpenNew(false);
wb_login.Dispose();
Main._this.ReacquireCookieBack(IqiyiAccount);
WebCleaner.CleanCookie();
}
}
private void LoadOtherHtml(string mobileNo , string password)
public void loadHtmlTimerElapsed(object source, ElapsedEventArgs e)
{
IqiyiAccount.Status = (int)ReacquireCookieEnums.ReacquireError;
Main._this.ReacquireCookieBack(IqiyiAccount);
this.Close();
}
private void LoadOtherHtml(string mobileNo, string password)
{
var scriptText = "if(document.getElementById('phoneNumber')){document.getElementById('phoneNumber').value='" + mobileNo + "'}if(document.getElementsByClassName('enterNumber')&&document.getElementsByClassName('enterNumber')[2]){document.getElementsByClassName('enterNumber')[2].value='" + password + "'}if(document.getElementsByClassName('c-check-link')&&document.getElementsByClassName('c-check-link')[0]){document.getElementsByClassName('c-check-link')[0].click()}if(document.getElementsByClassName('c-btn-block c-btn-base')&&document.getElementsByClassName('c-btn-block c-btn-base')[0]){document.getElementsByClassName('c-btn-block c-btn-base')[0].click()};";
var vConsole = wb_login.Document.CreateElement("script");
vConsole.SetAttribute("type", "text/javascript");
vConsole.SetAttribute("src", "https://m-test.qianzhu8.com/kfc/js/vconsole.min.js"); //这里写JS代码
wb_login.Document.Body.AppendChild(vConsole);
var scriptText = "if(document.getElementById('phoneNumber')){document.getElementById('phoneNumber').value='" + mobileNo + "'}if(document.getElementsByClassName('enterNumber')&&document.getElementsByClassName('enterNumber')[2]){document.getElementsByClassName('enterNumber')[2].value='" + password + "'}if(document.getElementsByClassName('selected').length==2){document.getElementsByClassName('c-check-link')[0].click()}if(document.getElementsByClassName('c-check-link')&&document.getElementsByClassName('c-check-link')[0]){document.getElementsByClassName('c-check-link')[0].click()}if(document.getElementsByClassName('c-btn-block c-btn-base')&&document.getElementsByClassName('c-btn-block c-btn-base')[0]){document.getElementsByClassName('c-btn-block c-btn-base')[0].click()}";
HtmlElement script = wb_login.Document.CreateElement("script");
script.SetAttribute("type", "text/javascript");
script.SetAttribute("text", scriptText); //这里写JS代码
HtmlElement head = wb_login.Document.Body.AppendChild(script);
wb_login.Document.Body.AppendChild(script);
}
}
}
......@@ -44,6 +44,7 @@
this.查询观影豆ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.查询优惠券ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.抽奖ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.领取新手任务豆ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripMenuItem2 = new System.Windows.Forms.ToolStripMenuItem();
this.复制账号ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.删除ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
......@@ -60,6 +61,7 @@
this.cb_signIn = new System.Windows.Forms.CheckBox();
this.cb_luckDraw = new System.Windows.Forms.CheckBox();
this.cb_ReceiveNewbieTask = new System.Windows.Forms.CheckBox();
this.ck_ReacquireCookie = new System.Windows.Forms.CheckBox();
this.groupBox4 = new System.Windows.Forms.GroupBox();
this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel();
this.btn_start = new System.Windows.Forms.Button();
......@@ -81,7 +83,6 @@
this.tssl_error_num = new System.Windows.Forms.ToolStripStatusLabel();
this.toolStripStatusLabel5 = new System.Windows.Forms.ToolStripStatusLabel();
this.tssl_wait_num = new System.Windows.Forms.ToolStripStatusLabel();
this.领取新手任务豆ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.tableLayoutPanel1.SuspendLayout();
this.groupBox1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.dgv_user)).BeginInit();
......@@ -220,7 +221,7 @@
this.导出账号ToolStripMenuItem,
this.清空账号ToolStripMenuItem});
this.cms_user.Name = "cms_user";
this.cms_user.Size = new System.Drawing.Size(187, 290);
this.cms_user.Size = new System.Drawing.Size(187, 268);
//
// 签到ToolStripMenuItem
//
......@@ -250,6 +251,13 @@
this.抽奖ToolStripMenuItem.Text = "抽奖";
this.抽奖ToolStripMenuItem.Click += new System.EventHandler(this.抽奖ToolStripMenuItem_Click);
//
// 领取新手任务豆ToolStripMenuItem
//
this.领取新手任务豆ToolStripMenuItem.Name = "领取新手任务豆ToolStripMenuItem";
this.领取新手任务豆ToolStripMenuItem.Size = new System.Drawing.Size(186, 22);
this.领取新手任务豆ToolStripMenuItem.Text = "领取新手任务豆";
this.领取新手任务豆ToolStripMenuItem.Click += new System.EventHandler(this.领取新手任务豆ToolStripMenuItem_Click);
//
// toolStripMenuItem2
//
this.toolStripMenuItem2.Name = "toolStripMenuItem2";
......@@ -337,10 +345,12 @@
this.tableLayoutPanel3.Controls.Add(this.cb_signIn, 0, 0);
this.tableLayoutPanel3.Controls.Add(this.cb_luckDraw, 0, 3);
this.tableLayoutPanel3.Controls.Add(this.cb_ReceiveNewbieTask, 0, 4);
this.tableLayoutPanel3.Controls.Add(this.ck_ReacquireCookie, 0, 5);
this.tableLayoutPanel3.Dock = System.Windows.Forms.DockStyle.Fill;
this.tableLayoutPanel3.Location = new System.Drawing.Point(3, 17);
this.tableLayoutPanel3.Name = "tableLayoutPanel3";
this.tableLayoutPanel3.RowCount = 6;
this.tableLayoutPanel3.RowCount = 7;
this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 32F));
this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 32F));
this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 32F));
this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 32F));
......@@ -410,6 +420,18 @@
this.cb_ReceiveNewbieTask.Text = "领取新手任务豆";
this.cb_ReceiveNewbieTask.UseVisualStyleBackColor = true;
//
// ck_ReacquireCookie
//
this.ck_ReacquireCookie.AutoSize = true;
this.ck_ReacquireCookie.Dock = System.Windows.Forms.DockStyle.Fill;
this.ck_ReacquireCookie.Location = new System.Drawing.Point(13, 163);
this.ck_ReacquireCookie.Margin = new System.Windows.Forms.Padding(13, 3, 3, 3);
this.ck_ReacquireCookie.Name = "ck_ReacquireCookie";
this.ck_ReacquireCookie.Size = new System.Drawing.Size(212, 26);
this.ck_ReacquireCookie.TabIndex = 9;
this.ck_ReacquireCookie.Text = "重新获取Token";
this.ck_ReacquireCookie.UseVisualStyleBackColor = true;
//
// groupBox4
//
this.groupBox4.Controls.Add(this.tableLayoutPanel2);
......@@ -607,13 +629,6 @@
this.tssl_wait_num.Size = new System.Drawing.Size(15, 17);
this.tssl_wait_num.Text = "0";
//
// 领取新手任务豆ToolStripMenuItem
//
this.领取新手任务豆ToolStripMenuItem.Name = "领取新手任务豆ToolStripMenuItem";
this.领取新手任务豆ToolStripMenuItem.Size = new System.Drawing.Size(186, 22);
this.领取新手任务豆ToolStripMenuItem.Text = "领取新手任务豆";
this.领取新手任务豆ToolStripMenuItem.Click += new System.EventHandler(this.领取新手任务豆ToolStripMenuItem_Click);
//
// Main
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
......@@ -696,6 +711,7 @@
private System.Windows.Forms.Button button4;
private System.Windows.Forms.CheckBox cb_ReceiveNewbieTask;
private System.Windows.Forms.ToolStripMenuItem 领取新手任务豆ToolStripMenuItem;
private System.Windows.Forms.CheckBox ck_ReacquireCookie;
}
}
......@@ -19,6 +19,11 @@ using DingDingSdk;
using iqiyiWin.Enums;
using iqiyiWin.Extension;
using iqiyiWin.Qianzhu.Api;
using System.Diagnostics;
using System.Net.Sockets;
using NLog;
using System.Web;
using System.Xml;
namespace iqiyiWin
{
......@@ -108,6 +113,28 @@ namespace iqiyiWin
/// 爱奇艺影院账号列表
/// </summary>
public List<QianZhuSaveIqiyiCinema> IqiyiCinemas = new List<QianZhuSaveIqiyiCinema>();
/// <summary>
/// 重新获取cookie时间
/// </summary>
public string ReacquireCookieDateText = "";
/// <summary>
/// 重新获取cookie时间
/// </summary>
public string ReacquireCookieTimeText = "";
/// <summary>
/// 当前重新cookie账号下标
/// </summary>
public int ReacquireCookieIndex = 0;
/// <summary>
/// 重新获取cookie最大窗口数量
/// </summary>
public int ReacquireCookieNum = 1;
/// <summary>
/// 重新获取cookie列表
/// </summary>
public List<IqiyiAccount> ReacquireCookieAccountList = new List<IqiyiAccount>();
public FormWebBrower FormWebBrower = null;
public MyHttpListenerUtils myHttpListenerUtils = null;
public Main()
{
......@@ -123,12 +150,10 @@ namespace iqiyiWin
UILogUtils.Add(this);
dgv_user.AutoGenerateColumns = false;
//StartServerAsync();
var formWB = new FormWebBrower();
formWB.Show();
}
private void Form1_Load(object sender, EventArgs e)
{
}
......@@ -1116,6 +1141,169 @@ namespace iqiyiWin
}
}
#endregion
public void ReacquireCookie(List<IqiyiAccount> iqiyiAccounts)
{
if (myHttpListenerUtils == null)
{
myHttpListenerUtils = new MyHttpListenerUtils();
var tempThread = new Thread(myHttpListenerUtils.OnStart);
tempThread.Start();
}
ReacquireCookieDateText = DateTime.Now.ToString("yyyyMMdd");
ReacquireCookieTimeText = DateTime.Now.ToString("HHmmss");
ReacquireCookieIndex = 0;
StartTime = DateUtils.GetTimeStampOfMilliseconds();
SelectNum = iqiyiAccounts.Count;
ImplementNum = 0;
SuccessNum = 0;
ErrorNum = 0;
WaitNum = iqiyiAccounts.Count;
setStatusStripNum();
ReacquireCookieAccountList = iqiyiAccounts;
runNextReacquireCookie();
//_cancellationTokenSource?.Cancel();
//_cancellationTokenSource = new CancellationTokenSource();
//CancellationToken cancellationToken = _cancellationTokenSource.Token;
//String fileDirectory = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "日志", "重新获取Cookie", ReacquireCookieDateText);
//String fileNamePrefixSuccess = "重新获取Cookie-" + ReacquireCookieTimeText + ".txt";
//String fileNamePrefixError = "重新获取Cookie-" + ReacquireCookieTimeText + ".txt";
//foreach (var iqiyiAccount in iqiyiAccounts)
//{
//Task.Factory.StartNew(() =>
//{
// int threadId = Thread.CurrentThread.ManagedThreadId;
// if (!_threadIdSet.Contains(threadId))
// {
// _threadIdSet.Add(threadId);
// UILogUtils.Info($"线程[{threadId}]运行中...总线程数[{_threadIdSet.Count}]");
// }
// string filePath = "";
// var P00001 = User.UserLogin(iqiyiAccount);
// if(P00001 != "")
// {
// string fileText = $"{iqiyiAccount.MobileNo}----{iqiyiAccount.Password}----{P00001}|原始Token:{iqiyiAccount.Cookie}";
// Interlocked.Increment(ref SuccessNum);
// Interlocked.Increment(ref ImplementNum);
// Interlocked.Decrement(ref WaitNum);
// fileText = $"{fileText}\n";
// filePath = Path.Combine(fileDirectory, fileNamePrefixSuccess);
// FileUtils.AppendAllText(filePath, fileText, Encoding.UTF8);
// }
// else
// {
// string fileText = $"{iqiyiAccount.MobileNo}----{iqiyiAccount.Password}----{iqiyiAccount.Cookie}";
// Interlocked.Increment(ref ErrorNum);
// Interlocked.Increment(ref ImplementNum);
// Interlocked.Decrement(ref WaitNum);
// fileText = $"{fileText}\n";
// filePath = Path.Combine(fileDirectory, fileNamePrefixError);
// FileUtils.AppendAllText(filePath, fileText, Encoding.UTF8);
// }
// setStatusStripNum();
//}, cancellationToken);
//}
}
public void runNextReacquireCookie()
{
if(IqiyiAccounts.Count < ReacquireCookieIndex - 1)
{
return;
}
// 先关闭打开的无痕浏览器
Process[] CurrentPro = Process.GetProcesses();
for (int i = 0; i < CurrentPro.Length; i++)
{
if (CurrentPro[i].MainWindowTitle.Contains("Google Chrome") && CurrentPro[i].MainWindowTitle.Contains("爱奇艺票务"))
{
CurrentPro[i].Kill();
break;
}
}
// TODO
var iqiyiAccount = IqiyiAccounts[ReacquireCookieIndex];
var process = new Process();
process.StartInfo.FileName = "chrome";
var url = $"https://m.iqiyi.com/user.html?mobile={iqiyiAccount.MobileNo}&password={iqiyiAccount.Password}&redirect_url=https%3A%2F%2Fmovie.iqiyi.com%2Fuser%2Fmine#baseLogin";
var startInfoArguments = "";
//startInfoArguments += " --headless";
startInfoArguments += " --new-window";
startInfoArguments += " --Incognito";
process.StartInfo.Arguments = url + startInfoArguments;
process.StartInfo.WindowStyle = ProcessWindowStyle.Normal;
process.Start();
//FormWebBrower = null;
//FormWebBrower = new FormWebBrower();
//FormWebBrower.Show();
//FormWebBrower.Init(IqiyiAccounts[ReacquireCookieIndex]);
ReacquireCookieAccountList.Add(iqiyiAccount);
if (ReacquireCookieAccountList.Count < ReacquireCookieNum - 1)
{
Interlocked.Increment(ref ReacquireCookieIndex);
runNextReacquireCookie();
}
}
public void ReacquireCookieBack(IqiyiAccount iqiyiAccount)
{
String fileDirectory = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "日志", "重新获取Cookie", ReacquireCookieDateText);
String fileNamePrefixSuccess = "重新获取Cookie-" + ReacquireCookieTimeText + ".txt";
String fileNamePrefixError = "重新获取Cookie-" + ReacquireCookieTimeText + ".txt";
String fileNamePrefix = "";
String filePath = "";
String statusText = EnumsUtils.GetDescriptionByEnum((ReacquireCookieEnums)Enum.ToObject(typeof(ReacquireCookieEnums), iqiyiAccount.Status));
String fileText = $"{iqiyiAccount.MobileNo}----{iqiyiAccount.Password}----{iqiyiAccount.Cookie}|{statusText}";
if (iqiyiAccount.Status == (int)ReacquireCookieEnums.ReacquireSuccess)
{
fileNamePrefix = fileNamePrefixSuccess;
Interlocked.Increment(ref SuccessNum);
Interlocked.Increment(ref ImplementNum);
Interlocked.Decrement(ref WaitNum);
}
else
{
fileNamePrefix = fileNamePrefixError;
Interlocked.Increment(ref ErrorNum);
Interlocked.Increment(ref ImplementNum);
Interlocked.Decrement(ref WaitNum);
}
// FormWebBrower.Dispose();
fileText = $"{fileText}\n";
filePath = Path.Combine(fileDirectory, fileNamePrefix);
setStatusStripNum();
for (int i = 0; i < ReacquireCookieAccountList.Count; i++)
{
var item = ReacquireCookieAccountList[i];
if(item.MobileNo == iqiyiAccount.MobileNo)
{
ReacquireCookieAccountList.RemoveAt(i);
break;
}
}
Interlocked.Increment(ref ReacquireCookieIndex);
if (ReacquireCookieIndex < IqiyiAccounts.Count)
{
runNextReacquireCookie();
}
FileUtils.AppendAllText(filePath, fileText, Encoding.UTF8);
}
/// <summary>
/// 开始按钮
/// </summary>
......@@ -1176,6 +1364,12 @@ namespace iqiyiWin
TaskList.Add(TaskTypeEnum.ReceiveNewbieTask);
taskNameList.Add($"{EnumExtension.GetDescription(TaskTypeEnum.ReceiveNewbieTask)}");
}
// 重新拉去cookie
if (ck_ReacquireCookie.Checked)
{
TaskList.Add(TaskTypeEnum.ReacquireCookie);
taskNameList.Add($"{EnumExtension.GetDescription(TaskTypeEnum.ReacquireCookie)}");
}
if (TaskList.Count != 0)
{
......@@ -1231,6 +1425,9 @@ namespace iqiyiWin
case TaskTypeEnum.ReceiveNewbieTask:
receiveNewbieTask(IqiyiAccounts);
break;
case TaskTypeEnum.ReacquireCookie:
ReacquireCookie(IqiyiAccounts);
break;
default:
UILogUtils.Error($"未知任务类型");
break;
......
......@@ -4,6 +4,7 @@ using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;
using iqiyiWin.Enums;
using iqiyiWin.Response.User.CouponList;
namespace iqiyiWin.Model
......@@ -50,6 +51,12 @@ namespace iqiyiWin.Model
/// 优惠券列表
/// </summary>
public List<Valid> CouponList { get; set; }
/// <summary>
/// 重新获取token状态
/// 0 未获取
/// 1 获取成功
/// 2 获取失败
/// </summary>
public int Status { get; set; } = (int)ReacquireCookieEnums.NoReacquire;
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;
namespace iqiyiWin.Model
{
public class IqiyiH5Dim
{
/// <summary>
/// Examples: "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1"
/// </summary>
[JsonProperty("jn")]
public string Jn { get; set; } = "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1";
/// <summary>
/// Examples: "zh-CN"
/// </summary>
[JsonProperty("cm")]
public string Cm { get; set; } = "zh-CN";
/// <summary>
/// Examples: 24
/// </summary>
[JsonProperty("gu")]
public int Gu { get; set; } = 24;
/// <summary>
/// Examples: 3
/// </summary>
[JsonProperty("uf")]
public int Uf { get; set; } = 3;
/// <summary>
/// Examples: [812,375]
/// </summary>
[JsonProperty("jr")]
public List<int> Jr { get; set; } = new List<int>() { 812, 375};
/// <summary>
/// Examples: [812,375]
/// </summary>
[JsonProperty("di")]
public List<int> Di { get; set; } = new List<int>() { 812, 375 };
/// <summary>
/// Examples: -480
/// </summary>
[JsonProperty("zp")]
public int Zp { get; set; } = -480;
/// <summary>
/// Examples: 1
/// </summary>
[JsonProperty("uh")]
public int Uh { get; set; } = 1;
/// <summary>
/// Examples: 1
/// </summary>
[JsonProperty("sh")]
public int Sh { get; set; } = 1;
/// <summary>
/// Examples: 1
/// </summary>
[JsonProperty("he")]
public int He { get; set; } = 1;
/// <summary>
/// Examples: 1
/// </summary>
[JsonProperty("zo")]
public int Zo { get; set; } = 1;
/// <summary>
/// Examples: "unknown"
/// </summary>
[JsonProperty("rv")]
public string Rv { get; set; } = "unknown";
/// <summary>
/// Examples: "Win32"
/// </summary>
[JsonProperty("nx")]
public string Nx { get; set; } = "Win32";
/// <summary>
/// Examples: "unknown"
/// </summary>
[JsonProperty("iw")]
public string Iw { get; set; } = "unknown";
/// <summary>
/// Examples: []
/// </summary>
[JsonProperty("qm")]
public List<string> Qm { get; set; } = new List<string> { };
/// <summary>
/// Examples: "e421d52e63e9bc74e6db153f901ff028"
/// </summary>
[JsonProperty("wr")]
public string Wr { get; set; }
/// <summary>
/// Examples: "37d2ac50723da033efc14274b809c431"
/// </summary>
[JsonProperty("wg")]
public string Wg { get; set; }
/// <summary>
/// Examples: false
/// </summary>
[JsonProperty("fk")]
public bool Fk { get; set; } = false;
/// <summary>
/// Examples: false
/// </summary>
[JsonProperty("rg")]
public bool Rg { get; set; } = false;
/// <summary>
/// Examples: false
/// </summary>
[JsonProperty("xy")]
public bool Xy { get; set; } = false;
/// <summary>
/// Examples: true
/// </summary>
[JsonProperty("jm")]
public bool Jm { get; set; } = true;
/// <summary>
/// Examples: true
/// </summary>
[JsonProperty("ba")]
public bool Ba { get; set; } = true;
/// <summary>
/// Examples: [1,true,true]
/// </summary>
[JsonProperty("tm")]
public List<object> Tm { get; set; } = new List<object> { 1, true, true};
/// <summary>
/// Examples: 6
/// </summary>
[JsonProperty("cc")]
public int Cc { get; set; } = 6;
/// <summary>
/// Examples: true
/// </summary>
[JsonProperty("vt")]
public bool Vt { get; set; } = true;
/// <summary>
/// Examples: "ANGLE (Intel, Intel(R) UHD Graphics 630 Direct3D11 vs_5_0 ps_5_0, D3D11-27.20.100.8935)"
/// </summary>
[JsonProperty("rr")]
public string Rr { get; set; } = "ANGLE (Intel, Intel(R) UHD Graphics 630 Direct3D11 vs_5_0 ps_5_0, D3D11-27.20.100.8935)";
/// <summary>
/// Examples: "Google Inc. (Intel)"
/// </summary>
[JsonProperty("vd")]
public string Vd { get; set; } = "Google Inc. (Intel)";
/// <summary>
/// Examples: "WebGL 1.0 (OpenGL ES 2.0 Chromium)"
/// </summary>
[JsonProperty("wv")]
public string Wv { get; set; } = "WebGL 1.0 (OpenGL ES 2.0 Chromium)";
/// <summary>
/// Examples: false
/// </summary>
[JsonProperty("hl")]
public bool Hl { get; set; } = false;
/// <summary>
/// Examples: "7,8"
/// </summary>
[JsonProperty("ht")]
public string Ht { get; set; } = "7,8";
/// <summary>
/// Examples: true
/// </summary>
[JsonProperty("au")]
public bool Au { get; set; } = true;
/// <summary>
/// Examples: "b434a361-37f2-e3e7-199e-a26d9c89b4d7"
/// </summary>
[JsonProperty("mi")]
public string Mi { get; set; }
/// <summary>
/// Examples: "H5"
/// </summary>
[JsonProperty("cl")]
public string Cl { get; set; } = "H5";
/// <summary>
/// Examples: "1.0"
/// </summary>
[JsonProperty("sv")]
public string Sv { get; set; } = "1.0";
/// <summary>
/// Examples: "974da1cccc0cac50ba813dab918e10bc"
/// </summary>
[JsonProperty("jg")]
public string Jg { get; set; }
/// <summary>
/// Examples: "5095aad833017a5735e6b889f86185d5"
/// </summary>
[JsonProperty("fh")]
public string Fh { get; set; }
/// <summary>
/// Examples: [false,null,null,null]
/// </summary>
[JsonProperty("ifm")]
public List<object> Ifm { get; set; } = new List<object> { false, null, null, null };
/// <summary>
/// Examples: ""
/// </summary>
[JsonProperty("ex")]
public string Ex { get; set; } = "";
/// <summary>
/// Examples: "off"
/// </summary>
[JsonProperty("dv")]
public string Dv { get; set; } = "off";
/// <summary>
/// Examples: true
/// </summary>
[JsonProperty("pv")]
public bool Pv { get; set; } = true;
/// <summary>
/// Examples: 1013
/// </summary>
[JsonProperty("qa")]
public int Qa { get; set; } = 1013;
}
}
\ No newline at end of file
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;
namespace iqiyiWin.Request.User
{
public class IqiyiH5DfpSignRequest
{
[JsonProperty("dim")]
public string Dim { get; set; } = "";
[JsonProperty("plat")]
public string Plat { get; set; } = "H5";
[JsonProperty("ver")]
public string Ver { get; set; } = "1.0";
[JsonProperty("nifc")]
public string Nifc { get; set; } = "false";
[JsonProperty("sig")]
public string Sig { get; set; } = "";
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using iqiyiWin.Constant;
using iqiyiWin.Util;
using Newtonsoft.Json;
namespace iqiyiWin.Request.User
{
public class IqiyiH5UserLoginRequest
{
[JsonProperty("email")]
public string Email { get; set; } = "";
[JsonProperty("area_code")]
public string AreaCode { get; set; } = "86";
[JsonProperty("passwd")]
public string Passwd { get; set; } = "";
[JsonProperty("verifyPhone")]
public string VerifyPhone { get; set; } = "1";
[JsonProperty("checkExist")]
public string CheckExist { get; set; } = "1";
[JsonProperty("fromurl")]
public string Fromurl { get; set; } = "https://movie.iqiyi.com/user/mine";
[JsonProperty("cookieVer")]
public string CookieVer { get; set; } = "1";
[JsonProperty("sports_account_merge")]
public string SportsAccountMerge { get; set; } = "1";
[JsonProperty("__NEW")]
public string NEW { get; set; } = "1";
[JsonProperty("nr")]
public string Nr { get; set; } = "2";
[JsonProperty("agenttype")]
public string Sgenttype { get; set; } = "12";
[JsonProperty("keep")]
public string Keep { get; set; } = "0";
[JsonProperty("dfp")]
public string Dfp { get; set; } = IqiyiVersion.Dfp();
[JsonProperty("env")]
public string Env { get; set; } = "";
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;
namespace iqiyiWin.Response.User.Sign
{
public class SignResponse
{
[JsonProperty("code")]
public string Code { get; set; }
[JsonProperty("message")]
public string Message { get; set; }
[JsonProperty("result")]
public Result Result { get; set; }
[JsonProperty("ttl")]
public string Ttl { get; set; }
}
public class Result
{
/// <summary>
/// Examples: "e099824c06e6604b0f87b0d5cbea3a391627fb482adfc60d6b1b747a9204f6ded2"
/// </summary>
[JsonProperty("dfp")]
public string Dfp { get; set; }
/// <summary>
/// Examples: 1627978965036
/// </summary>
[JsonProperty("expireAt")]
public long ExpireAt { get; set; }
/// <summary>
/// Examples: 1295999
/// </summary>
[JsonProperty("ttl")]
public int Ttl { get; set; }
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace iqiyiWin.Util
{
public class EnumsUtils
{
// 获取方法
public static string GetDescriptionByEnum(Enum enumValue)
{
string value = enumValue.ToString();
System.Reflection.FieldInfo field = enumValue.GetType().GetField(value);
object[] objs = field.GetCustomAttributes(typeof(DescriptionAttribute), false); //获取描述属性
if (objs.Length == 0) //当描述属性没有时,直接返回名称
return value;
DescriptionAttribute descriptionAttribute = (DescriptionAttribute)objs[0];
return descriptionAttribute.Description;
}
}
}
......@@ -18,5 +18,6 @@ namespace iqiyiWin.Util
/// Headers
/// </summary>
public WebHeaderCollection Headers { get; set; }
public CookieCollection Cookie { get; set; }
}
}
......@@ -240,12 +240,13 @@ namespace iqiyiWin.Util
}
}
public static HttpResult DoPostResult(string url, string data, IDictionary<string, string> headers, int timeout = 10000)
public static HttpResult DoPostResult(CookieContainer cookieContainer, string referer,string url, string data, IDictionary<string, string> headers, int timeout = 10000)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Referer = referer;
request.Method = "POST";
request.ContentType = JsonUtils.IsJsonData(data) ? "application/json" : "application/x-www-form-urlencoded";
request.CookieContainer = cookieContainer;
if (headers != null)
{
......@@ -270,7 +271,7 @@ namespace iqiyiWin.Util
Stream responseStream = null;
StreamReader streamReader = null;
try
{
{
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
responseStream = response.GetResponseStream();
streamReader = new StreamReader(responseStream, Encoding.UTF8);
......@@ -279,7 +280,8 @@ namespace iqiyiWin.Util
HttpResult httpResult = new HttpResult()
{
Body = result,
Headers = response.Headers
Headers = response.Headers,
Cookie = response.Cookies
};
return httpResult;
}
......@@ -289,7 +291,6 @@ namespace iqiyiWin.Util
responseStream?.Close();
}
}
public static string DoPost(CookieContainer cookieContainer, string url, string data, IDictionary<string, string> headers, int timeout = 10000)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
......
This diff is collapsed.
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using iqiyiWin.Enums;
using iqiyiWin.Model;
using NLog;
namespace iqiyiWin.Util
{
public class MyHttpListenerUtils
{
private static Logger logger = LogManager.GetCurrentClassLogger();
private HttpListener MyListerner;
public void OnStart()
{
MyListerner = new HttpListener();
while (true)
{
try
{
MyListerner.AuthenticationSchemes = AuthenticationSchemes.Anonymous;
MyListerner.Prefixes.Add("http://127.0.0.1:7788/iqiyiWin/updateToken/");
MyListerner.Start();
}
catch (Exception ex)
{
UILogUtils.Error("服务器启动失败:" + ex.ToString());
break;
}
//线程池
int minThreadNum;
int portThreadNum;
int maxThreadNum;
ThreadPool.GetMaxThreads(out maxThreadNum, out portThreadNum);
ThreadPool.GetMinThreads(out minThreadNum, out portThreadNum);
while (true)
{
//等待请求连接
//没有请求则GetContext处于阻塞状态
HttpListenerContext ctx = MyListerner.GetContext();
ThreadPool.QueueUserWorkItem(new WaitCallback(TaskProc), ctx);
}
}
}
public void OnStop()
{
MyListerner?.Stop();
}
void TaskProc(object obj)
{
HttpListenerContext ctx = (HttpListenerContext)obj;
ctx.Response.StatusCode = 200;
ctx.Response.ContentType = "application/json";
ctx.Response.AppendHeader("Access-Control-Allow-Origin", "*");
var replyMsg = "{success:true}";
//使用Writer输出http响应代码,UTF8格式
using (StreamWriter writer = new StreamWriter(ctx.Response.OutputStream, Encoding.UTF8))
{
writer.Write(replyMsg);
writer.Close();
Main._this.ReacquireCookieBack(new IqiyiAccount()
{
MobileNo = ctx.Request.QueryString["mobile"],
Password = ctx.Request.QueryString["password"],
Cookie = ctx.Request.QueryString["token"],
Status = (int)ReacquireCookieEnums.ReacquireSuccess
});
ctx.Response.Close();
}
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
namespace iqiyiWin.Util
{
public class WebBrowserCookie
{
[DllImport("wininet.dll", CharSet = CharSet.Auto, SetLastError = true)]
public static extern bool InternetSetCookie(string lpszUrlName, string lbszCookieName, string lpszCookieData);
[DllImport("wininet.dll", CharSet = CharSet.Auto, SetLastError = true)]
static extern bool InternetGetCookieEx(string pchUrl, string pchCookieName, StringBuilder pchCookieData, ref System.UInt32 pcchCookieData, int dwFlags, IntPtr lpReserved);
private static string GetCookieString(string url) // 从 webBrowser 获取 cookie,一般在webBrowser的 DocumentCompleted中获取
{
uint datasize = 1024;
StringBuilder cookieData = new StringBuilder((int)datasize);
if (!InternetGetCookieEx(url, null, cookieData, ref datasize, 0x2000, IntPtr.Zero))
{
if (datasize < 0)
return null;
cookieData = new StringBuilder((int)datasize);
if (!InternetGetCookieEx(url, null, cookieData, ref datasize, 0x00002000, IntPtr.Zero))
return null;
}
return cookieData.ToString();
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.Win32;
namespace iqiyiWin.Util
{
public class WebBrowserFeaturesUtils
{
/// <summary>
/// 修改注册表信息来兼容当前程序
///
/// </summary>
public static void SetWebBrowserFeatures(int ieVersion)
{
// don't change the registry if running in-proc inside Visual Studio
if (LicenseManager.UsageMode != LicenseUsageMode.Runtime)
return;
//获取程序及名称
var appName = System.IO.Path.GetFileName(System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName);
//得到浏览器的模式的值
UInt32 ieMode = GeoEmulationModee(ieVersion);
var featureControlRegKey = @"HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\";
//设置浏览器对应用程序(appName)以什么模式(ieMode)运行
Registry.SetValue(featureControlRegKey + "FEATURE_BROWSER_EMULATION",
appName, ieMode, RegistryValueKind.DWord);
// enable the features which are "On" for the full Internet Explorer browser
//不晓得设置有什么用
Registry.SetValue(featureControlRegKey + "FEATURE_ENABLE_CLIPCHILDREN_OPTIMIZATION",
appName, 1, RegistryValueKind.DWord);
Registry.SetValue(featureControlRegKey + "FEATURE_AJAX_CONNECTIONEVENTS",
appName, 1, RegistryValueKind.DWord);
Registry.SetValue(featureControlRegKey + "FEATURE_GPU_RENDERING",
appName, 1, RegistryValueKind.DWord);
Registry.SetValue(featureControlRegKey + "FEATURE_WEBOC_DOCUMENT_ZOOM",
appName, 1, RegistryValueKind.DWord);
Registry.SetValue(featureControlRegKey + "FEATURE_NINPUT_LEGACYMODE",
appName, 0, RegistryValueKind.DWord);
}
/// <summary>
/// 获取浏览器的版本
/// </summary>
/// <returns></returns>
public static int GetBrowserVersion()
{
int browserVersion = 0;
using (var ieKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Internet Explorer",
RegistryKeyPermissionCheck.ReadSubTree,
System.Security.AccessControl.RegistryRights.QueryValues))
{
var version = ieKey.GetValue("svcVersion");
if (null == version)
{
version = ieKey.GetValue("Version");
if (null == version)
throw new ApplicationException("Microsoft Internet Explorer is required!");
}
int.TryParse(version.ToString().Split('.')[0], out browserVersion);
}
//如果小于7
if (browserVersion < 7)
{
throw new ApplicationException("不支持的浏览器版本!");
}
return browserVersion;
}
/// <summary>
/// 通过版本得到浏览器模式的值
/// </summary>
/// <param name="browserVersion"></param>
/// <returns></returns>
public static UInt32 GeoEmulationModee(int browserVersion)
{
UInt32 mode = 11000; // Internet Explorer 11. Webpages containing standards-based !DOCTYPE directives are displayed in IE11 Standards mode.
switch (browserVersion)
{
case 7:
mode = 7000; // Webpages containing standards-based !DOCTYPE directives are displayed in IE7 Standards mode.
break;
case 8:
mode = 8000; // Webpages containing standards-based !DOCTYPE directives are displayed in IE8 mode.
break;
case 9:
mode = 9000; // Internet Explorer 9. Webpages containing standards-based !DOCTYPE directives are displayed in IE9 mode.
break;
case 10:
mode = 10000; // Internet Explorer 10.
break;
case 11:
mode = 11001; // Internet Explorer 11
break;
}
return mode;
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace iqiyiWin.Util
{
public class WebCleaner
{
/*
* 7 个静态函数
* 私有函数
* private bool FileDelete() : 删除文件
* private void FolderClear() : 清除文件夹内的所有文件
* private void RunCmd() : 运行内部命令
*
* 公有函数
* public void CleanCookie() : 删除Cookie
* public void CleanHistory() : 删除历史记录
* public void CleanTempFiles() : 删除临时文件
* public void CleanAll() : 删除所有
*
*
*
* */
//private
///
/// 删除一个文件,System.IO.File.Delete()函数不可以删除只读文件,这个函数可以强行把只读文件删除。
///
/// 文件路径
/// 是否被删除
static bool FileDelete(string path)
{
//first set the File\'s ReadOnly to 0
//if EXP, restore its Attributes
System.IO.FileInfo file = new System.IO.FileInfo(path);
System.IO.FileAttributes att = 0;
bool attModified = false;
try
{
//### ATT_GETnSET
att = file.Attributes;
file.Attributes &= (~System.IO.FileAttributes.ReadOnly);
attModified = true;
file.Delete();
}
catch (Exception e)
{
if (attModified)
file.Attributes = att;
return false;
}
return true;
}
//public
///
/// 清除文件夹
///
/// 文件夹路径
static void FolderClear(string path)
{
System.IO.DirectoryInfo diPath = new System.IO.DirectoryInfo(path);
foreach (System.IO.FileInfo fiCurrFile in diPath.GetFiles())
{
FileDelete(fiCurrFile.FullName);
}
foreach (System.IO.DirectoryInfo diSubFolder in diPath.GetDirectories())
{
FolderClear(diSubFolder.FullName); // Call recursively for all subfolders
}
}
static void RunCmd(string cmd)
{
System.Diagnostics.Process.Start("cmd.exe","/c " + cmd);
}
///
/// 删除历史记录
///
public static void CleanHistory()
{
string[] theFiles = System.IO.Directory.GetFiles(Environment.GetFolderPath(Environment.SpecialFolder.History), "*", System.IO.SearchOption.AllDirectories);
foreach (string s in theFiles)
FileDelete(s);
RunCmd("RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 1");
}
///
/// 删除临时文件
///
public static void CleanTempFiles()
{
FolderClear(Environment.GetFolderPath(Environment.SpecialFolder.InternetCache));
RunCmd("RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 8");
}
///
/// 删除Cookie
///
public static void CleanCookie()
{
string[] theFiles = System.IO.Directory.GetFiles(Environment.GetFolderPath(Environment.SpecialFolder.Cookies), "*", System.IO.SearchOption.AllDirectories);
foreach (string s in theFiles)
FileDelete(s);
RunCmd("RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 2");
}
///
/// 删除全部
///
public static void CleanAll()
{
CleanHistory();
CleanCookie();
CleanTempFiles();
}
}
}
......@@ -36,8 +36,17 @@
<Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
<HintPath>..\packages\NLog.4.7.10\lib\net45\NLog.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Configuration" />
<Reference Include="System.Core" />
<Reference Include="System.IO.Compression" />
<Reference Include="System.Runtime.Serialization" />
<Reference Include="System.ServiceModel" />
<Reference Include="System.ServiceProcess" />
<Reference Include="System.Transactions" />
<Reference Include="System.Web" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
......@@ -61,6 +70,7 @@
<Compile Include="Constant\DingDingConstant.cs" />
<Compile Include="Constant\IqiyiVersion.cs" />
<Compile Include="Enums\AppEnvironmentEnum.cs" />
<Compile Include="Enums\ReacquireCookieEnums.cs" />
<Compile Include="Enums\TaskEnums.cs" />
<Compile Include="Extension\EnumExtension.cs" />
<Compile Include="FormWebBrower.cs">
......@@ -74,6 +84,7 @@
<Compile Include="Model\IqiyiH5Cinema.cs" />
<Compile Include="Model\IqiyiH5City.cs" />
<Compile Include="Model\IqiyiH5CreateOrder.cs" />
<Compile Include="Model\IqiyiH5Dim.cs" />
<Compile Include="Model\IqiyiH5Movie.cs" />
<Compile Include="Model\IqiyiH5Seat.cs" />
<Compile Include="Model\IqiyiH5Session.cs" />
......@@ -100,8 +111,10 @@
<Compile Include="Request\IqiyiH5BaseRequest.cs" />
<Compile Include="Request\IqiyiH5BaseRequest2.cs" />
<Compile Include="Request\Order\IqiyiH5CreateOrderRequest.cs" />
<Compile Include="Request\User\IqiyiH5DfpSignRequest.cs" />
<Compile Include="Request\User\IqiyiH5ReceiveWaitLookRequest.cs" />
<Compile Include="Request\User\IqiyiH5UserBaseRequest.cs" />
<Compile Include="Request\User\IqiyiH5UserLoginRequest.cs" />
<Compile Include="Request\User\WantLookMoiveRequest.cs" />
<Compile Include="Response\Cinema\CinemaItem\CinemaResponse.cs" />
<Compile Include="Response\Cinema\Citites\CityListResponse.cs" />
......@@ -116,6 +129,7 @@
<Compile Include="Response\Order\IqiyiH5CreateOrderResponse.cs" />
<Compile Include="Response\Task\TaskList\GetTaskListResponse.cs" />
<Compile Include="Response\User\LockDraw\LockDrawResponse.cs" />
<Compile Include="Response\User\Sign\SignResponse.cs" />
<Compile Include="SetLuckDraw.cs">
<SubType>Form</SubType>
</Compile>
......@@ -141,15 +155,20 @@
<DependentUpon>SetInterval.cs</DependentUpon>
</Compile>
<Compile Include="Util\DateUtils.cs" />
<Compile Include="Util\EnumsUtils.cs" />
<Compile Include="Util\FileUtils.cs" />
<Compile Include="Util\HttpResult.cs" />
<Compile Include="Util\HttpUtils.cs" />
<Compile Include="Util\IqiyiSign.cs" />
<Compile Include="Util\IUILog.cs" />
<Compile Include="Util\JsonUtils.cs" />
<Compile Include="Util\MyHttpListenerUtils.cs" />
<Compile Include="Util\Sha1.cs" />
<Compile Include="Util\UILogUtils.cs" />
<Compile Include="Util\UrlUtils.cs" />
<Compile Include="Util\WebBrowserCookie.cs" />
<Compile Include="Util\WebBrowserFeaturesUtils.cs" />
<Compile Include="Util\WebCleaner.cs" />
<EmbeddedResource Include="FormWebBrower.resx">
<DependentUpon>FormWebBrower.cs</DependentUpon>
</EmbeddedResource>
......@@ -191,6 +210,16 @@
<Name>DingDingSdk</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup />
<ItemGroup>
<COMReference Include="MSScriptControl">
<Guid>{0E59F1D2-1FBE-11D0-8FF2-00A0D10038BC}</Guid>
<VersionMajor>1</VersionMajor>
<VersionMinor>0</VersionMinor>
<Lcid>0</Lcid>
<WrapperTool>tlbimp</WrapperTool>
<Isolated>False</Isolated>
<EmbedInteropTypes>True</EmbedInteropTypes>
</COMReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Newtonsoft.Json" version="12.0.3" targetFramework="net472" />
<package id="NLog" version="4.7.10" targetFramework="net472" />
</packages>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment