исправил оповещения, теперь работают четко

This commit is contained in:
PC1\PTyTb
2025-08-16 22:42:29 +03:00
parent 2386d14b86
commit fd1c6b6bb8
17 changed files with 968 additions and 928 deletions
+66 -42
View File
@@ -1,15 +1,15 @@
{
получение доната
procedure TfrSettings.HandleWSDonate(aNick, aMessage, aSum: string);
получение доната
procedure TfrSettings.HandleWSDonate(aNick, aMessage, aSum: string);
получение сообщения
procedure TTTW_Bot.ttwIRCOnMessageRecord(aRecord: TTwitchChatMessage);
получение сообщения
procedure TTTW_Bot.ttwIRCOnMessageRecord(aRecord: TTwitchChatMessage);
получение событий
ttw_ES.OnFollow := frOBS1.toEventWebServer;
ttw_ES.OnSub := frOBS1.toEventWebServer;
ttw_ES.OnGift := frOBS1.toEventWebServer;
ttw_ES.OnRaid := frOBS1.toEventWebServer;
получение событий
ttw_ES.OnFollow := frOBS1.toEventWebServer;
ttw_ES.OnSub := frOBS1.toEventWebServer;
ttw_ES.OnGift := frOBS1.toEventWebServer;
ttw_ES.OnRaid := frOBS1.toEventWebServer;
}
unit uGeneral;
@@ -26,7 +26,8 @@ uses
System.Generics.Collections, utts, uGigaChat, uChatAPI, uMyTimer, uRecords,
System.IOUtils, fCommands, uDataBase, FMX.Edit, FMX.Colors, FMX.SpinBox,
windows, System.Skia, FMX.Skia, uCreateChat, uCreateNotify, fOBS, fTTS,
fPlayerWeb, uWebServerKandinsky, FMX.Memo.Types, FMX.ScrollBox, FMX.Memo;
fPlayerWeb, uWebServerKandinsky, FMX.Memo.Types, FMX.ScrollBox, FMX.Memo,
fRevards;
type
TTTW_Bot = class(TForm)
@@ -73,6 +74,9 @@ type
frPlayerWeb1: TfrPlayerWeb;
frEvents1: TfrEvents;
GroupBox2: TGroupBox;
cbHelloTTS: TCheckBox;
GroupBox3: TGroupBox;
frRevards1: TfrRevards;
procedure cbThemeChange(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
@@ -117,6 +121,7 @@ type
procedure ESError(aMsg: string);
procedure ESStatus(Sender: TObject; const ConnectionEvent: String;
StatusCode: Integer; const Description: String);
procedure ESOnSubOk(s: string);
public
{ Public declarations }
procedure toLog(aModule, aMethod, aMessage: string; aCode: Integer);
@@ -134,7 +139,7 @@ var
ttw_API: TTTW_API;
userlist: TList<TUser>;
Kandinsky: TKandinsky_Web;
kePoints:TKE;
kePoints: TKE;
implementation
@@ -217,7 +222,7 @@ begin
on E: Exception do
begin
toLog('uGeneral', 'ConnectProcedure.ttw_API.Init', E.Message, 2);
raise;
end;
end;
@@ -226,7 +231,14 @@ begin
rid := ttw_API.getRoomAndBot;
if rid = '' then
raise Exception.Create('Не удалось получить Room ID');
try
frRevards1.LoadCustomRevards;
except
on E: Exception do
begin
toLog('uGeneral', 'ConnectProcedure.LoadCustomRevards', E.Message, 2);
end;
end;
// Загрузка эмодзи и бейджей
try
frOBS1.ChatBadges.Clear;
@@ -246,7 +258,7 @@ begin
on E: Exception do
begin
toLog('uGeneral', 'ConnectProcedure.Emotes', E.Message, 2);
raise;
end;
end;
@@ -262,10 +274,10 @@ begin
// Назначение обработчиков событий
// ttw_ES.OnMessage := fRewards.ESOnMessage;
ttw_ES.OnError := ESError;
ttw_ES.OnGetCustomReward := frEvents1.ESOnGetCustomReward;
ttw_ES.OnGetCustomReward := frEvents1.ESOnGetCustomReward;
ttw_ES.OnStatus := ESStatus;
// ttw_ES.OnRAW := fRewards.ESOnRAW;
// ttw_ES.OnSubOk := fRewards.ESOnSubOk;
ttw_ES.OnSubOk := ESOnSubOk;
ttw_ES.OnFollow := frOBS1.toEventWebServer;
ttw_ES.OnSub := frOBS1.toEventWebServer;
ttw_ES.OnGift := frOBS1.toEventWebServer;
@@ -276,7 +288,7 @@ begin
on E: Exception do
begin
toLog('uGeneral', 'ConnectProcedure.ttw_ES', E.Message, 2);
raise;
end;
end;
@@ -290,8 +302,7 @@ begin
end;
procedure TTTW_Bot.DisconnectProcedure;
var
I: Integer;
begin
try
toLog('DisconnectProcedure', 'Start', 'Начало процедуры отключения', 3);
@@ -340,6 +351,11 @@ begin
toLog('uGeneral', 'ESError', aMsg, 2);
end;
procedure TTTW_Bot.ESOnSubOk(s: string);
begin
toLog('uGeneral', 'ESOnSubOk', s, 0);
end;
procedure TTTW_Bot.ESStatus(Sender: TObject; const ConnectionEvent: String;
StatusCode: Integer; const Description: String);
begin
@@ -373,9 +389,7 @@ begin
end;
procedure TTTW_Bot.btnConnectingClick(Sender: TObject);
var
rid, tb, ts: string;
I: Integer;
begin
if not ValidateInput then
exit;
@@ -489,17 +503,6 @@ begin
ttw_API := TTTW_API.Create(Self);
if (frAI1.edtKandiKey.text <> '') and (frAI1.edtKandiSecret.text <> '') then
begin
try
Kandinsky := TKandinsky_Web.Create(frAI1.edtKandiKey.text,
frAI1.edtKandiSecret.text);
Kandinsky.ActiveServer(true);
toLog('uAI', 'FormCreate', 'Kandinsky Создан', 0);
finally
end;
end;
end;
procedure TTTW_Bot.OnTTWStatus(ASender: TObject; const AStatus: TIdStatus;
@@ -514,8 +517,9 @@ begin
frOBS1.ChatEmotes.Free;
frOBS1.ChatWebServers.Free;
frOBS1.EventWebServers.Free;
frEvents1.CustomRewards.Free;
kePoints.Free;
frOBS1.KandinskyWebServers.Free;
frRevards1.CustomRewards.Free;
kePoints.Free;
DisconnectProcedure;
if Assigned(ttw_IRS) then
ttw_IRS.Free;
@@ -726,6 +730,10 @@ begin
exit;
end;
if (TTW_Bot.cbHelloTTS.IsChecked) and (aRecord.FirstMsg = 1) then
toSpeech('приветствую, ' + IfThen(aRecord.DisplayName <> '',
aRecord.DisplayName, aRecord.Username));
firstWord := ExtractFirstWord(processedText);
if IsCommand(firstWord) then
begin
@@ -1050,6 +1058,7 @@ procedure TTTW_Bot.ReadDB;
end;
frSettings1.Init;
end;
// Загрузка гридов автоматических действий
@@ -1084,9 +1093,20 @@ procedure TTTW_Bot.ReadDB;
frOBS1.EventWebServers := TList<TEventWebServers>.Create;
for I := 0 to High(frOBS1.listNotify) do
begin
frOBS1.CreateWebEvents(frOBS1.listNotify[I]);
end;
db.LoadRecordArray<TOBSKandinsky>('listKandinsky', frOBS1.listKandinsky);
frOBS1.KandinskyWebServers := TList<TKandinskyWebServers>.Create;
if (frAI1.edtKandiKey.text <> '') and (frAI1.edtKandiSecret.text <> '') then
begin
for I := 0 to High(frOBS1.listKandinsky) do
begin
frOBS1.CreateWebKandinsky(frOBS1.listKandinsky[I]);
end;
end;
frOBS1.UpdateGridFromArray;
end;
@@ -1095,11 +1115,11 @@ procedure TTTW_Bot.ReadDB;
begin
db.LoadRecordArray<TEventGlobal>('ListEvents', frEvents1.ListEvents);
frEvents1.UpdateGrid;
frRevards1.CustomRewards := TList<TCustomRevards>.Create;
frEvents1.CustomRewards := Tlist<TCustomRevards>.Create;
// frEvents1.LoadCustomRevards();
frEvents1.CustomRewardEvents := Tlist<TCustomRewardEvent>.Create;
kePoints:=TKE.Create(frEvents1.edtParams, frEvents1.cbKey1,frEvents1.cbKey2,frEvents1.cbKey3);
frEvents1.CustomRewardEvents := TList<TCustomRewardEvent>.Create;
kePoints := TKE.Create(frEvents1.edtParams, frEvents1.cbKey1,
frEvents1.cbKey2, frEvents1.cbKey3);
frTTS1.btnUpdateVoicesClick(Self);
frTTS1.cbVoices.ItemIndex := strtoint(db.ReadSetting('cbVoices', '0'));
frTTS1.cbOutput.ItemIndex := strtoint(db.ReadSetting('cbOutput', '0'));
@@ -1107,14 +1127,15 @@ procedure TTTW_Bot.ReadDB;
end;
begin
LoadSkills;
LoadAISettings;
LoadSkills;
LoadSettingsComponents;
LoadGridsData;
LoadGroupNames;
LoadEncryptedConfig;
LoadNotifySettings;
LoadAISettings;
LoadOBSGrids;
LoadAutoActionsGrids;
end;
@@ -1558,11 +1579,14 @@ function TTTW_Bot.ResponsParserAIPic(inMess, aCommandText,
aNick: string): string;
var
res: string;
I: Integer;
begin
res := inMess;
if ContainsText(res, '[Kandinsky]') then
begin
Kandinsky.generate(aCommandText, aNick);
for I := 0 to frOBS1.KandinskyWebServers.Count - 1 do
frOBS1.KandinskyWebServers[I].WebServerKandinsky.generate
(aCommandText, aNick);
res := StringReplace(res, '[Kandinsky]', '', [rfReplaceAll]);
end;
Result := res;