diff --git a/_Genshtab/gsh_500m_new.zmp/GetUrlScript.txt b/_Genshtab/gsh_500m_new.zmp/GetUrlScript.txt index 9eef16e5..4f971180 100644 --- a/_Genshtab/gsh_500m_new.zmp/GetUrlScript.txt +++ b/_Genshtab/gsh_500m_new.zmp/GetUrlScript.txt @@ -1,13 +1,52 @@ +function GetCode(const url: AnsiString): Cardinal; var - r: integer; - BaseUrl: string; + VResponseCode: Cardinal; + VResponseHeader, VResponseData: AnsiString; 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 - 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; + // Ок, качаем тайлик ResultURL:= BaseUrl+'z'+inttostr(getz)+'/'+inttostr(getx div 1024)+'/x'+inttostr(getx)+'/'+inttostr(gety div 1024)+'/y'+inttostr(gety)+'.jpg'; -end. \ No newline at end of file +end. diff --git a/_Genshtab/gsh_500m_new.zmp/params.txt b/_Genshtab/gsh_500m_new.zmp/params.txt index 7b60e4ac..c763fe71 100644 --- a/_Genshtab/gsh_500m_new.zmp/params.txt +++ b/_Genshtab/gsh_500m_new.zmp/params.txt @@ -1,3 +1,4 @@ + [PARAMS] pnum=139 GUID={7D47D2E6-9410-4181-B2F1-224A4880E698} @@ -17,3 +18,4 @@ sradiusb=6378137 separator=1 ContentType="image/jpeg" MaxConnectToServerCount=1 +IsUseDownloaderInScript=1 diff --git a/_tourism/TyanShan/TyanShan.zmp/GetUrlScript.txt b/_tourism/TyanShan/TyanShan.zmp/GetUrlScript.txt index 9eef16e5..4f971180 100644 --- a/_tourism/TyanShan/TyanShan.zmp/GetUrlScript.txt +++ b/_tourism/TyanShan/TyanShan.zmp/GetUrlScript.txt @@ -1,13 +1,52 @@ +function GetCode(const url: AnsiString): Cardinal; var - r: integer; - BaseUrl: string; + VResponseCode: Cardinal; + VResponseHeader, VResponseData: AnsiString; 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 - 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; + // Ок, качаем тайлик ResultURL:= BaseUrl+'z'+inttostr(getz)+'/'+inttostr(getx div 1024)+'/x'+inttostr(getx)+'/'+inttostr(gety div 1024)+'/y'+inttostr(gety)+'.jpg'; -end. \ No newline at end of file +end. diff --git a/_tourism/TyanShan/TyanShan.zmp/params.txt b/_tourism/TyanShan/TyanShan.zmp/params.txt index 31f3c0a5..573dbb4f 100644 --- a/_tourism/TyanShan/TyanShan.zmp/params.txt +++ b/_tourism/TyanShan/TyanShan.zmp/params.txt @@ -1,3 +1,4 @@ + [PARAMS] pnum=17 GUID={03F32FF2-2450-406C-9007-364BA6361DE8} @@ -15,3 +16,4 @@ Ext=.jpg defaultContentType=image/jpeg ContentType="image/jpeg" MaxConnectToServerCount=1 +IsUseDownloaderInScript=1 diff --git a/_tourism/TyanShan/tyan_shan.zmp/GetUrlScript.txt b/_tourism/TyanShan/tyan_shan.zmp/GetUrlScript.txt index 9eef16e5..4f971180 100644 --- a/_tourism/TyanShan/tyan_shan.zmp/GetUrlScript.txt +++ b/_tourism/TyanShan/tyan_shan.zmp/GetUrlScript.txt @@ -1,13 +1,52 @@ +function GetCode(const url: AnsiString): Cardinal; var - r: integer; - BaseUrl: string; + VResponseCode: Cardinal; + VResponseHeader, VResponseData: AnsiString; 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 - 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; + // Ок, качаем тайлик ResultURL:= BaseUrl+'z'+inttostr(getz)+'/'+inttostr(getx div 1024)+'/x'+inttostr(getx)+'/'+inttostr(gety div 1024)+'/y'+inttostr(gety)+'.jpg'; -end. \ No newline at end of file +end. diff --git a/_tourism/TyanShan/tyan_shan.zmp/params.txt b/_tourism/TyanShan/tyan_shan.zmp/params.txt index a98066a8..00647528 100644 --- a/_tourism/TyanShan/tyan_shan.zmp/params.txt +++ b/_tourism/TyanShan/tyan_shan.zmp/params.txt @@ -1,3 +1,4 @@ + [PARAMS] pnum=17 GUID={9EEAAEC9-C54E-4E34-8ADC-756A7E58EE34} @@ -15,3 +16,4 @@ Ext=.jpg defaultContentType=image/jpeg ContentType="image/jpeg" MaxConnectToServerCount=1 +IsUseDownloaderInScript=1 diff --git a/_tourism/altay_katun_chui.zmp/GetUrlScript.txt b/_tourism/altay_katun_chui.zmp/GetUrlScript.txt index 2c6e4a24..c5dcd226 100644 --- a/_tourism/altay_katun_chui.zmp/GetUrlScript.txt +++ b/_tourism/altay_katun_chui.zmp/GetUrlScript.txt @@ -1,13 +1,52 @@ +function GetCode(const url: AnsiString): Cardinal; var - r: integer; - BaseUrl: string; + VResponseCode: Cardinal; + VResponseHeader, VResponseData: AnsiString; 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 - 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; + // Ок, качаем тайлик ResultURL:= BaseUrl+'z'+inttostr(getz)+'/'+inttostr(getx div 1024)+'/x'+inttostr(getx)+'/'+inttostr(gety div 1024)+'/y'+inttostr(gety)+'.png'; -end. \ No newline at end of file +end. diff --git a/_tourism/altay_katun_chui.zmp/params.txt b/_tourism/altay_katun_chui.zmp/params.txt index ca915ea8..a7a8f0ff 100644 --- a/_tourism/altay_katun_chui.zmp/params.txt +++ b/_tourism/altay_katun_chui.zmp/params.txt @@ -1,4 +1,5 @@ -[PARAMS] + +[PARAMS] pnum=17 GUID={75F48FFC-0895-4218-968B-9B248DEC4C2C} name_ru=Хребтовка Катунского, Чуйских хребтов (Алтай) @@ -13,4 +14,4 @@ NameInCache=altay_katun_chui Ext=.png ContentType="image/png" MaxConnectToServerCount=1 - +IsUseDownloaderInScript=1 diff --git a/_tourism/cencaumap.zmp/GetUrlScript.txt b/_tourism/cencaumap.zmp/GetUrlScript.txt index 9eef16e5..4f971180 100644 --- a/_tourism/cencaumap.zmp/GetUrlScript.txt +++ b/_tourism/cencaumap.zmp/GetUrlScript.txt @@ -1,13 +1,52 @@ +function GetCode(const url: AnsiString): Cardinal; var - r: integer; - BaseUrl: string; + VResponseCode: Cardinal; + VResponseHeader, VResponseData: AnsiString; 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 - 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; + // Ок, качаем тайлик ResultURL:= BaseUrl+'z'+inttostr(getz)+'/'+inttostr(getx div 1024)+'/x'+inttostr(getx)+'/'+inttostr(gety div 1024)+'/y'+inttostr(gety)+'.jpg'; -end. \ No newline at end of file +end. diff --git a/_tourism/cencaumap.zmp/params.txt b/_tourism/cencaumap.zmp/params.txt index 942faf3e..19a1c8c0 100644 --- a/_tourism/cencaumap.zmp/params.txt +++ b/_tourism/cencaumap.zmp/params.txt @@ -1,3 +1,4 @@ + [PARAMS] pnum=17 GUID={3601390A-9421-4C60-B4D6-109E2F190FC5} @@ -16,3 +17,4 @@ License= defaultContentType=image/jpeg ContentType="image/jpeg" MaxConnectToServerCount=1 +IsUseDownloaderInScript=1 diff --git a/_tourism/crimea/crimea.zmp/GetUrlScript.txt b/_tourism/crimea/crimea.zmp/GetUrlScript.txt index 9eef16e5..4f971180 100644 --- a/_tourism/crimea/crimea.zmp/GetUrlScript.txt +++ b/_tourism/crimea/crimea.zmp/GetUrlScript.txt @@ -1,13 +1,52 @@ +function GetCode(const url: AnsiString): Cardinal; var - r: integer; - BaseUrl: string; + VResponseCode: Cardinal; + VResponseHeader, VResponseData: AnsiString; 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 - 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; + // Ок, качаем тайлик ResultURL:= BaseUrl+'z'+inttostr(getz)+'/'+inttostr(getx div 1024)+'/x'+inttostr(getx)+'/'+inttostr(gety div 1024)+'/y'+inttostr(gety)+'.jpg'; -end. \ No newline at end of file +end. diff --git a/_tourism/crimea/crimea.zmp/params.txt b/_tourism/crimea/crimea.zmp/params.txt index 9fb97be7..d1afd8b9 100644 --- a/_tourism/crimea/crimea.zmp/params.txt +++ b/_tourism/crimea/crimea.zmp/params.txt @@ -1,3 +1,4 @@ + [PARAMS] pnum=17 GUID={F198EF43-EA9D-4C32-B76A-64A8C7A508F8} @@ -15,3 +16,4 @@ Ext=.jpg defaultContentType=image/jpeg ContentType="image/jpeg" MaxConnectToServerCount=1 +IsUseDownloaderInScript=1 diff --git a/_tourism/crimea/krim.zmp/GetUrlScript.txt b/_tourism/crimea/krim.zmp/GetUrlScript.txt index 9eef16e5..4f971180 100644 --- a/_tourism/crimea/krim.zmp/GetUrlScript.txt +++ b/_tourism/crimea/krim.zmp/GetUrlScript.txt @@ -1,13 +1,52 @@ +function GetCode(const url: AnsiString): Cardinal; var - r: integer; - BaseUrl: string; + VResponseCode: Cardinal; + VResponseHeader, VResponseData: AnsiString; 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 - 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; + // Ок, качаем тайлик ResultURL:= BaseUrl+'z'+inttostr(getz)+'/'+inttostr(getx div 1024)+'/x'+inttostr(getx)+'/'+inttostr(gety div 1024)+'/y'+inttostr(gety)+'.jpg'; -end. \ No newline at end of file +end. diff --git a/_tourism/crimea/krim.zmp/params.txt b/_tourism/crimea/krim.zmp/params.txt index 469d9ab7..e7dfa37c 100644 --- a/_tourism/crimea/krim.zmp/params.txt +++ b/_tourism/crimea/krim.zmp/params.txt @@ -1,3 +1,4 @@ + [PARAMS] pnum=17 GUID={A85C68EA-4C12-4072-A4AB-1353A489F304} @@ -15,3 +16,4 @@ Ext=.jpg defaultContentType=image/jpeg ContentType="image/jpeg" MaxConnectToServerCount=1 +IsUseDownloaderInScript=1 diff --git a/_tourism/ergaki_aradan.zmp/GetUrlScript.txt b/_tourism/ergaki_aradan.zmp/GetUrlScript.txt index 9eef16e5..4f971180 100644 --- a/_tourism/ergaki_aradan.zmp/GetUrlScript.txt +++ b/_tourism/ergaki_aradan.zmp/GetUrlScript.txt @@ -1,13 +1,52 @@ +function GetCode(const url: AnsiString): Cardinal; var - r: integer; - BaseUrl: string; + VResponseCode: Cardinal; + VResponseHeader, VResponseData: AnsiString; 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 - 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; + // Ок, качаем тайлик ResultURL:= BaseUrl+'z'+inttostr(getz)+'/'+inttostr(getx div 1024)+'/x'+inttostr(getx)+'/'+inttostr(gety div 1024)+'/y'+inttostr(gety)+'.jpg'; -end. \ No newline at end of file +end. diff --git a/_tourism/ergaki_aradan.zmp/params.txt b/_tourism/ergaki_aradan.zmp/params.txt index 5a9c9c50..aa3bc754 100644 --- a/_tourism/ergaki_aradan.zmp/params.txt +++ b/_tourism/ergaki_aradan.zmp/params.txt @@ -1,3 +1,4 @@ + [PARAMS] pnum=17 GUID={F923688D-2C5B-4B30-A080-941AB3253EFA} @@ -14,4 +15,5 @@ Ext=.jpg defaultContentType=image/jpeg ContentType="image/jpeg" MaxConnectToServerCount=1 -License=(c) . shandl.ru \ No newline at end of file +License=(c) . shandl.ru +IsUseDownloaderInScript=1 diff --git a/_tourism/fgup_sk_agp/fgu_sk_agp_all.zmp/GetUrlScript.txt b/_tourism/fgup_sk_agp/fgu_sk_agp_all.zmp/GetUrlScript.txt index 9eef16e5..4f971180 100644 --- a/_tourism/fgup_sk_agp/fgu_sk_agp_all.zmp/GetUrlScript.txt +++ b/_tourism/fgup_sk_agp/fgu_sk_agp_all.zmp/GetUrlScript.txt @@ -1,13 +1,52 @@ +function GetCode(const url: AnsiString): Cardinal; var - r: integer; - BaseUrl: string; + VResponseCode: Cardinal; + VResponseHeader, VResponseData: AnsiString; 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 - 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; + // Ок, качаем тайлик ResultURL:= BaseUrl+'z'+inttostr(getz)+'/'+inttostr(getx div 1024)+'/x'+inttostr(getx)+'/'+inttostr(gety div 1024)+'/y'+inttostr(gety)+'.jpg'; -end. \ No newline at end of file +end. diff --git a/_tourism/fgup_sk_agp/fgu_sk_agp_all.zmp/params.txt b/_tourism/fgup_sk_agp/fgu_sk_agp_all.zmp/params.txt index 972f5775..8b98af9d 100644 --- a/_tourism/fgup_sk_agp/fgu_sk_agp_all.zmp/params.txt +++ b/_tourism/fgup_sk_agp/fgu_sk_agp_all.zmp/params.txt @@ -1,3 +1,4 @@ + [PARAMS] pnum=17 GUID={4A3A2F8B-DC7D-494B-819C-C0BBDAF80CEA} @@ -14,3 +15,4 @@ Ext=.jpg defaultContentType=image/jpeg ContentType="image/jpeg" MaxConnectToServerCount=1 +IsUseDownloaderInScript=1 diff --git a/_tourism/gosgeodesia/tourism1991.zmp/GetUrlScript.txt b/_tourism/gosgeodesia/tourism1991.zmp/GetUrlScript.txt index 9eef16e5..4f971180 100644 --- a/_tourism/gosgeodesia/tourism1991.zmp/GetUrlScript.txt +++ b/_tourism/gosgeodesia/tourism1991.zmp/GetUrlScript.txt @@ -1,13 +1,52 @@ +function GetCode(const url: AnsiString): Cardinal; var - r: integer; - BaseUrl: string; + VResponseCode: Cardinal; + VResponseHeader, VResponseData: AnsiString; 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 - 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; + // Ок, качаем тайлик ResultURL:= BaseUrl+'z'+inttostr(getz)+'/'+inttostr(getx div 1024)+'/x'+inttostr(getx)+'/'+inttostr(gety div 1024)+'/y'+inttostr(gety)+'.jpg'; -end. \ No newline at end of file +end. diff --git a/_tourism/gosgeodesia/tourism1991.zmp/params.txt b/_tourism/gosgeodesia/tourism1991.zmp/params.txt index 14b4ba2e..48e229eb 100644 --- a/_tourism/gosgeodesia/tourism1991.zmp/params.txt +++ b/_tourism/gosgeodesia/tourism1991.zmp/params.txt @@ -1,3 +1,4 @@ + [PARAMS] pnum=17 GUID={EC131932-0BC8-43BD-BBE6-30D0B230794F} @@ -14,3 +15,4 @@ Ext=.jpg defaultContentType=image/jpeg ContentType="image/jpeg" MaxConnectToServerCount=1 +IsUseDownloaderInScript=1 diff --git a/_tourism/hibin1lp.zmp/GetUrlScript.txt b/_tourism/hibin1lp.zmp/GetUrlScript.txt index 9eef16e5..4f971180 100644 --- a/_tourism/hibin1lp.zmp/GetUrlScript.txt +++ b/_tourism/hibin1lp.zmp/GetUrlScript.txt @@ -1,13 +1,52 @@ +function GetCode(const url: AnsiString): Cardinal; var - r: integer; - BaseUrl: string; + VResponseCode: Cardinal; + VResponseHeader, VResponseData: AnsiString; 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 - 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; + // Ок, качаем тайлик ResultURL:= BaseUrl+'z'+inttostr(getz)+'/'+inttostr(getx div 1024)+'/x'+inttostr(getx)+'/'+inttostr(gety div 1024)+'/y'+inttostr(gety)+'.jpg'; -end. \ No newline at end of file +end. diff --git a/_tourism/hibin1lp.zmp/params.txt b/_tourism/hibin1lp.zmp/params.txt index dec6a628..ba471bdf 100644 --- a/_tourism/hibin1lp.zmp/params.txt +++ b/_tourism/hibin1lp.zmp/params.txt @@ -1,4 +1,5 @@ -[PARAMS] + +[PARAMS] pnum=17 GUID={BB99C55C-4B99-43AB-B585-0F6246D8FB0A} name_ru=Хибинские и Ловоозерские тундры @@ -13,3 +14,4 @@ NameInCache=hibin1lp Ext=.jpg ContentType="image/jpeg" MaxConnectToServerCount=1 +IsUseDownloaderInScript=1 diff --git a/_tourism/hibin2lvch.zmp/GetUrlScript.txt b/_tourism/hibin2lvch.zmp/GetUrlScript.txt index 2c6e4a24..c5dcd226 100644 --- a/_tourism/hibin2lvch.zmp/GetUrlScript.txt +++ b/_tourism/hibin2lvch.zmp/GetUrlScript.txt @@ -1,13 +1,52 @@ +function GetCode(const url: AnsiString): Cardinal; var - r: integer; - BaseUrl: string; + VResponseCode: Cardinal; + VResponseHeader, VResponseData: AnsiString; 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 - 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; + // Ок, качаем тайлик ResultURL:= BaseUrl+'z'+inttostr(getz)+'/'+inttostr(getx div 1024)+'/x'+inttostr(getx)+'/'+inttostr(gety div 1024)+'/y'+inttostr(gety)+'.png'; -end. \ No newline at end of file +end. diff --git a/_tourism/hibin2lvch.zmp/params.txt b/_tourism/hibin2lvch.zmp/params.txt index f15b0906..0167546e 100644 --- a/_tourism/hibin2lvch.zmp/params.txt +++ b/_tourism/hibin2lvch.zmp/params.txt @@ -1,4 +1,5 @@ -[PARAMS] + +[PARAMS] pnum=17 GUID={172A6A22-BE07-4D08-B120-737FE2613B28} name_ru=Горы Хибинские тундры @@ -13,4 +14,4 @@ NameInCache=hibin2lvch Ext=.png ContentType="image/png" MaxConnectToServerCount=1 - +IsUseDownloaderInScript=1 diff --git a/_tourism/hibin4ae.zmp/GetUrlScript.txt b/_tourism/hibin4ae.zmp/GetUrlScript.txt index 9eef16e5..4f971180 100644 --- a/_tourism/hibin4ae.zmp/GetUrlScript.txt +++ b/_tourism/hibin4ae.zmp/GetUrlScript.txt @@ -1,13 +1,52 @@ +function GetCode(const url: AnsiString): Cardinal; var - r: integer; - BaseUrl: string; + VResponseCode: Cardinal; + VResponseHeader, VResponseData: AnsiString; 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 - 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; + // Ок, качаем тайлик ResultURL:= BaseUrl+'z'+inttostr(getz)+'/'+inttostr(getx div 1024)+'/x'+inttostr(getx)+'/'+inttostr(gety div 1024)+'/y'+inttostr(gety)+'.jpg'; -end. \ No newline at end of file +end. diff --git a/_tourism/hibin4ae.zmp/params.txt b/_tourism/hibin4ae.zmp/params.txt index 1b87969e..9aaa364d 100644 --- a/_tourism/hibin4ae.zmp/params.txt +++ b/_tourism/hibin4ae.zmp/params.txt @@ -1,4 +1,5 @@ -[PARAMS] + +[PARAMS] pnum=17 GUID={671CDF7B-BF4C-4679-B2B2-77AE1914A7D0} name_ru=Хибинские и Ловоозерские тундры 2008 @@ -13,3 +14,4 @@ NameInCache=hibin4ae Ext=.jpg ContentType="image/jpeg" MaxConnectToServerCount=1 +IsUseDownloaderInScript=1 diff --git a/_tourism/hrebtovka_elbrus.zmp/GetUrlScript.txt b/_tourism/hrebtovka_elbrus.zmp/GetUrlScript.txt index 9eef16e5..4f971180 100644 --- a/_tourism/hrebtovka_elbrus.zmp/GetUrlScript.txt +++ b/_tourism/hrebtovka_elbrus.zmp/GetUrlScript.txt @@ -1,13 +1,52 @@ +function GetCode(const url: AnsiString): Cardinal; var - r: integer; - BaseUrl: string; + VResponseCode: Cardinal; + VResponseHeader, VResponseData: AnsiString; 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 - 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; + // Ок, качаем тайлик ResultURL:= BaseUrl+'z'+inttostr(getz)+'/'+inttostr(getx div 1024)+'/x'+inttostr(getx)+'/'+inttostr(gety div 1024)+'/y'+inttostr(gety)+'.jpg'; -end. \ No newline at end of file +end. diff --git a/_tourism/hrebtovka_elbrus.zmp/params.txt b/_tourism/hrebtovka_elbrus.zmp/params.txt index 1ab72255..73b277ec 100644 --- a/_tourism/hrebtovka_elbrus.zmp/params.txt +++ b/_tourism/hrebtovka_elbrus.zmp/params.txt @@ -1,3 +1,4 @@ + [PARAMS] pnum=17 GUID={C9B37420-DA1D-432D-B80C-816BD8116571} @@ -16,3 +17,4 @@ defaultContentType=image/jpeg ContentType="image/jpeg" MaxConnectToServerCount=1 License= .. +IsUseDownloaderInScript=1 diff --git a/_tourism/kazbegi.zmp/GetUrlScript.txt b/_tourism/kazbegi.zmp/GetUrlScript.txt index 9eef16e5..4f971180 100644 --- a/_tourism/kazbegi.zmp/GetUrlScript.txt +++ b/_tourism/kazbegi.zmp/GetUrlScript.txt @@ -1,13 +1,52 @@ +function GetCode(const url: AnsiString): Cardinal; var - r: integer; - BaseUrl: string; + VResponseCode: Cardinal; + VResponseHeader, VResponseData: AnsiString; 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 - 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; + // Ок, качаем тайлик ResultURL:= BaseUrl+'z'+inttostr(getz)+'/'+inttostr(getx div 1024)+'/x'+inttostr(getx)+'/'+inttostr(gety div 1024)+'/y'+inttostr(gety)+'.jpg'; -end. \ No newline at end of file +end. diff --git a/_tourism/kazbegi.zmp/params.txt b/_tourism/kazbegi.zmp/params.txt index aded4367..b8331d12 100644 --- a/_tourism/kazbegi.zmp/params.txt +++ b/_tourism/kazbegi.zmp/params.txt @@ -1,3 +1,4 @@ + [PARAMS] pnum=17 GUID={3AC8353B-CD0A-48A6-A727-A373D3A763CE} @@ -14,3 +15,4 @@ Ext=.jpg defaultContentType=image/jpeg ContentType="image/jpeg" MaxConnectToServerCount=1 +IsUseDownloaderInScript=1 diff --git a/_tourism/lcarta.zmp/GetUrlScript.txt b/_tourism/lcarta.zmp/GetUrlScript.txt index 9eef16e5..4f971180 100644 --- a/_tourism/lcarta.zmp/GetUrlScript.txt +++ b/_tourism/lcarta.zmp/GetUrlScript.txt @@ -1,13 +1,52 @@ +function GetCode(const url: AnsiString): Cardinal; var - r: integer; - BaseUrl: string; + VResponseCode: Cardinal; + VResponseHeader, VResponseData: AnsiString; 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 - 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; + // Ок, качаем тайлик ResultURL:= BaseUrl+'z'+inttostr(getz)+'/'+inttostr(getx div 1024)+'/x'+inttostr(getx)+'/'+inttostr(gety div 1024)+'/y'+inttostr(gety)+'.jpg'; -end. \ No newline at end of file +end. diff --git a/_tourism/lcarta.zmp/params.txt b/_tourism/lcarta.zmp/params.txt index e5aa4bfa..d7c0573d 100644 --- a/_tourism/lcarta.zmp/params.txt +++ b/_tourism/lcarta.zmp/params.txt @@ -1,3 +1,4 @@ + [PARAMS] pnum=17 GUID={10B2CE3B-78F2-44A8-8396-F94160291754} @@ -15,3 +16,4 @@ License= defaultContentType=image/jpeg ContentType="image/jpeg" MaxConnectToServerCount=1 +IsUseDownloaderInScript=1 diff --git a/_tourism/slazav.map_hr.zmp/GetUrlScript.txt b/_tourism/slazav.map_hr.zmp/GetUrlScript.txt index 2c6e4a24..c5dcd226 100644 --- a/_tourism/slazav.map_hr.zmp/GetUrlScript.txt +++ b/_tourism/slazav.map_hr.zmp/GetUrlScript.txt @@ -1,13 +1,52 @@ +function GetCode(const url: AnsiString): Cardinal; var - r: integer; - BaseUrl: string; + VResponseCode: Cardinal; + VResponseHeader, VResponseData: AnsiString; 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 - 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; + // Ок, качаем тайлик ResultURL:= BaseUrl+'z'+inttostr(getz)+'/'+inttostr(getx div 1024)+'/x'+inttostr(getx)+'/'+inttostr(gety div 1024)+'/y'+inttostr(gety)+'.png'; -end. \ No newline at end of file +end. diff --git a/_tourism/slazav.map_hr.zmp/params.txt b/_tourism/slazav.map_hr.zmp/params.txt index 9ffcaeb0..a19a8816 100644 --- a/_tourism/slazav.map_hr.zmp/params.txt +++ b/_tourism/slazav.map_hr.zmp/params.txt @@ -1,3 +1,4 @@ + [PARAMS] pnum=17 GUID={8834EDB4-532C-469D-B156-C811E0A93FB9} @@ -15,3 +16,4 @@ defaultContentType=image/png ContentType="image/png" License= , slazav.livejournal.com MaxConnectToServerCount=1 +IsUseDownloaderInScript=1 diff --git a/_tourism/soucaumap.zmp/GetUrlScript.txt b/_tourism/soucaumap.zmp/GetUrlScript.txt index 9eef16e5..4f971180 100644 --- a/_tourism/soucaumap.zmp/GetUrlScript.txt +++ b/_tourism/soucaumap.zmp/GetUrlScript.txt @@ -1,13 +1,52 @@ +function GetCode(const url: AnsiString): Cardinal; var - r: integer; - BaseUrl: string; + VResponseCode: Cardinal; + VResponseHeader, VResponseData: AnsiString; 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 - 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; + // Ок, качаем тайлик ResultURL:= BaseUrl+'z'+inttostr(getz)+'/'+inttostr(getx div 1024)+'/x'+inttostr(getx)+'/'+inttostr(gety div 1024)+'/y'+inttostr(gety)+'.jpg'; -end. \ No newline at end of file +end. diff --git a/_tourism/soucaumap.zmp/params.txt b/_tourism/soucaumap.zmp/params.txt index ce7d3e6d..40818632 100644 --- a/_tourism/soucaumap.zmp/params.txt +++ b/_tourism/soucaumap.zmp/params.txt @@ -1,3 +1,4 @@ + [PARAMS] pnum=17 GUID={63F20739-EAD8-44F4-B71A-EAFD26E83055} @@ -16,3 +17,4 @@ License= defaultContentType=image/jpeg ContentType="image/jpeg" MaxConnectToServerCount=1 +IsUseDownloaderInScript=1 diff --git a/_tourism/turkey/aladaglar.zmp/GetUrlScript.txt b/_tourism/turkey/aladaglar.zmp/GetUrlScript.txt index 9eef16e5..4f971180 100644 --- a/_tourism/turkey/aladaglar.zmp/GetUrlScript.txt +++ b/_tourism/turkey/aladaglar.zmp/GetUrlScript.txt @@ -1,13 +1,52 @@ +function GetCode(const url: AnsiString): Cardinal; var - r: integer; - BaseUrl: string; + VResponseCode: Cardinal; + VResponseHeader, VResponseData: AnsiString; 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 - 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; + // Ок, качаем тайлик ResultURL:= BaseUrl+'z'+inttostr(getz)+'/'+inttostr(getx div 1024)+'/x'+inttostr(getx)+'/'+inttostr(gety div 1024)+'/y'+inttostr(gety)+'.jpg'; -end. \ No newline at end of file +end. diff --git a/_tourism/turkey/aladaglar.zmp/params.txt b/_tourism/turkey/aladaglar.zmp/params.txt index cdd8cef2..25ccba58 100644 --- a/_tourism/turkey/aladaglar.zmp/params.txt +++ b/_tourism/turkey/aladaglar.zmp/params.txt @@ -1,3 +1,4 @@ + [PARAMS] pnum=17 GUID={7883C9C4-C669-43CE-83B7-FCCE92F6DD4E} @@ -14,4 +15,5 @@ Ext=.jpg defaultContentType=image/jpeg ContentType="image/jpeg" MaxConnectToServerCount=1 -License=westra.ru \ No newline at end of file +License=westra.ru +IsUseDownloaderInScript=1 diff --git a/_tourism/westcaumap.zmp/GetUrlScript.txt b/_tourism/westcaumap.zmp/GetUrlScript.txt index 9eef16e5..4f971180 100644 --- a/_tourism/westcaumap.zmp/GetUrlScript.txt +++ b/_tourism/westcaumap.zmp/GetUrlScript.txt @@ -1,13 +1,52 @@ +function GetCode(const url: AnsiString): Cardinal; var - r: integer; - BaseUrl: string; + VResponseCode: Cardinal; + VResponseHeader, VResponseData: AnsiString; 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 - 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; + // Ок, качаем тайлик ResultURL:= BaseUrl+'z'+inttostr(getz)+'/'+inttostr(getx div 1024)+'/x'+inttostr(getx)+'/'+inttostr(gety div 1024)+'/y'+inttostr(gety)+'.jpg'; -end. \ No newline at end of file +end. diff --git a/_tourism/westcaumap.zmp/params.txt b/_tourism/westcaumap.zmp/params.txt index 933d023f..c5139df8 100644 --- a/_tourism/westcaumap.zmp/params.txt +++ b/_tourism/westcaumap.zmp/params.txt @@ -1,3 +1,4 @@ + [PARAMS] pnum=17 GUID={6AB93647-45C1-490C-AD5C-167CDDD5B5D4} @@ -16,3 +17,4 @@ License= defaultContentType=image/jpeg ContentType="image/jpeg" MaxConnectToServerCount=1 +IsUseDownloaderInScript=1 diff --git a/_tourism/wkavkaz_kot.zmp/GetUrlScript.txt b/_tourism/wkavkaz_kot.zmp/GetUrlScript.txt index 9eef16e5..4f971180 100644 --- a/_tourism/wkavkaz_kot.zmp/GetUrlScript.txt +++ b/_tourism/wkavkaz_kot.zmp/GetUrlScript.txt @@ -1,13 +1,52 @@ +function GetCode(const url: AnsiString): Cardinal; var - r: integer; - BaseUrl: string; + VResponseCode: Cardinal; + VResponseHeader, VResponseData: AnsiString; 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 - 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; + // Ок, качаем тайлик ResultURL:= BaseUrl+'z'+inttostr(getz)+'/'+inttostr(getx div 1024)+'/x'+inttostr(getx)+'/'+inttostr(gety div 1024)+'/y'+inttostr(gety)+'.jpg'; -end. \ No newline at end of file +end. diff --git a/_tourism/wkavkaz_kot.zmp/params.txt b/_tourism/wkavkaz_kot.zmp/params.txt index 9c25465f..b8c9696e 100644 --- a/_tourism/wkavkaz_kot.zmp/params.txt +++ b/_tourism/wkavkaz_kot.zmp/params.txt @@ -1,3 +1,4 @@ + [PARAMS] pnum=17 GUID={C753CB21-ED72-4A38-B191-19723DB684E8} @@ -14,3 +15,4 @@ Ext=.jpg defaultContentType=image/jpeg ContentType="image/jpeg" MaxConnectToServerCount=1 +IsUseDownloaderInScript=1