Skip to content

Commit c7f97c8

Browse files
[Issue GerryFerdinandus#35] add support for ngosang via menu
TngosangTrackerList refactor. Do not download everything Also update the unit test Add mising all WS test
1 parent c9c0d82 commit c7f97c8

File tree

3 files changed

+72
-42
lines changed

3 files changed

+72
-42
lines changed

source/code/main.lfm

Lines changed: 44 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ object FormTrackerModify: TFormTrackerModify
1616
OnDropFiles = FormDropFiles
1717
OnShow = FormShow
1818
Position = poScreenCenter
19-
LCLVersion = '1.8.0.5'
19+
LCLVersion = '2.0.4.0'
2020
object PageControl: TPageControl
2121
Left = 0
2222
Height = 587
@@ -270,17 +270,17 @@ object FormTrackerModify: TFormTrackerModify
270270
Caption = '-'
271271
end
272272
object MenuTrackersDeleteUnstableTrackers: TMenuItem
273-
Caption = 'Delete UNSTABLE trackers'
273+
Caption = 'Delete UNSTABLE trackers (Data from newTrackon)'
274274
OnClick = MenuTrackersDeleteTrackersWithStatusClick
275275
end
276276
object MenuTrackersDeleteDeadTrackers: TMenuItem
277277
Tag = 1
278-
Caption = 'Delete DEAD trackers'
278+
Caption = 'Delete DEAD trackers (Data from newTrackon)'
279279
OnClick = MenuTrackersDeleteTrackersWithStatusClick
280280
end
281281
object MenuTrackersDeleteUnknownTrackers: TMenuItem
282282
Tag = 2
283-
Caption = 'Delete UNKNOWN trackers'
283+
Caption = 'Delete UNKNOWN trackers (Data from newTrackon)'
284284
OnClick = MenuTrackersDeleteTrackersWithStatusClick
285285
end
286286
object MenuTrackersSeperator2: TMenuItem
@@ -353,6 +353,41 @@ object FormTrackerModify: TFormTrackerModify
353353
OnClick = MenuItemOnlineCheckSubmitNewTrackonClick
354354
end
355355
end
356+
object MenuItem1: TMenuItem
357+
Caption = 'ngosang/trackerslist'
358+
object MenuItemNgosangAppendBest: TMenuItem
359+
Caption = 'Append best'
360+
OnClick = MenuItemNgosangAppendBestClick
361+
end
362+
object MenuItemNgosangAppendAll: TMenuItem
363+
Caption = 'Append all'
364+
OnClick = MenuItemNgosangAppendAllClick
365+
end
366+
object MenuItemNgosangAppendAllUdp: TMenuItem
367+
Caption = 'Append all udp'
368+
OnClick = MenuItemNgosangAppendAllUdpClick
369+
end
370+
object MenuItemNgosangAppendAllHttp: TMenuItem
371+
Caption = 'Append all http'
372+
OnClick = MenuItemNgosangAppendAllHttpClick
373+
end
374+
object MenuItemNgosangAppendAllHttps: TMenuItem
375+
Caption = 'Append all https'
376+
OnClick = MenuItemNgosangAppendAllHttpsClick
377+
end
378+
object MenuItemNgosangAppendAllWs: TMenuItem
379+
Caption = 'Append all ws'
380+
OnClick = MenuItemNgosangAppendAllWsClick
381+
end
382+
object MenuItemNgosangAppendAllBestIp: TMenuItem
383+
Caption = 'Append best ip'
384+
OnClick = MenuItemNgosangAppendAllBestIpClick
385+
end
386+
object MenuItemNgosangAppendAllIp: TMenuItem
387+
Caption = 'Append all ip'
388+
OnClick = MenuItemNgosangAppendAllIpClick
389+
end
390+
end
356391
object MenuHelp: TMenuItem
357392
Caption = '&Help'
358393
object MenuHelpVisitWebsite: TMenuItem
@@ -367,9 +402,13 @@ object FormTrackerModify: TFormTrackerModify
367402
Caption = '-'
368403
end
369404
object MenuHelpVisitNewTrackon: TMenuItem
370-
Caption = '&Visit website newTrackon'
405+
Caption = 'Visit website new&Trackon'
371406
OnClick = MenuHelpVisitNewTrackonClick
372407
end
408+
object MenuHelpVisitNgosang: TMenuItem
409+
Caption = 'Visit website &ngosang (github)'
410+
OnClick = MenuHelpVisitNgosangClick
411+
end
373412
end
374413
end
375414
end

source/code/ngosang_trackerslist.pas

Lines changed: 24 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ interface
2424
ntl_URL_All_HTTPS,//< Download from internet
2525
ntl_URL_All_IP,//< Download from internet
2626
ntl_URL_All_UDP,//< Download from internet
27+
ntl_URL_All_WS,//< Download from internet
2728
ntl_URL_Best,//< Download from internet
2829
ntl_URL_Best_IP//< Download from internet
2930
);
@@ -33,29 +34,29 @@ interface
3334
TngosangTrackerList = class
3435
private
3536
FTRackerList: array [Tngosang_List] of TStringList;
36-
37-
procedure DownloadTracker(ngosang_List: Tngosang_List);
38-
37+
function DownloadTracker(ngosang_List: Tngosang_List): TStringList;
3938
public
4039

41-
property TrackerList_Blacklist: TStringList read FTRackerList[ntl_URL_Blacklist];
40+
property TrackerList_Blacklist: TStringList index ntl_URL_Blacklist
41+
read DownloadTracker;
4242

43-
property TrackerList_All: TStringList read FTrackerList[ntl_URL_All];
43+
property TrackerList_All: TStringList index ntl_URL_All read DownloadTracker;
4444

45-
property TrackerList_All_HTTP: TStringList read FTrackerList[ntl_URL_All_HTTP];
45+
property TrackerList_All_HTTP: TStringList index ntl_URL_All_HTTP
46+
read DownloadTracker;
4647

47-
property TrackerList_All_HTTPS: TStringList read FTrackerList[ntl_URL_All_HTTPS];
48+
property TrackerList_All_HTTPS: TStringList index ntl_URL_All_HTTPS
49+
read DownloadTracker;
4850

49-
property TrackerList_All_IP: TStringList read FTrackerList[ntl_URL_All_IP];
51+
property TrackerList_All_IP: TStringList index ntl_URL_All_IP read DownloadTracker;
5052

51-
property TrackerList_All_UDP: TStringList read FTrackerList[ntl_URL_All_UDP];
53+
property TrackerList_All_UDP: TStringList index ntl_URL_All_UDP read DownloadTracker;
5254

53-
property TrackerList_Best: TStringList read FTrackerList[ntl_URL_Best];
55+
property TrackerList_All_WS: TStringList index ntl_URL_All_WS read DownloadTracker;
5456

55-
property TrackerList_Best_IP: TStringList read FTrackerList[ntl_URL_Best_IP];
57+
property TrackerList_Best: TStringList index ntl_URL_Best read DownloadTracker;
5658

57-
//Download all the trackers via API
58-
function DownloadTrackers: boolean;
59+
property TrackerList_Best_IP: TStringList index ntl_URL_Best_IP read DownloadTracker;
5960

6061
//create/destroy class object
6162
constructor Create;
@@ -75,38 +76,27 @@ implementation
7576
'https://raw.githubusercontent.com/ngosang/trackerslist/master/trackers_all_https.txt',
7677
'https://raw.githubusercontent.com/ngosang/trackerslist/master/trackers_all_ip.txt',
7778
'https://raw.githubusercontent.com/ngosang/trackerslist/master/trackers_all_udp.txt',
79+
'https://raw.githubusercontent.com/ngosang/trackerslist/master/trackers_all_ws.txt',
7880
'https://raw.githubusercontent.com/ngosang/trackerslist/master/trackers_best.txt',
7981
'https://raw.githubusercontent.com/ngosang/trackerslist/master/trackers_best_ip.txt'
8082
);
8183

8284
{ TngosangTrackerList }
83-
procedure TngosangTrackerList.DownloadTracker(ngosang_List: Tngosang_List);
84-
begin
85-
//download via URL and put the data in the TrackerList
86-
FTRackerList[ngosang_List].DelimitedText :=
87-
TFPCustomHTTPClient.SimpleGet(URL[ngosang_List]);
88-
89-
//Clean up the tracker list
90-
SanatizeTrackerList(FTRackerList[ngosang_List]);
91-
end;
92-
93-
94-
function TngosangTrackerList.DownloadTrackers: boolean;
95-
var
96-
i: Tngosang_List;
85+
function TngosangTrackerList.DownloadTracker(ngosang_List: Tngosang_List): TStringList;
9786
begin
9887
try
99-
//download all the list one by one
100-
for i in Tngosang_List do
101-
begin
102-
DownloadTracker(i);
103-
end;
88+
//download via URL and put the data in the TrackerList
89+
FTRackerList[ngosang_List].DelimitedText :=
90+
TFPCustomHTTPClient.SimpleGet(URL[ngosang_List]);
91+
92+
//Clean up the tracker list
93+
SanatizeTrackerList(FTRackerList[ngosang_List]);
10494

105-
Result := True;
10695
except
10796
//No OpenSSL or web server is down
108-
Result := False;
10997
end;
98+
99+
Result := FTrackerList[ngosang_List];
110100
end;
111101

112102
constructor TngosangTrackerList.Create;
@@ -135,4 +125,3 @@ destructor TngosangTrackerList.Destroy;
135125
end;
136126

137127
end.
138-

source/test/test_ngosang_trackers_list.pas

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,6 @@ implementation
2323

2424
procedure TTestNgosangTrackersList.Test_DownloadAPI;
2525
begin
26-
Check(FngosangTrackerList.DownloadTrackers, 'Download the ngosang API');
27-
2826
Check(FngosangTrackerList.TrackerList_Blacklist.Count > 0,
2927
'TrackerList_Blacklist should never be empty');
3028

@@ -47,6 +45,10 @@ procedure TTestNgosangTrackersList.Test_DownloadAPI;
4745
FngosangTrackerList.TrackerList_All_UDP.Count > 0,
4846
'TrackerList_All_UDP should never be empty');
4947

48+
Check(
49+
FngosangTrackerList.TrackerList_All_WS.Count > 0,
50+
'TrackerList_All_WS should never be empty');
51+
5052
Check(
5153
FngosangTrackerList.TrackerList_Best.Count > 0,
5254
'TrackerList_Best should never be empty');

0 commit comments

Comments
 (0)