@@ -9,7 +9,7 @@ interface
9
9
TGetIt = class
10
10
class var
11
11
Url, Version: string;
12
- class function Get (out Items: TPackages; const Category, Order: Integer; const Search: string = ' ' ; const Count: Integer = 0 ; const Offset: Integer = 0 ): Boolean;
12
+ class function Get (out Items: TPackages; const Category, Order: Integer; const Personalities: string; const Search: string = ' ' ; const Count: Integer = 0 ; const Offset: Integer = 0 ): Boolean;
13
13
class function ParseDate (const Value : string): string; static;
14
14
end ;
15
15
@@ -19,6 +19,7 @@ TIDEEntity = record
19
19
Personalities: string;
20
20
ServiceUrl: string;
21
21
RegPath: string;
22
+ IsCustom: Boolean;
22
23
Elements: TArray<string>;
23
24
function GetPathBin : string;
24
25
function GetPathGetItCmd : string;
@@ -42,10 +43,8 @@ implementation
42
43
43
44
class function TGetIt.ParseDate (const Value : string): string;
44
45
begin
45
- var
46
- FormatDate: TFormatSettings;
47
- var
48
- Date: TDateTime;
46
+ var FormatDate: TFormatSettings;
47
+ var Date: TDateTime;
49
48
FormatDate.DateSeparator := ' -' ;
50
49
FormatDate.ShortDateFormat := ' YYYY-MM-DD' ;
51
50
if (not Value .IsEmpty) and TryStrToDateTime(Value , Date, FormatDate) then
@@ -54,18 +53,16 @@ class function TGetIt.ParseDate(const Value: string): string;
54
53
Result := ' Unkonwn' ;
55
54
end ;
56
55
57
- class function TGetIt.Get (out Items: TPackages; const Category, Order: Integer; const Search: string; const Count, Offset: Integer): Boolean;
56
+ class function TGetIt.Get (out Items: TPackages; const Category, Order: Integer; const Personalities: string; const Search: string; const Count, Offset: Integer): Boolean;
58
57
var
59
58
HTTP: THTTPClient;
60
59
begin
61
60
Result := False;
62
61
Items := nil ;
63
62
HTTP := THTTPClient.Create;
64
63
try
65
- var
66
- Body := TMultipartFormData.Create;
67
- var
68
- Response := TStringStream.Create(' ' , TEncoding.UTF8);
64
+ var Body := TMultipartFormData.Create;
65
+ var Response := TStringStream.Create(' ' , TEncoding.UTF8);
69
66
try
70
67
if Category > 0 then
71
68
Body.AddField(' Categories' , Category.ToString);
@@ -74,12 +71,12 @@ class function TGetIt.Get(out Items: TPackages; const Category, Order: Integer;
74
71
if Offset > 0 then
75
72
Body.AddField(' Start' , Offset.ToString);
76
73
if Count > 0 then
77
- Body.AddField(' End' , (Offset + Count) .ToString);
74
+ Body.AddField(' End' , Count.ToString);
78
75
Body.AddField(' Order' , Order.ToString);
79
76
Body.AddField(' Language' , ' 0' );
80
77
Body.AddField(' CatalogVersion' , ' 5' );
81
- Body.AddField(' Personalities' , ' 1 ' ); // delphi
82
- Body.AddField(' Identity' , ' DELPHI ' );
78
+ Body.AddField(' Personalities' , Personalities ); // delphi 1
79
+ // Body.AddField('Identity', 'C++ '); //DELPHI
83
80
Body.AddField(' Version' , Version);
84
81
// Body.AddField('BuildNumber', '28.0.47991.2819');
85
82
@@ -88,8 +85,7 @@ class function TGetIt.Get(out Items: TPackages; const Category, Order: Integer;
88
85
// https://getit-olympus.embarcadero.com
89
86
if HTTP.Post(Url + ' /catalog/info' , Body, Response).StatusCode = 200 then
90
87
begin
91
- Items := TJson.JsonToObject<TPackages>
92
- (' { "items": ' + Response.DataString + ' }' );
88
+ Items := TJson.JsonToObject<TPackages>(' { "items": ' + Response.DataString + ' }' );
93
89
Result := True;
94
90
end ;
95
91
finally
@@ -163,14 +159,12 @@ class function TIDEList.List: TArray<TIDEEntity>;
163
159
Exit;
164
160
Entity.Personalities := Reg.ReadString(' ' );
165
161
Reg.CloseKey;
166
- if not Reg.OpenKeyReadOnly(' Software\Embarcadero\BDS\' + Section +
167
- ' \CatalogRepository' ) then
162
+ if not Reg.OpenKeyReadOnly(' Software\Embarcadero\BDS\' + Section + ' \CatalogRepository' ) then
168
163
Exit;
169
164
Entity.ServiceUrl := Reg.ReadString(' ServiceUrl' );
170
165
if Reg.OpenKeyReadOnly(' Elements' ) then
171
166
begin
172
- var
173
- Elements := TStringList.Create;
167
+ var Elements := TStringList.Create;
174
168
try
175
169
Reg.GetKeyNames(Elements);
176
170
Entity.Elements := Elements.ToStringArray;
@@ -186,18 +180,15 @@ class function TIDEList.List: TArray<TIDEEntity>;
186
180
187
181
begin
188
182
Result := [];
189
- var
190
- Reg := TRegistry.Create(KEY_QUERY_VALUE);
183
+ var Reg := TRegistry.Create(KEY_QUERY_VALUE);
191
184
try
192
185
Reg.RootKey := HKEY_CURRENT_USER;
193
186
if not Reg.OpenKeyReadOnly(' Software\Embarcadero\BDS' ) then
194
187
Exit;
195
- var
196
- Sections := TStringList.Create;
188
+ var Sections := TStringList.Create;
197
189
try
198
190
Reg.GetKeyNames(Sections);
199
- var
200
- Entity: TIDEEntity;
191
+ var Entity: TIDEEntity;
201
192
for var Section in Sections do
202
193
if ReadSection(Reg, Section, Entity) then
203
194
begin
@@ -264,11 +255,9 @@ procedure TIDEEntity.LoadInstalled(out Items: TPackages; const Search: string);
264
255
Item.VendorUrl := Reg.ReadString(' VendorUrl' );
265
256
Item.Version := Reg.ReadString(' Version' );
266
257
Item.LibUrl := Reg.ReadString(' Url' );
267
- var
268
- List := TStringList.Create;
258
+ var List := TStringList.Create;
269
259
try
270
- var
271
- Tmp := Reg.ReadString(' OSes' );
260
+ var Tmp := Reg.ReadString(' OSes' );
272
261
List.Delimiter := ' ;' ;
273
262
List.DelimitedText := Tmp;
274
263
var LibOSes: TArray<TLibOS>;
@@ -292,17 +281,15 @@ procedure TIDEEntity.LoadInstalled(out Items: TPackages; const Search: string);
292
281
Tmp := Reg.ReadString(' Platforms' );
293
282
List.Delimiter := ' ;' ;
294
283
List.DelimitedText := Tmp;
295
- var
296
- Platforms: TArray<TLibPlatform>;
284
+ var Platforms: TArray<TLibPlatform>;
297
285
try
298
286
for var SItem in List do
299
287
begin
300
288
var
301
289
Arr := SItem.Split([' =' ]);
302
290
if Length(Arr) > 1 then
303
291
begin
304
- var
305
- LibPlatform := TLibPlatform.Create;
292
+ var LibPlatform := TLibPlatform.Create;
306
293
LibPlatform.Id := Arr[0 ];
307
294
LibPlatform.Name := Arr[1 ];
308
295
SetLength(Platforms, Length(Platforms) + 1 );
@@ -326,22 +313,18 @@ procedure TIDEEntity.LoadInstalled(out Items: TPackages; const Search: string);
326
313
Reg := TRegistry.Create(KEY_QUERY_VALUE);
327
314
try
328
315
Reg.RootKey := HKEY_CURRENT_USER;
329
- var
330
- RegRoot := RegPath + ' \CatalogRepository\Elements' ;
316
+ var RegRoot := RegPath + ' \CatalogRepository\Elements' ;
331
317
if not Reg.OpenKeyReadOnly(RegRoot) then
332
318
Exit;
333
- var
334
- List := TStringList.Create;
319
+ var List := TStringList.Create;
335
320
try
336
321
Reg.GetKeyNames(List);
337
322
for var Key in List do
338
323
begin
339
324
Reg.CloseKey;
340
325
if Reg.OpenKeyReadOnly(RegRoot + ' \' + Key) then
341
326
begin
342
- var
343
- Item: TGetItPackage;
344
- Item := TGetItPackage.Create;
327
+ var Item := TGetItPackage.Create;
345
328
if not ReadItem(Item) then
346
329
begin
347
330
Item.Free;
0 commit comments