+  HandyCache форум
|-+  Главная категория» Дополнения, плагины» GE.lua - расширение HC для кэширование Google Earth
Имя пользователя:
Пароль:
Страниц: 1 [2] 3 4 ... 9   Вниз
  Отправить эту тему    Печать  
Автор Тема: GE.lua - расширение HC для кэширование Google Earth  (Прочитано 81883 раз)
0 Пользователей и 1 Гость смотрят эту тему.
mai62
Автор HC
*****

Репутация: +221/-4
Offline Offline

Сообщений: 6324


« Ответ #20 : 16 Июнь 2009, 00:01:40 »

zed
В IE HTTP Analyzer есть текстовое и hex-представление данных. Если ты брал файл из текстового представления, IE HTTP Analyzer вполне мог сделать упомянутое преобразование. Да и в hex-представлении я сталкивался с тем, что он может по мелкому приврать.
Сообщить модератору   Записан
zed
Постоялец
***

Репутация: +4/-0
Offline Offline

Сообщений: 135


WWW
« Ответ #21 : 16 Июнь 2009, 00:52:22 »

Хм, действительно. Отключил скрипт, дал HC загрузить тот URL, соответственно, получил этот тайл в кэше и в снифере. Cравниваю: в кэше тайл - ОК, в снифере (в hex-представлении) - битый. Значит в топку этот снифер, чёт он чудит.
НО вопрос остаётся ребром - почему гугл стопорит? 
Вот 2 лога. Первый: кэши и у GE и у HC пусты - загрузка идёт без проблем. Второй: кэш пуст только у GE - ступор после первого же тайлового запроса, тут это отлично видно - 30 сек ожидание неизвестно чего...

* ge_logs.rar (4.43 Кб - загружено 28 раз.)
Сообщить модератору   Записан
Михаил
Модератор
*****

Репутация: +302/-14
Offline Offline

Сообщений: 5376



« Ответ #22 : 16 Июнь 2009, 01:05:35 »

Несовсем ясно по логу 2, как HC грузил dbRoot 62 сек, а в это же время зависящий от него GE загрузил этот файл за 0,6 сек...
Сообщить модератору   Записан
Parasite
Пользователь
**

Репутация: +1/-0
Offline Offline

Сообщений: 66



« Ответ #23 : 16 Июнь 2009, 07:25:35 »

НО вопрос остаётся ребром - почему гугл стопорит? 
Вот 2 лога. Первый: кэши и у GE и у HC пусты - загрузка идёт без проблем. Второй: кэш пуст только у GE - ступор после первого же тайлового запроса, тут это отлично видно - 30 сек ожидание неизвестно чего...
Подтверждаю проблему и с версией ГЕ 4.2 (до этого тестировалась 5я). Стабильное стопорение и ожидание неизвестно чего после первого же запроса склееных тайлов и ответа HC/GE.lua на него (http://kh.google.com/flatfile?q2-0311-q.203+q2-0310-q.203+q2-0312-q.203+q2-0022-q.203&v=1)
Более того, четверка не так бронебойна как 5ка - и просто банально крэшится, тогда как 5ка еще пыталась шевелиться.

И еще более того - сегодня кучу времени не мог залогиниться в ГЕ через связку, лог в аттаче. Без HС+GE.lua - все работало прекрасно. Это, наверное, уже к разработчику HC - вот эти вот вылазящие GET в собственно урле, в них всё зло в данном случае... Грустный


* Clipboard01.gif (45.96 Кб, 972x224 - просмотрено 47 раз.)
Сообщить модератору   Записан
Михаил
Модератор
*****

Репутация: +302/-14
Offline Offline

Сообщений: 5376



« Ответ #24 : 16 Июнь 2009, 08:03:07 »

Версия НС последняя (180)?
Если да, кинь, плиз, мне на мыло (указано в заголовке расширения GE.lua) в заархивированном виде всю свою папку с НС (кроме подпапки кэша и подпапки Logs). Попытаюсь воспроизвести.
Сообщить модератору   Записан
Parasite
Пользователь
**

Репутация: +1/-0
Offline Offline

Сообщений: 66



« Ответ #25 : 16 Июнь 2009, 08:33:45 »

Версия НС последняя (180)?
Да.

Если да, кинь, плиз, мне на мыло (указано в заголовке расширения GE.lua) в заархивированном виде всю свою папку с НС (кроме подпапки кэша и подпапки Logs). Попытаюсь воспроизвести.
Нет нужды. Версия - .180 с этого сайта, список своих замен я вчера сюда постил, а скрипт Вы сами приаттачивали. Больше расхождений со стандартной поставкой HC нет.

Судя по всему, я нашел проблему глюков и замедления GE. Ведется тестирование, если все ОК на протяжении пары часов - запощу решение сюда. На наст.момент 5ка - работает и весьма шустро, 4ка - тоже, и перестала вылетать. Трабл был в скрипте.
Ведется плотное тестирование.

Периодические появления GET в урлах - остались. Имхо, баг HC. Грустный

PS: интересующихся приглашаю посетить свою тему "GoogleEarth .LOCAL" - клиент ГЕ с возможностью работы в полностью локальном режиме (отломан процесс авторизации на сервере ГЕ): http://sasgis.ru/forum/viewtopic.php?f=3&t=281
Сообщить модератору   Записан
Parasite
Пользователь
**

Репутация: +1/-0
Offline Offline

Сообщений: 66



« Ответ #26 : 16 Июнь 2009, 11:19:31 »

Да, всё работает - проверено на версии 4.2 и 5.0
Модифицированный скрипт (v.0.05sr1) - ниже, кой и предлагаю сделать базовым при внесении последующих изменений:
Код:
--[[ <HCExtension>
@name          Google Earth caching
@author        nadenj@mail.ru
@version       0.05sr1
@description   Google Earth flatfiles caching
@rule          kh(mdb)?\.google\.com/flatfile\?
@event         RequestHeaderReceived/request
</HCExtension> ]]

--[[*********************************************************************************
   Учитывать: 1. Не рассчитано на использование дополнительного кэша (я не нашел
                 способа определять с помощью Lua-API, в каком из кэшей найден файл)
              2. Будет неправильно работать при отключении чтения из кэша (это при
                 желании можно доработать)
*************************************************************************************]]


-- Переводит целое число в 4-символьную строку, содержащую его машинное представление
--(для записи целого в память или файл)
 local function IntToChars(int)
   local ch = ''
   for j=1,4 do
     ch = ch .. string.char(int%256)
     int = math.floor(int/256)
   end
   return ch
 end
 
-- обратная функция
 local function CharsToInt(chr)
   local int = 0
   for j=1,4 do
     int = int + string.byte(chr:sub(j,j))*256^(j-1)
   end
   return int
 end

-- local URLBase

local function OriginURL(cut_url)
    if cut_url:find('+', 1, true) then
        return re.replace(URLBase, '===', cut_url)
    end
    return re.replace(URLBase, '===.*', cut_url)
end

-- ********** О Б Р А Б О Т К А   З А Г О Л О В К А   З А П Р О С А **********
   
function request()

    -- if hc.url:find('geauth') then
    -- hc.put_msg('ops')
-- local f=io.open(hc.get_cache_file_name(hc.url), 'rb')
-- hc.answer_body = f:read('*a')
-- f:close()
        -- hc.answer_header = 'HTTP/1.1 200 OK\r\nContent-Type: application/octet-stream\r\nExpires: 0\r\n' ..
-- 'Cache-Control: no-cache,no-store\r\nSet-Cookie: PREF=ID=04c59454d2abb6b7:TM=1243710370:LM=1243710370:S=YdBzseUhw6Z4z3xu; ' ..
-- 'expires=Mon, 30-May-2011 19:06:10 GMT; path=/; domain=.google.com\r\nDate: Sat, 30 May 2009 19:06:10 GMT\r\nServer: btfe\r\n' ..
-- 'Content-Length: ' .. #hc.answer_body .. '\r\nConnection: Close\r\n\r\n'
        -- return
    -- end

    local URLTail = re.replace(hc.url, [[(^http://kh(mdb)?\.google\.com/flatfile\?(db=\w+&)?+)([^&]+)(.*)]], [[\4]])
    URLBase = re.replace(hc.url, nil, [[\1===\5]])
    -- если запрошенный файл не составной, то не обновляем его
    -- hc.put_to_log('+++++++++++++ ', URLTail, ' +++++++++++')
    if not URLTail:find('+', 1, true) then
        hc.action = 'dont_update'
        hc.monitor_string = 'GE: загружен'
        return
    end

    -- все остальное только для составных запрошенных файлов. В кэше их не сохраняем,
    -- разбиваем на простые, каждый из которых сохраняем в кэш
    hc.action = 'dont_save'
    GE = {}
    i = 0                      -- число подфайлов в запрашиваемом файле
    GE.not_in_cache_count = 0  -- число подфайлов, отсутствующих в кэше

    -- для каждого подфайла сохраним его url и признак наличия в кэше
    local not_cached_url = ''
    for file in URLTail:gmatch('[^+]+') do
        i = i+1
        GE[i] = {url=file}
        GE[i].fname, GE[i].in_cache = hc.get_cache_file_name(OriginURL(file))
        if GE[i].in_cache then
            local cf = io.open(GE[i].fname, 'rb')
            if cf then
                GE[i].body = cf:read('*a')
                cf:close()
                hc.put_to_log('GE: Прочли из кэша файл ', GE[i].fname)
            else
                hc.put_to_log('GE: Не удалось прочесть из кэша файл ', GE[i].fname)
                hc.put_msg('GE: Не удалось прочесть из кэша файл ', GE[i].fname)
            end
        else
            GE.not_in_cache_count = GE.not_in_cache_count + 1
            not_cached_url = not_cached_url .. '+' .. file
        end
    end

    -- если все куски запрашиваемого файла есть в кэше, то собираем его и отдаем
    if GE.not_in_cache_count==0 then
        local header = '\1' .. string.char(i)  -- создаем начало заголовка собираемого файла
        local body = ''                        -- здесь накапливаем тело собираемого файла
        local j = 1
        repeat
            local cf = io.open(GE[j].fname, 'rb')
            if cf then
                header = header .. IntToChars(2+4*i+#body)  -- дописываем смещение j-го подфайла в заголовок
                body = body .. cf:read('*a')     -- дописываем тело j-го подфайла к собираемому файлу
                cf:close()
                j = j + 1
            end
        until j>i
        hc.answer_body = header .. body
        hc.answer_header = 'HTTP/1.0 200 OK\r\nContent-Type: application/octet-stream\r\nServer: btfe\r\nContent-Length: '
            .. #hc.answer_body .. '\r\nConnection: Close\r\n\r\n'
        hc.monitor_string = 'GE: составной, всё из кэша'

    else
        GE.body = ''
        GE.files_count = i
        -- формируем новый URL, куда войдут только отсутствующие в кэше части
        not_cached_url = not_cached_url:gsub('+', '', 1)
        --  и исправляем соответственно заголовок запроса к серверу
        if not_cached_url:find('+', 1, true) then
            hc.request_header = re.replace(hc.request_header, [[.*?\?(db=\w+&)?+\K[^&\s]+]], not_cached_url)
        else
            hc.request_header = re.replace(hc.request_header, [[.*?\?(db=\w+&)?+\K\S+]], not_cached_url)
        end
        hc.call_me_for('BeforeAnswerBodySend', 'body')
    end
end

-- ********** О Б Р А Б О Т К А   Т Е Л А   О Т В Е Т А **********

function body()
    GE.body = GE.body .. hc.answer_body        -- тело полученного из интернет ответа
    local body = ''                -- здесь накапливаем итоговое тело ответа
    if not hc.last_part then
        hc.answer_body = ''
        return
    end
    local i = GE.files_count
    local k = 0
    local header = '\1' .. string.char(i)  -- создаем начало заголовка собираемого файла
    for j=1,i do
   header = header .. IntToChars(2+4*i+#body)  -- дописываем смещение j-го подфайла в заголовок
        if GE[j].in_cache then
            body = body .. GE[j].body
        else
            local bb
            if GE.not_in_cache_count==1 then
                bb = GE.body
            else
                k = k + 1
                bb = GE.body:sub(CharsToInt(GE.body:sub(k*4-1,k*4+2))+1,
                    k<GE.not_in_cache_count and CharsToInt(GE.body:sub(3+k*4,3+(k+1)*4-1)) or -1)
            end
            hc.prepare_path(GE[j].fname)
            local ff = io.open(GE[j].fname, 'wb')
            if ff then
                ff:write(bb)   -- пишем j-й подфайл в кэш
                ff:close()
                hc.put_to_log('GE: Записали в кэш файл ', GE[j].fname)
            -- удалим из RAM-кэша и текущего потока возможную информацию о том, что j-го подфайла в кэше нет
                hc.update_url_info(OriginURL(GE[j].url))
            end
            body = body .. bb
        end
    end
    hc.answer_body = header .. body
    hc.monitor_string = (GE.not_in_cache_count<i) and 'GE: составной, из сети и кэша' or 'GE: составной, загружен полностью'
end
Изменения:
1. В хидеры добавлен вывод "Connection: Close" - старые и общеизвестные грабли ГЕ, но часто не учитываемые при работе и доставляющие проблем клиенту.
2. Несколько прилизаны выводимые в лог HC мессиджи (для красоты и информативности)

Не решено:
1. Периодическое появление слова GET в строке урла. Закономерности появления не выявлено. См.аттачи в предыдущих мессагах.
2. Пункты 2 и ниже из моего первого поста.

Просьба попробовавшим скрипт - отписаться, всё ли ОК с клиентом.
Сообщить модератору   Записан
Parasite
Пользователь
**

Репутация: +1/-0
Offline Offline

Сообщений: 66



« Ответ #27 : 16 Июнь 2009, 14:57:35 »

Новая напасть - не отдает кэшированные ОДИНОЧНЫЕ тайлы клиенту ГЕ.
Тайлы точно и однозначно есть в кэше. Собирает и отдает из них тоже ОК. Но: при запросе одиночного файла клиентом ГЕ - HC+скрипт перекачивают оный. А при запросе его же, но через браузер (заруленный на HC) - этот файл свободно отдается из кэша.

Аттач.
Первая строчка (q2-0-q.203) - запрос браузером, отдача из кэша HC, все прекрасно.
Строчка, выделенная синим - запрос клиента GE в тот же файл, но идет скачка (и обновление в кэше) этого файла.
То же самое и со всеми одиночными файлами (включая дбрут) - они не отдаются из кэша в клиент ГЕ, но отдаются в браузер. Составные прекрасно отдаются из кэша и туда и туда. Хрень какая-то... Грустный

Господа, подскажите - куда рыть? Скрипт - весь есть в предыдущем посте. Help me!


* Clipboard01.gif (17.54 Кб, 954x201 - просмотрено 35 раз.)
Сообщить модератору   Записан
mai62
Автор HC
*****

Репутация: +221/-4
Offline Offline

Сообщений: 6324


« Ответ #28 : 16 Июнь 2009, 15:55:10 »

Попробуй включить опцию Настройки/Кэш/Управление/Чтение из кэша/Игнорировать no-cache.
Сообщить модератору   Записан
Parasite
Пользователь
**

Репутация: +1/-0
Offline Offline

Сообщений: 66



« Ответ #29 : 16 Июнь 2009, 16:22:39 »

Попробуй включить опцию Настройки/Кэш/Управление/Чтение из кэша/Игнорировать no-cache.
Заработало. Спасибо. Улыбка
Сообщить модератору   Записан
Parasite
Пользователь
**

Репутация: +1/-0
Offline Offline

Сообщений: 66



« Ответ #30 : 17 Июнь 2009, 07:17:07 »

Ау, народ?? Куда все делись?
Остальные-то пунктики вопроса прорабатывать будем, или как? Улыбка

На данный момент очень интересует - что делать с периодически вылазящими GET в строке урла. Если это уже к разработчику HC (ибо в скрипте никаких GET для вывода не имеется, и лезть оно может либо с клиента ГЕ либо с самого HC), и нужно открыть новую тему с багрепортом - то намекните, сделаю.

Также интересуют оставшиеся пунктики из первого поста данной темы. Спасибо.
Сообщить модератору   Записан
Parasite
Пользователь
**

Репутация: +1/-0
Offline Offline

Сообщений: 66



« Ответ #31 : 17 Июнь 2009, 10:58:55 »

Приветствую.

Периодически в мониторе HC присутсвуют непонятные, битые УРЛы со вклинившейся в них командой GET. Такой УРЛ, разумеется, не скачивается - и дает ошибку. Пример - в аттаче, и собственно лог этой ситуации тоже. Проявляется примерно раз в 5-10 минут, закономерность появления не выявлена.

Подскажите пожалуйста - как побороть? Очень мешает жить.
Благодарю.

HC.180, Windows XP, 512 RAM.

Код:
17.06.09 12:26:47,354 # 2031 <<< URL: http://kh.google.com/geauth
HTTP/1.1 200 OK
Content-Type: application/octet-stream
Expires: 0
Cache-Control: no-cache,no-store
Set-Cookie: PREF=ID=f55b6a75f4d129bc:TM=1245216523:LM=1245216523:S=RDN8rR2r9oCmV4uw; expires=Fri, 17-Jun-2011 05:28:43 GMT; path=/; domain=.google.com
Date: Wed, 17 Jun 2009 05:28:43 GMT
Server: btfe
Content-Length: 112
Connection: keep-alive


17.06.09 12:26:47,448 # 2032/4718 >>> URL: http://mw2.google.com/mw-earth-vectordb/gallery_layers/icons/places.png
noReqDo:
GET http://mw2.google.com/mw-earth-vectordb/gallery_layers/icons/places.png HTTP/1.1
Accept: text/plain, text/html, text/xml, text/xml-external-parsed-entity, application/octet-stream, application/vnd.google-earth.kml+xml, application/vnd.google-earth.kmz, image/*
If-Modified-Since: Mon, 15 Jun 2009 07:47:18 GMT
User-Agent: GoogleEarth/4.2.0205.5730(Windows;Microsoft Windows XP (Service Pack 1);ru-RU;kml:2.2;client:Free;type:default)
Host: mw2.google.com
Connection: Keep-Alive


17.06.09 12:26:47,558 # 2032/4718 <<< URL: http://mw2.google.com/mw-earth-vectordb/gallery_layers/icons/places.png
HTTP/1.1 304 Not Modified (HC)
Server: HandyCache/1.00 RC2 (1.0.0.180) UNSTABLE
Content-Length: 0
Connection: Keep-alive


17.06.09 12:26:51,026 # 2031: DNS resolve
GET http --> Err 123

17.06.09 12:26:51,136 # 2031 <<< URL:
GET http://kh.google.com/flatfile?
GET http://kh.google.com/flatfile?q2-03103132-q.203+q2-03103123-q.203+f1c-03100332-d.5378.200&v=1&v=1
Connection to
GET http:80

17.06.09 12:26:51,276 # 2032: DNS resolve kh.google.com --> 72.14.203.190 (From cache)

17.06.09 12:26:51,401 # 2032 <<< URL: http://kh.google.com/flatfile?q2-03103003-q.203
Connection to 72.14.203.190:80

17.06.09 12:26:51,604 # 2032:  Outbound Connection, Local port: 4660

17.06.09 12:26:51,698 # 2032/4720 >>> URL: http://kh.google.com/flatfile?q2-03103003-q.203
GET /flatfile?q2-03103003-q.203 HTTP/1.1
Accept: text/plain, text/html, text/xml, text/xml-external-parsed-entity, application/octet-stream, application/vnd.google-earth.kml+xml, application/vnd.google-earth.kmz, image/*
Cache-Control: no-cache, no-store
Cookie: $Version="0"; SessionId=XxJsOgADEAEADwAwbMslVKwmKBmGHjrI8htaFm/fQHQ/Ix9jIouSdX/ubvoRh4OWub/txDJH2shfI3N2; State=1
User-Agent: GoogleEarth/4.2.0205.5730(Windows;Microsoft Windows XP (Service Pack 1);ru-RU;kml:2.2;client:Free;type:default)
Host: kh.google.com
Connection: Keep-Alive
Pragma: no-cache


17.06.09 12:26:51,808 # 2032 <<< URL: http://kh.google.com/flatfile?q2-03103003-q.203
HTTP/1.1 200 OK
Date: Wed, 17 Jun 2009 05:28:48 GMT
Pragma: no-cache
Expires: Fri, 01 Jan 1990 00:00:00 GMT
Cache-Control: no-cache, must-revalidate
Content-Type: application/octet-stream
Server: btfe
Content-Length: 456
Connection: keep-alive


* Clipboard01.gif (10.21 Кб, 961x112 - просмотрено 29 раз.)
Сообщить модератору   Записан
mai62
Автор HC
*****

Репутация: +221/-4
Offline Offline

Сообщений: 6324


« Ответ #32 : 17 Июнь 2009, 11:53:29 »

Цитировать
На данный момент очень интересует - что делать с периодически вылазящими GET в строке урла.
Нужно разбираться. Я рассчитываю, что с этим поможет Михаил. Раз он не появляется, значит у него пока нет возможности этим заняться (он никогда не бросает начатое).
Цитировать
Хотелось бы вменяемой и НАСТРАИВАЕМОЙ возможности сортировки кэшируемого контента по папкам. Общеупотребимый формат кэша могу написать сюда.
Не знаю, что конкретно нужно. Может быть будет достаточно возможностей списка Преобразование URL. Если нет, планирую в следующей версии сделать возможность преобразования URL в имя файла в кэше в расширении.
Цитировать
Хотелось бы поддержки связкой ВСЕХ серверов GE (Земля, Небо, История итд).
Не знаю, что это такое.
Сообщить модератору   Записан
mai62
Автор HC
*****

Репутация: +221/-4
Offline Offline

Сообщений: 6324


« Ответ #33 : 17 Июнь 2009, 11:58:55 »

Сделайте вывод в лог заголовков, формируемых расширением GE, и посмотрите правильные ли они.
Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #34 : 17 Июнь 2009, 12:14:07 »

ибо в скрипте никаких GET для вывода не имеется

В скрипте хватает мест, где можно испортить заголовок запроса. Хотя бы здесь:

Код:
      -- формируем новый URL, куда войдут только отсутствующие в кэше части
       not_cached_url = OriginURL(not_cached_url:gsub('+', '', 1)):gsub('.-%?', '', 1)
      --  и исправляем соответственно заголовок запроса к серверу
       hc.request_header = re.replace(hc.request_header, [[.*?\?\K\S+]], not_cached_url, false)
Сообщить модератору   Записан
Parasite
Пользователь
**

Репутация: +1/-0
Offline Offline

Сообщений: 66



« Ответ #35 : 17 Июнь 2009, 13:00:42 »

>Ищите ошибку в расширении GE.lua. Кривые заголовки появляются после его работы.
Хорошо, сегодня попробую погонять то же самое, но с отключенным ge.lua. Если проблема повторится - отпишусь тут, если нет - продолжу в теме дополнений.

>Сделайте вывод в лог заголовков, формируемых расширением GE, и посмотрите правильные ли они.
Где\как это настраивается\делается? HC пользуюсь недавно, еще не всё освоил...

Спасибо.
Сообщить модератору   Записан
Parasite
Пользователь
**

Репутация: +1/-0
Offline Offline

Сообщений: 66



« Ответ #36 : 17 Июнь 2009, 13:12:30 »

  >Нужно разбираться. Я рассчитываю, что с этим поможет Михаил. Раз он не появляется,
  значит у него пока нет возможности этим заняться (он никогда не бросает начатое).
Понял, ждемс. Но уж больно не терпится... Улыбка

  >Не знаю, что конкретно нужно. Может быть будет достаточно возможностей списка
  Преобразование URL. Если нет, планирую в следующей версии сделать возможность   
  преобразования URL в имя файла в кэше в расширении.
Не хватает поддержки параметров, которые нужно ВЫЧИСЛЯТЬ (например, на больших зумах в ГЕ могут быть миллионы тайлов, и чтобы избежать переполнения директорий - они раскидываются по дереву "подпапок" в каждом зуме, где номер подпапки вычисляется по известному алгоритму - имя файла переводится в X\Y квадрата на карте данного зума, в зависимости от X\Y - раскладывается в ту или иную подпапку). Нужно это для создания изначально правильной структуры кэша, с коим напрямую взаимодействуют уже другие программы и проекты.
На наст.момент нужное делается сторонним перловым скриптиком с рекурсивным обходом уже наработанного в HC кэша - но согласитесь, перелопачивать сторонним скриптом сотни мегабайт уже наработанного не есть правильно идеологически, да и времени отнимает немало.
Вот и хотелось бы сразу делать нужное - а с экзотикой в виде LUA я, к сожалению, практически незнаком. Изучение займет ненулевое время, а задача тем временем будет стоять. Грустный

Также не хватает байтовых\битовых операций (взять из закэшированного файла Х байт(ы) по смещению Y, кои дальше использовать в расчетах, указанных выше). Например, тот же dbRoot.v5 имеет постоянно обновляемые версии, номер которой зашит в самом файле (при этом сам файл по длине может не меняться, но изменится по содержанию).

В скрипте все вышеуказанное решается на ура парой строчек (например в перловом). Про LUA - не знаю.

   >Не знаю, что это такое.
Михаил знает. Улыбка

   >В скрипте хватает мест, где можно испортить заголовок запроса. Хотя бы здесь:
К сожалению, мне это практически ни о чем не говорит - я не программер, в общем и целом, да еще и на LUA... Грустный Ввиду чего ветка и была поднята.
« Последнее редактирование: 17 Июнь 2009, 13:17:20 от Parasite » Сообщить модератору   Записан
mai62
Автор HC
*****

Репутация: +221/-4
Offline Offline

Сообщений: 6324


« Ответ #37 : 17 Июнь 2009, 13:38:00 »

Цитировать
Не хватает поддержки параметров, которые нужно ВЫЧИСЛЯТЬ...
Раз нужно вычислять, с помощью списка Преобразование URL это не сделаешь. Придется подождать следующей версии. И не надо бояться lua (чуть не написал человека с ружьем). Синтаксис у него очень простой, много времени на ознакомление не уйдет, особенно если есть какой-то опыт в других языках. Все действия, что ты упомянул, можно делать и даже почти все уже делаются в расширении GE. Ну а если по каким-то причинам не получится, опиши алгоритм.
Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #38 : 17 Июнь 2009, 13:46:29 »

Хорошо, сегодня попробую погонять то же самое, но с отключенным ge.lua. Если проблема повторится - отпишусь тут, если нет - продолжу в теме дополнений.

Поскольку на GET в мониторе жалуются только пользователи GE, то проблема либо в расширении, либо в самом Google Earth. Темы объединяю.

Цитировать
>Сделайте вывод в лог заголовков, формируемых расширением GE, и посмотрите правильные ли они.
Где\как это настраивается\делается? HC пользуюсь недавно, еще не всё освоил...

В GE.lua ниже строк, правящих hc.request_header, вставь строку:
hc.put_to_log('=====Заголовок из GE:=====\r\n', hc.request_header, '=====Конец заголовка из GE:=====')

Можно даже для отладки вставить такую строку в двух местах: до изменения заголовка и после, тогда будет видно, портит его расширение или же такой заголовок приходит от Google Earth.
« Последнее редактирование: 18 Июнь 2009, 17:23:24 от DenZzz » Сообщить модератору   Записан
Parasite
Пользователь
**

Репутация: +1/-0
Offline Offline

Сообщений: 66



« Ответ #39 : 17 Июнь 2009, 14:13:03 »

   >Поскольку на GET в мониторе жалуются только пользователи GE, то проблема
   >либо в расширении, либо в самом Google Earth.
На версии HC.103 такого ни разу не наблюдалось. ГЕ были те же, а вот ge.lua в той версии не было вообще.
Так что либо в новой HC что-то отвалилось, либо действительно - скрипт. ГЕ исключается. Грустный

Сегодня буду тестить согласно вышеуказанного. Отпишусь. Спасибо.
Сообщить модератору   Записан
Страниц: 1 [2] 3 4 ... 9   Вверх
  Отправить эту тему    Печать  

 
Перейти в: