Skip to content

Commit 7457071

Browse files
committed
ADD: [convers] Support for Uronode convers (untestet)
1 parent 7a66aac commit 7457071

File tree

6 files changed

+53
-26
lines changed

6 files changed

+53
-26
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
- ADD: [mail] Offline mail support for LinBPQ.
2323
- ADD: Progressbar to show the state of message/file download.
2424
- ADD: BBS Type in statusbar.
25+
- ADD: [convers] Support for Uronode convers (untestet)
2526

2627
## v0.7.0
2728

src/flexpacket.lpi

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
<UseVersionInfo Value="True"/>
2424
<AutoIncrementBuild Value="True"/>
2525
<MinorVersionNr Value="7"/>
26-
<BuildNr Value="2492"/>
26+
<BuildNr Value="2494"/>
2727
<Language Value="0C0C"/>
2828
<StringTable InternalName="flexpacket" ProductName="flexpacket" ProductVersion="0.7.0"/>
2929
</VersionInfo>

src/flexpacket.lps

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -227,9 +227,8 @@
227227
<ComponentName Value="FListMails"/>
228228
<HasResources Value="True"/>
229229
<ResourceBaseClass Value="Form"/>
230-
<IsVisibleTab Value="True"/>
231230
<EditorIndex Value="14"/>
232-
<TopLine Value="486"/>
231+
<TopLine Value="487"/>
233232
<CursorPos X="25" Y="499"/>
234233
<UsageCount Value="303"/>
235234
<Loaded Value="True"/>
@@ -254,9 +253,10 @@
254253
<ComponentName Value="TFConvers"/>
255254
<HasResources Value="True"/>
256255
<ResourceBaseClass Value="Form"/>
256+
<IsVisibleTab Value="True"/>
257257
<EditorIndex Value="6"/>
258-
<TopLine Value="309"/>
259-
<CursorPos X="7" Y="325"/>
258+
<TopLine Value="257"/>
259+
<CursorPos X="56" Y="267"/>
260260
<UsageCount Value="247"/>
261261
<Loaded Value="True"/>
262262
<LoadedDesigner Value="True"/>
@@ -339,14 +339,6 @@
339339
</Unit>
340340
</Units>
341341
<JumpHistory HistoryIndex="29">
342-
<Position>
343-
<Filename Value="umain.pas"/>
344-
<Caret Line="883" Column="14" TopLine="860"/>
345-
</Position>
346-
<Position>
347-
<Filename Value="umain.pas"/>
348-
<Caret Line="186" Column="30" TopLine="173"/>
349-
</Position>
350342
<Position>
351343
<Filename Value="umain.pas"/>
352344
<Caret Line="755" Column="43" TopLine="737"/>
@@ -459,6 +451,14 @@
459451
<Filename Value="umain.pas"/>
460452
<Caret Line="186" Column="30" TopLine="173"/>
461453
</Position>
454+
<Position>
455+
<Filename Value="uconvers.pas"/>
456+
<Caret Line="233" Column="56" TopLine="214"/>
457+
</Position>
458+
<Position>
459+
<Filename Value="uconvers.pas"/>
460+
<Caret Line="271" Column="54" TopLine="263"/>
461+
</Position>
462462
</JumpHistory>
463463
<RunParams>
464464
<FormatVersion Value="2"/>

src/flexpacket.res

0 Bytes
Binary file not shown.

src/uconvers.lfm

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ object TFConvers: TTFConvers
99
DoubleBuffered = True
1010
ParentDoubleBuffered = False
1111
Position = poDesktopCenter
12+
LCLVersion = '4.4.0.0'
1213
OnClose = FormClose
1314
OnResize = FormResize
1415
OnShow = FormShow
@@ -38,7 +39,7 @@ object TFConvers: TTFConvers
3839
end
3940
object ToolButton1: TToolButton
4041
Left = 27
41-
Height = 26
42+
Height = 8
4243
Top = 0
4344
Caption = 'ToolButton1'
4445
Style = tbsSeparator
@@ -52,7 +53,7 @@ object TFConvers: TTFConvers
5253
Panels = <>
5354
end
5455
object PairSplitter1: TPairSplitter
55-
Cursor = crVSplit
56+
Cursor = crDefault
5657
Left = 2
5758
Height = 479
5859
Top = 26
@@ -71,6 +72,7 @@ object TFConvers: TTFConvers
7172
ClientWidth = 580
7273
ClientHeight = 400
7374
object PairSplitter2: TPairSplitter
75+
Cursor = crDefault
7476
Left = 0
7577
Height = 400
7678
Top = 0

src/uconvers.pas

Lines changed: 35 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -206,6 +206,7 @@ function TTFConvers.Colorerize(const Data: AnsiString): AnsiString;
206206

207207
Regex := TRegExpr.Create;
208208
try
209+
// Try LinBPQ
209210
Regex.Expression := '(?:(\d{2}\s*:\s*\d{2})\s+)?([A-Z0-9]+)\s*:\s*(.*)';
210211
Regex.ModifierI := False;
211212
if Regex.Exec(Data) then
@@ -218,18 +219,24 @@ function TTFConvers.Colorerize(const Data: AnsiString): AnsiString;
218219
Result := Format(#27'[36m %-7s : '#27'[0m%s', [callsign, msg])
219220
else
220221
Result := Format(#27'[36m %-5s %-7s : '#27'[0m%s', [clock, callsign, msg]);
222+
Exit;
221223
end;
224+
225+
// Try UROnode
226+
Regex.Expression := '(<\S+>):(.*)';
227+
Regex.ModifierI := False;
228+
if Regex.Exec(Data) then
229+
if Regex.SubExprMatchCount >= 2 then
230+
begin
231+
callsign := Regex.Match[1];
232+
msg := Regex.Match[2];
233+
Result := Format(#27'[36m %-7s : '#27'[0m%s', [callsign, msg]);
234+
Exit;
235+
end;
236+
222237
finally
223238
Regex.Free;
224239
end;
225-
226-
// if Message then
227-
// begin
228-
// if Pos(#13, Data) > 0 then
229-
// Result := StringReplace(Result, #13, #13 + ESC+'[36m', [rfReplaceAll]);
230-
// if Pos(':', Data) > 0 then
231-
// Result := StringReplace(Result, ':', ESC+'[0m :', [rfReplaceAll]);
232-
// end;
233240
end;
234241

235242
procedure TTFConvers.AddBuddies(const Callsign: AnsiString);
@@ -261,7 +268,7 @@ procedure TTFConvers.CheckLeft(const Data: AnsiString);
261268
if (Length(Data) <= 0) then
262269
Exit;
263270

264-
if Pos('*** Left', Data) > 0 then
271+
if (Pos('*** Left', Data) > 0) or (Pos('left channel', Data) > 0) then
265272
begin
266273
Callsign := GetCallsign(Data);
267274
if Length(Callsign) > 0 then
@@ -282,7 +289,7 @@ procedure TTFConvers.CheckJoined(const Data: AnsiString);
282289
if (Length(Data) <= 0) then
283290
Exit;
284291

285-
if Pos('*** Joined', Data) > 0 then
292+
if (Pos('*** Joined', Data) > 0) or (Pos('joined channel', Data) > 0) then
286293
begin
287294
Callsign := GetCallsign(Data);
288295
if Length(Callsign) > 0 then
@@ -299,11 +306,13 @@ function TTFConvers.GetUsername(const Data: AnsiString): AnsiString;
299306
begin
300307
Regex := TRegExpr.Create;
301308
try
302-
Regex.Expression := '.*\s:\s(.*)(?:\*\*\* Joined Chat).*';
309+
// Try LinBPQ
310+
Regex.Expression := '\s:\s(.*)(?:\*\*\* Joined Chat)';
303311
Regex.ModifierI := False;
304312
if Regex.Exec(Data) then
305313
if Regex.SubExprMatchCount >= 1 then
306314
Result := Trim(Regex.Match[1]);
315+
307316
finally
308317
Regex.Free;
309318
end;
@@ -319,11 +328,26 @@ function TTFConvers.GetCallsign(const Data: AnsiString): AnsiString;
319328

320329
Regex := TRegExpr.Create;
321330
try
331+
// Try LinBPQ
322332
Regex.Expression := '((?:\d{1})?[A-Z]{1,3}\d{1,3}[A-Z]{0,4}(?:-\d{1,2})?)';
323333
Regex.ModifierI := False;
324334
if Regex.Exec(Data) then
325335
if Regex.SubExprMatchCount >= 1 then
336+
begin
337+
Result := Trim(Regex.Match[1]);
338+
Exit;
339+
end;
340+
341+
// Try UROnode
342+
Regex.Expression := '\*\*\*\s*(?:\(\d{1,2}:\d{2}\)\s*)?(\S+?)(?:@\S+)?\s+joined channel\s';
343+
Regex.ModifierI := False;
344+
if Regex.Exec(Data) then
345+
if Regex.SubExprMatchCount >= 1 then
346+
begin
326347
Result := Trim(Regex.Match[1]);
348+
Exit;
349+
end;
350+
327351
finally
328352
Regex.Free;
329353
end;

0 commit comments

Comments
 (0)