@@ -1,13 +1,52 @@ | |||||
function GetCode(const url: AnsiString): Cardinal; | |||||
var | var | ||||
r: integer; | |||||
BaseUrl: string; | |||||
VResponseCode: Cardinal; | |||||
VResponseHeader, VResponseData: AnsiString; | |||||
begin | begin | ||||
r := random(2); | |||||
Result := 1; | |||||
if Assigned(Downloader) then begin | |||||
VResponseHeader := ''; | |||||
VResponseData := ''; | |||||
VResponseCode := Downloader.DoHttpRequest(url, '', '', VResponseHeader, VResponseData); | |||||
Result := VResponseCode; | |||||
end; | |||||
end; | |||||
var | |||||
BaseUrl: string; | |||||
code: Cardinal; | |||||
z_ok, z_no: integer; | |||||
r: integer; | |||||
begin | |||||
ResultURL := ''; | |||||
z_ok := StrToIntDef(GetBefore(';', ScriptBuffer), 1); // Максимальный масштаб, который точно есть | |||||
z_no := StrToIntDef(GetAfter(';', ScriptBuffer), 25); // Минимальный масштаб, которого точно нет | |||||
// Масштаба нет - говорить не о чем | |||||
if getz >= z_no then exit; | |||||
// Выбор зеркала | |||||
r := random(2); | |||||
case r of | case r of | ||||
0: BaseUrl := GetURLBase; | |||||
1: BaseUrl := RegExprReplaceMatchSubStr(GetURLBase, '91.237.82.95:8088', 'maps.melda.ru'); | |||||
0: BaseUrl := GetURLBase; | |||||
1: BaseUrl := RegExprReplaceMatchSubStr(GetURLBase, '91.237.82.95:8088', 'maps.melda.ru'); | |||||
end; | |||||
// Проверяем наличие масштаба | |||||
if getz > z_ok then begin | |||||
code := GetCode(BaseUrl+'z'+inttostr(getz)+'/'); | |||||
// Внимание! Если сервер вернёт 403 - code почему-то будет 0. Так что выбор "404 или что-то иное" | |||||
// Если дело дошло до проверки наличия масштаба - значит какая-то граница (z_ok / z_no) точно подвинется. | |||||
if code = 404 then z_no := getz else z_ok := getz; | |||||
// Сохраняем актуализированные границы для последующих вызовов | |||||
ScriptBuffer := inttostr(z_ok) + ';' + inttostr(z_no); | |||||
// Масштаба нет (о чём могли только что при проверке узнать) - говорить не о чем | |||||
if getz >= z_no then exit; | |||||
end; | end; | ||||
// Ок, качаем тайлик | |||||
ResultURL:= BaseUrl+'z'+inttostr(getz)+'/'+inttostr(getx div 1024)+'/x'+inttostr(getx)+'/'+inttostr(gety div 1024)+'/y'+inttostr(gety)+'.jpg'; | ResultURL:= BaseUrl+'z'+inttostr(getz)+'/'+inttostr(getx div 1024)+'/x'+inttostr(getx)+'/'+inttostr(gety div 1024)+'/y'+inttostr(gety)+'.jpg'; | ||||
end. | |||||
end. |
@@ -1,3 +1,4 @@ | |||||
[PARAMS] | [PARAMS] | ||||
pnum=139 | pnum=139 | ||||
GUID={7D47D2E6-9410-4181-B2F1-224A4880E698} | GUID={7D47D2E6-9410-4181-B2F1-224A4880E698} | ||||
@@ -17,3 +18,4 @@ sradiusb=6378137 | |||||
separator=1 | separator=1 | ||||
ContentType="image/jpeg" | ContentType="image/jpeg" | ||||
MaxConnectToServerCount=1 | MaxConnectToServerCount=1 | ||||
IsUseDownloaderInScript=1 |
@@ -1,13 +1,52 @@ | |||||
function GetCode(const url: AnsiString): Cardinal; | |||||
var | var | ||||
r: integer; | |||||
BaseUrl: string; | |||||
VResponseCode: Cardinal; | |||||
VResponseHeader, VResponseData: AnsiString; | |||||
begin | begin | ||||
r := random(2); | |||||
Result := 1; | |||||
if Assigned(Downloader) then begin | |||||
VResponseHeader := ''; | |||||
VResponseData := ''; | |||||
VResponseCode := Downloader.DoHttpRequest(url, '', '', VResponseHeader, VResponseData); | |||||
Result := VResponseCode; | |||||
end; | |||||
end; | |||||
var | |||||
BaseUrl: string; | |||||
code: Cardinal; | |||||
z_ok, z_no: integer; | |||||
r: integer; | |||||
begin | |||||
ResultURL := ''; | |||||
z_ok := StrToIntDef(GetBefore(';', ScriptBuffer), 1); // Максимальный масштаб, который точно есть | |||||
z_no := StrToIntDef(GetAfter(';', ScriptBuffer), 25); // Минимальный масштаб, которого точно нет | |||||
// Масштаба нет - говорить не о чем | |||||
if getz >= z_no then exit; | |||||
// Выбор зеркала | |||||
r := random(2); | |||||
case r of | case r of | ||||
0: BaseUrl := GetURLBase; | |||||
1: BaseUrl := RegExprReplaceMatchSubStr(GetURLBase, '91.237.82.95:8088', 'maps.melda.ru'); | |||||
0: BaseUrl := GetURLBase; | |||||
1: BaseUrl := RegExprReplaceMatchSubStr(GetURLBase, '91.237.82.95:8088', 'maps.melda.ru'); | |||||
end; | |||||
// Проверяем наличие масштаба | |||||
if getz > z_ok then begin | |||||
code := GetCode(BaseUrl+'z'+inttostr(getz)+'/'); | |||||
// Внимание! Если сервер вернёт 403 - code почему-то будет 0. Так что выбор "404 или что-то иное" | |||||
// Если дело дошло до проверки наличия масштаба - значит какая-то граница (z_ok / z_no) точно подвинется. | |||||
if code = 404 then z_no := getz else z_ok := getz; | |||||
// Сохраняем актуализированные границы для последующих вызовов | |||||
ScriptBuffer := inttostr(z_ok) + ';' + inttostr(z_no); | |||||
// Масштаба нет (о чём могли только что при проверке узнать) - говорить не о чем | |||||
if getz >= z_no then exit; | |||||
end; | end; | ||||
// Ок, качаем тайлик | |||||
ResultURL:= BaseUrl+'z'+inttostr(getz)+'/'+inttostr(getx div 1024)+'/x'+inttostr(getx)+'/'+inttostr(gety div 1024)+'/y'+inttostr(gety)+'.jpg'; | ResultURL:= BaseUrl+'z'+inttostr(getz)+'/'+inttostr(getx div 1024)+'/x'+inttostr(getx)+'/'+inttostr(gety div 1024)+'/y'+inttostr(gety)+'.jpg'; | ||||
end. | |||||
end. |
@@ -1,3 +1,4 @@ | |||||
[PARAMS] | [PARAMS] | ||||
pnum=17 | pnum=17 | ||||
GUID={03F32FF2-2450-406C-9007-364BA6361DE8} | GUID={03F32FF2-2450-406C-9007-364BA6361DE8} | ||||
@@ -15,3 +16,4 @@ Ext=.jpg | |||||
defaultContentType=image/jpeg | defaultContentType=image/jpeg | ||||
ContentType="image/jpeg" | ContentType="image/jpeg" | ||||
MaxConnectToServerCount=1 | MaxConnectToServerCount=1 | ||||
IsUseDownloaderInScript=1 |
@@ -1,13 +1,52 @@ | |||||
function GetCode(const url: AnsiString): Cardinal; | |||||
var | var | ||||
r: integer; | |||||
BaseUrl: string; | |||||
VResponseCode: Cardinal; | |||||
VResponseHeader, VResponseData: AnsiString; | |||||
begin | begin | ||||
r := random(2); | |||||
Result := 1; | |||||
if Assigned(Downloader) then begin | |||||
VResponseHeader := ''; | |||||
VResponseData := ''; | |||||
VResponseCode := Downloader.DoHttpRequest(url, '', '', VResponseHeader, VResponseData); | |||||
Result := VResponseCode; | |||||
end; | |||||
end; | |||||
var | |||||
BaseUrl: string; | |||||
code: Cardinal; | |||||
z_ok, z_no: integer; | |||||
r: integer; | |||||
begin | |||||
ResultURL := ''; | |||||
z_ok := StrToIntDef(GetBefore(';', ScriptBuffer), 1); // Максимальный масштаб, который точно есть | |||||
z_no := StrToIntDef(GetAfter(';', ScriptBuffer), 25); // Минимальный масштаб, которого точно нет | |||||
// Масштаба нет - говорить не о чем | |||||
if getz >= z_no then exit; | |||||
// Выбор зеркала | |||||
r := random(2); | |||||
case r of | case r of | ||||
0: BaseUrl := GetURLBase; | |||||
1: BaseUrl := RegExprReplaceMatchSubStr(GetURLBase, '91.237.82.95:8088', 'maps.melda.ru'); | |||||
0: BaseUrl := GetURLBase; | |||||
1: BaseUrl := RegExprReplaceMatchSubStr(GetURLBase, '91.237.82.95:8088', 'maps.melda.ru'); | |||||
end; | |||||
// Проверяем наличие масштаба | |||||
if getz > z_ok then begin | |||||
code := GetCode(BaseUrl+'z'+inttostr(getz)+'/'); | |||||
// Внимание! Если сервер вернёт 403 - code почему-то будет 0. Так что выбор "404 или что-то иное" | |||||
// Если дело дошло до проверки наличия масштаба - значит какая-то граница (z_ok / z_no) точно подвинется. | |||||
if code = 404 then z_no := getz else z_ok := getz; | |||||
// Сохраняем актуализированные границы для последующих вызовов | |||||
ScriptBuffer := inttostr(z_ok) + ';' + inttostr(z_no); | |||||
// Масштаба нет (о чём могли только что при проверке узнать) - говорить не о чем | |||||
if getz >= z_no then exit; | |||||
end; | end; | ||||
// Ок, качаем тайлик | |||||
ResultURL:= BaseUrl+'z'+inttostr(getz)+'/'+inttostr(getx div 1024)+'/x'+inttostr(getx)+'/'+inttostr(gety div 1024)+'/y'+inttostr(gety)+'.jpg'; | ResultURL:= BaseUrl+'z'+inttostr(getz)+'/'+inttostr(getx div 1024)+'/x'+inttostr(getx)+'/'+inttostr(gety div 1024)+'/y'+inttostr(gety)+'.jpg'; | ||||
end. | |||||
end. |
@@ -1,3 +1,4 @@ | |||||
[PARAMS] | [PARAMS] | ||||
pnum=17 | pnum=17 | ||||
GUID={9EEAAEC9-C54E-4E34-8ADC-756A7E58EE34} | GUID={9EEAAEC9-C54E-4E34-8ADC-756A7E58EE34} | ||||
@@ -15,3 +16,4 @@ Ext=.jpg | |||||
defaultContentType=image/jpeg | defaultContentType=image/jpeg | ||||
ContentType="image/jpeg" | ContentType="image/jpeg" | ||||
MaxConnectToServerCount=1 | MaxConnectToServerCount=1 | ||||
IsUseDownloaderInScript=1 |
@@ -1,13 +1,52 @@ | |||||
function GetCode(const url: AnsiString): Cardinal; | |||||
var | var | ||||
r: integer; | |||||
BaseUrl: string; | |||||
VResponseCode: Cardinal; | |||||
VResponseHeader, VResponseData: AnsiString; | |||||
begin | begin | ||||
r := random(2); | |||||
Result := 1; | |||||
if Assigned(Downloader) then begin | |||||
VResponseHeader := ''; | |||||
VResponseData := ''; | |||||
VResponseCode := Downloader.DoHttpRequest(url, '', '', VResponseHeader, VResponseData); | |||||
Result := VResponseCode; | |||||
end; | |||||
end; | |||||
var | |||||
BaseUrl: string; | |||||
code: Cardinal; | |||||
z_ok, z_no: integer; | |||||
r: integer; | |||||
begin | |||||
ResultURL := ''; | |||||
z_ok := StrToIntDef(GetBefore(';', ScriptBuffer), 1); // Максимальный масштаб, который точно есть | |||||
z_no := StrToIntDef(GetAfter(';', ScriptBuffer), 25); // Минимальный масштаб, которого точно нет | |||||
// Масштаба нет - говорить не о чем | |||||
if getz >= z_no then exit; | |||||
// Выбор зеркала | |||||
r := random(2); | |||||
case r of | case r of | ||||
0: BaseUrl := GetURLBase; | |||||
1: BaseUrl := RegExprReplaceMatchSubStr(GetURLBase, '91.237.82.95:8088', 'maps.melda.ru'); | |||||
0: BaseUrl := GetURLBase; | |||||
1: BaseUrl := RegExprReplaceMatchSubStr(GetURLBase, '91.237.82.95:8088', 'maps.melda.ru'); | |||||
end; | |||||
// Проверяем наличие масштаба | |||||
if getz > z_ok then begin | |||||
code := GetCode(BaseUrl+'z'+inttostr(getz)+'/'); | |||||
// Внимание! Если сервер вернёт 403 - code почему-то будет 0. Так что выбор "404 или что-то иное" | |||||
// Если дело дошло до проверки наличия масштаба - значит какая-то граница (z_ok / z_no) точно подвинется. | |||||
if code = 404 then z_no := getz else z_ok := getz; | |||||
// Сохраняем актуализированные границы для последующих вызовов | |||||
ScriptBuffer := inttostr(z_ok) + ';' + inttostr(z_no); | |||||
// Масштаба нет (о чём могли только что при проверке узнать) - говорить не о чем | |||||
if getz >= z_no then exit; | |||||
end; | end; | ||||
// Ок, качаем тайлик | |||||
ResultURL:= BaseUrl+'z'+inttostr(getz)+'/'+inttostr(getx div 1024)+'/x'+inttostr(getx)+'/'+inttostr(gety div 1024)+'/y'+inttostr(gety)+'.png'; | ResultURL:= BaseUrl+'z'+inttostr(getz)+'/'+inttostr(getx div 1024)+'/x'+inttostr(getx)+'/'+inttostr(gety div 1024)+'/y'+inttostr(gety)+'.png'; | ||||
end. | |||||
end. |
@@ -1,4 +1,5 @@ | |||||
[PARAMS] | |||||
| |||||
[PARAMS] | |||||
pnum=17 | pnum=17 | ||||
GUID={75F48FFC-0895-4218-968B-9B248DEC4C2C} | GUID={75F48FFC-0895-4218-968B-9B248DEC4C2C} | ||||
name_ru=Хребтовка Катунского, Чуйских хребтов (Алтай) | name_ru=Хребтовка Катунского, Чуйских хребтов (Алтай) | ||||
@@ -13,4 +14,4 @@ NameInCache=altay_katun_chui | |||||
Ext=.png | Ext=.png | ||||
ContentType="image/png" | ContentType="image/png" | ||||
MaxConnectToServerCount=1 | MaxConnectToServerCount=1 | ||||
IsUseDownloaderInScript=1 |
@@ -1,13 +1,52 @@ | |||||
function GetCode(const url: AnsiString): Cardinal; | |||||
var | var | ||||
r: integer; | |||||
BaseUrl: string; | |||||
VResponseCode: Cardinal; | |||||
VResponseHeader, VResponseData: AnsiString; | |||||
begin | begin | ||||
r := random(2); | |||||
Result := 1; | |||||
if Assigned(Downloader) then begin | |||||
VResponseHeader := ''; | |||||
VResponseData := ''; | |||||
VResponseCode := Downloader.DoHttpRequest(url, '', '', VResponseHeader, VResponseData); | |||||
Result := VResponseCode; | |||||
end; | |||||
end; | |||||
var | |||||
BaseUrl: string; | |||||
code: Cardinal; | |||||
z_ok, z_no: integer; | |||||
r: integer; | |||||
begin | |||||
ResultURL := ''; | |||||
z_ok := StrToIntDef(GetBefore(';', ScriptBuffer), 1); // Максимальный масштаб, который точно есть | |||||
z_no := StrToIntDef(GetAfter(';', ScriptBuffer), 25); // Минимальный масштаб, которого точно нет | |||||
// Масштаба нет - говорить не о чем | |||||
if getz >= z_no then exit; | |||||
// Выбор зеркала | |||||
r := random(2); | |||||
case r of | case r of | ||||
0: BaseUrl := GetURLBase; | |||||
1: BaseUrl := RegExprReplaceMatchSubStr(GetURLBase, '91.237.82.95:8088', 'maps.melda.ru'); | |||||
0: BaseUrl := GetURLBase; | |||||
1: BaseUrl := RegExprReplaceMatchSubStr(GetURLBase, '91.237.82.95:8088', 'maps.melda.ru'); | |||||
end; | |||||
// Проверяем наличие масштаба | |||||
if getz > z_ok then begin | |||||
code := GetCode(BaseUrl+'z'+inttostr(getz)+'/'); | |||||
// Внимание! Если сервер вернёт 403 - code почему-то будет 0. Так что выбор "404 или что-то иное" | |||||
// Если дело дошло до проверки наличия масштаба - значит какая-то граница (z_ok / z_no) точно подвинется. | |||||
if code = 404 then z_no := getz else z_ok := getz; | |||||
// Сохраняем актуализированные границы для последующих вызовов | |||||
ScriptBuffer := inttostr(z_ok) + ';' + inttostr(z_no); | |||||
// Масштаба нет (о чём могли только что при проверке узнать) - говорить не о чем | |||||
if getz >= z_no then exit; | |||||
end; | end; | ||||
// Ок, качаем тайлик | |||||
ResultURL:= BaseUrl+'z'+inttostr(getz)+'/'+inttostr(getx div 1024)+'/x'+inttostr(getx)+'/'+inttostr(gety div 1024)+'/y'+inttostr(gety)+'.jpg'; | ResultURL:= BaseUrl+'z'+inttostr(getz)+'/'+inttostr(getx div 1024)+'/x'+inttostr(getx)+'/'+inttostr(gety div 1024)+'/y'+inttostr(gety)+'.jpg'; | ||||
end. | |||||
end. |
@@ -1,3 +1,4 @@ | |||||
[PARAMS] | [PARAMS] | ||||
pnum=17 | pnum=17 | ||||
GUID={3601390A-9421-4C60-B4D6-109E2F190FC5} | GUID={3601390A-9421-4C60-B4D6-109E2F190FC5} | ||||
@@ -16,3 +17,4 @@ License= | |||||
defaultContentType=image/jpeg | defaultContentType=image/jpeg | ||||
ContentType="image/jpeg" | ContentType="image/jpeg" | ||||
MaxConnectToServerCount=1 | MaxConnectToServerCount=1 | ||||
IsUseDownloaderInScript=1 |
@@ -1,13 +1,52 @@ | |||||
function GetCode(const url: AnsiString): Cardinal; | |||||
var | var | ||||
r: integer; | |||||
BaseUrl: string; | |||||
VResponseCode: Cardinal; | |||||
VResponseHeader, VResponseData: AnsiString; | |||||
begin | begin | ||||
r := random(2); | |||||
Result := 1; | |||||
if Assigned(Downloader) then begin | |||||
VResponseHeader := ''; | |||||
VResponseData := ''; | |||||
VResponseCode := Downloader.DoHttpRequest(url, '', '', VResponseHeader, VResponseData); | |||||
Result := VResponseCode; | |||||
end; | |||||
end; | |||||
var | |||||
BaseUrl: string; | |||||
code: Cardinal; | |||||
z_ok, z_no: integer; | |||||
r: integer; | |||||
begin | |||||
ResultURL := ''; | |||||
z_ok := StrToIntDef(GetBefore(';', ScriptBuffer), 1); // Максимальный масштаб, который точно есть | |||||
z_no := StrToIntDef(GetAfter(';', ScriptBuffer), 25); // Минимальный масштаб, которого точно нет | |||||
// Масштаба нет - говорить не о чем | |||||
if getz >= z_no then exit; | |||||
// Выбор зеркала | |||||
r := random(2); | |||||
case r of | case r of | ||||
0: BaseUrl := GetURLBase; | |||||
1: BaseUrl := RegExprReplaceMatchSubStr(GetURLBase, '91.237.82.95:8088', 'maps.melda.ru'); | |||||
0: BaseUrl := GetURLBase; | |||||
1: BaseUrl := RegExprReplaceMatchSubStr(GetURLBase, '91.237.82.95:8088', 'maps.melda.ru'); | |||||
end; | |||||
// Проверяем наличие масштаба | |||||
if getz > z_ok then begin | |||||
code := GetCode(BaseUrl+'z'+inttostr(getz)+'/'); | |||||
// Внимание! Если сервер вернёт 403 - code почему-то будет 0. Так что выбор "404 или что-то иное" | |||||
// Если дело дошло до проверки наличия масштаба - значит какая-то граница (z_ok / z_no) точно подвинется. | |||||
if code = 404 then z_no := getz else z_ok := getz; | |||||
// Сохраняем актуализированные границы для последующих вызовов | |||||
ScriptBuffer := inttostr(z_ok) + ';' + inttostr(z_no); | |||||
// Масштаба нет (о чём могли только что при проверке узнать) - говорить не о чем | |||||
if getz >= z_no then exit; | |||||
end; | end; | ||||
// Ок, качаем тайлик | |||||
ResultURL:= BaseUrl+'z'+inttostr(getz)+'/'+inttostr(getx div 1024)+'/x'+inttostr(getx)+'/'+inttostr(gety div 1024)+'/y'+inttostr(gety)+'.jpg'; | ResultURL:= BaseUrl+'z'+inttostr(getz)+'/'+inttostr(getx div 1024)+'/x'+inttostr(getx)+'/'+inttostr(gety div 1024)+'/y'+inttostr(gety)+'.jpg'; | ||||
end. | |||||
end. |
@@ -1,3 +1,4 @@ | |||||
[PARAMS] | [PARAMS] | ||||
pnum=17 | pnum=17 | ||||
GUID={F198EF43-EA9D-4C32-B76A-64A8C7A508F8} | GUID={F198EF43-EA9D-4C32-B76A-64A8C7A508F8} | ||||
@@ -15,3 +16,4 @@ Ext=.jpg | |||||
defaultContentType=image/jpeg | defaultContentType=image/jpeg | ||||
ContentType="image/jpeg" | ContentType="image/jpeg" | ||||
MaxConnectToServerCount=1 | MaxConnectToServerCount=1 | ||||
IsUseDownloaderInScript=1 |
@@ -1,13 +1,52 @@ | |||||
function GetCode(const url: AnsiString): Cardinal; | |||||
var | var | ||||
r: integer; | |||||
BaseUrl: string; | |||||
VResponseCode: Cardinal; | |||||
VResponseHeader, VResponseData: AnsiString; | |||||
begin | begin | ||||
r := random(2); | |||||
Result := 1; | |||||
if Assigned(Downloader) then begin | |||||
VResponseHeader := ''; | |||||
VResponseData := ''; | |||||
VResponseCode := Downloader.DoHttpRequest(url, '', '', VResponseHeader, VResponseData); | |||||
Result := VResponseCode; | |||||
end; | |||||
end; | |||||
var | |||||
BaseUrl: string; | |||||
code: Cardinal; | |||||
z_ok, z_no: integer; | |||||
r: integer; | |||||
begin | |||||
ResultURL := ''; | |||||
z_ok := StrToIntDef(GetBefore(';', ScriptBuffer), 1); // Максимальный масштаб, который точно есть | |||||
z_no := StrToIntDef(GetAfter(';', ScriptBuffer), 25); // Минимальный масштаб, которого точно нет | |||||
// Масштаба нет - говорить не о чем | |||||
if getz >= z_no then exit; | |||||
// Выбор зеркала | |||||
r := random(2); | |||||
case r of | case r of | ||||
0: BaseUrl := GetURLBase; | |||||
1: BaseUrl := RegExprReplaceMatchSubStr(GetURLBase, '91.237.82.95:8088', 'maps.melda.ru'); | |||||
0: BaseUrl := GetURLBase; | |||||
1: BaseUrl := RegExprReplaceMatchSubStr(GetURLBase, '91.237.82.95:8088', 'maps.melda.ru'); | |||||
end; | |||||
// Проверяем наличие масштаба | |||||
if getz > z_ok then begin | |||||
code := GetCode(BaseUrl+'z'+inttostr(getz)+'/'); | |||||
// Внимание! Если сервер вернёт 403 - code почему-то будет 0. Так что выбор "404 или что-то иное" | |||||
// Если дело дошло до проверки наличия масштаба - значит какая-то граница (z_ok / z_no) точно подвинется. | |||||
if code = 404 then z_no := getz else z_ok := getz; | |||||
// Сохраняем актуализированные границы для последующих вызовов | |||||
ScriptBuffer := inttostr(z_ok) + ';' + inttostr(z_no); | |||||
// Масштаба нет (о чём могли только что при проверке узнать) - говорить не о чем | |||||
if getz >= z_no then exit; | |||||
end; | end; | ||||
// Ок, качаем тайлик | |||||
ResultURL:= BaseUrl+'z'+inttostr(getz)+'/'+inttostr(getx div 1024)+'/x'+inttostr(getx)+'/'+inttostr(gety div 1024)+'/y'+inttostr(gety)+'.jpg'; | ResultURL:= BaseUrl+'z'+inttostr(getz)+'/'+inttostr(getx div 1024)+'/x'+inttostr(getx)+'/'+inttostr(gety div 1024)+'/y'+inttostr(gety)+'.jpg'; | ||||
end. | |||||
end. |
@@ -1,3 +1,4 @@ | |||||
[PARAMS] | [PARAMS] | ||||
pnum=17 | pnum=17 | ||||
GUID={A85C68EA-4C12-4072-A4AB-1353A489F304} | GUID={A85C68EA-4C12-4072-A4AB-1353A489F304} | ||||
@@ -15,3 +16,4 @@ Ext=.jpg | |||||
defaultContentType=image/jpeg | defaultContentType=image/jpeg | ||||
ContentType="image/jpeg" | ContentType="image/jpeg" | ||||
MaxConnectToServerCount=1 | MaxConnectToServerCount=1 | ||||
IsUseDownloaderInScript=1 |
@@ -1,13 +1,52 @@ | |||||
function GetCode(const url: AnsiString): Cardinal; | |||||
var | var | ||||
r: integer; | |||||
BaseUrl: string; | |||||
VResponseCode: Cardinal; | |||||
VResponseHeader, VResponseData: AnsiString; | |||||
begin | begin | ||||
r := random(2); | |||||
Result := 1; | |||||
if Assigned(Downloader) then begin | |||||
VResponseHeader := ''; | |||||
VResponseData := ''; | |||||
VResponseCode := Downloader.DoHttpRequest(url, '', '', VResponseHeader, VResponseData); | |||||
Result := VResponseCode; | |||||
end; | |||||
end; | |||||
var | |||||
BaseUrl: string; | |||||
code: Cardinal; | |||||
z_ok, z_no: integer; | |||||
r: integer; | |||||
begin | |||||
ResultURL := ''; | |||||
z_ok := StrToIntDef(GetBefore(';', ScriptBuffer), 1); // Максимальный масштаб, который точно есть | |||||
z_no := StrToIntDef(GetAfter(';', ScriptBuffer), 25); // Минимальный масштаб, которого точно нет | |||||
// Масштаба нет - говорить не о чем | |||||
if getz >= z_no then exit; | |||||
// Выбор зеркала | |||||
r := random(2); | |||||
case r of | case r of | ||||
0: BaseUrl := GetURLBase; | |||||
1: BaseUrl := RegExprReplaceMatchSubStr(GetURLBase, '91.237.82.95:8088', 'maps.melda.ru'); | |||||
0: BaseUrl := GetURLBase; | |||||
1: BaseUrl := RegExprReplaceMatchSubStr(GetURLBase, '91.237.82.95:8088', 'maps.melda.ru'); | |||||
end; | |||||
// Проверяем наличие масштаба | |||||
if getz > z_ok then begin | |||||
code := GetCode(BaseUrl+'z'+inttostr(getz)+'/'); | |||||
// Внимание! Если сервер вернёт 403 - code почему-то будет 0. Так что выбор "404 или что-то иное" | |||||
// Если дело дошло до проверки наличия масштаба - значит какая-то граница (z_ok / z_no) точно подвинется. | |||||
if code = 404 then z_no := getz else z_ok := getz; | |||||
// Сохраняем актуализированные границы для последующих вызовов | |||||
ScriptBuffer := inttostr(z_ok) + ';' + inttostr(z_no); | |||||
// Масштаба нет (о чём могли только что при проверке узнать) - говорить не о чем | |||||
if getz >= z_no then exit; | |||||
end; | end; | ||||
// Ок, качаем тайлик | |||||
ResultURL:= BaseUrl+'z'+inttostr(getz)+'/'+inttostr(getx div 1024)+'/x'+inttostr(getx)+'/'+inttostr(gety div 1024)+'/y'+inttostr(gety)+'.jpg'; | ResultURL:= BaseUrl+'z'+inttostr(getz)+'/'+inttostr(getx div 1024)+'/x'+inttostr(getx)+'/'+inttostr(gety div 1024)+'/y'+inttostr(gety)+'.jpg'; | ||||
end. | |||||
end. |
@@ -1,3 +1,4 @@ | |||||
[PARAMS] | [PARAMS] | ||||
pnum=17 | pnum=17 | ||||
GUID={F923688D-2C5B-4B30-A080-941AB3253EFA} | GUID={F923688D-2C5B-4B30-A080-941AB3253EFA} | ||||
@@ -14,4 +15,5 @@ Ext=.jpg | |||||
defaultContentType=image/jpeg | defaultContentType=image/jpeg | ||||
ContentType="image/jpeg" | ContentType="image/jpeg" | ||||
MaxConnectToServerCount=1 | MaxConnectToServerCount=1 | ||||
License=(c) Øèøêèí Ñåðãåé. shandl.ru | |||||
License=(c) Øèøêèí Ñåðãåé. shandl.ru | |||||
IsUseDownloaderInScript=1 |
@@ -1,13 +1,52 @@ | |||||
function GetCode(const url: AnsiString): Cardinal; | |||||
var | var | ||||
r: integer; | |||||
BaseUrl: string; | |||||
VResponseCode: Cardinal; | |||||
VResponseHeader, VResponseData: AnsiString; | |||||
begin | begin | ||||
r := random(2); | |||||
Result := 1; | |||||
if Assigned(Downloader) then begin | |||||
VResponseHeader := ''; | |||||
VResponseData := ''; | |||||
VResponseCode := Downloader.DoHttpRequest(url, '', '', VResponseHeader, VResponseData); | |||||
Result := VResponseCode; | |||||
end; | |||||
end; | |||||
var | |||||
BaseUrl: string; | |||||
code: Cardinal; | |||||
z_ok, z_no: integer; | |||||
r: integer; | |||||
begin | |||||
ResultURL := ''; | |||||
z_ok := StrToIntDef(GetBefore(';', ScriptBuffer), 1); // Максимальный масштаб, который точно есть | |||||
z_no := StrToIntDef(GetAfter(';', ScriptBuffer), 25); // Минимальный масштаб, которого точно нет | |||||
// Масштаба нет - говорить не о чем | |||||
if getz >= z_no then exit; | |||||
// Выбор зеркала | |||||
r := random(2); | |||||
case r of | case r of | ||||
0: BaseUrl := GetURLBase; | |||||
1: BaseUrl := RegExprReplaceMatchSubStr(GetURLBase, '91.237.82.95:8088', 'maps.melda.ru'); | |||||
0: BaseUrl := GetURLBase; | |||||
1: BaseUrl := RegExprReplaceMatchSubStr(GetURLBase, '91.237.82.95:8088', 'maps.melda.ru'); | |||||
end; | |||||
// Проверяем наличие масштаба | |||||
if getz > z_ok then begin | |||||
code := GetCode(BaseUrl+'z'+inttostr(getz)+'/'); | |||||
// Внимание! Если сервер вернёт 403 - code почему-то будет 0. Так что выбор "404 или что-то иное" | |||||
// Если дело дошло до проверки наличия масштаба - значит какая-то граница (z_ok / z_no) точно подвинется. | |||||
if code = 404 then z_no := getz else z_ok := getz; | |||||
// Сохраняем актуализированные границы для последующих вызовов | |||||
ScriptBuffer := inttostr(z_ok) + ';' + inttostr(z_no); | |||||
// Масштаба нет (о чём могли только что при проверке узнать) - говорить не о чем | |||||
if getz >= z_no then exit; | |||||
end; | end; | ||||
// Ок, качаем тайлик | |||||
ResultURL:= BaseUrl+'z'+inttostr(getz)+'/'+inttostr(getx div 1024)+'/x'+inttostr(getx)+'/'+inttostr(gety div 1024)+'/y'+inttostr(gety)+'.jpg'; | ResultURL:= BaseUrl+'z'+inttostr(getz)+'/'+inttostr(getx div 1024)+'/x'+inttostr(getx)+'/'+inttostr(gety div 1024)+'/y'+inttostr(gety)+'.jpg'; | ||||
end. | |||||
end. |
@@ -1,3 +1,4 @@ | |||||
[PARAMS] | [PARAMS] | ||||
pnum=17 | pnum=17 | ||||
GUID={4A3A2F8B-DC7D-494B-819C-C0BBDAF80CEA} | GUID={4A3A2F8B-DC7D-494B-819C-C0BBDAF80CEA} | ||||
@@ -14,3 +15,4 @@ Ext=.jpg | |||||
defaultContentType=image/jpeg | defaultContentType=image/jpeg | ||||
ContentType="image/jpeg" | ContentType="image/jpeg" | ||||
MaxConnectToServerCount=1 | MaxConnectToServerCount=1 | ||||
IsUseDownloaderInScript=1 |
@@ -1,13 +1,52 @@ | |||||
function GetCode(const url: AnsiString): Cardinal; | |||||
var | var | ||||
r: integer; | |||||
BaseUrl: string; | |||||
VResponseCode: Cardinal; | |||||
VResponseHeader, VResponseData: AnsiString; | |||||
begin | begin | ||||
r := random(2); | |||||
Result := 1; | |||||
if Assigned(Downloader) then begin | |||||
VResponseHeader := ''; | |||||
VResponseData := ''; | |||||
VResponseCode := Downloader.DoHttpRequest(url, '', '', VResponseHeader, VResponseData); | |||||
Result := VResponseCode; | |||||
end; | |||||
end; | |||||
var | |||||
BaseUrl: string; | |||||
code: Cardinal; | |||||
z_ok, z_no: integer; | |||||
r: integer; | |||||
begin | |||||
ResultURL := ''; | |||||
z_ok := StrToIntDef(GetBefore(';', ScriptBuffer), 1); // Максимальный масштаб, который точно есть | |||||
z_no := StrToIntDef(GetAfter(';', ScriptBuffer), 25); // Минимальный масштаб, которого точно нет | |||||
// Масштаба нет - говорить не о чем | |||||
if getz >= z_no then exit; | |||||
// Выбор зеркала | |||||
r := random(2); | |||||
case r of | case r of | ||||
0: BaseUrl := GetURLBase; | |||||
1: BaseUrl := RegExprReplaceMatchSubStr(GetURLBase, '91.237.82.95:8088', 'maps.melda.ru'); | |||||
0: BaseUrl := GetURLBase; | |||||
1: BaseUrl := RegExprReplaceMatchSubStr(GetURLBase, '91.237.82.95:8088', 'maps.melda.ru'); | |||||
end; | |||||
// Проверяем наличие масштаба | |||||
if getz > z_ok then begin | |||||
code := GetCode(BaseUrl+'z'+inttostr(getz)+'/'); | |||||
// Внимание! Если сервер вернёт 403 - code почему-то будет 0. Так что выбор "404 или что-то иное" | |||||
// Если дело дошло до проверки наличия масштаба - значит какая-то граница (z_ok / z_no) точно подвинется. | |||||
if code = 404 then z_no := getz else z_ok := getz; | |||||
// Сохраняем актуализированные границы для последующих вызовов | |||||
ScriptBuffer := inttostr(z_ok) + ';' + inttostr(z_no); | |||||
// Масштаба нет (о чём могли только что при проверке узнать) - говорить не о чем | |||||
if getz >= z_no then exit; | |||||
end; | end; | ||||
// Ок, качаем тайлик | |||||
ResultURL:= BaseUrl+'z'+inttostr(getz)+'/'+inttostr(getx div 1024)+'/x'+inttostr(getx)+'/'+inttostr(gety div 1024)+'/y'+inttostr(gety)+'.jpg'; | ResultURL:= BaseUrl+'z'+inttostr(getz)+'/'+inttostr(getx div 1024)+'/x'+inttostr(getx)+'/'+inttostr(gety div 1024)+'/y'+inttostr(gety)+'.jpg'; | ||||
end. | |||||
end. |
@@ -1,3 +1,4 @@ | |||||
[PARAMS] | [PARAMS] | ||||
pnum=17 | pnum=17 | ||||
GUID={EC131932-0BC8-43BD-BBE6-30D0B230794F} | GUID={EC131932-0BC8-43BD-BBE6-30D0B230794F} | ||||
@@ -14,3 +15,4 @@ Ext=.jpg | |||||
defaultContentType=image/jpeg | defaultContentType=image/jpeg | ||||
ContentType="image/jpeg" | ContentType="image/jpeg" | ||||
MaxConnectToServerCount=1 | MaxConnectToServerCount=1 | ||||
IsUseDownloaderInScript=1 |
@@ -1,13 +1,52 @@ | |||||
function GetCode(const url: AnsiString): Cardinal; | |||||
var | var | ||||
r: integer; | |||||
BaseUrl: string; | |||||
VResponseCode: Cardinal; | |||||
VResponseHeader, VResponseData: AnsiString; | |||||
begin | begin | ||||
r := random(2); | |||||
Result := 1; | |||||
if Assigned(Downloader) then begin | |||||
VResponseHeader := ''; | |||||
VResponseData := ''; | |||||
VResponseCode := Downloader.DoHttpRequest(url, '', '', VResponseHeader, VResponseData); | |||||
Result := VResponseCode; | |||||
end; | |||||
end; | |||||
var | |||||
BaseUrl: string; | |||||
code: Cardinal; | |||||
z_ok, z_no: integer; | |||||
r: integer; | |||||
begin | |||||
ResultURL := ''; | |||||
z_ok := StrToIntDef(GetBefore(';', ScriptBuffer), 1); // Максимальный масштаб, который точно есть | |||||
z_no := StrToIntDef(GetAfter(';', ScriptBuffer), 25); // Минимальный масштаб, которого точно нет | |||||
// Масштаба нет - говорить не о чем | |||||
if getz >= z_no then exit; | |||||
// Выбор зеркала | |||||
r := random(2); | |||||
case r of | case r of | ||||
0: BaseUrl := GetURLBase; | |||||
1: BaseUrl := RegExprReplaceMatchSubStr(GetURLBase, '91.237.82.95:8088', 'maps.melda.ru'); | |||||
0: BaseUrl := GetURLBase; | |||||
1: BaseUrl := RegExprReplaceMatchSubStr(GetURLBase, '91.237.82.95:8088', 'maps.melda.ru'); | |||||
end; | |||||
// Проверяем наличие масштаба | |||||
if getz > z_ok then begin | |||||
code := GetCode(BaseUrl+'z'+inttostr(getz)+'/'); | |||||
// Внимание! Если сервер вернёт 403 - code почему-то будет 0. Так что выбор "404 или что-то иное" | |||||
// Если дело дошло до проверки наличия масштаба - значит какая-то граница (z_ok / z_no) точно подвинется. | |||||
if code = 404 then z_no := getz else z_ok := getz; | |||||
// Сохраняем актуализированные границы для последующих вызовов | |||||
ScriptBuffer := inttostr(z_ok) + ';' + inttostr(z_no); | |||||
// Масштаба нет (о чём могли только что при проверке узнать) - говорить не о чем | |||||
if getz >= z_no then exit; | |||||
end; | end; | ||||
// Ок, качаем тайлик | |||||
ResultURL:= BaseUrl+'z'+inttostr(getz)+'/'+inttostr(getx div 1024)+'/x'+inttostr(getx)+'/'+inttostr(gety div 1024)+'/y'+inttostr(gety)+'.jpg'; | ResultURL:= BaseUrl+'z'+inttostr(getz)+'/'+inttostr(getx div 1024)+'/x'+inttostr(getx)+'/'+inttostr(gety div 1024)+'/y'+inttostr(gety)+'.jpg'; | ||||
end. | |||||
end. |
@@ -1,4 +1,5 @@ | |||||
[PARAMS] | |||||
| |||||
[PARAMS] | |||||
pnum=17 | pnum=17 | ||||
GUID={BB99C55C-4B99-43AB-B585-0F6246D8FB0A} | GUID={BB99C55C-4B99-43AB-B585-0F6246D8FB0A} | ||||
name_ru=Хибинские и Ловоозерские тундры | name_ru=Хибинские и Ловоозерские тундры | ||||
@@ -13,3 +14,4 @@ NameInCache=hibin1lp | |||||
Ext=.jpg | Ext=.jpg | ||||
ContentType="image/jpeg" | ContentType="image/jpeg" | ||||
MaxConnectToServerCount=1 | MaxConnectToServerCount=1 | ||||
IsUseDownloaderInScript=1 |
@@ -1,13 +1,52 @@ | |||||
function GetCode(const url: AnsiString): Cardinal; | |||||
var | var | ||||
r: integer; | |||||
BaseUrl: string; | |||||
VResponseCode: Cardinal; | |||||
VResponseHeader, VResponseData: AnsiString; | |||||
begin | begin | ||||
r := random(2); | |||||
Result := 1; | |||||
if Assigned(Downloader) then begin | |||||
VResponseHeader := ''; | |||||
VResponseData := ''; | |||||
VResponseCode := Downloader.DoHttpRequest(url, '', '', VResponseHeader, VResponseData); | |||||
Result := VResponseCode; | |||||
end; | |||||
end; | |||||
var | |||||
BaseUrl: string; | |||||
code: Cardinal; | |||||
z_ok, z_no: integer; | |||||
r: integer; | |||||
begin | |||||
ResultURL := ''; | |||||
z_ok := StrToIntDef(GetBefore(';', ScriptBuffer), 1); // Максимальный масштаб, который точно есть | |||||
z_no := StrToIntDef(GetAfter(';', ScriptBuffer), 25); // Минимальный масштаб, которого точно нет | |||||
// Масштаба нет - говорить не о чем | |||||
if getz >= z_no then exit; | |||||
// Выбор зеркала | |||||
r := random(2); | |||||
case r of | case r of | ||||
0: BaseUrl := GetURLBase; | |||||
1: BaseUrl := RegExprReplaceMatchSubStr(GetURLBase, '91.237.82.95:8088', 'maps.melda.ru'); | |||||
0: BaseUrl := GetURLBase; | |||||
1: BaseUrl := RegExprReplaceMatchSubStr(GetURLBase, '91.237.82.95:8088', 'maps.melda.ru'); | |||||
end; | |||||
// Проверяем наличие масштаба | |||||
if getz > z_ok then begin | |||||
code := GetCode(BaseUrl+'z'+inttostr(getz)+'/'); | |||||
// Внимание! Если сервер вернёт 403 - code почему-то будет 0. Так что выбор "404 или что-то иное" | |||||
// Если дело дошло до проверки наличия масштаба - значит какая-то граница (z_ok / z_no) точно подвинется. | |||||
if code = 404 then z_no := getz else z_ok := getz; | |||||
// Сохраняем актуализированные границы для последующих вызовов | |||||
ScriptBuffer := inttostr(z_ok) + ';' + inttostr(z_no); | |||||
// Масштаба нет (о чём могли только что при проверке узнать) - говорить не о чем | |||||
if getz >= z_no then exit; | |||||
end; | end; | ||||
// Ок, качаем тайлик | |||||
ResultURL:= BaseUrl+'z'+inttostr(getz)+'/'+inttostr(getx div 1024)+'/x'+inttostr(getx)+'/'+inttostr(gety div 1024)+'/y'+inttostr(gety)+'.png'; | ResultURL:= BaseUrl+'z'+inttostr(getz)+'/'+inttostr(getx div 1024)+'/x'+inttostr(getx)+'/'+inttostr(gety div 1024)+'/y'+inttostr(gety)+'.png'; | ||||
end. | |||||
end. |
@@ -1,4 +1,5 @@ | |||||
[PARAMS] | |||||
| |||||
[PARAMS] | |||||
pnum=17 | pnum=17 | ||||
GUID={172A6A22-BE07-4D08-B120-737FE2613B28} | GUID={172A6A22-BE07-4D08-B120-737FE2613B28} | ||||
name_ru=Горы Хибинские тундры | name_ru=Горы Хибинские тундры | ||||
@@ -13,4 +14,4 @@ NameInCache=hibin2lvch | |||||
Ext=.png | Ext=.png | ||||
ContentType="image/png" | ContentType="image/png" | ||||
MaxConnectToServerCount=1 | MaxConnectToServerCount=1 | ||||
IsUseDownloaderInScript=1 |
@@ -1,13 +1,52 @@ | |||||
function GetCode(const url: AnsiString): Cardinal; | |||||
var | var | ||||
r: integer; | |||||
BaseUrl: string; | |||||
VResponseCode: Cardinal; | |||||
VResponseHeader, VResponseData: AnsiString; | |||||
begin | begin | ||||
r := random(2); | |||||
Result := 1; | |||||
if Assigned(Downloader) then begin | |||||
VResponseHeader := ''; | |||||
VResponseData := ''; | |||||
VResponseCode := Downloader.DoHttpRequest(url, '', '', VResponseHeader, VResponseData); | |||||
Result := VResponseCode; | |||||
end; | |||||
end; | |||||
var | |||||
BaseUrl: string; | |||||
code: Cardinal; | |||||
z_ok, z_no: integer; | |||||
r: integer; | |||||
begin | |||||
ResultURL := ''; | |||||
z_ok := StrToIntDef(GetBefore(';', ScriptBuffer), 1); // Максимальный масштаб, который точно есть | |||||
z_no := StrToIntDef(GetAfter(';', ScriptBuffer), 25); // Минимальный масштаб, которого точно нет | |||||
// Масштаба нет - говорить не о чем | |||||
if getz >= z_no then exit; | |||||
// Выбор зеркала | |||||
r := random(2); | |||||
case r of | case r of | ||||
0: BaseUrl := GetURLBase; | |||||
1: BaseUrl := RegExprReplaceMatchSubStr(GetURLBase, '91.237.82.95:8088', 'maps.melda.ru'); | |||||
0: BaseUrl := GetURLBase; | |||||
1: BaseUrl := RegExprReplaceMatchSubStr(GetURLBase, '91.237.82.95:8088', 'maps.melda.ru'); | |||||
end; | |||||
// Проверяем наличие масштаба | |||||
if getz > z_ok then begin | |||||
code := GetCode(BaseUrl+'z'+inttostr(getz)+'/'); | |||||
// Внимание! Если сервер вернёт 403 - code почему-то будет 0. Так что выбор "404 или что-то иное" | |||||
// Если дело дошло до проверки наличия масштаба - значит какая-то граница (z_ok / z_no) точно подвинется. | |||||
if code = 404 then z_no := getz else z_ok := getz; | |||||
// Сохраняем актуализированные границы для последующих вызовов | |||||
ScriptBuffer := inttostr(z_ok) + ';' + inttostr(z_no); | |||||
// Масштаба нет (о чём могли только что при проверке узнать) - говорить не о чем | |||||
if getz >= z_no then exit; | |||||
end; | end; | ||||
// Ок, качаем тайлик | |||||
ResultURL:= BaseUrl+'z'+inttostr(getz)+'/'+inttostr(getx div 1024)+'/x'+inttostr(getx)+'/'+inttostr(gety div 1024)+'/y'+inttostr(gety)+'.jpg'; | ResultURL:= BaseUrl+'z'+inttostr(getz)+'/'+inttostr(getx div 1024)+'/x'+inttostr(getx)+'/'+inttostr(gety div 1024)+'/y'+inttostr(gety)+'.jpg'; | ||||
end. | |||||
end. |
@@ -1,4 +1,5 @@ | |||||
[PARAMS] | |||||
| |||||
[PARAMS] | |||||
pnum=17 | pnum=17 | ||||
GUID={671CDF7B-BF4C-4679-B2B2-77AE1914A7D0} | GUID={671CDF7B-BF4C-4679-B2B2-77AE1914A7D0} | ||||
name_ru=Хибинские и Ловоозерские тундры 2008 | name_ru=Хибинские и Ловоозерские тундры 2008 | ||||
@@ -13,3 +14,4 @@ NameInCache=hibin4ae | |||||
Ext=.jpg | Ext=.jpg | ||||
ContentType="image/jpeg" | ContentType="image/jpeg" | ||||
MaxConnectToServerCount=1 | MaxConnectToServerCount=1 | ||||
IsUseDownloaderInScript=1 |
@@ -1,13 +1,52 @@ | |||||
function GetCode(const url: AnsiString): Cardinal; | |||||
var | var | ||||
r: integer; | |||||
BaseUrl: string; | |||||
VResponseCode: Cardinal; | |||||
VResponseHeader, VResponseData: AnsiString; | |||||
begin | begin | ||||
r := random(2); | |||||
Result := 1; | |||||
if Assigned(Downloader) then begin | |||||
VResponseHeader := ''; | |||||
VResponseData := ''; | |||||
VResponseCode := Downloader.DoHttpRequest(url, '', '', VResponseHeader, VResponseData); | |||||
Result := VResponseCode; | |||||
end; | |||||
end; | |||||
var | |||||
BaseUrl: string; | |||||
code: Cardinal; | |||||
z_ok, z_no: integer; | |||||
r: integer; | |||||
begin | |||||
ResultURL := ''; | |||||
z_ok := StrToIntDef(GetBefore(';', ScriptBuffer), 1); // Максимальный масштаб, который точно есть | |||||
z_no := StrToIntDef(GetAfter(';', ScriptBuffer), 25); // Минимальный масштаб, которого точно нет | |||||
// Масштаба нет - говорить не о чем | |||||
if getz >= z_no then exit; | |||||
// Выбор зеркала | |||||
r := random(2); | |||||
case r of | case r of | ||||
0: BaseUrl := GetURLBase; | |||||
1: BaseUrl := RegExprReplaceMatchSubStr(GetURLBase, '91.237.82.95:8088', 'maps.melda.ru'); | |||||
0: BaseUrl := GetURLBase; | |||||
1: BaseUrl := RegExprReplaceMatchSubStr(GetURLBase, '91.237.82.95:8088', 'maps.melda.ru'); | |||||
end; | |||||
// Проверяем наличие масштаба | |||||
if getz > z_ok then begin | |||||
code := GetCode(BaseUrl+'z'+inttostr(getz)+'/'); | |||||
// Внимание! Если сервер вернёт 403 - code почему-то будет 0. Так что выбор "404 или что-то иное" | |||||
// Если дело дошло до проверки наличия масштаба - значит какая-то граница (z_ok / z_no) точно подвинется. | |||||
if code = 404 then z_no := getz else z_ok := getz; | |||||
// Сохраняем актуализированные границы для последующих вызовов | |||||
ScriptBuffer := inttostr(z_ok) + ';' + inttostr(z_no); | |||||
// Масштаба нет (о чём могли только что при проверке узнать) - говорить не о чем | |||||
if getz >= z_no then exit; | |||||
end; | end; | ||||
// Ок, качаем тайлик | |||||
ResultURL:= BaseUrl+'z'+inttostr(getz)+'/'+inttostr(getx div 1024)+'/x'+inttostr(getx)+'/'+inttostr(gety div 1024)+'/y'+inttostr(gety)+'.jpg'; | ResultURL:= BaseUrl+'z'+inttostr(getz)+'/'+inttostr(getx div 1024)+'/x'+inttostr(getx)+'/'+inttostr(gety div 1024)+'/y'+inttostr(gety)+'.jpg'; | ||||
end. | |||||
end. |
@@ -1,3 +1,4 @@ | |||||
[PARAMS] | [PARAMS] | ||||
pnum=17 | pnum=17 | ||||
GUID={C9B37420-DA1D-432D-B80C-816BD8116571} | GUID={C9B37420-DA1D-432D-B80C-816BD8116571} | ||||
@@ -16,3 +17,4 @@ defaultContentType=image/jpeg | |||||
ContentType="image/jpeg" | ContentType="image/jpeg" | ||||
MaxConnectToServerCount=1 | MaxConnectToServerCount=1 | ||||
License=© Ëÿïèí Â.Ã. | License=© Ëÿïèí Â.Ã. | ||||
IsUseDownloaderInScript=1 |
@@ -1,13 +1,52 @@ | |||||
function GetCode(const url: AnsiString): Cardinal; | |||||
var | var | ||||
r: integer; | |||||
BaseUrl: string; | |||||
VResponseCode: Cardinal; | |||||
VResponseHeader, VResponseData: AnsiString; | |||||
begin | begin | ||||
r := random(2); | |||||
Result := 1; | |||||
if Assigned(Downloader) then begin | |||||
VResponseHeader := ''; | |||||
VResponseData := ''; | |||||
VResponseCode := Downloader.DoHttpRequest(url, '', '', VResponseHeader, VResponseData); | |||||
Result := VResponseCode; | |||||
end; | |||||
end; | |||||
var | |||||
BaseUrl: string; | |||||
code: Cardinal; | |||||
z_ok, z_no: integer; | |||||
r: integer; | |||||
begin | |||||
ResultURL := ''; | |||||
z_ok := StrToIntDef(GetBefore(';', ScriptBuffer), 1); // Максимальный масштаб, который точно есть | |||||
z_no := StrToIntDef(GetAfter(';', ScriptBuffer), 25); // Минимальный масштаб, которого точно нет | |||||
// Масштаба нет - говорить не о чем | |||||
if getz >= z_no then exit; | |||||
// Выбор зеркала | |||||
r := random(2); | |||||
case r of | case r of | ||||
0: BaseUrl := GetURLBase; | |||||
1: BaseUrl := RegExprReplaceMatchSubStr(GetURLBase, '91.237.82.95:8088', 'maps.melda.ru'); | |||||
0: BaseUrl := GetURLBase; | |||||
1: BaseUrl := RegExprReplaceMatchSubStr(GetURLBase, '91.237.82.95:8088', 'maps.melda.ru'); | |||||
end; | |||||
// Проверяем наличие масштаба | |||||
if getz > z_ok then begin | |||||
code := GetCode(BaseUrl+'z'+inttostr(getz)+'/'); | |||||
// Внимание! Если сервер вернёт 403 - code почему-то будет 0. Так что выбор "404 или что-то иное" | |||||
// Если дело дошло до проверки наличия масштаба - значит какая-то граница (z_ok / z_no) точно подвинется. | |||||
if code = 404 then z_no := getz else z_ok := getz; | |||||
// Сохраняем актуализированные границы для последующих вызовов | |||||
ScriptBuffer := inttostr(z_ok) + ';' + inttostr(z_no); | |||||
// Масштаба нет (о чём могли только что при проверке узнать) - говорить не о чем | |||||
if getz >= z_no then exit; | |||||
end; | end; | ||||
// Ок, качаем тайлик | |||||
ResultURL:= BaseUrl+'z'+inttostr(getz)+'/'+inttostr(getx div 1024)+'/x'+inttostr(getx)+'/'+inttostr(gety div 1024)+'/y'+inttostr(gety)+'.jpg'; | ResultURL:= BaseUrl+'z'+inttostr(getz)+'/'+inttostr(getx div 1024)+'/x'+inttostr(getx)+'/'+inttostr(gety div 1024)+'/y'+inttostr(gety)+'.jpg'; | ||||
end. | |||||
end. |
@@ -1,3 +1,4 @@ | |||||
[PARAMS] | [PARAMS] | ||||
pnum=17 | pnum=17 | ||||
GUID={3AC8353B-CD0A-48A6-A727-A373D3A763CE} | GUID={3AC8353B-CD0A-48A6-A727-A373D3A763CE} | ||||
@@ -14,3 +15,4 @@ Ext=.jpg | |||||
defaultContentType=image/jpeg | defaultContentType=image/jpeg | ||||
ContentType="image/jpeg" | ContentType="image/jpeg" | ||||
MaxConnectToServerCount=1 | MaxConnectToServerCount=1 | ||||
IsUseDownloaderInScript=1 |
@@ -1,13 +1,52 @@ | |||||
function GetCode(const url: AnsiString): Cardinal; | |||||
var | var | ||||
r: integer; | |||||
BaseUrl: string; | |||||
VResponseCode: Cardinal; | |||||
VResponseHeader, VResponseData: AnsiString; | |||||
begin | begin | ||||
r := random(2); | |||||
Result := 1; | |||||
if Assigned(Downloader) then begin | |||||
VResponseHeader := ''; | |||||
VResponseData := ''; | |||||
VResponseCode := Downloader.DoHttpRequest(url, '', '', VResponseHeader, VResponseData); | |||||
Result := VResponseCode; | |||||
end; | |||||
end; | |||||
var | |||||
BaseUrl: string; | |||||
code: Cardinal; | |||||
z_ok, z_no: integer; | |||||
r: integer; | |||||
begin | |||||
ResultURL := ''; | |||||
z_ok := StrToIntDef(GetBefore(';', ScriptBuffer), 1); // Максимальный масштаб, который точно есть | |||||
z_no := StrToIntDef(GetAfter(';', ScriptBuffer), 25); // Минимальный масштаб, которого точно нет | |||||
// Масштаба нет - говорить не о чем | |||||
if getz >= z_no then exit; | |||||
// Выбор зеркала | |||||
r := random(2); | |||||
case r of | case r of | ||||
0: BaseUrl := GetURLBase; | |||||
1: BaseUrl := RegExprReplaceMatchSubStr(GetURLBase, '91.237.82.95:8088', 'maps.melda.ru'); | |||||
0: BaseUrl := GetURLBase; | |||||
1: BaseUrl := RegExprReplaceMatchSubStr(GetURLBase, '91.237.82.95:8088', 'maps.melda.ru'); | |||||
end; | |||||
// Проверяем наличие масштаба | |||||
if getz > z_ok then begin | |||||
code := GetCode(BaseUrl+'z'+inttostr(getz)+'/'); | |||||
// Внимание! Если сервер вернёт 403 - code почему-то будет 0. Так что выбор "404 или что-то иное" | |||||
// Если дело дошло до проверки наличия масштаба - значит какая-то граница (z_ok / z_no) точно подвинется. | |||||
if code = 404 then z_no := getz else z_ok := getz; | |||||
// Сохраняем актуализированные границы для последующих вызовов | |||||
ScriptBuffer := inttostr(z_ok) + ';' + inttostr(z_no); | |||||
// Масштаба нет (о чём могли только что при проверке узнать) - говорить не о чем | |||||
if getz >= z_no then exit; | |||||
end; | end; | ||||
// Ок, качаем тайлик | |||||
ResultURL:= BaseUrl+'z'+inttostr(getz)+'/'+inttostr(getx div 1024)+'/x'+inttostr(getx)+'/'+inttostr(gety div 1024)+'/y'+inttostr(gety)+'.jpg'; | ResultURL:= BaseUrl+'z'+inttostr(getz)+'/'+inttostr(getx div 1024)+'/x'+inttostr(getx)+'/'+inttostr(gety div 1024)+'/y'+inttostr(gety)+'.jpg'; | ||||
end. | |||||
end. |
@@ -1,3 +1,4 @@ | |||||
[PARAMS] | [PARAMS] | ||||
pnum=17 | pnum=17 | ||||
GUID={10B2CE3B-78F2-44A8-8396-F94160291754} | GUID={10B2CE3B-78F2-44A8-8396-F94160291754} | ||||
@@ -15,3 +16,4 @@ License= | |||||
defaultContentType=image/jpeg | defaultContentType=image/jpeg | ||||
ContentType="image/jpeg" | ContentType="image/jpeg" | ||||
MaxConnectToServerCount=1 | MaxConnectToServerCount=1 | ||||
IsUseDownloaderInScript=1 |
@@ -1,13 +1,52 @@ | |||||
function GetCode(const url: AnsiString): Cardinal; | |||||
var | var | ||||
r: integer; | |||||
BaseUrl: string; | |||||
VResponseCode: Cardinal; | |||||
VResponseHeader, VResponseData: AnsiString; | |||||
begin | begin | ||||
r := random(2); | |||||
Result := 1; | |||||
if Assigned(Downloader) then begin | |||||
VResponseHeader := ''; | |||||
VResponseData := ''; | |||||
VResponseCode := Downloader.DoHttpRequest(url, '', '', VResponseHeader, VResponseData); | |||||
Result := VResponseCode; | |||||
end; | |||||
end; | |||||
var | |||||
BaseUrl: string; | |||||
code: Cardinal; | |||||
z_ok, z_no: integer; | |||||
r: integer; | |||||
begin | |||||
ResultURL := ''; | |||||
z_ok := StrToIntDef(GetBefore(';', ScriptBuffer), 1); // Максимальный масштаб, который точно есть | |||||
z_no := StrToIntDef(GetAfter(';', ScriptBuffer), 25); // Минимальный масштаб, которого точно нет | |||||
// Масштаба нет - говорить не о чем | |||||
if getz >= z_no then exit; | |||||
// Выбор зеркала | |||||
r := random(2); | |||||
case r of | case r of | ||||
0: BaseUrl := GetURLBase; | |||||
1: BaseUrl := RegExprReplaceMatchSubStr(GetURLBase, '91.237.82.95:8088', 'maps.melda.ru'); | |||||
0: BaseUrl := GetURLBase; | |||||
1: BaseUrl := RegExprReplaceMatchSubStr(GetURLBase, '91.237.82.95:8088', 'maps.melda.ru'); | |||||
end; | |||||
// Проверяем наличие масштаба | |||||
if getz > z_ok then begin | |||||
code := GetCode(BaseUrl+'z'+inttostr(getz)+'/'); | |||||
// Внимание! Если сервер вернёт 403 - code почему-то будет 0. Так что выбор "404 или что-то иное" | |||||
// Если дело дошло до проверки наличия масштаба - значит какая-то граница (z_ok / z_no) точно подвинется. | |||||
if code = 404 then z_no := getz else z_ok := getz; | |||||
// Сохраняем актуализированные границы для последующих вызовов | |||||
ScriptBuffer := inttostr(z_ok) + ';' + inttostr(z_no); | |||||
// Масштаба нет (о чём могли только что при проверке узнать) - говорить не о чем | |||||
if getz >= z_no then exit; | |||||
end; | end; | ||||
// Ок, качаем тайлик | |||||
ResultURL:= BaseUrl+'z'+inttostr(getz)+'/'+inttostr(getx div 1024)+'/x'+inttostr(getx)+'/'+inttostr(gety div 1024)+'/y'+inttostr(gety)+'.png'; | ResultURL:= BaseUrl+'z'+inttostr(getz)+'/'+inttostr(getx div 1024)+'/x'+inttostr(getx)+'/'+inttostr(gety div 1024)+'/y'+inttostr(gety)+'.png'; | ||||
end. | |||||
end. |
@@ -1,3 +1,4 @@ | |||||
[PARAMS] | [PARAMS] | ||||
pnum=17 | pnum=17 | ||||
GUID={8834EDB4-532C-469D-B156-C811E0A93FB9} | GUID={8834EDB4-532C-469D-B156-C811E0A93FB9} | ||||
@@ -15,3 +16,4 @@ defaultContentType=image/png | |||||
ContentType="image/png" | ContentType="image/png" | ||||
License=© Âëàäèñëàâ Çàâüÿëîâ, slazav.livejournal.com | License=© Âëàäèñëàâ Çàâüÿëîâ, slazav.livejournal.com | ||||
MaxConnectToServerCount=1 | MaxConnectToServerCount=1 | ||||
IsUseDownloaderInScript=1 |
@@ -1,13 +1,52 @@ | |||||
function GetCode(const url: AnsiString): Cardinal; | |||||
var | var | ||||
r: integer; | |||||
BaseUrl: string; | |||||
VResponseCode: Cardinal; | |||||
VResponseHeader, VResponseData: AnsiString; | |||||
begin | begin | ||||
r := random(2); | |||||
Result := 1; | |||||
if Assigned(Downloader) then begin | |||||
VResponseHeader := ''; | |||||
VResponseData := ''; | |||||
VResponseCode := Downloader.DoHttpRequest(url, '', '', VResponseHeader, VResponseData); | |||||
Result := VResponseCode; | |||||
end; | |||||
end; | |||||
var | |||||
BaseUrl: string; | |||||
code: Cardinal; | |||||
z_ok, z_no: integer; | |||||
r: integer; | |||||
begin | |||||
ResultURL := ''; | |||||
z_ok := StrToIntDef(GetBefore(';', ScriptBuffer), 1); // Максимальный масштаб, который точно есть | |||||
z_no := StrToIntDef(GetAfter(';', ScriptBuffer), 25); // Минимальный масштаб, которого точно нет | |||||
// Масштаба нет - говорить не о чем | |||||
if getz >= z_no then exit; | |||||
// Выбор зеркала | |||||
r := random(2); | |||||
case r of | case r of | ||||
0: BaseUrl := GetURLBase; | |||||
1: BaseUrl := RegExprReplaceMatchSubStr(GetURLBase, '91.237.82.95:8088', 'maps.melda.ru'); | |||||
0: BaseUrl := GetURLBase; | |||||
1: BaseUrl := RegExprReplaceMatchSubStr(GetURLBase, '91.237.82.95:8088', 'maps.melda.ru'); | |||||
end; | |||||
// Проверяем наличие масштаба | |||||
if getz > z_ok then begin | |||||
code := GetCode(BaseUrl+'z'+inttostr(getz)+'/'); | |||||
// Внимание! Если сервер вернёт 403 - code почему-то будет 0. Так что выбор "404 или что-то иное" | |||||
// Если дело дошло до проверки наличия масштаба - значит какая-то граница (z_ok / z_no) точно подвинется. | |||||
if code = 404 then z_no := getz else z_ok := getz; | |||||
// Сохраняем актуализированные границы для последующих вызовов | |||||
ScriptBuffer := inttostr(z_ok) + ';' + inttostr(z_no); | |||||
// Масштаба нет (о чём могли только что при проверке узнать) - говорить не о чем | |||||
if getz >= z_no then exit; | |||||
end; | end; | ||||
// Ок, качаем тайлик | |||||
ResultURL:= BaseUrl+'z'+inttostr(getz)+'/'+inttostr(getx div 1024)+'/x'+inttostr(getx)+'/'+inttostr(gety div 1024)+'/y'+inttostr(gety)+'.jpg'; | ResultURL:= BaseUrl+'z'+inttostr(getz)+'/'+inttostr(getx div 1024)+'/x'+inttostr(getx)+'/'+inttostr(gety div 1024)+'/y'+inttostr(gety)+'.jpg'; | ||||
end. | |||||
end. |
@@ -1,3 +1,4 @@ | |||||
[PARAMS] | [PARAMS] | ||||
pnum=17 | pnum=17 | ||||
GUID={63F20739-EAD8-44F4-B71A-EAFD26E83055} | GUID={63F20739-EAD8-44F4-B71A-EAFD26E83055} | ||||
@@ -16,3 +17,4 @@ License= | |||||
defaultContentType=image/jpeg | defaultContentType=image/jpeg | ||||
ContentType="image/jpeg" | ContentType="image/jpeg" | ||||
MaxConnectToServerCount=1 | MaxConnectToServerCount=1 | ||||
IsUseDownloaderInScript=1 |
@@ -1,13 +1,52 @@ | |||||
function GetCode(const url: AnsiString): Cardinal; | |||||
var | var | ||||
r: integer; | |||||
BaseUrl: string; | |||||
VResponseCode: Cardinal; | |||||
VResponseHeader, VResponseData: AnsiString; | |||||
begin | begin | ||||
r := random(2); | |||||
Result := 1; | |||||
if Assigned(Downloader) then begin | |||||
VResponseHeader := ''; | |||||
VResponseData := ''; | |||||
VResponseCode := Downloader.DoHttpRequest(url, '', '', VResponseHeader, VResponseData); | |||||
Result := VResponseCode; | |||||
end; | |||||
end; | |||||
var | |||||
BaseUrl: string; | |||||
code: Cardinal; | |||||
z_ok, z_no: integer; | |||||
r: integer; | |||||
begin | |||||
ResultURL := ''; | |||||
z_ok := StrToIntDef(GetBefore(';', ScriptBuffer), 1); // Максимальный масштаб, который точно есть | |||||
z_no := StrToIntDef(GetAfter(';', ScriptBuffer), 25); // Минимальный масштаб, которого точно нет | |||||
// Масштаба нет - говорить не о чем | |||||
if getz >= z_no then exit; | |||||
// Выбор зеркала | |||||
r := random(2); | |||||
case r of | case r of | ||||
0: BaseUrl := GetURLBase; | |||||
1: BaseUrl := RegExprReplaceMatchSubStr(GetURLBase, '91.237.82.95:8088', 'maps.melda.ru'); | |||||
0: BaseUrl := GetURLBase; | |||||
1: BaseUrl := RegExprReplaceMatchSubStr(GetURLBase, '91.237.82.95:8088', 'maps.melda.ru'); | |||||
end; | |||||
// Проверяем наличие масштаба | |||||
if getz > z_ok then begin | |||||
code := GetCode(BaseUrl+'z'+inttostr(getz)+'/'); | |||||
// Внимание! Если сервер вернёт 403 - code почему-то будет 0. Так что выбор "404 или что-то иное" | |||||
// Если дело дошло до проверки наличия масштаба - значит какая-то граница (z_ok / z_no) точно подвинется. | |||||
if code = 404 then z_no := getz else z_ok := getz; | |||||
// Сохраняем актуализированные границы для последующих вызовов | |||||
ScriptBuffer := inttostr(z_ok) + ';' + inttostr(z_no); | |||||
// Масштаба нет (о чём могли только что при проверке узнать) - говорить не о чем | |||||
if getz >= z_no then exit; | |||||
end; | end; | ||||
// Ок, качаем тайлик | |||||
ResultURL:= BaseUrl+'z'+inttostr(getz)+'/'+inttostr(getx div 1024)+'/x'+inttostr(getx)+'/'+inttostr(gety div 1024)+'/y'+inttostr(gety)+'.jpg'; | ResultURL:= BaseUrl+'z'+inttostr(getz)+'/'+inttostr(getx div 1024)+'/x'+inttostr(getx)+'/'+inttostr(gety div 1024)+'/y'+inttostr(gety)+'.jpg'; | ||||
end. | |||||
end. |
@@ -1,3 +1,4 @@ | |||||
[PARAMS] | [PARAMS] | ||||
pnum=17 | pnum=17 | ||||
GUID={7883C9C4-C669-43CE-83B7-FCCE92F6DD4E} | GUID={7883C9C4-C669-43CE-83B7-FCCE92F6DD4E} | ||||
@@ -14,4 +15,5 @@ Ext=.jpg | |||||
defaultContentType=image/jpeg | defaultContentType=image/jpeg | ||||
ContentType="image/jpeg" | ContentType="image/jpeg" | ||||
MaxConnectToServerCount=1 | MaxConnectToServerCount=1 | ||||
License=westra.ru | |||||
License=westra.ru | |||||
IsUseDownloaderInScript=1 |
@@ -1,13 +1,52 @@ | |||||
function GetCode(const url: AnsiString): Cardinal; | |||||
var | var | ||||
r: integer; | |||||
BaseUrl: string; | |||||
VResponseCode: Cardinal; | |||||
VResponseHeader, VResponseData: AnsiString; | |||||
begin | begin | ||||
r := random(2); | |||||
Result := 1; | |||||
if Assigned(Downloader) then begin | |||||
VResponseHeader := ''; | |||||
VResponseData := ''; | |||||
VResponseCode := Downloader.DoHttpRequest(url, '', '', VResponseHeader, VResponseData); | |||||
Result := VResponseCode; | |||||
end; | |||||
end; | |||||
var | |||||
BaseUrl: string; | |||||
code: Cardinal; | |||||
z_ok, z_no: integer; | |||||
r: integer; | |||||
begin | |||||
ResultURL := ''; | |||||
z_ok := StrToIntDef(GetBefore(';', ScriptBuffer), 1); // Максимальный масштаб, который точно есть | |||||
z_no := StrToIntDef(GetAfter(';', ScriptBuffer), 25); // Минимальный масштаб, которого точно нет | |||||
// Масштаба нет - говорить не о чем | |||||
if getz >= z_no then exit; | |||||
// Выбор зеркала | |||||
r := random(2); | |||||
case r of | case r of | ||||
0: BaseUrl := GetURLBase; | |||||
1: BaseUrl := RegExprReplaceMatchSubStr(GetURLBase, '91.237.82.95:8088', 'maps.melda.ru'); | |||||
0: BaseUrl := GetURLBase; | |||||
1: BaseUrl := RegExprReplaceMatchSubStr(GetURLBase, '91.237.82.95:8088', 'maps.melda.ru'); | |||||
end; | |||||
// Проверяем наличие масштаба | |||||
if getz > z_ok then begin | |||||
code := GetCode(BaseUrl+'z'+inttostr(getz)+'/'); | |||||
// Внимание! Если сервер вернёт 403 - code почему-то будет 0. Так что выбор "404 или что-то иное" | |||||
// Если дело дошло до проверки наличия масштаба - значит какая-то граница (z_ok / z_no) точно подвинется. | |||||
if code = 404 then z_no := getz else z_ok := getz; | |||||
// Сохраняем актуализированные границы для последующих вызовов | |||||
ScriptBuffer := inttostr(z_ok) + ';' + inttostr(z_no); | |||||
// Масштаба нет (о чём могли только что при проверке узнать) - говорить не о чем | |||||
if getz >= z_no then exit; | |||||
end; | end; | ||||
// Ок, качаем тайлик | |||||
ResultURL:= BaseUrl+'z'+inttostr(getz)+'/'+inttostr(getx div 1024)+'/x'+inttostr(getx)+'/'+inttostr(gety div 1024)+'/y'+inttostr(gety)+'.jpg'; | ResultURL:= BaseUrl+'z'+inttostr(getz)+'/'+inttostr(getx div 1024)+'/x'+inttostr(getx)+'/'+inttostr(gety div 1024)+'/y'+inttostr(gety)+'.jpg'; | ||||
end. | |||||
end. |
@@ -1,3 +1,4 @@ | |||||
[PARAMS] | [PARAMS] | ||||
pnum=17 | pnum=17 | ||||
GUID={6AB93647-45C1-490C-AD5C-167CDDD5B5D4} | GUID={6AB93647-45C1-490C-AD5C-167CDDD5B5D4} | ||||
@@ -16,3 +17,4 @@ License= | |||||
defaultContentType=image/jpeg | defaultContentType=image/jpeg | ||||
ContentType="image/jpeg" | ContentType="image/jpeg" | ||||
MaxConnectToServerCount=1 | MaxConnectToServerCount=1 | ||||
IsUseDownloaderInScript=1 |
@@ -1,13 +1,52 @@ | |||||
function GetCode(const url: AnsiString): Cardinal; | |||||
var | var | ||||
r: integer; | |||||
BaseUrl: string; | |||||
VResponseCode: Cardinal; | |||||
VResponseHeader, VResponseData: AnsiString; | |||||
begin | begin | ||||
r := random(2); | |||||
Result := 1; | |||||
if Assigned(Downloader) then begin | |||||
VResponseHeader := ''; | |||||
VResponseData := ''; | |||||
VResponseCode := Downloader.DoHttpRequest(url, '', '', VResponseHeader, VResponseData); | |||||
Result := VResponseCode; | |||||
end; | |||||
end; | |||||
var | |||||
BaseUrl: string; | |||||
code: Cardinal; | |||||
z_ok, z_no: integer; | |||||
r: integer; | |||||
begin | |||||
ResultURL := ''; | |||||
z_ok := StrToIntDef(GetBefore(';', ScriptBuffer), 1); // Максимальный масштаб, который точно есть | |||||
z_no := StrToIntDef(GetAfter(';', ScriptBuffer), 25); // Минимальный масштаб, которого точно нет | |||||
// Масштаба нет - говорить не о чем | |||||
if getz >= z_no then exit; | |||||
// Выбор зеркала | |||||
r := random(2); | |||||
case r of | case r of | ||||
0: BaseUrl := GetURLBase; | |||||
1: BaseUrl := RegExprReplaceMatchSubStr(GetURLBase, '91.237.82.95:8088', 'maps.melda.ru'); | |||||
0: BaseUrl := GetURLBase; | |||||
1: BaseUrl := RegExprReplaceMatchSubStr(GetURLBase, '91.237.82.95:8088', 'maps.melda.ru'); | |||||
end; | |||||
// Проверяем наличие масштаба | |||||
if getz > z_ok then begin | |||||
code := GetCode(BaseUrl+'z'+inttostr(getz)+'/'); | |||||
// Внимание! Если сервер вернёт 403 - code почему-то будет 0. Так что выбор "404 или что-то иное" | |||||
// Если дело дошло до проверки наличия масштаба - значит какая-то граница (z_ok / z_no) точно подвинется. | |||||
if code = 404 then z_no := getz else z_ok := getz; | |||||
// Сохраняем актуализированные границы для последующих вызовов | |||||
ScriptBuffer := inttostr(z_ok) + ';' + inttostr(z_no); | |||||
// Масштаба нет (о чём могли только что при проверке узнать) - говорить не о чем | |||||
if getz >= z_no then exit; | |||||
end; | end; | ||||
// Ок, качаем тайлик | |||||
ResultURL:= BaseUrl+'z'+inttostr(getz)+'/'+inttostr(getx div 1024)+'/x'+inttostr(getx)+'/'+inttostr(gety div 1024)+'/y'+inttostr(gety)+'.jpg'; | ResultURL:= BaseUrl+'z'+inttostr(getz)+'/'+inttostr(getx div 1024)+'/x'+inttostr(getx)+'/'+inttostr(gety div 1024)+'/y'+inttostr(gety)+'.jpg'; | ||||
end. | |||||
end. |
@@ -1,3 +1,4 @@ | |||||
[PARAMS] | [PARAMS] | ||||
pnum=17 | pnum=17 | ||||
GUID={C753CB21-ED72-4A38-B191-19723DB684E8} | GUID={C753CB21-ED72-4A38-B191-19723DB684E8} | ||||
@@ -14,3 +15,4 @@ Ext=.jpg | |||||
defaultContentType=image/jpeg | defaultContentType=image/jpeg | ||||
ContentType="image/jpeg" | ContentType="image/jpeg" | ||||
MaxConnectToServerCount=1 | MaxConnectToServerCount=1 | ||||
IsUseDownloaderInScript=1 |