оптимизон от нейронки, доделал автоматические действия, добавил глобальный лог, сделал реконекты к ДА
This commit is contained in:
+101
-27
@@ -6,9 +6,9 @@ uses
|
||||
System.SysUtils, System.Types, System.UITypes, System.Classes,
|
||||
System.Variants, uQ,
|
||||
FMX.Types, FMX.Graphics, FMX.Controls, FMX.Forms, FMX.Dialogs, FMX.StdCtrls,
|
||||
ShellAPI, system.IOUtils, uDataBase,
|
||||
ShellAPI, System.IOUtils, uDataBase,
|
||||
FMX.Controls.Presentation, FMX.Edit, uTWAuth, uRecords, uAPIDA, uShowText,
|
||||
json, uWSDA;
|
||||
json, uWSDA, fLog;
|
||||
|
||||
type
|
||||
TfrSettings = class(TFrame)
|
||||
@@ -68,7 +68,9 @@ type
|
||||
public
|
||||
{ Public declarations }
|
||||
FWSClient: TWSClient;
|
||||
destructor Destroy; override;
|
||||
procedure init();
|
||||
|
||||
end;
|
||||
|
||||
implementation
|
||||
@@ -92,6 +94,7 @@ begin
|
||||
twa := TTTWAuth.Create;
|
||||
twa.OnToken := OnTokenDA;
|
||||
twa.StartServer(Url);
|
||||
// ttw_Auth áóäåò îñâîáîæäåí àâòîìàòè÷åñêè ïîñëå ïîëó÷åíèÿ òîêåíà (ñì. uTWAuth)
|
||||
end;
|
||||
|
||||
procedure TfrSettings.OnTokenDA(txt: string);
|
||||
@@ -103,6 +106,7 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
procedure TfrSettings.btnDAStartClick(Sender: TObject);
|
||||
var
|
||||
UserInfo: TJSONObject;
|
||||
@@ -110,33 +114,84 @@ var
|
||||
begin
|
||||
if btnDAStart.text = 'Ïîäêëþ÷èòüñÿ' then
|
||||
begin
|
||||
try // Ïîëó÷åíèå òîêåíà
|
||||
if FAPIClient.Token = '' then
|
||||
begin
|
||||
FAPIClient.Token := FAPIClient.GetAccessToken(edtDAClientID.text,
|
||||
edtDAClientSecret.text, edtDARedirectURL.text, edtDACode.text);
|
||||
FWSClient.APIClient := FAPIClient;
|
||||
UserInfo := FAPIClient.GetUserInfo;
|
||||
Data := UserInfo.GetValue<TJSONObject>('data');
|
||||
FWSClient.Wsstoken := Data.GetValue<string>('socket_connection_token');
|
||||
FWSClient.WSID := Data.GetValue<string>('id');
|
||||
UserInfo := nil;
|
||||
try
|
||||
try
|
||||
if not Assigned(FAPIClient) then
|
||||
init;
|
||||
|
||||
if FAPIClient.Token = '' then
|
||||
begin
|
||||
try
|
||||
FAPIClient.Token := FAPIClient.GetAccessToken(
|
||||
edtDAClientID.text,
|
||||
edtDAClientSecret.text,
|
||||
edtDARedirectURL.text,
|
||||
edtDACode.text
|
||||
);
|
||||
except
|
||||
on E: Exception do
|
||||
begin
|
||||
TTW_Bot.toLog('fSettings', 'btnDAStartClick', 'Îøèáêà ïîëó÷åíèÿ òîêåíà: ' + E.Message,2);
|
||||
Exit;
|
||||
end;
|
||||
end;
|
||||
|
||||
FWSClient.APIClient := FAPIClient;
|
||||
|
||||
try
|
||||
UserInfo := FAPIClient.GetUserInfo;
|
||||
Data := UserInfo.GetValue<TJSONObject>('data');
|
||||
FWSClient.Wsstoken := Data.GetValue<string>('socket_connection_token');
|
||||
FWSClient.WSID := Data.GetValue<string>('id');
|
||||
except
|
||||
on E: Exception do
|
||||
begin
|
||||
TTW_Bot.toLog( 'fSettings','btnDAStartClick', 'Îøèáêà ïîëó÷åíèÿ UserInfo: ' + E.Message,2);
|
||||
Exit;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
try
|
||||
FWSClient.Connect('wss://centrifugo.donationalerts.com/connection/websocket');
|
||||
FWSClient.Send(Format(
|
||||
'{"params":{"token":"%s"},"id":1}',
|
||||
[FWSClient.Wsstoken]
|
||||
));
|
||||
except
|
||||
on E: Exception do
|
||||
TTW_Bot.toLog( 'fSettings','btnDAStartClick', 'Îøèáêà ïîäêëþ÷åíèÿ ê WebSocket: ' + E.Message,2);
|
||||
end;
|
||||
|
||||
except
|
||||
on E: Exception do
|
||||
TTW_Bot.toLog('fSettings', 'btnDAStartClick', 'Íåèçâåñòíàÿ îøèáêà: ' + E.Message,2);
|
||||
end;
|
||||
// Ïîëó÷åíèå èíôîðìàöèè î ïîëüçîâàòåëå
|
||||
|
||||
|
||||
FWSClient.Connect
|
||||
('wss://centrifugo.donationalerts.com/connection/websocket');
|
||||
FWSClient.Send(Format('{"params":{"token":"%s"},"id":1}',
|
||||
[FWSClient.Wsstoken]));
|
||||
finally
|
||||
UserInfo.Free;
|
||||
end;
|
||||
end
|
||||
else
|
||||
begin
|
||||
FWSClient.Disconnect;
|
||||
btnDAStart.ImageIndex := 18;
|
||||
btnDAStart.text := 'Ïîäêëþ÷èòüñÿ';
|
||||
try
|
||||
edtDACode.Text:='';
|
||||
if Assigned(FWSClient) then
|
||||
begin
|
||||
try
|
||||
FWSClient.Disconnect;
|
||||
except
|
||||
on E: Exception do
|
||||
TTW_Bot.toLog( 'fSettings', 'btnDAStartClick', 'Îøèáêà ïðè îòêëþ÷åíèè WS: ' + E.Message,2);
|
||||
end;
|
||||
FreeAndNil(FWSClient);
|
||||
end;
|
||||
|
||||
FreeAndNil(FAPIClient);
|
||||
finally
|
||||
btnDAStart.ImageIndex := 18;
|
||||
btnDAStart.text := 'Ïîäêëþ÷èòüñÿ';
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
@@ -160,6 +215,7 @@ var
|
||||
begin
|
||||
ttw_Auth := TTTWAuth.Create;
|
||||
ttw_Auth.OnToken := OnTTWToken;
|
||||
// ttw_Auth áóäåò îñâîáîæäåí àâòîìàòè÷åñêè ïîñëå ïîëó÷åíèÿ òîêåíà (ñì. uTWAuth)
|
||||
sope := 'moderator:manage:shoutouts' + '+moderator:manage:announcements' +
|
||||
'+moderator:manage:banned_users' + '+moderator:manage:warnings' +
|
||||
'+moderator:read:followers' + '+channel:manage:raids' +
|
||||
@@ -246,7 +302,7 @@ end;
|
||||
|
||||
procedure TfrSettings.btnOpenRomaningClick(Sender: TObject);
|
||||
begin
|
||||
ShellExecute(0, 'open', pwidechar(ExtractFilePath(myConst.DBPath)),
|
||||
ShellExecute(0, 'open', pwidechar(ExtractFilePath(myConst.DBPath)),
|
||||
nil, nil, 1);
|
||||
end;
|
||||
|
||||
@@ -256,12 +312,30 @@ begin
|
||||
nil, nil, 1);
|
||||
end;
|
||||
|
||||
destructor TfrSettings.Destroy;
|
||||
begin
|
||||
if Assigned(FWSClient) then
|
||||
begin
|
||||
try
|
||||
FWSClient.Disconnect; // åñëè åñòü ìåòîä îòêëþ÷åíèÿ
|
||||
except end;
|
||||
FreeAndNil(FWSClient);
|
||||
end;
|
||||
FreeAndNil(FAPIClient);
|
||||
inherited;
|
||||
end;
|
||||
|
||||
procedure TfrSettings.init;
|
||||
begin
|
||||
FAPIClient := TAPIClient.Create;
|
||||
FWSClient := TWSClient.Create;
|
||||
FWSClient.OnStatus := HandleWSStatus;
|
||||
FWSClient.OnDonate := HandleWSDonate;
|
||||
if not Assigned(FAPIClient) then
|
||||
FAPIClient := TAPIClient.Create;
|
||||
if not Assigned(FWSClient) then
|
||||
begin
|
||||
FWSClient := TWSClient.Create;
|
||||
FWSClient.OnStatus := HandleWSStatus;
|
||||
FWSClient.OnDonate := HandleWSDonate;
|
||||
FWSClient.OnLog := TTW_Bot.toLog;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TfrSettings.OnTTWToken(txt: string);
|
||||
|
||||
Reference in New Issue
Block a user