Skip to content

Commit bb7996b

Browse files
committed
Upd
1 parent 3fbac74 commit bb7996b

File tree

9 files changed

+2027
-2436
lines changed

9 files changed

+2027
-2436
lines changed

HGI.GetItAPI.pas

Lines changed: 23 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ interface
99
TGetIt = class
1010
class var
1111
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;
1313
class function ParseDate(const Value: string): string; static;
1414
end;
1515

@@ -19,6 +19,7 @@ TIDEEntity = record
1919
Personalities: string;
2020
ServiceUrl: string;
2121
RegPath: string;
22+
IsCustom: Boolean;
2223
Elements: TArray<string>;
2324
function GetPathBin: string;
2425
function GetPathGetItCmd: string;
@@ -42,10 +43,8 @@ implementation
4243

4344
class function TGetIt.ParseDate(const Value: string): string;
4445
begin
45-
var
46-
FormatDate: TFormatSettings;
47-
var
48-
Date: TDateTime;
46+
var FormatDate: TFormatSettings;
47+
var Date: TDateTime;
4948
FormatDate.DateSeparator := '-';
5049
FormatDate.ShortDateFormat := 'YYYY-MM-DD';
5150
if (not Value.IsEmpty) and TryStrToDateTime(Value, Date, FormatDate) then
@@ -54,18 +53,16 @@ class function TGetIt.ParseDate(const Value: string): string;
5453
Result := 'Unkonwn';
5554
end;
5655

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;
5857
var
5958
HTTP: THTTPClient;
6059
begin
6160
Result := False;
6261
Items := nil;
6362
HTTP := THTTPClient.Create;
6463
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);
6966
try
7067
if Category > 0 then
7168
Body.AddField('Categories', Category.ToString);
@@ -74,12 +71,12 @@ class function TGetIt.Get(out Items: TPackages; const Category, Order: Integer;
7471
if Offset > 0 then
7572
Body.AddField('Start', Offset.ToString);
7673
if Count > 0 then
77-
Body.AddField('End', (Offset + Count).ToString);
74+
Body.AddField('End', Count.ToString);
7875
Body.AddField('Order', Order.ToString);
7976
Body.AddField('Language', '0');
8077
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
8380
Body.AddField('Version', Version);
8481
// Body.AddField('BuildNumber', '28.0.47991.2819');
8582

@@ -88,8 +85,7 @@ class function TGetIt.Get(out Items: TPackages; const Category, Order: Integer;
8885
// https://getit-olympus.embarcadero.com
8986
if HTTP.Post(Url + '/catalog/info', Body, Response).StatusCode = 200 then
9087
begin
91-
Items := TJson.JsonToObject<TPackages>
92-
('{ "items": ' + Response.DataString + '}');
88+
Items := TJson.JsonToObject<TPackages>('{ "items": ' + Response.DataString + '}');
9389
Result := True;
9490
end;
9591
finally
@@ -163,14 +159,12 @@ class function TIDEList.List: TArray<TIDEEntity>;
163159
Exit;
164160
Entity.Personalities := Reg.ReadString('');
165161
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
168163
Exit;
169164
Entity.ServiceUrl := Reg.ReadString('ServiceUrl');
170165
if Reg.OpenKeyReadOnly('Elements') then
171166
begin
172-
var
173-
Elements := TStringList.Create;
167+
var Elements := TStringList.Create;
174168
try
175169
Reg.GetKeyNames(Elements);
176170
Entity.Elements := Elements.ToStringArray;
@@ -186,18 +180,15 @@ class function TIDEList.List: TArray<TIDEEntity>;
186180

187181
begin
188182
Result := [];
189-
var
190-
Reg := TRegistry.Create(KEY_QUERY_VALUE);
183+
var Reg := TRegistry.Create(KEY_QUERY_VALUE);
191184
try
192185
Reg.RootKey := HKEY_CURRENT_USER;
193186
if not Reg.OpenKeyReadOnly('Software\Embarcadero\BDS') then
194187
Exit;
195-
var
196-
Sections := TStringList.Create;
188+
var Sections := TStringList.Create;
197189
try
198190
Reg.GetKeyNames(Sections);
199-
var
200-
Entity: TIDEEntity;
191+
var Entity: TIDEEntity;
201192
for var Section in Sections do
202193
if ReadSection(Reg, Section, Entity) then
203194
begin
@@ -264,11 +255,9 @@ procedure TIDEEntity.LoadInstalled(out Items: TPackages; const Search: string);
264255
Item.VendorUrl := Reg.ReadString('VendorUrl');
265256
Item.Version := Reg.ReadString('Version');
266257
Item.LibUrl := Reg.ReadString('Url');
267-
var
268-
List := TStringList.Create;
258+
var List := TStringList.Create;
269259
try
270-
var
271-
Tmp := Reg.ReadString('OSes');
260+
var Tmp := Reg.ReadString('OSes');
272261
List.Delimiter := ';';
273262
List.DelimitedText := Tmp;
274263
var LibOSes: TArray<TLibOS>;
@@ -292,17 +281,15 @@ procedure TIDEEntity.LoadInstalled(out Items: TPackages; const Search: string);
292281
Tmp := Reg.ReadString('Platforms');
293282
List.Delimiter := ';';
294283
List.DelimitedText := Tmp;
295-
var
296-
Platforms: TArray<TLibPlatform>;
284+
var Platforms: TArray<TLibPlatform>;
297285
try
298286
for var SItem in List do
299287
begin
300288
var
301289
Arr := SItem.Split(['=']);
302290
if Length(Arr) > 1 then
303291
begin
304-
var
305-
LibPlatform := TLibPlatform.Create;
292+
var LibPlatform := TLibPlatform.Create;
306293
LibPlatform.Id := Arr[0];
307294
LibPlatform.Name := Arr[1];
308295
SetLength(Platforms, Length(Platforms) + 1);
@@ -326,22 +313,18 @@ procedure TIDEEntity.LoadInstalled(out Items: TPackages; const Search: string);
326313
Reg := TRegistry.Create(KEY_QUERY_VALUE);
327314
try
328315
Reg.RootKey := HKEY_CURRENT_USER;
329-
var
330-
RegRoot := RegPath + '\CatalogRepository\Elements';
316+
var RegRoot := RegPath + '\CatalogRepository\Elements';
331317
if not Reg.OpenKeyReadOnly(RegRoot) then
332318
Exit;
333-
var
334-
List := TStringList.Create;
319+
var List := TStringList.Create;
335320
try
336321
Reg.GetKeyNames(List);
337322
for var Key in List do
338323
begin
339324
Reg.CloseKey;
340325
if Reg.OpenKeyReadOnly(RegRoot + '\' + Key) then
341326
begin
342-
var
343-
Item: TGetItPackage;
344-
Item := TGetItPackage.Create;
327+
var Item := TGetItPackage.Create;
345328
if not ReadItem(Item) then
346329
begin
347330
Item.Free;

0 commit comments

Comments
 (0)