Главная
Форум
Контакты
Купить
Поддержи проект
Поиск
Искать:
Расширенный поиск
[Закрыть]
Правила форума
Войти
Регистрация
Russian
English
HandyCache форум
Главная категория
»
Дополнения, плагины
»
GE.lua - расширение HC для кэширование Google Earth
Имя пользователя:
1 час
1 день
1 неделя
1 месяц
Навсегда
Пароль:
Страниц:
1
[
2
]
3
4
...
9
Вниз
« предыдущая тема
следующая тема »
Отправить эту тему
Печать
Автор
Тема: GE.lua - расширение HC для кэширование Google Earth (Прочитано 98543 раз)
0 Пользователей и 1 Гость смотрят эту тему.
mai62
Автор HC
Репутация: +226/-4
Offline
Сообщений: 6383
Re: HandyCache + GE.lua (кэширование GoogleEarth)
«
Ответ #20 :
16 июня 2009, 00:01:40 »
zed
В IE HTTP Analyzer есть текстовое и hex-представление данных. Если ты брал файл из текстового представления, IE HTTP Analyzer вполне мог сделать упомянутое преобразование. Да и в hex-представлении я сталкивался с тем, что он может по мелкому приврать.
Сообщить модератору
Записан
zed
Постоялец
Репутация: +4/-0
Offline
Сообщений: 141
Re: HandyCache + GE.lua (кэширование GoogleEarth)
«
Ответ #21 :
16 июня 2009, 00:52:22 »
Хм, действительно. Отключил скрипт, дал HC загрузить тот URL, соответственно, получил этот тайл в кэше и в снифере. Cравниваю: в кэше тайл - ОК, в снифере (в hex-представлении) - битый. Значит в топку этот снифер, чёт он чудит.
НО вопрос остаётся ребром - почему гугл стопорит?
Вот 2 лога. Первый: кэши и у GE и у HC пусты - загрузка идёт без проблем. Второй: кэш пуст только у GE - ступор после первого же тайлового запроса, тут это отлично видно - 30 сек ожидание неизвестно чего...
ge_logs.rar
(4.43 Кб - загружено 67 раз.)
Сообщить модератору
Записан
Михаил
Модератор
Репутация: +337/-14
Offline
Сообщений: 5513
Re: HandyCache + GE.lua (кэширование GoogleEarth)
«
Ответ #22 :
16 июня 2009, 01:05:35 »
Несовсем ясно по логу 2, как HC грузил dbRoot 62 сек, а в это же время зависящий от него GE загрузил этот файл за 0,6 сек...
Сообщить модератору
Записан
Parasite
Пользователь
Репутация: +1/-0
Offline
Сообщений: 66
Re: HandyCache + GE.lua (кэширование GoogleEarth)
«
Ответ #23 :
16 июня 2009, 07:25:35 »
Цитата: zed от 16 июня 2009, 00:52:22
НО вопрос остаётся ребром - почему гугл стопорит?
Вот 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 - просмотрено 134 раз.)
Сообщить модератору
Записан
Михаил
Модератор
Репутация: +337/-14
Offline
Сообщений: 5513
Re: HandyCache + GE.lua (кэширование GoogleEarth)
«
Ответ #24 :
16 июня 2009, 08:03:07 »
Версия НС последняя (180)?
Если да, кинь, плиз, мне на мыло (указано в заголовке расширения GE.lua) в заархивированном виде всю свою папку с НС (кроме подпапки кэша и подпапки Logs). Попытаюсь воспроизвести.
Сообщить модератору
Записан
Parasite
Пользователь
Репутация: +1/-0
Offline
Сообщений: 66
Re: HandyCache + GE.lua (кэширование GoogleEarth)
«
Ответ #25 :
16 июня 2009, 08:33:45 »
Цитата: Михаил от 16 июня 2009, 08:03:07
Версия НС последняя (180)?
Да.
Цитата: Михаил от 16 июня 2009, 08:03:07
Если да, кинь, плиз, мне на мыло (указано в заголовке расширения 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
Сообщений: 66
Re: HandyCache + GE.lua (кэширование GoogleEarth)
«
Ответ #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
Сообщений: 66
Re: HandyCache + GE.lua (кэширование GoogleEarth)
«
Ответ #27 :
16 июня 2009, 14:57:35 »
Новая напасть - не отдает кэшированные ОДИНОЧНЫЕ тайлы клиенту ГЕ.
Тайлы точно и однозначно есть в кэше. Собирает и отдает из них тоже ОК. Но: при запросе одиночного файла клиентом ГЕ - HC+скрипт перекачивают оный. А при запросе его же, но через браузер (заруленный на HC) - этот файл свободно отдается из кэша.
Аттач.
Первая строчка (q2-0-q.203) - запрос браузером, отдача из кэша HC, все прекрасно.
Строчка, выделенная синим - запрос клиента GE в тот же файл, но идет скачка (и обновление в кэше) этого файла.
То же самое и со всеми одиночными файлами (включая дбрут) - они не отдаются из кэша в клиент ГЕ, но отдаются в браузер. Составные прекрасно отдаются из кэша и туда и туда. Хрень какая-то...
Господа, подскажите - куда рыть? Скрипт - весь есть в предыдущем посте.
Clipboard01.gif
(17.54 Кб, 954x201 - просмотрено 122 раз.)
Сообщить модератору
Записан
mai62
Автор HC
Репутация: +226/-4
Offline
Сообщений: 6383
Re: HandyCache + GE.lua (кэширование GoogleEarth)
«
Ответ #28 :
16 июня 2009, 15:55:10 »
Попробуй включить опцию Настройки/Кэш/Управление/Чтение из кэша/Игнорировать no-cache.
Сообщить модератору
Записан
Parasite
Пользователь
Репутация: +1/-0
Offline
Сообщений: 66
Re: HandyCache + GE.lua (кэширование GoogleEarth)
«
Ответ #29 :
16 июня 2009, 16:22:39 »
Цитата: mai62 от 16 июня 2009, 15:55:10
Попробуй включить опцию Настройки/Кэш/Управление/Чтение из кэша/Игнорировать no-cache.
Заработало. Спасибо.
Сообщить модератору
Записан
Parasite
Пользователь
Репутация: +1/-0
Offline
Сообщений: 66
Re: HandyCache + GE.lua (кэширование GoogleEarth)
«
Ответ #30 :
17 июня 2009, 07:17:07 »
Ау, народ?? Куда все делись?
Остальные-то пунктики вопроса прорабатывать будем, или как?
На данный момент очень интересует - что делать с периодически вылазящими GET в строке урла. Если это уже к разработчику HC (ибо в скрипте никаких GET для вывода не имеется, и лезть оно может либо с клиента ГЕ либо с самого HC), и нужно открыть новую тему с багрепортом - то намекните, сделаю.
Также интересуют оставшиеся пунктики из первого поста данной темы. Спасибо.
Сообщить модератору
Записан
Parasite
Пользователь
Репутация: +1/-0
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 - просмотрено 115 раз.)
Сообщить модератору
Записан
mai62
Автор HC
Репутация: +226/-4
Offline
Сообщений: 6383
Re: HandyCache + GE.lua (кэширование GoogleEarth)
«
Ответ #32 :
17 июня 2009, 11:53:29 »
Цитировать
На данный момент очень интересует - что делать с периодически вылазящими GET в строке урла.
Нужно разбираться. Я рассчитываю, что с этим поможет
Михаил
. Раз он не появляется, значит у него пока нет возможности этим заняться (он никогда не бросает начатое).
Цитировать
Хотелось бы вменяемой и НАСТРАИВАЕМОЙ возможности сортировки кэшируемого контента по папкам. Общеупотребимый формат кэша могу написать сюда.
Не знаю, что конкретно нужно. Может быть будет достаточно возможностей списка Преобразование URL. Если нет, планирую в следующей версии сделать возможность преобразования URL в имя файла в кэше в расширении.
Цитировать
Хотелось бы поддержки связкой ВСЕХ серверов GE (Земля, Небо, История итд).
Не знаю, что это такое.
Сообщить модератору
Записан
mai62
Автор HC
Репутация: +226/-4
Offline
Сообщений: 6383
Re: Это баг или фича?
«
Ответ #33 :
17 июня 2009, 11:58:55 »
Сделайте вывод в лог заголовков, формируемых расширением GE, и посмотрите правильные ли они.
Сообщить модератору
Записан
DenZzz
Модератор
Репутация: +179/-11
Offline
Сообщений: 5589
Re: HandyCache + GE.lua (кэширование GoogleEarth)
«
Ответ #34 :
17 июня 2009, 12:14:07 »
Цитата: Parasite от 17 июня 2009, 07:17: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
Сообщений: 66
Re: Это баг или фича?
«
Ответ #35 :
17 июня 2009, 13:00:42 »
>Ищите ошибку в расширении GE.lua. Кривые заголовки появляются после его работы.
Хорошо, сегодня попробую погонять то же самое, но с отключенным ge.lua. Если проблема повторится - отпишусь тут, если нет - продолжу в теме дополнений.
>Сделайте вывод в лог заголовков, формируемых расширением GE, и посмотрите правильные ли они.
Где\как это настраивается\делается? HC пользуюсь недавно, еще не всё освоил...
Спасибо.
Сообщить модератору
Записан
Parasite
Пользователь
Репутация: +1/-0
Offline
Сообщений: 66
Re: HandyCache + GE.lua (кэширование GoogleEarth)
«
Ответ #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
Репутация: +226/-4
Offline
Сообщений: 6383
Re: HandyCache + GE.lua (кэширование GoogleEarth)
«
Ответ #37 :
17 июня 2009, 13:38:00 »
Цитировать
Не хватает поддержки параметров, которые нужно ВЫЧИСЛЯТЬ...
Раз нужно вычислять, с помощью списка Преобразование URL это не сделаешь. Придется подождать следующей версии. И не надо бояться lua (чуть не написал человека с ружьем). Синтаксис у него очень простой, много времени на ознакомление не уйдет, особенно если есть какой-то опыт в других языках. Все действия, что ты упомянул, можно делать и даже почти все уже делаются в расширении GE. Ну а если по каким-то причинам не получится, опиши алгоритм.
Сообщить модератору
Записан
DenZzz
Модератор
Репутация: +179/-11
Offline
Сообщений: 5589
Re: Это баг или фича?
«
Ответ #38 :
17 июня 2009, 13:46:29 »
Цитата: Parasite от 17 июня 2009, 13:00:42
Хорошо, сегодня попробую погонять то же самое, но с отключенным 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
Сообщений: 66
Re: HandyCache + GE.lua (кэширование GoogleEarth)
«
Ответ #39 :
17 июня 2009, 14:13:03 »
>Поскольку на GET в мониторе жалуются только пользователи GE, то проблема
>либо в расширении, либо в самом Google Earth.
На версии HC.103 такого ни разу не наблюдалось. ГЕ были те же, а вот ge.lua в той версии не было вообще.
Так что либо в новой HC что-то отвалилось, либо действительно - скрипт. ГЕ исключается.
Сегодня буду тестить согласно вышеуказанного. Отпишусь. Спасибо.
Сообщить модератору
Записан
Страниц:
1
[
2
]
3
4
...
9
Вверх
Отправить эту тему
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Главная категория
-----------------------------
=> Общие вопросы
=> Новые предложения
=> Дополнения, плагины
=> Сжатие трафика
=> English forum
=> Indonesian forum
-----------------------------
Гостевая
-----------------------------
=> Гостевая
-----------------------------
Дела домашние
-----------------------------
=> Сайт и форум HandyCache
=> Курилка
© 2006-2014 HandyCache Team. Все права защищены.
Загружается...