Commit e540b712 authored by 罗超's avatar 罗超

变更框架

parent e729ebc3
Pipeline #132 failed with stages
...@@ -6,6 +6,7 @@ using System.Collections.Generic; ...@@ -6,6 +6,7 @@ using System.Collections.Generic;
using System.Collections.ObjectModel; using System.Collections.ObjectModel;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using TicketSpider.Model; using TicketSpider.Model;
using TicketSpider.Spiders.EasterLineRule; using TicketSpider.Spiders.EasterLineRule;
......
// See https://aka.ms/new-console-template for more information // See https://aka.ms/new-console-template for more information
using Newtonsoft.Json; using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using TicketSpider.Data; using TicketSpider.Data;
using TicketSpider.Model; using TicketSpider.Model;
using TicketSpider.Spiders; using TicketSpider.Spiders;
using TicketSpider.Uitls; using TicketSpider.Uitls;
ThreadPool.SetMaxThreads(255, 255); static void Main(string [] args)
ThreadPool.SetMinThreads(255, 255);
#region 初始化城市信息
if (!CityService.Load())
{ {
ThreadPool.SetMaxThreads(255, 255);
ThreadPool.SetMinThreads(255, 255);
#region 初始化城市信息
if (!CityService.Load())
{
Console.WriteLine("初始化城市信息失败,检查相关文件"); Console.WriteLine("初始化城市信息失败,检查相关文件");
return; return;
} }
#endregion #endregion
#region 航司选择 #region 航司选择
var airLines = new string[] { "E", "C" }; var airLines = new string[] { "E", "C" };
while (true) while (true)
{ {
Console.WriteLine("请选择要执行的航司,E:东航;C:国航,多个航司使用英语逗号相隔(E,C)"); Console.WriteLine("请选择要执行的航司,E:东航;C:国航,多个航司使用英语逗号相隔(E,C)");
var airlineStr = Console.ReadLine(); var airlineStr = Console.ReadLine();
if (!string.IsNullOrEmpty(airlineStr)) if (!string.IsNullOrEmpty(airlineStr))
...@@ -34,16 +42,16 @@ while (true) ...@@ -34,16 +42,16 @@ while (true)
} }
} }
Console.WriteLine("输入有误,重新输入"); Console.WriteLine("输入有误,重新输入");
} }
#endregion #endregion
#region 命令模式 #region 命令模式
while (true) while (true)
{ {
Console.WriteLine("请选择命令模式(1 步骤模式,2 命令行模式)"); Console.WriteLine("请选择命令模式(1 步骤模式,2 命令行模式)");
var modes = new int[] { 1,2}; var modes = new int[] { 1, 2 };
var mode = Console.ReadLine(); var mode = Console.ReadLine();
if (!string.IsNullOrEmpty(mode)&&int.TryParse(mode,out CmdHelper.CMD_MODEL)) if (!string.IsNullOrEmpty(mode) && int.TryParse(mode, out CmdHelper.CMD_MODEL))
{ {
if (modes.Contains(CmdHelper.CMD_MODEL)) if (modes.Contains(CmdHelper.CMD_MODEL))
{ {
...@@ -51,12 +59,12 @@ while (true) ...@@ -51,12 +59,12 @@ while (true)
} }
} }
Console.WriteLine("输入有误,重新输入"); Console.WriteLine("输入有误,重新输入");
} }
#endregion #endregion
#region 步骤命令模式 #region 步骤命令模式
if (CmdHelper.CMD_MODEL == 1) if (CmdHelper.CMD_MODEL == 1)
{ {
#region 输入航段 #region 输入航段
while (true) while (true)
{ {
...@@ -100,7 +108,7 @@ if (CmdHelper.CMD_MODEL == 1) ...@@ -100,7 +108,7 @@ if (CmdHelper.CMD_MODEL == 1)
if (DateTime.TryParse(dates[0], out dtNow) && DateTime.TryParse(dates[1], out dtNow)) if (DateTime.TryParse(dates[0], out dtNow) && DateTime.TryParse(dates[1], out dtNow))
{ {
model.DepartDate = dateStr.Replace("-","~"); model.DepartDate = dateStr.Replace("-", "~");
model.DepartDateMode = 2; model.DepartDateMode = 2;
break; break;
} }
...@@ -121,13 +129,13 @@ if (CmdHelper.CMD_MODEL == 1) ...@@ -121,13 +129,13 @@ if (CmdHelper.CMD_MODEL == 1)
Console.WriteLine($"请输入航段{CmdHelper.FLIGHTS.Count() + 1}需要指定的航班(如:3U8633, 没有直接回车)"); Console.WriteLine($"请输入航段{CmdHelper.FLIGHTS.Count() + 1}需要指定的航班(如:3U8633, 没有直接回车)");
model.AirlineCode = Console.ReadLine() ?? string.Empty; model.AirlineCode = Console.ReadLine() ?? string.Empty;
Console.WriteLine($"请输入航段{CmdHelper.FLIGHTS.Count() + 1}需要指定的仓位代码,多个使用英文逗号相隔(如:\"Y\" \"C,Y\", 没有直接回车)"); Console.WriteLine($"请输入航段{CmdHelper.FLIGHTS.Count() + 1}需要指定的仓位代码,多个使用英文逗号相隔(如:\"Y\" \"C,Y\", 没有直接回车)");
model.SeatCode= Console.ReadLine() ?? string.Empty; model.SeatCode = Console.ReadLine() ?? string.Empty;
CmdHelper.FLIGHTS.Add(model); CmdHelper.FLIGHTS.Add(model);
var isContinu = false; var isContinu = false;
while (true) while (true)
{ {
Console.WriteLine($"航段{CmdHelper.FLIGHTS.Count()}添加成功,是否继续添加航段? (Y:继续添加/n:不添加)"); Console.WriteLine($"航段{CmdHelper.FLIGHTS.Count()}添加成功,是否继续添加航段? (Y:继续添加/n:不添加)");
var continu=Console.ReadLine()?? string.Empty; var continu = Console.ReadLine() ?? string.Empty;
if (continu == "Y" || continu == "n") if (continu == "Y" || continu == "n")
{ {
isContinu = continu == "Y"; isContinu = continu == "Y";
...@@ -147,7 +155,7 @@ if (CmdHelper.CMD_MODEL == 1) ...@@ -147,7 +155,7 @@ if (CmdHelper.CMD_MODEL == 1)
while (true) while (true)
{ {
Console.WriteLine($"请输入乘客{CmdHelper.PASSENGETS.Count + 1}的英文姓名(LIU/DONG)"); Console.WriteLine($"请输入乘客{CmdHelper.PASSENGETS.Count + 1}的英文姓名(LIU/DONG)");
var name=Console.ReadLine()?? string.Empty; var name = Console.ReadLine() ?? string.Empty;
if (name.Split("/").Length == 2) if (name.Split("/").Length == 2)
{ {
model.paxNameFirst = name.Split("/")[0]; model.paxNameFirst = name.Split("/")[0];
...@@ -171,8 +179,8 @@ if (CmdHelper.CMD_MODEL == 1) ...@@ -171,8 +179,8 @@ if (CmdHelper.CMD_MODEL == 1)
{ {
Console.WriteLine($"请输入乘客{CmdHelper.PASSENGETS.Count + 1}生日 (2022/01/01)"); Console.WriteLine($"请输入乘客{CmdHelper.PASSENGETS.Count + 1}生日 (2022/01/01)");
var name = Console.ReadLine() ?? string.Empty; var name = Console.ReadLine() ?? string.Empty;
var dtnow=DateTime.Now; var dtnow = DateTime.Now;
if (DateTime.TryParse(name,out dtnow)) if (DateTime.TryParse(name, out dtnow))
{ {
model.birthday = name; model.birthday = name;
break; break;
...@@ -183,7 +191,7 @@ if (CmdHelper.CMD_MODEL == 1) ...@@ -183,7 +191,7 @@ if (CmdHelper.CMD_MODEL == 1)
{ {
Console.WriteLine($"请输入乘客{CmdHelper.PASSENGETS.Count + 1}联系电话 (13080808080)"); Console.WriteLine($"请输入乘客{CmdHelper.PASSENGETS.Count + 1}联系电话 (13080808080)");
var name = Console.ReadLine() ?? string.Empty; var name = Console.ReadLine() ?? string.Empty;
if (name.Length==11) if (name.Length == 11)
{ {
model.mobile = name; model.mobile = name;
break; break;
...@@ -194,8 +202,8 @@ if (CmdHelper.CMD_MODEL == 1) ...@@ -194,8 +202,8 @@ if (CmdHelper.CMD_MODEL == 1)
{ {
Console.WriteLine($"请输入乘客{CmdHelper.PASSENGETS.Count + 1}护照号和护照有效期 (EH36523023 2029/08/18)"); Console.WriteLine($"请输入乘客{CmdHelper.PASSENGETS.Count + 1}护照号和护照有效期 (EH36523023 2029/08/18)");
var name = (Console.ReadLine() ?? string.Empty).Split(" "); var name = (Console.ReadLine() ?? string.Empty).Split(" ");
var dtNow=DateTime.Now; var dtNow = DateTime.Now;
if (name.Length == 2 && name[0].Length>6 && DateTime.TryParse(name[1],out dtNow)) if (name.Length == 2 && name[0].Length > 6 && DateTime.TryParse(name[1], out dtNow))
{ {
model.favorPaxIdDtoList = new List<FavorPaxIdDtoList>() { model.favorPaxIdDtoList = new List<FavorPaxIdDtoList>() {
new FavorPaxIdDtoList() new FavorPaxIdDtoList()
...@@ -226,12 +234,12 @@ if (CmdHelper.CMD_MODEL == 1) ...@@ -226,12 +234,12 @@ if (CmdHelper.CMD_MODEL == 1)
if (!isContinu) break; if (!isContinu) break;
} }
#endregion #endregion
} }
#endregion #endregion
#region 命令行模式 #region 命令行模式
if (CmdHelper.CMD_MODEL == 2) if (CmdHelper.CMD_MODEL == 2)
{ {
while (true) while (true)
{ {
Console.WriteLine("请输入命令行,如果需要帮助请输入“H”"); Console.WriteLine("请输入命令行,如果需要帮助请输入“H”");
...@@ -362,7 +370,7 @@ if (CmdHelper.CMD_MODEL == 2) ...@@ -362,7 +370,7 @@ if (CmdHelper.CMD_MODEL == 2)
foreach (var flight in flights) foreach (var flight in flights)
{ {
var flightInfo = flight.Split(" "); var flightInfo = flight.Split(" ");
if (flightInfo.Length == 4 && flightInfo[0].Split("/").Length==2) if (flightInfo.Length == 4 && flightInfo[0].Split("/").Length == 2)
{ {
//验证时间 //验证时间
var dtNow = DateTime.Now; var dtNow = DateTime.Now;
...@@ -426,8 +434,8 @@ if (CmdHelper.CMD_MODEL == 2) ...@@ -426,8 +434,8 @@ if (CmdHelper.CMD_MODEL == 2)
paxName = "", paxName = "",
paxNameFirst = pList[0].Split("/")[0], paxNameFirst = pList[0].Split("/")[0],
paxNameLast = pList[0].Split("/")[1], paxNameLast = pList[0].Split("/")[1],
gender = pList[1]=="男"?"M":"F", gender = pList[1] == "男" ? "M" : "F",
birthday = pList[2].Replace("/",""), birthday = pList[2].Replace("/", ""),
nationality = "CN", nationality = "CN",
telephoneCode = "86", telephoneCode = "86",
mobile = pList[3], mobile = pList[3],
...@@ -458,14 +466,16 @@ if (CmdHelper.CMD_MODEL == 2) ...@@ -458,14 +466,16 @@ if (CmdHelper.CMD_MODEL == 2)
{ {
var flightAllName = string.Empty; var flightAllName = string.Empty;
var passNames = string.Empty; var passNames = string.Empty;
flightList.ForEach(x => { flightList.ForEach(x =>
if (flightList.IndexOf(x) != flightList.Count - 1 || flightList.IndexOf(x)==0) flightAllName += "/" + x.DepartCity; {
if (flightList.IndexOf(x) != flightList.Count - 1 || flightList.IndexOf(x) == 0) flightAllName += "/" + x.DepartCity;
if (flightList.IndexOf(x) == flightList.Count - 1) flightAllName += "/" + x.ArriveCity; if (flightList.IndexOf(x) == flightList.Count - 1) flightAllName += "/" + x.ArriveCity;
}); });
passengerList.ForEach(x => { passengerList.ForEach(x =>
{
passNames += "/" + x.paxNameFirst + x.paxNameLast; passNames += "/" + x.paxNameFirst + x.paxNameLast;
}); });
Console.WriteLine($"刷票需求识别成功,本次行程为:{flightAllName.Remove(0,1)} {flightList.Count}段航程,本次乘客为:{passNames.Remove(0, 1)} {passengerList.Count}位乘客"); Console.WriteLine($"刷票需求识别成功,本次行程为:{flightAllName.Remove(0, 1)} {flightList.Count}段航程,本次乘客为:{passNames.Remove(0, 1)} {passengerList.Count}位乘客");
CmdHelper.FLIGHTS = flightList; CmdHelper.FLIGHTS = flightList;
CmdHelper.PASSENGETS = passengerList; CmdHelper.PASSENGETS = passengerList;
break; break;
...@@ -476,33 +486,34 @@ if (CmdHelper.CMD_MODEL == 2) ...@@ -476,33 +486,34 @@ if (CmdHelper.CMD_MODEL == 2)
} }
Console.WriteLine(""); Console.WriteLine("");
} }
} }
#endregion #endregion
#region 初始化机场信息 #region 初始化机场信息
CmdHelper.FLIGHTS.ForEach(x => CmdHelper.FLIGHTS.ForEach(x =>
{ {
var cityDept = CityService.GetCityHandler(x.DepartCity); var cityDept = CityService.GetCityHandler(x.DepartCity);
var cityArr = CityService.GetCityHandler(x.ArriveCity); var cityArr = CityService.GetCityHandler(x.ArriveCity);
x.depCityCode = cityDept.cityCode; x.depCityCode = cityDept.cityCode;
x.depCode = cityDept.value; x.depCode = cityDept.value;
x.arrCityCode = cityArr.cityCode; x.arrCityCode = cityArr.cityCode;
x.arrCode = cityArr.value; x.arrCode = cityArr.value;
}); });
#endregion #endregion
//Task.Run(() => new FlightFlow().StartAsync()); //Task.Run(() => new FlightFlow().StartAsync());
if (CmdHelper.AIRLINE.Contains("E")) if (CmdHelper.AIRLINE.Contains("E"))
{ {
Task.Factory.StartNew(() => new FlightFlow().StartAsync(), TaskHelper.cancelTokenSource.Token); Task.Factory.StartNew(() => new FlightFlow().StartAsync(), TaskHelper.cancelTokenSource.Token);
} }
if (CmdHelper.AIRLINE.Contains("C")) if (CmdHelper.AIRLINE.Contains("C"))
{ {
Console.WriteLine("暂不支持国航机票嗅探"); Console.WriteLine("暂不支持国航机票嗅探");
} }
Console.ReadLine(); Console.ReadLine();
Environment.Exit(0); Environment.Exit(0);
\ No newline at end of file }
\ No newline at end of file
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.IO;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
......
...@@ -8,9 +8,12 @@ using System.Collections.Generic; ...@@ -8,9 +8,12 @@ using System.Collections.Generic;
using System.Collections.ObjectModel; using System.Collections.ObjectModel;
using System.Drawing; using System.Drawing;
using System.Drawing.Imaging; using System.Drawing.Imaging;
using System.IO;
using System.Linq; using System.Linq;
using System.Net; using System.Net;
using System.Net.Http;
using System.Text; using System.Text;
using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
namespace TicketSpider.Spiders.EasterLineRule namespace TicketSpider.Spiders.EasterLineRule
......
...@@ -4,6 +4,7 @@ using System; ...@@ -4,6 +4,7 @@ using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Net; using System.Net;
using System.Net.Http;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using TicketSpider.Model; using TicketSpider.Model;
......
...@@ -4,8 +4,10 @@ using System; ...@@ -4,8 +4,10 @@ using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Net; using System.Net;
using System.Net.Http;
using System.Net.Http.Headers; using System.Net.Http.Headers;
using System.Text; using System.Text;
using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using TicketSpider.Data; using TicketSpider.Data;
using TicketSpider.Uitls; using TicketSpider.Uitls;
...@@ -73,23 +75,23 @@ namespace TicketSpider.Spiders.EasterLineRule ...@@ -73,23 +75,23 @@ namespace TicketSpider.Spiders.EasterLineRule
{ {
Console.WriteLine("未找到机票"); Console.WriteLine("未找到机票");
var newCookies = result.cookies.Split(';',StringSplitOptions.RemoveEmptyEntries); //var newCookies = result.cookies.Split(';',StringSplitOptions.RemoveEmptyEntries);
if (newCookies.Any()) //if (newCookies.Any())
{ //{
var uri = new Uri("https://www.ceair.com"); // var uri = new Uri("https://www.ceair.com");
foreach (var cookie in newCookies) // foreach (var cookie in newCookies)
{ // {
var haveCookies = cookieContainer.GetAllCookies().Where(x => x.Name == cookie.Split("=")[0]); // var haveCookies = cookieContainer.GetAllCookies().Where(x => x.Name == cookie.Split("=")[0]);
if (haveCookies.Any()) // if (haveCookies.Any())
{ // {
haveCookies.First().Value = cookie.Split("=")[1]; // haveCookies.First().Value = cookie.Split("=")[1];
} // }
else // else
{ // {
cookieContainer.SetCookies(uri, cookie); // cookieContainer.SetCookies(uri, cookie);
} // }
} // }
} //}
//TODO 切换代理 //TODO 切换代理
} }
......
...@@ -4,7 +4,9 @@ using System; ...@@ -4,7 +4,9 @@ using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Net; using System.Net;
using System.Net.Http;
using System.Text; using System.Text;
using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using TicketSpider.Model; using TicketSpider.Model;
......
...@@ -2,8 +2,8 @@ ...@@ -2,8 +2,8 @@
<PropertyGroup> <PropertyGroup>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<TargetFramework>net6.0</TargetFramework> <TargetFramework>net5.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings> <ImplicitUsings>disable</ImplicitUsings>
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
</PropertyGroup> </PropertyGroup>
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Net; using System.Net;
using System.Net.Http;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
namespace TicketSpider.Uitls namespace TicketSpider.Uitls
......
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