починил обработку событий
This commit is contained in:
+56
-51
@@ -8,7 +8,7 @@ uses
|
|||||||
FMX.Types, FMX.Graphics, FMX.Controls, FMX.Forms, FMX.Dialogs, FMX.StdCtrls,
|
FMX.Types, FMX.Graphics, FMX.Controls, FMX.Forms, FMX.Dialogs, FMX.StdCtrls,
|
||||||
FMX.Edit, FMX.ListBox, FMX.Controls.Presentation, System.Rtti, FMX.Grid.Style,
|
FMX.Edit, FMX.ListBox, FMX.Controls.Presentation, System.Rtti, FMX.Grid.Style,
|
||||||
FMX.ScrollBox, FMX.Grid, uRecords, uDataBase, FMX.Menus, uKeyEvent,
|
FMX.ScrollBox, FMX.Grid, uRecords, uDataBase, FMX.Menus, uKeyEvent,
|
||||||
fColorSettings, fFontSettings;
|
fColorSettings, fFontSettings, fobs;
|
||||||
|
|
||||||
type
|
type
|
||||||
TfrEvents = class(TFrame)
|
TfrEvents = class(TFrame)
|
||||||
@@ -44,14 +44,17 @@ type
|
|||||||
procedure cbActionsChange(Sender: TObject);
|
procedure cbActionsChange(Sender: TObject);
|
||||||
private
|
private
|
||||||
procedure toLog(aCode: integer; aMethod, aMess: string);
|
procedure toLog(aCode: integer; aMethod, aMess: string);
|
||||||
procedure ExecuteAction(const aAction: integer; const aParam, aUserInput, aUserName, aUserLogin: string);
|
|
||||||
public
|
public
|
||||||
ListEvents: TArray<TEventGlobal>;
|
ListEvents: TArray<TEventGlobal>;
|
||||||
CustomRewardEvents: TList<TCustomRewardEvent>;
|
CustomRewardEvents: TList<TCustomRewardEvent>;
|
||||||
|
|
||||||
|
procedure ExecuteAction(const aAction: integer;
|
||||||
|
const aParam, aUserInput, aUserName, aUserLogin: string);
|
||||||
procedure UpdateGrid;
|
procedure UpdateGrid;
|
||||||
procedure ESOnGetCustomReward(CustomReward: TCustomRewardEvent);
|
procedure ESOnGetCustomReward(CustomReward: TCustomRewardEvent);
|
||||||
procedure OnDonate(aNick, aMessage, aSum: string);
|
procedure OnDonate(aNick, aMessage, aSum: string);
|
||||||
|
procedure OnTTVEvent(aNick: string);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
@@ -118,65 +121,59 @@ end;
|
|||||||
|
|
||||||
{ --- Îáùàÿ ëîãèêà --- }
|
{ --- Îáùàÿ ëîãèêà --- }
|
||||||
|
|
||||||
procedure TfrEvents.ExecuteAction(const aAction: integer; const aParam, aUserInput, aUserName, aUserLogin: string);
|
procedure TfrEvents.ExecuteAction(const aAction: integer;
|
||||||
|
const aParam, aUserInput, aUserName, aUserLogin: string);
|
||||||
var
|
var
|
||||||
sm: TSongMachine;
|
sm: TSongMachine;
|
||||||
f: TfrColorSettings;
|
f: TfrColorSettings;
|
||||||
t: TfrFontSettings;
|
t: TfrFontSettings;
|
||||||
i, j: Integer;
|
i, j: integer;
|
||||||
notify: TOBSNotify;
|
notify: TOBSNotify;
|
||||||
se: TStyleEvent;
|
se: TStyleEvent;
|
||||||
|
ws: TEventWebServers;
|
||||||
begin
|
begin
|
||||||
sm := TSongMachine.Create;
|
sm := TSongMachine.Create;
|
||||||
try
|
try
|
||||||
case aAction of
|
case aAction of
|
||||||
0: begin // Íàæàòü êíîïêó
|
0:
|
||||||
|
begin // Íàæàòü êíîïêó
|
||||||
toLog(0, 'ExecuteAction', 'Ñèìóëÿöèÿ íàæàòèÿ: ' + aParam);
|
toLog(0, 'ExecuteAction', 'Ñèìóëÿöèÿ íàæàòèÿ: ' + aParam);
|
||||||
kePoints.SimulateKeyPress(aParam, 500);
|
kePoints.SimulateKeyPress(aParam, 500);
|
||||||
end;
|
end;
|
||||||
1: begin // Âîñïðîèçâåäåíèå çâóêà
|
1:
|
||||||
|
begin // Âîñïðîèçâåäåíèå çâóêà
|
||||||
toLog(0, 'ExecuteAction', 'Âîñïðîèçâåäåíèå çâóêà: ' + aParam);
|
toLog(0, 'ExecuteAction', 'Âîñïðîèçâåäåíèå çâóêà: ' + aParam);
|
||||||
sm.PlayPublic(aParam, '100');
|
sm.PlayPublic(aParam, '100');
|
||||||
end;
|
end;
|
||||||
2: begin // Kandinsky
|
2:
|
||||||
|
begin // Kandinsky
|
||||||
toLog(0, 'ExecuteAction', 'Ãåíåðàöèÿ Kandinsky äëÿ: ' + aUserInput);
|
toLog(0, 'ExecuteAction', 'Ãåíåðàöèÿ Kandinsky äëÿ: ' + aUserInput);
|
||||||
Kandinsky.generate(aUserInput, aUserLogin);
|
Kandinsky.generate(aUserInput, aUserLogin);
|
||||||
end;
|
end;
|
||||||
3: begin // OBS Notify
|
3:
|
||||||
f := TfrColorSettings.Create(Self);
|
begin // OBS Notify
|
||||||
t := TfrFontSettings.Create(Self);
|
|
||||||
try
|
|
||||||
for i := 0 to High(TTW_Bot.frOBS1.listNotify) do
|
|
||||||
if TTW_Bot.frOBS1.listNotify[i].TypeEvent = 5 then
|
|
||||||
begin
|
|
||||||
notify := TTW_Bot.frOBS1.listNotify[i];
|
|
||||||
se.Title := StringReplace(notify.HeaderText, '[NICK]', aUserName, [rfReplaceAll]);
|
|
||||||
se.Context := notify.MessText;
|
|
||||||
se.Url := notify.Picture;
|
|
||||||
se.SoundURL := notify.Sound;
|
|
||||||
se.Timestamp := Now;
|
|
||||||
se.TimeMsg := notify.TimeMess;
|
|
||||||
se.BorderColor := notify.ColorBorder;
|
|
||||||
se.BorderSize := notify.SolidBorder;
|
|
||||||
se.BlockColor := notify.ColorBlock;
|
|
||||||
se.FontTitle.Font := notify.HeaderStyleFont;
|
|
||||||
se.FontTitle.Size := notify.HeaderSizeFont;
|
|
||||||
se.FontTitle.Color := notify.HeaderColorFont;
|
|
||||||
se.FontContext.Font := notify.MessStyleFont;
|
|
||||||
se.FontContext.Size := notify.MessSizeFont;
|
|
||||||
se.FontContext.Color := notify.MessColorFont;
|
|
||||||
se.RequireInteraction := True;
|
|
||||||
|
|
||||||
for j := 0 to TTW_Bot.frOBS1.EventWebServers.Count - 1 do
|
for i := 0 to TTW_Bot.frOBS1.EventWebServers.Count - 1 do
|
||||||
TTW_Bot.frOBS1.EventWebServers[j].WebServerChat.AddMessage(se);
|
begin
|
||||||
|
if TTW_Bot.frOBS1.EventWebServers[i].typeEvent <> 5 then
|
||||||
|
Continue;
|
||||||
|
ws := TTW_Bot.frOBS1.EventWebServers[i];
|
||||||
|
var
|
||||||
|
un: string;
|
||||||
|
un := aUserName;
|
||||||
|
if un = '' then
|
||||||
|
un := aUserLogin;
|
||||||
|
ws.se.Title := StringReplace(ws.se.Title, '[NICK]', un,
|
||||||
|
[rfReplaceAll]);
|
||||||
|
ws.se.Timestamp := now;
|
||||||
|
ws.WebServerChat.AddMessage(ws.se);
|
||||||
end;
|
end;
|
||||||
finally
|
|
||||||
f.Free;
|
|
||||||
t.Free;
|
|
||||||
end;
|
end;
|
||||||
end;
|
4:
|
||||||
4: toLog(0, 'ExecuteAction', 'Íàïèñàòü â ÷àò: ' + aUserInput);
|
toLog(0, 'ExecuteAction', 'Íàïèñàòü â ÷àò: ' + aUserInput);
|
||||||
5: begin // Çàïóñê ôàéëà
|
5:
|
||||||
|
begin // Çàïóñê ôàéëà
|
||||||
toLog(0, 'ExecuteAction', 'Çàïóñê ôàéëà: ' + aParam);
|
toLog(0, 'ExecuteAction', 'Çàïóñê ôàéëà: ' + aParam);
|
||||||
ShellExecute(0, 'open', PWideChar(aParam), nil, nil, 0);
|
ShellExecute(0, 'open', PWideChar(aParam), nil, nil, 0);
|
||||||
end;
|
end;
|
||||||
@@ -190,17 +187,19 @@ procedure TfrEvents.ESOnGetCustomReward(CustomReward: TCustomRewardEvent);
|
|||||||
var
|
var
|
||||||
ev: TEventGlobal;
|
ev: TEventGlobal;
|
||||||
begin
|
begin
|
||||||
toLog(3, 'ESOnGetCustomReward', 'Íà÷àëî îáðàáîòêè íàãðàäû: ' + CustomReward.Event.revard.Title);
|
toLog(3, 'ESOnGetCustomReward', 'Íà÷àëî îáðàáîòêè íàãðàäû: ' +
|
||||||
|
CustomReward.Event.revard.Title);
|
||||||
|
|
||||||
for ev in ListEvents do
|
for ev in ListEvents do
|
||||||
if (ev.Event = 1) and (ev.Condition = CustomReward.Event.revard.Title) then
|
if (ev.Event = 1) and (ev.Condition = CustomReward.Event.revard.Title) then
|
||||||
ExecuteAction(ev.Action, ev.Param, CustomReward.Event.user_input, CustomReward.Event.user_name, CustomReward.Event.user_login);
|
ExecuteAction(ev.Action, ev.Param, CustomReward.Event.user_input,
|
||||||
|
CustomReward.Event.user_name, CustomReward.Event.user_login);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TfrEvents.OnDonate(aNick, aMessage, aSum: string);
|
procedure TfrEvents.OnDonate(aNick, aMessage, aSum: string);
|
||||||
var
|
var
|
||||||
i, aSumInt, BestRow, BestPriority, BestValue,
|
i, aSumInt, BestRow, BestPriority, BestValue, CurrentPriority, CurrentValue,
|
||||||
CurrentPriority, CurrentValue, MinVal, MaxVal: integer;
|
MinVal, MaxVal: integer;
|
||||||
Condition: string;
|
Condition: string;
|
||||||
Parts: TStringList;
|
Parts: TStringList;
|
||||||
begin
|
begin
|
||||||
@@ -257,11 +256,10 @@ begin
|
|||||||
CurrentPriority := 1;
|
CurrentPriority := 1;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
if (CurrentPriority <> -1) and
|
if (CurrentPriority <> -1) and ((CurrentPriority > BestPriority) or
|
||||||
((CurrentPriority > BestPriority) or
|
((CurrentPriority = BestPriority) and (((CurrentPriority in [2, 3]) and
|
||||||
((CurrentPriority = BestPriority) and
|
(CurrentValue > BestValue)) or ((CurrentPriority = 1) and
|
||||||
(((CurrentPriority in [2,3]) and (CurrentValue > BestValue)) or
|
(CurrentValue < BestValue))))) then
|
||||||
((CurrentPriority = 1) and (CurrentValue < BestValue))))) then
|
|
||||||
begin
|
begin
|
||||||
BestPriority := CurrentPriority;
|
BestPriority := CurrentPriority;
|
||||||
BestValue := CurrentValue;
|
BestValue := CurrentValue;
|
||||||
@@ -270,10 +268,18 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
if BestRow <> -1 then
|
if BestRow <> -1 then
|
||||||
ExecuteAction(ListEvents[BestRow].Action, ListEvents[BestRow].Param, aMessage, aNick, aNick);
|
ExecuteAction(ListEvents[BestRow].Action, ListEvents[BestRow].Param,
|
||||||
|
aMessage, aNick, aNick);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TfrEvents.OnTTVEvent(aNick: string);
|
||||||
|
var
|
||||||
|
ev: TEventGlobal;
|
||||||
|
begin
|
||||||
|
for ev in ListEvents do
|
||||||
|
if ev.Event in ([2, 3, 4, 5]) then
|
||||||
|
ExecuteAction(ev.Action, ev.Param, '', aNick, '');
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TfrEvents.UpdateGrid;
|
procedure TfrEvents.UpdateGrid;
|
||||||
var
|
var
|
||||||
@@ -300,4 +306,3 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
end.
|
end.
|
||||||
|
|
||||||
|
|||||||
@@ -806,6 +806,7 @@ begin
|
|||||||
EventWebServers[i].WebServerChat.AddMessage(ws.se);
|
EventWebServers[i].WebServerChat.AddMessage(ws.se);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
TTW_Bot.frEvents1.OnTTVEvent(aEvent.event.user_name);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TfrOBS.toEventWebServer(aEvent: TSubEvent);
|
procedure TfrOBS.toEventWebServer(aEvent: TSubEvent);
|
||||||
@@ -823,6 +824,7 @@ begin
|
|||||||
EventWebServers[i] := ws;
|
EventWebServers[i] := ws;
|
||||||
EventWebServers[i].WebServerChat.AddMessage(EventWebServers[i].se);
|
EventWebServers[i].WebServerChat.AddMessage(EventWebServers[i].se);
|
||||||
end;
|
end;
|
||||||
|
TTW_Bot.frEvents1.OnTTVEvent(aEvent.event.user_name);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TfrOBS.toEventWebServer(aEvent: TRaidEvent);
|
procedure TfrOBS.toEventWebServer(aEvent: TRaidEvent);
|
||||||
@@ -842,6 +844,7 @@ begin
|
|||||||
EventWebServers[i] := ws;
|
EventWebServers[i] := ws;
|
||||||
EventWebServers[i].WebServerChat.AddMessage(EventWebServers[i].se);
|
EventWebServers[i].WebServerChat.AddMessage(EventWebServers[i].se);
|
||||||
end;
|
end;
|
||||||
|
TTW_Bot.frEvents1.OnTTVEvent(aEvent.event.from_broadcaster_user_name);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TfrOBS.toEventWebServer(aEvent: TGiftEvent);
|
procedure TfrOBS.toEventWebServer(aEvent: TGiftEvent);
|
||||||
@@ -859,6 +862,7 @@ begin
|
|||||||
EventWebServers[i] := ws;
|
EventWebServers[i] := ws;
|
||||||
EventWebServers[i].WebServerChat.AddMessage(EventWebServers[i].se);
|
EventWebServers[i].WebServerChat.AddMessage(EventWebServers[i].se);
|
||||||
end;
|
end;
|
||||||
|
TTW_Bot.frEvents1.OnTTVEvent(aEvent.event.user_name);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TfrOBS.toEventWebServer(aNick, aSum, aText: string);
|
procedure TfrOBS.toEventWebServer(aNick, aSum, aText: string);
|
||||||
|
|||||||
@@ -2,6 +2,8 @@ unit uRecords;
|
|||||||
|
|
||||||
interface
|
interface
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
type
|
type
|
||||||
TEventGlobal = record
|
TEventGlobal = record
|
||||||
Event: integer;
|
Event: integer;
|
||||||
|
|||||||
Reference in New Issue
Block a user