Добавил интеграции с ОБС

This commit is contained in:
PC1\PTyTb
2025-08-07 21:58:46 +03:00
parent a4cbf1c709
commit 193e4cb2fa
14 changed files with 534 additions and 229 deletions
+10 -36
View File
@@ -48,35 +48,6 @@ object frCommands: TfrCommands
Viewport.Width = 388.000000000000000000
Viewport.Height = 157.000000000000000000
end
inherited GroupBox7: TGroupBox
inherited btnAddUserName: TButton
TabOrder = 38
end
inherited btnGetDateFollow: TButton
TabOrder = 39
end
inherited btnGetAgeAccaunt: TButton
TabOrder = 40
end
inherited btnCounterAddtoText: TButton
TabOrder = 41
end
inherited cbCounterName: TComboBox
TabOrder = 42
end
inherited btnGPT: TButton
TabOrder = 43
end
inherited btnRandomUserName: TButton
TabOrder = 44
end
inherited btnGetChannelStat: TButton
TabOrder = 45
end
inherited btnAIPic: TButton
TabOrder = 46
end
end
inherited btnAddCommand: TButton
OnClick = frContruct1btnAddCommandClick
end
@@ -115,13 +86,16 @@ object frCommands: TfrCommands
Viewport.Height = 116.000000000000000000
end
inherited btnRandomAdd: TButton
TabOrder = 37
TabOrder = 35
end
inherited btnRandomDel: TButton
TabOrder = 38
TabOrder = 36
end
inherited btnRmGroup: TButton
TabOrder = 39
TabOrder = 38
end
inherited Label4: TLabel
TabOrder = 40
end
end
end
@@ -176,7 +150,7 @@ object frCommands: TfrCommands
object btnRandAdd: TButton
Position.X = 9.000000000000000000
Position.Y = 205.000000000000000000
TabOrder = 32
TabOrder = 31
Text = #1044#1086#1073#1072#1074#1080#1090#1100
TextSettings.Trimming = None
OnClick = btnRandAddClick
@@ -243,7 +217,7 @@ object frCommands: TfrCommands
Size.PlatformDefault = False
inherited sg: TStringGrid
Size.Width = 293.000000000000000000
TabOrder = 44
TabOrder = 43
OnCellDblClick = frsgSoundssgCellDblClick
Viewport.Width = 289.000000000000000000
Viewport.Height = 124.000000000000000000
@@ -279,7 +253,7 @@ object frCommands: TfrCommands
Size.PlatformDefault = False
inherited sg: TStringGrid
Size.Width = 293.000000000000000000
TabOrder = 44
TabOrder = 43
OnCellDblClick = frsgFilessgCellDblClick
Viewport.Width = 289.000000000000000000
Viewport.Height = 124.000000000000000000
@@ -319,7 +293,7 @@ object frCommands: TfrCommands
Size.PlatformDefault = False
inherited sg: TStringGrid
Size.Width = 293.000000000000000000
TabOrder = 44
TabOrder = 43
OnCellDblClick = frsgNeirosgCellDblClick
Viewport.Width = 289.000000000000000000
Viewport.Height = 124.000000000000000000
+3 -3
View File
@@ -10,7 +10,7 @@ object frFontSettings: TfrFontSettings
Size.PlatformDefault = False
TextSettings.Trimming = None
Text = #1056#1072#1079#1084#1077#1088' '#1096#1088#1080#1092#1090#1072
TabOrder = 9
TabOrder = 8
end
object sbFontSize: TSpinBox
Touch.InteractiveGestures = [LongTap, DoubleTap]
@@ -30,14 +30,14 @@ object frFontSettings: TfrFontSettings
Size.Width = 120.000000000000000000
Size.Height = 22.000000000000000000
Size.PlatformDefault = False
TabOrder = 39
TabOrder = 38
end
object Label49: TLabel
Position.X = 116.000000000000000000
Position.Y = 63.000000000000000000
TextSettings.Trimming = None
Text = #1062#1074#1077#1090' '#1096#1088#1080#1092#1090#1072
TabOrder = 38
TabOrder = 37
end
object cbFontStyleDefault: TComboBox
Items.Strings = (
+6 -3
View File
@@ -3,7 +3,6 @@ object frOBS: TfrOBS
Size.Height = 252.000000000000000000
Size.PlatformDefault = False
object sgWebChats: TStringGrid
Anchors = [akLeft, akTop, akRight, akBottom]
Align = Bottom
CanFocus = True
ClipChildren = True
@@ -14,8 +13,8 @@ object frOBS: TfrOBS
TabOrder = 0
RowCount = 0
Options = [ColumnResize, ColumnMove, ColLines, RowLines, Tabs, Header, HeaderClick, AutoDisplacement]
Viewport.Width = 689.000000000000000000
Viewport.Height = 189.000000000000000000
Viewport.Width = 685.000000000000000000
Viewport.Height = 164.000000000000000000
object IntegerColumn1: TIntegerColumn
Header = #1055#1086#1088#1090
HeaderSettings.TextSettings.WordWrap = False
@@ -36,6 +35,7 @@ object frOBS: TfrOBS
TabOrder = 1
Text = #1057#1086#1079#1076#1072#1090#1100' '#1095#1072#1090
TextSettings.Trimming = None
OnClick = btnCreateOBSChatClick
end
object btnDeleteeChat: TButton
Position.X = 601.000000000000000000
@@ -43,6 +43,7 @@ object frOBS: TfrOBS
TabOrder = 2
Text = #1059#1076#1072#1083#1080#1090#1100
TextSettings.Trimming = None
OnClick = btnDeleteeChatClick
end
object Label1: TLabel
Position.X = 8.000000000000000000
@@ -59,6 +60,7 @@ object frOBS: TfrOBS
TabOrder = 4
Text = #1057#1086#1079#1076#1072#1090#1100' '#1086#1087#1086#1074#1077#1097#1077#1085#1080#1077
TextSettings.Trimming = None
OnClick = btnCreateOBSNotifyClick
end
object btnCreateOBSKandinsky: TButton
Position.X = 257.000000000000000000
@@ -69,5 +71,6 @@ object frOBS: TfrOBS
TabOrder = 5
Text = #1057#1086#1079#1076#1072#1090#1100' '#1050#1072#1085#1076#1080#1085#1089#1082#1080#1081
TextSettings.Trimming = None
OnClick = btnCreateOBSKandinskyClick
end
end
+222 -2
View File
@@ -3,10 +3,11 @@ unit fOBS;
interface
uses
System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
System.SysUtils, System.Types, System.UITypes, System.Classes,
System.Variants,
FMX.Types, FMX.Graphics, FMX.Controls, FMX.Forms, FMX.Dialogs, FMX.StdCtrls,
System.Rtti, FMX.Grid.Style, FMX.Grid, FMX.ScrollBox, FMX.Edit, FMX.Colors,
FMX.ListBox, FMX.EditBox, FMX.SpinBox, FMX.Controls.Presentation;
FMX.ListBox, FMX.EditBox, FMX.SpinBox, FMX.Controls.Presentation, uRecords;
type
TfrOBS = class(TFrame)
@@ -19,14 +20,233 @@ type
StringColumn2: TStringColumn;
btnCreateOBSNotify: TButton;
btnCreateOBSKandinsky: TButton;
procedure btnDeleteeChatClick(Sender: TObject);
procedure btnCreateOBSKandinskyClick(Sender: TObject);
procedure btnCreateOBSChatClick(Sender: TObject);
procedure btnCreateOBSNotifyClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
listChats: TArray<TOBSChat>;
listNotify: TArray<TOBSNotify>;
listKandinsky: TArray<TOBSKandinsky>;
procedure UpdateGridFromArray;
procedure AddChat(newRecord: TOBSChat);
procedure DelChat(aPort: integer);
procedure AddNotify(newRecord: TOBSNotify);
procedure DelNotify(aPort: integer);
procedure AddKandinsky(newRecord: TOBSKandinsky);
procedure DelKandinsky(aPort: integer);
end;
implementation
{$R *.fmx}
uses uGeneral, uCreateChat, uCreateNotify;
{ TfrOBS }
procedure TfrOBS.AddChat(newRecord: TOBSChat);
begin
SetLength(listChats, Length(listChats) + 1);
listChats[High(listChats)] := newRecord;
UpdateGridFromArray;
db.SaveRecordArray<TOBSChat>('listChats', listChats);
end;
procedure TfrOBS.AddKandinsky(newRecord: TOBSKandinsky);
begin
SetLength(listKandinsky, Length(listKandinsky) + 1);
listKandinsky[High(listKandinsky)] := newRecord;
UpdateGridFromArray;
db.SaveRecordArray<TOBSKandinsky>('listKandinsky', listKandinsky);
end;
procedure TfrOBS.AddNotify(newRecord: TOBSNotify);
begin
SetLength(listNotify, Length(listNotify) + 1);
listNotify[High(listNotify)] := newRecord;
UpdateGridFromArray;
db.SaveRecordArray<TOBSNotify>('listNotify', listNotify);
end;
procedure TfrOBS.btnCreateOBSChatClick(Sender: TObject);
var
dport, i: integer;
begin
dport := 8080;
for I := 0 to sgWebChats.RowCount - 1 do
begin
if strtoint(sgWebChats.Cells[0, I]) >= dport then
dport := strtoint(sgWebChats.Cells[0, I]) + 1;
end;
fCreateChat.sbWebServerPort.Value:=dport;
fCreateChat.Show;
end;
procedure TfrOBS.btnCreateOBSKandinskyClick(Sender: TObject);
var
dport: integer;
I: integer;
rk: TOBSKandinsky;
begin
dport := 8080;
for I := 0 to sgWebChats.RowCount - 1 do
begin
if strtoint(sgWebChats.Cells[0, I]) >= dport then
dport := strtoint(sgWebChats.Cells[0, I]) + 1;
end;
rk.port := dport;
AddKandinsky(rk);
end;
procedure TfrOBS.btnCreateOBSNotifyClick(Sender: TObject);
var
dport, i: integer;
begin
dport := 8080;
for I := 0 to sgWebChats.RowCount - 1 do
begin
if strtoint(sgWebChats.Cells[0, I]) >= dport then
dport := strtoint(sgWebChats.Cells[0, I]) + 1;
end;
fCreateNotify.sbWebServerPort.Value:=dport;
fCreateNotify.Show;
end;
procedure TfrOBS.btnDeleteeChatClick(Sender: TObject);
begin
if sgWebChats.Cells[1, sgWebChats.Row] = '×àò' then
begin
DelChat(strtoint(sgWebChats.Cells[0, sgWebChats.Row]));
end;
if sgWebChats.Cells[1, sgWebChats.Row] = 'Kandinsky' then
begin
DelKandinsky(strtoint(sgWebChats.Cells[0, sgWebChats.Row]));
end;
if sgWebChats.Cells[1, sgWebChats.Row] = 'Îïîâåùåíèå' then
begin
DelNotify(strtoint(sgWebChats.Cells[0, sgWebChats.Row]));
end;
end;
procedure TfrOBS.DelChat(aPort: integer);
var
I, j: integer;
begin
// Èùåì â îáðàòíîì ïîðÿäêå äëÿ áåçîïàñíîãî óäàëåíèÿ
for I := High(listChats) downto 0 do
begin
if listChats[I].port = aPort then
begin
// Ñäâèãàåì ýëåìåíòû ìàññèâà
for j := I to High(listChats) - 1 do
listChats[j] := listChats[j + 1];
// Óìåíüøàåì ðàçìåð ìàññèâà
SetLength(listChats, Length(listChats) - 1);
// Âûõîäèì ïîñëå ïåðâîãî íàéäåííîãî ñîâïàäåíèÿ (ïðåäïîëàãàåì óíèêàëüíîñòü ïîðòîâ)
Break;
end;
end;
db.SaveRecordArray<TOBSChat>('listChats', listChats);
UpdateGridFromArray;
end;
procedure TfrOBS.DelKandinsky(aPort: integer);
var
I, j: integer;
begin
// Èùåì â îáðàòíîì ïîðÿäêå äëÿ áåçîïàñíîãî óäàëåíèÿ
for I := High(listKandinsky) downto 0 do
begin
if listKandinsky[I].port = aPort then
begin
// Ñäâèãàåì ýëåìåíòû ìàññèâà
for j := I to High(listKandinsky) - 1 do
listKandinsky[j] := listKandinsky[j + 1];
// Óìåíüøàåì ðàçìåð ìàññèâà
SetLength(listKandinsky, Length(listKandinsky) - 1);
// Âûõîäèì ïîñëå ïåðâîãî íàéäåííîãî ñîâïàäåíèÿ (ïðåäïîëàãàåì óíèêàëüíîñòü ïîðòîâ)
Break;
end;
end;
UpdateGridFromArray;
db.SaveRecordArray<TOBSKandinsky>('listKandinsky', listKandinsky);
end;
procedure TfrOBS.DelNotify(aPort: integer);
var
I, j: integer;
begin
// Èùåì â îáðàòíîì ïîðÿäêå äëÿ áåçîïàñíîãî óäàëåíèÿ
for I := High(listNotify) downto 0 do
begin
if listNotify[I].port = aPort then
begin
// Ñäâèãàåì ýëåìåíòû ìàññèâà
for j := I to High(listNotify) - 1 do
listNotify[j] := listNotify[j + 1];
// Óìåíüøàåì ðàçìåð ìàññèâà
SetLength(listNotify, Length(listNotify) - 1);
// Âûõîäèì ïîñëå ïåðâîãî íàéäåííîãî ñîâïàäåíèÿ (ïðåäïîëàãàåì óíèêàëüíîñòü ïîðòîâ)
Break;
end;
end;
UpdateGridFromArray;
db.SaveRecordArray<TOBSNotify>('listNotify', listNotify);
end;
procedure TfrOBS.UpdateGridFromArray;
var
I, rowIndex: integer;
begin
sgWebChats.BeginUpdate;
try
sgWebChats.RowCount := 0; // Ñáðàñûâàåì ñòðîêè
rowIndex := 0; // Îòäåëüíûé ñ÷åò÷èê äëÿ ñòðîê ñåòêè
// listChats
for I := 0 to High(listChats) do
begin
sgWebChats.RowCount := rowIndex + 1;
sgWebChats.Cells[0, rowIndex] := inttostr(listChats[I].port);
sgWebChats.Cells[1, rowIndex] := '×àò';
sgWebChats.Cells[2, rowIndex] := 'http://127.0.0.1:' + inttostr(listChats[I].port);
Inc(rowIndex); // Óâåëè÷èâàåì ñ÷åò÷èê ñòðîê
end;
// listNotify
for I := 0 to High(listNotify) do
begin
sgWebChats.RowCount := rowIndex + 1;
sgWebChats.Cells[0, rowIndex] := inttostr(listNotify[I].port);
sgWebChats.Cells[1, rowIndex] := 'Îïîâåùåíèå';
sgWebChats.Cells[2, rowIndex] := 'http://127.0.0.1:' + inttostr(listNotify[I].port);
Inc(rowIndex); // Óâåëè÷èâàåì ñ÷åò÷èê ñòðîê
end;
// listKandinsky
for I := 0 to High(listKandinsky) do
begin
sgWebChats.RowCount := rowIndex + 1;
sgWebChats.Cells[0, rowIndex] := inttostr(listKandinsky[I].port);
sgWebChats.Cells[1, rowIndex] := 'Kandinsky';
sgWebChats.Cells[2, rowIndex] := 'http://127.0.0.1:' + inttostr(listKandinsky[I].port);
Inc(rowIndex); // Óâåëè÷èâàåì ñ÷åò÷èê ñòðîê
end;
finally
sgWebChats.EndUpdate;
end;
end;
end.
+1 -1
View File
@@ -9,7 +9,7 @@ object frSimpleGrid: TfrSimpleGrid
Size.Width = 339.000000000000000000
Size.Height = 149.000000000000000000
Size.PlatformDefault = False
TabOrder = 45
TabOrder = 44
RowCount = 0
Options = [ColumnResize, ColumnMove, ColLines, RowLines, Tabs, Header, HeaderClick, AutoDisplacement]
OnCellClick = sgCellClick
+1 -1
View File
@@ -127,7 +127,7 @@ var
begin
sg.BeginUpdate;
try
sg.RowCount := 1; // Ñáðàñûâàåì ñòðîêè (îñòàâëÿåì òîëüêî çàãîëîâêè)
sg.RowCount := 0; // Ñáðàñûâàåì ñòðîêè (îñòàâëÿåì òîëüêî çàãîëîâêè)
for i := 0 to High(FMyRecord) do
begin
+18 -24
View File
@@ -24,28 +24,34 @@ object fCreateChat: TfCreateChat
Size.Height = 251.000000000000000000
Size.PlatformDefault = False
inherited ccbStyleBorderColor: TColorComboBox
TabOrder = 35
end
inherited cpStyleBlockColor: TColorPanel
TabOrder = 7
TabOrder = 33
end
inherited Label40: TLabel
TabOrder = 8
end
inherited Label42: TLabel
TabOrder = 36
TabOrder = 35
end
inherited Label44: TLabel
TabOrder = 39
TabOrder = 38
end
inherited Label48: TLabel
TabOrder = 41
TabOrder = 40
end
inherited sbStyleBlockBorderSize: TSpinBox
TabOrder = 37
end
inherited sbStyleBlockPadding: TSpinBox
TabOrder = 46
end
inherited Label1: TLabel
TabOrder = 34
end
inherited ccbBColor: TColorComboBox
OnChange = nil
TabOrder = 36
end
inherited btnChangeBGColor: TButton
TabOrder = 39
end
end
end
@@ -63,21 +69,8 @@ object fCreateChat: TfCreateChat
Size.Width = 240.000000000000000000
Size.Height = 125.000000000000000000
Size.PlatformDefault = False
inherited Label41: TLabel
TabOrder = 8
end
inherited sbFontSize: TSpinBox
OnChange = nil
end
inherited ccbFontColor: TColorComboBox
TabOrder = 38
OnChange = nil
end
inherited Label49: TLabel
TabOrder = 37
end
inherited cbFontStyleDefault: TComboBox
OnChange = nil
inherited Label46: TLabel
TabOrder = 39
end
end
end
@@ -141,7 +134,7 @@ object fCreateChat: TfCreateChat
Size.Width = 112.000000000000000000
Size.Height = 19.000000000000000000
Size.PlatformDefault = False
TabOrder = 38
TabOrder = 37
Text = #1042#1077#1095#1085#1086
end
object sbWebServerPort: TSpinBox
@@ -180,5 +173,6 @@ object fCreateChat: TfCreateChat
TabOrder = 4
Text = #1057#1086#1079#1076#1072#1090#1100' '#1095#1072#1090
TextSettings.Trimming = None
OnClick = btnCreateWebChatClick
end
end
+46 -1
View File
@@ -7,7 +7,7 @@ uses
System.Variants, FMX.ListBox, FMX.Colors, FMX.SpinBox,
FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs,
fColorSettings, fFontSettings, FMX.Controls.Presentation, FMX.StdCtrls,
FMX.Edit, FMX.EditBox, StrUtils;
FMX.Edit, FMX.EditBox, StrUtils, uRecords;
type
TfCreateChat = class(TForm)
@@ -27,8 +27,10 @@ type
btnWebChatTest: TButton;
btnCreateWebChat: TButton;
procedure FormCreate(Sender: TObject);
procedure btnCreateWebChatClick(Sender: TObject);
private
{ Private declarations }
function GetColorFromColorPanel(aColor: TAlphaColor): string;
public
{ Public declarations }
end;
@@ -42,6 +44,49 @@ uses uGeneral;
{$R *.fmx}
function TfCreateChat.GetColorFromColorPanel(aColor: TAlphaColor): string;
var
Color: TAlphaColor;
r, G, B: Byte;
A: Real;
FS: TFormatSettings;
begin
Color := aColor;
r := TAlphaColorRec(Color).r;
G := TAlphaColorRec(Color).G;
B := TAlphaColorRec(Color).B;
A := TAlphaColorRec(Color).A / 255; // Ïðåîáðàçóåì àëüôà-êàíàë â äèàïàçîí 0..1
// Óñòàíàâëèâàåì òî÷êó â êà÷åñòâå äåñÿòè÷íîãî ðàçäåëèòåëÿ
FS := TFormatSettings.Create;
FS.DecimalSeparator := '.';
result := Format('rgba(%d, %d, %d, %.2f)', [r, G, B, A], FS);
end;
procedure TfCreateChat.btnCreateWebChatClick(Sender: TObject);
var
OBSChat: TOBSChat;
begin
OBSChat.ColorBlock := GetColorFromColorPanel
(frChatSettings1.cpStyleBlockColor.Color);
OBSChat.ColorBorder := frChatSettings1.ccbStyleBorderColor.ItemIndex;
OBSChat.ColorBackground := frChatSettings1.ccbBColor.ItemIndex;
OBSChat.SolidBorder := round(frChatSettings1.sbStyleBlockBorderSize.Value);
OBSChat.Paddings := round(frChatSettings1.sbStyleBlockPadding.Value);
OBSChat.ColorFont := frFontSettings1.ccbFontColor.ItemIndex;
OBSChat.SizeFont := round(frFontSettings1.sbFontSize.Value);
OBSChat.StyleFont := frFontSettings1.cbFontStyleDefault.ItemIndex;
OBSChat.MaxCountMess := round(sbMaxMsg.Value);
OBSChat.TimeMess := round(sbTimeMsg.Value);
OBSChat.Port := round(sbWebServerPort.Value);
TTW_Bot.frOBS1.AddChat(OBSChat);
close;
end;
procedure TfCreateChat.FormCreate(Sender: TObject);
procedure LoadFontList;
var
+16 -44
View File
@@ -73,26 +73,20 @@ object fCreateNotify: TfCreateNotify
Size.Width = 311.000000000000000000
Size.Height = 258.000000000000000000
Size.PlatformDefault = False
inherited ccbStyleBorderColor: TColorComboBox
TabOrder = 37
end
inherited Label42: TLabel
TabOrder = 36
end
inherited Label44: TLabel
TabOrder = 39
TabOrder = 38
end
inherited Label48: TLabel
TabOrder = 41
TabOrder = 40
end
inherited sbStyleBlockBorderSize: TSpinBox
TabOrder = 42
end
inherited sbStyleBlockPadding: TSpinBox
TabOrder = 44
inherited Label1: TLabel
TabOrder = 35
end
inherited ccbBColor: TColorComboBox
OnChange = nil
TabOrder = 39
end
inherited btnChangeBGColor: TButton
TabOrder = 41
end
end
object GroupBox10: TGroupBox
@@ -145,7 +139,7 @@ object fCreateNotify: TfCreateNotify
Position.X = 8.000000000000000000
Position.Y = 135.000000000000000000
Text = #1057#1086#1073#1099#1090#1080#1077
TabOrder = 68
TabOrder = 60
end
object cbEventsType: TComboBox
Items.Strings = (
@@ -159,17 +153,17 @@ object fCreateNotify: TfCreateNotify
Size.Width = 192.000000000000000000
Size.Height = 22.000000000000000000
Size.PlatformDefault = False
TabOrder = 69
TabOrder = 61
end
object Label3: TLabel
Position.X = 8.000000000000000000
Position.Y = 190.000000000000000000
Text = #1059#1089#1083#1086#1074#1080#1077' '#1089#1091#1084#1084#1099
TabOrder = 70
TabOrder = 62
end
object edtIF: TEdit
Touch.InteractiveGestures = [LongTap, DoubleTap]
TabOrder = 71
TabOrder = 63
Position.X = 8.000000000000000000
Position.Y = 215.000000000000000000
Size.Width = 192.000000000000000000
@@ -186,6 +180,7 @@ object fCreateNotify: TfCreateNotify
TabOrder = 64
Text = #1057#1086#1079#1076#1072#1090#1100' '#1086#1087#1086#1074#1077#1097#1077#1085#1080#1077
TextSettings.Trimming = None
OnClick = btnCreateEventClick
end
object btnESTest: TButton
Position.X = 596.000000000000000000
@@ -222,21 +217,8 @@ object fCreateNotify: TfCreateNotify
Size.Width = 241.000000000000000000
Size.Height = 115.000000000000000000
Size.PlatformDefault = False
inherited Label41: TLabel
TabOrder = 8
end
inherited sbFontSize: TSpinBox
OnChange = nil
end
inherited ccbFontColor: TColorComboBox
TabOrder = 38
OnChange = nil
end
inherited Label49: TLabel
TabOrder = 37
end
inherited cbFontStyleDefault: TComboBox
OnChange = nil
inherited Label46: TLabel
TabOrder = 39
end
end
end
@@ -250,29 +232,19 @@ object fCreateNotify: TfCreateNotify
Size.Width = 261.000000000000000000
Size.Height = 167.000000000000000000
Size.PlatformDefault = False
Text = #1047#1072#1075#1086#1083#1086#1074#1086#1082
Text = #1057#1086#1086#1073#1097#1077#1085#1080#1077
TabOrder = 65
inline frFontSettings3: TfrFontSettings
Align = Client
Size.Width = 241.000000000000000000
Size.Height = 115.000000000000000000
Size.PlatformDefault = False
inherited Label41: TLabel
TabOrder = 8
end
inherited sbFontSize: TSpinBox
OnChange = nil
end
inherited ccbFontColor: TColorComboBox
TabOrder = 37
OnChange = nil
end
inherited Label49: TLabel
TabOrder = 36
end
inherited cbFontStyleDefault: TComboBox
OnChange = nil
end
inherited Label46: TLabel
TabOrder = 38
end
+58 -1
View File
@@ -6,7 +6,7 @@ uses
System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, fFontSettings,
fColorSettings, FMX.StdCtrls, FMX.Edit, FMX.Controls.Presentation,
FMX.ListBox, FMX.EditBox, FMX.SpinBox, FMX.Colors;
FMX.ListBox, FMX.EditBox, FMX.SpinBox, FMX.Colors,uRecords;
type
TfCreateNotify = class(TForm)
@@ -35,8 +35,10 @@ type
frFontSettings3: TfrFontSettings;
edtESMessage: TEdit;
procedure FormCreate(Sender: TObject);
procedure btnCreateEventClick(Sender: TObject);
private
{ Private declarations }
function GetColorFromColorPanel(aColor: TAlphaColor): string;
public
{ Public declarations }
end;
@@ -50,6 +52,61 @@ uses uGeneral;
{$R *.fmx}
function TfCreateNotify.GetColorFromColorPanel(aColor: TAlphaColor): string;
var
Color: TAlphaColor;
r, G, B: Byte;
A: Real;
FS: TFormatSettings;
begin
Color := aColor;
r := TAlphaColorRec(Color).r;
G := TAlphaColorRec(Color).G;
B := TAlphaColorRec(Color).B;
A := TAlphaColorRec(Color).A / 255; // Ïðåîáðàçóåì àëüôà-êàíàë â äèàïàçîí 0..1
// Óñòàíàâëèâàåì òî÷êó â êà÷åñòâå äåñÿòè÷íîãî ðàçäåëèòåëÿ
FS := TFormatSettings.Create;
FS.DecimalSeparator := '.';
result := Format('rgba(%d, %d, %d, %.2f)', [r, G, B, A], FS);
end;
procedure TfCreateNotify.btnCreateEventClick(Sender: TObject);
var
OBSNotify: TOBSNotify;
begin
with OBSNotify do
begin
Picture:=edtESImage.Text;
Sound:=edtESSound.Text;
ColorBlock:= GetColorFromColorPanel(frColorSettings1.cpStyleBlockColor.Color);
SolidBorder:=round(frColorSettings1.sbStyleBlockBorderSize.Value);
Paddings:=round(frColorSettings1.sbStyleBlockPadding.Value);
ColorBorder:=frColorSettings1.ccbStyleBorderColor.ItemIndex;
ColorBackground:=frColorSettings1.ccbBColor.ItemIndex;
HeaderText:=edtESTitle.text;
HeaderColorFont:=frFontSettings2.ccbFontColor.ItemIndex;
HeaderSizeFont:=round(frFontSettings2.sbFontSize.Value);
HeaderStyleFont:=frFontSettings2.cbFontStyleDefault.ItemIndex;
MessText:=edtESMessage.text;
MessColorFont:=frFontSettings3.ccbFontColor.ItemIndex;
MessSizeFont:=round(frFontSettings3.sbFontSize.Value);
MessStyleFont:=frFontSettings3.cbFontStyleDefault.ItemIndex;
TimeMess:=round(sbTimeMsg.Value);
TypeEvent:=cbEventsType.ItemIndex;
TypeEdit:=edtIF.Text;
Port:=round(sbWebServerPort.Value);;
end;
TTW_Bot.frOBS1.AddNotify(OBSNotify);
close;
end;
procedure TfCreateNotify.FormCreate(Sender: TObject);
var
i: Integer;
+5 -1
View File
@@ -498,7 +498,11 @@ var
Value: TValue;
Param: TFDParam;
begin
if Length(Items) = 0 then Exit;
if Length(Items) = 0 then
begin
FConnection.ExecSQL('DELETE FROM ' + TableName);
exit;
end;
EnsureTableForRecord(TableName, TypeInfo(T));
+29 -10
View File
@@ -17,7 +17,7 @@ object TTW_Bot: TTTW_Bot
Size.Width = 970.000000000000000000
Size.Height = 744.000000000000000000
Size.PlatformDefault = False
TabIndex = 2
TabIndex = 4
TabOrder = 0
TabPosition = PlatformDefault
Sizes = (
@@ -78,6 +78,9 @@ object TTW_Bot: TTTW_Bot
ImageIndex = 10
TabOrder = 33
end
inherited edtBotTokenStreamer: TEdit
TabOrder = 34
end
inherited Label53: TLabel
TabOrder = 36
end
@@ -188,7 +191,7 @@ object TTW_Bot: TTTW_Bot
item
end>
TextSettings.Trimming = None
IsSelected = True
IsSelected = False
ImageIndex = 13
Size.Width = 78.000000000000000000
Size.Height = 26.000000000000000000
@@ -279,8 +282,14 @@ object TTW_Bot: TTTW_Bot
Viewport.Width = 207.000000000000000000
Viewport.Height = 116.000000000000000000
end
inherited Label4: TLabel
TabOrder = 40
inherited btnRandomAdd: TButton
TabOrder = 34
end
inherited btnRandomDel: TButton
TabOrder = 35
end
inherited btnRmGroup: TButton
TabOrder = 37
end
inherited Label5: TLabel
TabOrder = 43
@@ -423,7 +432,7 @@ object TTW_Bot: TTTW_Bot
item
end>
TextSettings.Trimming = None
IsSelected = False
IsSelected = True
ImageIndex = 10
Size.Width = 136.000000000000000000
Size.Height = 26.000000000000000000
@@ -453,7 +462,6 @@ object TTW_Bot: TTTW_Bot
Size.Width = 94.000000000000000000
Size.PlatformDefault = False
TabOrder = 2
OnClick = frChatOBS1btnCreateChatClick
end
inherited btnDeleteeChat: TButton
Anchors = [akTop, akRight]
@@ -461,21 +469,20 @@ object TTW_Bot: TTTW_Bot
ImageIndex = 4
Position.X = 882.000000000000000000
TabOrder = 3
OnClick = frOBS1btnDeleteeChatClick
end
inherited Label1: TLabel
TabOrder = 7
TabOrder = 8
end
inherited btnCreateOBSNotify: TButton
Images = ImageList1
ImageIndex = 24
Position.X = 110.000000000000000000
OnClick = frOBS1btnCreateOBSNotifyClick
end
inherited btnCreateOBSKandinsky: TButton
Images = ImageList1
ImageIndex = 5
Position.X = 264.000000000000000000
OnClick = frOBS1btnCreateOBSKandinskyClick
end
object btnCreateChat: TButton
Images = ImageList1
@@ -488,7 +495,6 @@ object TTW_Bot: TTTW_Bot
TabOrder = 1
Text = #1057#1086#1079#1076#1072#1090#1100' '#1086#1087#1086#1074#1077#1097#1077#1085#1080#1077
TextSettings.Trimming = None
OnClick = frChatOBS1btnCreateChatClick
end
end
end
@@ -553,6 +559,7 @@ object TTW_Bot: TTTW_Bot
Text = ''
end
inherited OpenDialog1: TOpenDialog
Left = 472
Top = 32
end
end
@@ -653,19 +660,28 @@ object TTW_Bot: TTTW_Bot
end
end
inherited GroupBox17: TGroupBox
inherited edtCounterTrigger: TEdit
TabOrder = 38
end
inherited edtCounterCount: TEdit
TabOrder = 37
end
inherited btnCounterAdd: TButton
Images = ImageList1
ImageIndex = 0
TabOrder = 39
end
inherited btnCounterDelete: TButton
Images = ImageList1
ImageIndex = 4
TabOrder = 40
end
inherited btnCounterP: TButton
Images = ImageList1
ImageIndex = 0
Position.X = 416.000000000000000000
Size.Width = 22.000000000000000000
TabOrder = 42
Text = ''
end
inherited btnCounterM: TButton
@@ -673,13 +689,16 @@ object TTW_Bot: TTTW_Bot
ImageIndex = 12
Position.X = 449.000000000000000000
Size.Width = 22.000000000000000000
TabOrder = 43
Text = ''
end
inherited btnCounterEdit: TButton
Images = ImageList1
ImageIndex = 3
TabOrder = 44
end
inherited sgCounter: TStringGrid
TabOrder = 45
Viewport.Width = 463.000000000000000000
Viewport.Height = 121.000000000000000000
inherited scCounterTrigger: TStringColumn
+25 -51
View File
@@ -57,11 +57,9 @@ type
procedure SpeedButton1Click(Sender: TObject);
procedure SpeedButton3Click(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
procedure frChatOBS1btnCreateChatClick(Sender: TObject);
procedure frOBS1btnCreateOBSNotifyClick(Sender: TObject);
procedure frOBS1btnCreateOBSKandinskyClick(Sender: TObject);
procedure frSettings1btnDAStartClick(Sender: TObject);
procedure frCommands1btnRandAddClick(Sender: TObject);
procedure frOBS1btnDeleteeChatClick(Sender: TObject);
private
{ Private declarations }
procedure ReadDB();
@@ -136,57 +134,34 @@ begin
db := TSettingsDatabase.Create(myConst.DBPath);
ReadDB;
frCommands1.frsgSounds.ObjectRecord:=frCommands1.listSounds;
frCommands1.frsgSounds.TableName:='listSounds';
frCommands1.frsgSounds.ObjectRecord := frCommands1.listSounds;
frCommands1.frsgSounds.TableName := 'listSounds';
frCommands1.frsgSounds.UpdateGrid;
frCommands1.frsgFiles.ObjectRecord:=frCommands1.listFiles;
frCommands1.frsgFiles.TableName:='listFiles';
frCommands1.frsgFiles.ObjectRecord := frCommands1.listFiles;
frCommands1.frsgFiles.TableName := 'listFiles';
frCommands1.frsgFiles.UpdateGrid;
frCommands1.frsgNeiro.ObjectRecord:=frCommands1.listNeiro;
frCommands1.frsgNeiro.TableName:='listNeiro';
frCommands1.frsgNeiro.ObjectRecord := frCommands1.listNeiro;
frCommands1.frsgNeiro.TableName := 'listNeiro';
frCommands1.frsgNeiro.UpdateGrid;
for Path in TDirectory.GetFiles(myConst.stlPath) do
cbTheme.Items.Add(ExtractFileName(Path));
cbTheme.ItemIndex := strtoint(db.ReadSetting('cbTheme', '-1'));
end;
procedure TTTW_Bot.frChatOBS1btnCreateChatClick(Sender: TObject);
begin
fCreateChat.Show;
end;
procedure TTTW_Bot.frCommands1btnRandAddClick(Sender: TObject);
begin
frCommands1.btnRandAddClick(Sender);
end;
procedure TTTW_Bot.frOBS1btnCreateOBSKandinskyClick(Sender: TObject);
var dport:integer;
I: Integer;
procedure TTTW_Bot.frOBS1btnDeleteeChatClick(Sender: TObject);
begin
dport:=8080;
for I := 0 to frOBS1.sgWebChats.RowCount-1 do
begin
if strtoint(frOBS1.sgWebChats.Cells[0,i]) >= dport then
dport:=strtoint(frOBS1.sgWebChats.Cells[0,i])+1;
end;
frOBS1.sgWebChats.RowCount:=frOBS1.sgWebChats.RowCount+1;
frOBS1.sgWebChats.Cells[0,frOBS1.sgWebChats.RowCount-1]:=inttostr(dport);
frOBS1.sgWebChats.Cells[1,frOBS1.sgWebChats.RowCount-1]:='Kandinsky';
frOBS1.sgWebChats.Cells[2,frOBS1.sgWebChats.RowCount-1]:='http://127.0.0.1:'+inttostr(dport);
frOBS1.btnDeleteeChatClick(Sender);
end;
procedure TTTW_Bot.frOBS1btnCreateOBSNotifyClick(Sender: TObject);
begin
fCreateNotify.Show;
end;
procedure TTTW_Bot.frSettings1btnDAStartClick(Sender: TObject);
begin
frSettings1.btnDAStartClick(Sender);
@@ -269,18 +244,19 @@ var
// Çàãðóçêà äàííûõ â ãðèäû êîìàíä
procedure LoadGridsData;
begin
DB.LoadRecordArray<TRandomCounters>('RandomCounters', frCommands1.RandomCounters);
DB.LoadRecordArray<TListCommands>('listSounds', frCommands1.listSounds);
DB.LoadRecordArray<TListCommands>('listFiles', frCommands1.listFiles);
DB.LoadRecordArray<TListCommands>('listNeiro', frCommands1.listNeiro);
DB.LoadRecordArray<TListCommands>('listCommands', frCommands1.listCommands);
db.LoadRecordArray<TRandomCounters>('RandomCounters',
frCommands1.RandomCounters);
db.LoadRecordArray<TListCommands>('listSounds', frCommands1.listSounds);
db.LoadRecordArray<TListCommands>('listFiles', frCommands1.listFiles);
db.LoadRecordArray<TListCommands>('listNeiro', frCommands1.listNeiro);
db.LoadRecordArray<TListCommands>('listCommands', frCommands1.listCommands);
frCommands1.UpdateGridFromArray;
{ db.LoadGridFromTable('sgRandomInt', frCommands1.sgRandomInt);
db.LoadGridFromTable('sgCommands', frCommands1.sgCommands);
db.LoadGridFromTable('sgSAFiles', frCommands1.sgSAFiles);
db.LoadGridFromTable('sgTFiles', frCommands1.sgTFiles);
db.LoadGridFromTable('sgAIGen', frCommands1.sgAIGen); }
db.LoadRecordArray<TOBSChat>('listChats', frOBS1.listChats);
db.LoadRecordArray<TOBSNotify>('listNotify', frOBS1.listNotify);
db.LoadRecordArray<TOBSKandinsky>('listKandinsky', frOBS1.listKandinsky);
frOBS1.UpdateGridFromArray;
end;
// Çàãðóçêà ñïèñêà ãðóïï
@@ -383,7 +359,7 @@ var
frAI1.cbOllama.Visible := False;
end;
// Íàñòðîéêè DeepSeek
// Íàñòðîéêè DeepSeek
procedure SetupDeepSeekSettings;
begin
frAI1.rbDS.IsChecked := True;
@@ -395,7 +371,7 @@ var
frAI1.cbOllama.Visible := False;
end;
// Íàñòðîéêè ChatGPT
// Íàñòðîéêè ChatGPT
procedure SetupChatGPTSettings;
begin
frAI1.rbCG.IsChecked := True;
@@ -407,7 +383,7 @@ var
frAI1.cbOllama.Visible := False;
end;
// Íàñòðîéêè êàñòîìíîãî ÈÈ
// Íàñòðîéêè êàñòîìíîãî ÈÈ
procedure SetupCustomAISettings;
begin
frAI1.RBCustom.IsChecked := True;
@@ -420,6 +396,7 @@ var
frAI1.cbOllama.Visible := True;
frAI1.cbOllama.IsChecked := db.ReadSetting(frAI1.cbOllama.Name) = '1';
end;
begin
for I := 0 to frAI1.ComponentCount - 1 do
begin
@@ -445,8 +422,6 @@ var
frSettings1.init;
end;
// Çàãðóçêà ãðèäîâ àâòîìàòè÷åñêèõ äåéñòâèé
procedure LoadAutoActionsGrids;
begin
@@ -461,7 +436,6 @@ begin
LoadGroupNames;
LoadEncryptedConfig;
LoadNotifySettings;
LoadAISettings;
LoadAutoActionsGrids;
+50 -7
View File
@@ -2,21 +2,67 @@ unit uRecords;
interface
type
TOBSKandinsky = record
port: integer;
end;
type
TOBSNotify = record
Picture: string;
Sound: string;
ColorBlock: string;
SolidBorder: integer;
Paddings: integer;
ColorBorder: integer;
ColorBackground: integer;
HeaderText: string;
HeaderColorFont: integer;
HeaderSizeFont: integer;
HeaderStyleFont: integer;
MessText: string;
MessColorFont: integer;
MessSizeFont: integer;
MessStyleFont: integer;
TimeMess: integer;
TypeEvent: integer;
TypeEdit: string;
port: integer;
end;
type
TOBSChat = record
ColorBlock: string;
ColorBorder: integer;
ColorBackground: integer;
ColorFont: integer;
SolidBorder: integer;
Paddings: integer;
SizeFont: integer;
MaxCountMess: integer;
TimeMess: integer;
port: integer;
StyleFont: integer;
end;
type
TRandomCounters = record
rndName: string;
Ot: Integer;
ToValue: Integer;
Ot: integer;
ToValue: integer;
end;
type
type
TListCommands = record
R1: string;
R2: string;
end;
type
TConst = record
GeneralPath: string;
@@ -398,9 +444,6 @@ type
DA_URL: string;
end;
implementation
end.