159 lines
5.9 KiB
C#
159 lines
5.9 KiB
C#
using Newtonsoft.Json.Linq;
|
||
using SqlSugar;
|
||
using System;
|
||
using System.Collections.Generic;
|
||
using System.Linq;
|
||
using System.Net;
|
||
using System.Text;
|
||
using TelegramService.Help;
|
||
using TelegramService.Entity;
|
||
using TelegramService.Help;
|
||
using System.Threading.Tasks;
|
||
|
||
namespace TelegramServiceV6.Bl
|
||
{
|
||
public class FundBl
|
||
{
|
||
|
||
/// <summary>
|
||
/// 发送微信
|
||
/// </summary>
|
||
/// <param name="title"></param>
|
||
/// <param name="author"></param>
|
||
/// <param name="authorUrl"></param>
|
||
/// <param name="time"></param>
|
||
/// <param name="preview"></param>
|
||
/// <param name="url"></param>
|
||
public static void SendWeixinFund()
|
||
{
|
||
SendWeixinFundEastmoney();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 发送微信 http://fund.eastmoney.com/ 天天基金
|
||
/// </summary>
|
||
/// <param name="title"></param>
|
||
/// <param name="author"></param>
|
||
/// <param name="authorUrl"></param>
|
||
/// <param name="time"></param>
|
||
/// <param name="preview"></param>
|
||
/// <param name="url"></param>
|
||
public static async Task SendWeixinFundEastmoney()
|
||
{
|
||
|
||
try
|
||
{
|
||
EntrustHelper.STCB("show", "[FundBl.SendWeixinFundEastmoney] 开始发送基金");
|
||
string code = string.Join(",", Appsettings.Conf.Fund);
|
||
|
||
Dictionary<string, string> form = new Dictionary<string, string>();
|
||
form.Add("fcodes", code);
|
||
|
||
Dictionary<string, string> header = new Dictionary<string, string>();
|
||
header.Add("Origin", "https://favor.fund.eastmoney.com");
|
||
header.Add("Referer", "https://favor.fund.eastmoney.com/");
|
||
|
||
HttpResult httpResult = null;
|
||
string html = "";
|
||
for (int i = 0; i < 6; i++)
|
||
{
|
||
try
|
||
{
|
||
httpResult = await HttpHelper.PostFormAsync("https://api.fund.eastmoney.com/favor/GetFundsInfo?", form, header);
|
||
if (httpResult.StatusCode == 200)
|
||
{
|
||
html = httpResult.Html;
|
||
break;
|
||
}
|
||
}
|
||
catch (Exception)
|
||
{
|
||
}
|
||
}
|
||
if (html.IsNull())
|
||
{
|
||
EntrustHelper.STCB("show", "[FundBl.SendWeixinFundEastmoney] 开始发送基金,请求失败");
|
||
EntrustHelper.STCB("show", "[FundBl.SendWeixinFundEastmoney] "+html);
|
||
EntrustHelper.STCB("show", "[FundBl.SendWeixinFundEastmoney] 开始发送基金,请求失败");
|
||
return;
|
||
}
|
||
|
||
JObject jsdata = JObject.Parse(html);
|
||
if (jsdata["ErrCode"].ToString() != "0")
|
||
{
|
||
EntrustHelper.STCB("show", "[FundBl.SendWeixinFundEastmoney1] "+jsdata.ToString());
|
||
return;
|
||
}
|
||
StringBuilder sb = new StringBuilder();
|
||
StringBuilder sb1 = new StringBuilder();
|
||
sb1.Append("---------------------------------\n");
|
||
int index = 0;
|
||
foreach (var data in jsdata["Data"]["KFS"])
|
||
{
|
||
if (!code.Contains(data["FCODE"].ToString()))
|
||
{
|
||
continue;
|
||
}
|
||
if (data["RZDF"].ToDouble() >= 0)
|
||
{
|
||
if (sb.Length > 0) sb.Append("---------------------------------\n");
|
||
|
||
sb.Append(data["FSRQ"] + " (" + data["FCODE"].ToString() + ")\n");
|
||
sb.Append(data["SHORTNAME"] + "\n");
|
||
sb.Append(data["RZDF"] + "\n");
|
||
}
|
||
else
|
||
{
|
||
sb1.Append("---------------------------------\n");
|
||
sb1.Append(data["FSRQ"] + " (" + data["FCODE"].ToString() + ")\n");
|
||
sb1.Append(data["SHORTNAME"] + "\n");
|
||
sb1.Append(data["RZDF"] + "\n");
|
||
}
|
||
index++;
|
||
}
|
||
|
||
for (int i = 0; i < 2; i++)
|
||
{
|
||
EntrustHelper.STCB("show", "[FundBl.SendWeixinFundEastmoney] 请求微信api接口");
|
||
httpResult=await HttpHelper.GetAsync("https://111.230.99.204/weixin/api/msgyq?id=CaiMengNan&text=" + sb.ToString() + sb1.ToString());
|
||
if (httpResult.StatusCode==200 && httpResult.Html.IndexOfStr("\"errmsg\":\"ok\""))
|
||
{
|
||
EntrustHelper.STCB("show", "[FundBl.SendWeixinFundEastmoney] 发送基金成功");
|
||
return;
|
||
}
|
||
}
|
||
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
EntrustHelper.STCB("show", "[FundBl.SendWeixinFundEastmoney] "+ex.Message);
|
||
}
|
||
finally
|
||
{
|
||
try
|
||
{
|
||
DateTime now = DateTime.Now;
|
||
DateTime next22 = new DateTime(now.Year, now.Month, now.Day, 22, 0, 0);
|
||
// 如果现在已经过了今天的 22:00,则计算明天的 22:00
|
||
if (now >= next22)
|
||
{
|
||
next22 = next22.AddDays(1);
|
||
}
|
||
double millisecondsUntilNext22 = (next22 - now).TotalMilliseconds;
|
||
|
||
EntrustHelper.STCB("show", "[FundBl.SendWeixinFundEastmoney] 等待下次执行");
|
||
EntrustHelper.STCB("sendWeixinFund", millisecondsUntilNext22);
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
EntrustHelper.STCB("show", "[FundBl.SendWeixinFundEastmoney] " + ex.Message);
|
||
|
||
}
|
||
}
|
||
}
|
||
|
||
}
|
||
}
|
||
|
||
|