old_flsystem/应用/循环的发消息/Class1.cs

137 lines
4.0 KiB
C#
Raw Permalink Normal View History

2022-09-20 03:10:29 +00:00
using Api.Framework;
using Api.Framework.Model;
using Api.Framework.SDK;
using Api.Framework.Tools;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using .Properties;
namespace
{
public class Class1 : Plugin
{
public Class1()
{
this.Logo = Resources._1;
this.Name = "循环发送";
this.Note = "";
}
#region
public static Config Config;
private Form1 mainForm = null;
#endregion
public override void Start()
{
try
{
//创建配置文件
Config = this.ReadConfig<Config>();
SDK.ReciveIMEvent += SDK_ReciveIMEvent;
}
catch (Exception ex)
{
this.OnLog(ex.Message);
}
}
static bool state = false;
static bool stop = false;
private void SDK_ReciveIMEvent(object sender, ReciveIMEvent e)
{
try
{
if (e.Message == "b")
stop = true;
if (e.Message == "a")
{
this.OnLog("开始发送...");
if (!state)
{
var t1 = new Task(() =>
{
try
{
state = true;
if (string.IsNullOrWhiteSpace(Config.Users)) throw new Exception("用户不能为空");
var users = Config.Users.Replace("", ",").Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries).Select(f => f.Trim()).ToList();
var messs = Config.Content.Split(new string[] { "[分段]" }, StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < Class1.Config.Num; i++)
{
foreach (var mess in messs)
{
foreach (var m in users)
{
ApiClient.SendMessage(e.RobotInfo, m, mess);
Thread.Sleep(Config.Sleep);
if (stop)
return;
}
}
}
}
catch (Exception)
{ }
finally
{
stop = false;
state = false;
}
}, TaskCreationOptions.LongRunning);
t1.Start();
}
}
}
catch (Exception ex)
{
this.OnLog(ex.Message);
}
}
public override void ShowForm()
{
try
{
if (mainForm == null || mainForm.IsDisposed)
{
mainForm = new Form1();
mainForm.Show();
}
mainForm.TopMost = true;
mainForm.TopMost = false;
}
catch (Exception ex)
{
this.OnLog(ex.Message);
}
}
public override void Stop()
{
try
{
if (mainForm != null)
{
mainForm.CloseForm();
mainForm = null;
}
}
catch (Exception ex)
{
this.OnLog(ex.Message);
}
}
}
}