View Issue Details

IDProjectCategoryView StatusLast Update
0000366SAS.ПланетаХотелка / Feature requestpublic29-02-2012 11:49
ReporterParasite Assigned Tozed  
PriorityhighSeveritymajorReproducibilityalways
Status closedResolutionfixed 
PlatformWindowsOSXPOS VersionSP3
Product Version101206 
Target Version110414Fixed in Version110414 
Summary0000366: Возможность определять headers сокетов
DescriptionНекоторые карты невозможно скачать используя САС.планета БЕЗ указания некоторых конкретных полей заголоков сокета. Обычно это REFERRER:, но иногда (например на гугле) это также и COOKIE:, итд итп. Приходится проксифицировать запросы через собственный скрипт, что есть ненужность и доп.гимор.

Отсюда - хотелка: хотелось бы возможности определения\перекрытия пользовательских хидеров непосредственно в GetUrlScript (причем активного - вычисляемого\контролируемого скриптом, а не пассивного единожды заданного).
Tagshttp headers, загрузка, закачка, паскальскрипт

Relationships

parent of 0000123 closedGarl Доработка карты (ZMP) Не работает ZMP от "Высоты (heywhatsthat.com)" 
parent of 0000305 closedGarl Доработка карты (ZMP) Проблемы с тайлами спутника kosmosnimki.ru 
parent of 0000577 closedTolik SAS.Планета kosmosnimki.ru отображаются с квадратами 
related to 0000379 closedvdemidov SAS.Планета Возможность использовать метод POST во встроенной качалке 
related to 0000596 closedvdemidov SAS.Планета Возможность выполнять HTTP запросы из паскаль-скриптов 

Activities

Garl

10-01-2011 18:24

manager   ~0000871

Last edited: 10-01-2011 18:38

тогда у нас получится нормально тянуть космоснимки.
так же хотелось бы менять user-agent

Parasite

11-01-2011 03:53

administrator   ~0000875

>получится нормально тянуть космоснимки.
...и обойти бан в гугле (там динамический токен в хидерах отдавать надо, и никакого бана не будет), и многое другое тоже... :)

Tolik

23-03-2011 07:00

manager   ~0001367

Хотелось бы поскорее получить возможность указывать заголовки в параметрах карты.
Может быть, хотя бы реализовать для начала статические, такие как referer, user-agent и т.п.
Давайте обсудим, как это должно выглядеть.

Например, в params.txt добавить поля:
referer
user-agent
cookie
keep-alive
connection
?
?

Либо добавить одно поле headers, в которое можно вставлять какие угодно заголовки?

Также надо бы составить список переменных для GetUrlScript

Parasite

24-03-2011 06:03

administrator   ~0001373

Господа, не нужно обсуждать посторонние продукты и рапортовать об удачах\неудачах с ними - в хотелке к сасу. Для этого есть форум, а тут - именно прикручивание конкретного функционала именно к сасу.
Почищено.

gpsMax

26-03-2011 16:23

manager   ~0001414

Упоминание "посторонних продуктов"(хех, прямо как Майкрософт) имеет целью показать, что хотелка эта не самая горящая, и большей частью реализуемая обходными средствами.

Tolik

26-03-2011 20:40

manager   ~0001419

"Посторонний продукт" (Proxomitron) - это костыль, а хотелка-таки горящая, позволит создавать нормальные, рабочие zmp.

Parasite

28-03-2011 03:35

administrator   ~0001421

>что хотелка эта не самая горящая, и большей частью реализуемая обходными средствами
Абсолютно любая из скреативленных тут хотелок может быть реализована обходными средствами (включая и весь САС как таковой) - что, собственно, постоянно и делается. Но это еще не значит, что в темах оных хотелок К САСу нужно устраивать анархию и ломки копий по СТОРОННИМ вариантам решения.

В очередной раз напоминаю, что багтреккер предназначен для обсуждений конкретных доработок именно САСа, и ни шагом в сторону. Все "обходные варианты" и прочие костыли просьба пилить на форуме.

zed

07-04-2011 15:05

manager   ~0001601

Last edited: 07-04-2011 15:08

В скриптах теперь будет доступна строковая переменная RequestHead, которой можно присваивать хидеры (а можно и не трогать, тогда будут дефолтные).

Пример использования:

RequestHead := 'User-Agent: Some User Agent' +#$0D#$0A+'Referer: www.test.com'+#$0D#$0A;

Tolik

07-04-2011 15:59

manager   ~0001602

Супер! А в какой версии?

zed

07-04-2011 16:05

manager   ~0001603

Уже в следующем релизе.

gpsMax

07-04-2011 17:03

manager   ~0001604

А динамически изменять эту переменную можно?

zed

07-04-2011 17:58

manager   ~0001605

Опишите вариант "динамического" изменения, а то не очень понятно что имеется в виду. ResultUrl вы можете изменять динамически? Вот с RequestHead будет точно так же.

Parasite

08-04-2011 05:55

administrator   ~0001608

Для работы с куками\сессиями нужна возможность где-то хранить оные куки\сессии в пределах нескольких запросов САС<->скрипт либо в пределах времени валидности данной сессии\куки. На настоящий момент, как я понимаю, скрипт переинициализируется при каждом новом вызове его САСом? Тогда придется тянуть по новой куке каждый раз при вызове скрипта (читай: на каждый тайл просить по куке).

Можно конечно писать куку+таймштамп в темп-файл и читать со скрипта при к.вызове, но это сработает лишь в один поток скачки. Как только появится второй поток скачки на тот же сервис - поимеем траблов с доступом к темп-файлу. Можно также писать и в БД - но это весьма сильное усложнение всей задачи, хоть работать конечно и будет.

В идеале, надо бы возможность отправлять пользовательские данные в САС как в буфер, а при следующем вызове скрипта - отдавать скрипту также и этот буфер. Будет там кука, специальные хидеры или "Тут был Вася™" - это разбирать на нужные параметры уже в самом скрипте. От САСа требуется лишь получать от скрипта _возможные_ данные, и при их наличии - отдавать это всё следующему скрипту при его инициализации, всё. Разбивка этого блока данных на пары "параметр:значение" - на усмотрение скриптопейсателя.

PS: так же можно передавать между разными вызовами скриптов и ранее запрошенные другим оратором дескрипторы, и что угодно еще появится там в будущем (но что-то мне подсказывает, что при выходе из скрипта PHP таки автоматически закроет все открытые коннекты\дескрипторы\хэндлеры за собой. Но не уверен, утверждать не возьмусь).

zed

08-04-2011 09:19

manager   ~0001609

Parasite, у тебя всё смешалось в кучу - и люди, и кони.
Каким боком БД и дескрипторы PHP в паскаль-скриптах, о коих здесь, собственно, и речь?

Parasite

08-04-2011 10:25

administrator   ~0001612

>дескрипторы PHP в паскаль-скриптах, о коих здесь, собственно, и речь?
Покажи мне выше в теме хоть одно слово "Паскаль"? Единственные скрипты, которыми ты занимался в плане САСа - это PHP-скрипты. Я так и понял, что речь пошла именно про них. Если сие не так - надо было прямо и указывать, что конкретно пилим.

PS: предыдущая моя мессага была именно за PHP, да. Если тут за Паскаль - удаляем пост (но про PHP ты таки имей ввиду тем не менее, вышеописанные грабли-то никуда не денутся...)

zed

08-04-2011 10:51

manager   ~0001614

Не важно чем я занимался или занимаюсь. Ты просил дать возможность в GetUrlScript (а это ничто иное, как паскаль-скрипт) влиять на хидеры запросов. Теперь такая возможность будет.

P.S. Если что, добавить фичу оказалось довольно легко - на весь процесс, включая тестирование, ушло не более получаса, так что от PHP я сильно не отвлекался.

gpsMax

08-04-2011 11:05

manager   ~0001616

>Опишите вариант "динамического" изменения, а то не очень понятно что имеется в виду.
Да, я имел в виду именно тупо возможность изменения, спасибо. Parasite, однако, поднял хороший вопрос про сессии.

zed

08-04-2011 14:21

manager   ~0001624

И откуда планируется эту самую сессию брать? Её ведь, чтоб передать из одного скрипта в другой (что само по себе элементарно и занимает не более 5 мин. кодинга), нужно наполнить ещё какими-то данными?
В любом случае, это будет уже совершенно новая хотелка.

И, к слову, для тех кто невнимательно следит за процессом прикручивания PHP: там с передачей сиссий между скриптами уже сейчас нет никаких проблем.

vdemidov

09-04-2011 06:45

manager   ~0001650

Zed я эти твои последние изменения включу в релиз, но ты их реально тестил? Смотрел чего там гуляет по сети? Просто юзер агент передается не при запросе конкретного тайла, а при подключении к серверу, насколько я помню. И ты его не убирал.

zed

09-04-2011 08:56

manager   ~0001653

>но ты их реально тестил
Естественно.
>Просто юзер агент передается не при запросе конкретного тайла, а при подключении к серверу
Не передаётся, а устанавливается. Это разные вещи. Устанавливается он где-то в глубинах свойств wininet, и затем при запросе каждого тайла извлекается из глубин и только потом передаётся серверу (всё средствами самого wininet).
Хидеры там (в SAS) тоже не передаются, а устанавливаются. И юзер агент из установленных хидеров имеет приоритет перед установленным ранее юзер-агентом. Так что, в конечном итоге на сервер всё уходит правильно.
>И ты его не убирал.
Да, иначе его пришлось бы писать в каждом скрипте, а так - лишь при желании его переопределить.

vdemidov

09-04-2011 09:02

manager   ~0001655

Ну я бы еще добавил подчитывание юзерагента и дефолтных хидеров из змп. И возомжно стоит добавить их хранение в maps.ini по аналогии с BaseUrl и возможность редактирования в параметрах карты.

Tolik

09-04-2011 09:38

manager   ~0001657

Давайте я потестирую этот билд

Parasite

09-04-2011 13:27

administrator   ~0001664

>Не важно чем я занимался или занимаюсь. Ты просил дать возможность в GetUrlScript (а это ничто иное, как паскаль-скрипт)
На момент создания тикета никаких разговоров про скрипты к САСу не было ВООБЩЕ, и тикет написан именно с того положения дел.
Потом (на момент появления последующего камента) они уже были, и были про PHP, и были по счастливой случайности именно от тебя. А по телепатии у меня всегда была тройка. :)

>И откуда планируется эту самую сессию брать?
Из самого первого вызова скрипта, кой (не получив буфера от САСа) ее и заполнит и отдаст в буфер, и этот буфер потянется во все последующие вызовы - периодически меняясь во времени, когда куку надо будет обновлять. Это уже задача скрипта - передавать и таймштампы, и что угодно еще. Было бы через что передавать.

PS: господа, а тикет http://sasgis.org/mantis/view.php?id=365 - с данным связан, или пускай отдельно валяется? А то я б прилинковал бы сюда и его тоже.

zed

09-04-2011 16:53

manager   ~0001667

vdemidov
>Ну я бы еще добавил подчитывание юзерагента и дефолтных хидеров из змп
Это по-моему лишнее - хидеры определяются один раз и в ручном редактировании уже не нуждаются (это ведь не url, в котором версии меняются через неделю). А если вдруг и захочется поправить что-то - ручками в zmp. Но это крайне редкая и маловероятная ситуация, чтоб ради неё разводить кучу настроек.

Parasite
>Было бы через что передавать.
Нет, как раз наоборот - было бы ЧТО передавать, а передать не проблема. На данный момент у паскаль-скриптов сильно ограничены возможности в плане "получить от сервера куки". Или точнее, такой возможности вообще нет, потому и возможность хранить что-то в буфере и передавать между скриптами на ДАННЫЙ момент абсолютно бесполезна.

>господа, а тикет http://sasgis.org/mantis/view.php?id=365 [^] - с данным связан
Нет. Да и работает оно вроде по https.

Моё мнение - с этой хотелкой покончено, можно закрывать как решённую. Но наравне с хотелкой 0000379 (про post запросы) нужно открывать новую, про получение cookie от сервера и там уже разводить холивары про что да как.

vdemidov

09-04-2011 17:17

manager   ~0001668

>Это по-моему лишнее - хидеры определяются один раз и в ручном редактировании уже не нуждаются
Ну это может понадобиться например, что бы задавать можно было куку руками. Пригодится для особо клинических способов задания куки джаваскриптами. Тоесть смотрим в браузере куку и вбиваем в настройки карты. А если вбибвать можно будет только в скрипте придется перезапускать программу.

zed

09-04-2011 17:39

manager   ~0001670

>куку руками
Действительно клинический случай. Но с другой стороны - открыть браузер, запустить нужную карту, проснифить запрос, скопировать куки - довольно много действий, и перезапуск SAS и редактирование zmp не самые трудные из них. Хотя, закачка наверное тормознётся.

В любом случае, в GUI я пока что лезть опасаюсь, так что это без меня как-нибудь.

Tolik

09-04-2011 17:46

manager   ~0001671

Хотя в большинстве случаев хватило бы и статического определения хедеров в params.txt, данное решение (RequestHead) мне кажется вполне универсальным и достаточным.

Кстати, вопрос о синтаксисе: можно ли использовать \r\n или только #$0D#$0A?

zed

09-04-2011 17:47

manager   ~0001672

Last edited: 09-04-2011 17:51

>можно ли использовать \r\n
Нет.

P.S. Вот она "прелесть" паскаль-скриптов - разрешено лишь то, о чём явно позаботился разработчик. Шаг в сторону - расстрел. (с)

vdemidov

09-04-2011 18:52

manager   ~0001674

> открыть браузер, запустить нужную карту, проснифить запрос, скопировать куки
Обычно снифить не нужно. В той же опере можно посмотреть установленные для текущей страницы куки.

Parasite

09-04-2011 19:59

administrator   ~0001675

>как раз наоборот - было бы ЧТО передавать, а передать не проблема. На данный момент у паскаль-скриптов сильно ограничены
Вроде ж выяснили выше, что про передачу куков между скриптами было [ошибочно] запощено касаемо PHP, а не паскаля. Про паскаль я пас, не в теме.

Может отделить этот вопрос (касаемо PHP) тебе в тему на форум? А то тут от него одна путаница, а стирать неохота - вопрос таки требует твоего внимания.

zed

09-04-2011 20:11

manager   ~0001676

>Вроде ж выяснили выше, что про передачу куков между скриптами было [ошибочно] запощено касаемо PHP
О, я ж вроде бы ясно сказал, что здесь разговор ТОЛЬКО про паскаль-скрипты. Никаких PHP я и близко не упоминал, что ты к ним тут привязался?

>Может отделить этот вопрос (касаемо PHP) тебе в тему на форум?
Отделять ничего не надо. Там эти вопросы уже решены.

zed

10-04-2011 19:01

manager   ~0001719

А, гулять так гулять! Сделал возможность получать хидеры ответа сервера - будут в переменной ResponseHead, и добавил буфер в который можно писать что-нибудь и передавать в скрипт при следующем запуске (строковая переменная ScriptBuffer).

Теперь, наверное, надо будет добавить пару функций для работы со строками: length, pos, copy, и если уж совсем разгуляться - добавить регэкспы?

Parasite

11-04-2011 05:29

administrator   ~0001729

Да это просто праздник какой-то....

Tolik

11-04-2011 05:48

manager   ~0001731

Last edited: 11-04-2011 05:49

ResponseHead - это строка, в ней все хедеры, разделённые \n\r?
Может ещё и парсер прикрутите? :) (Или он уже есть?)

Прям руки чешутся попробовать :)

zed

11-04-2011 11:17

manager   ~0001754

>ResponseHead - это строка, в ней все хедеры, разделённые \n\r?
Да.

>Может ещё и парсер прикрутите
Что он должен делать конкретно и в каком виде должен получиться результат?

Tolik

11-04-2011 11:29

manager   ~0001755

Результат - например,
ParseHeader(ResponseHead, "Content-Type") = "image/jpeg". Типа того.

zed

11-04-2011 20:01

manager   ~0001778

Last edited: 11-04-2011 20:04

Добавил 7 функций для работы со строками:
function Length(Str: string): integer
function GetAfter(SubStr, Str: string): string
function GetBefore(SubStr, Str: string): string
function GetBetween(Str, After, Before: string): string
function SubStrPos(const Str, SubStr: String; FromPos: integer): integer
function RegExprGetMatchSubStr(const Str, MatchExpr: string): string
function RegExprReplaseMatchSubStr(const Str, MatchExpr, Replase: string): string

Пример использования:

const
  CRLF = #$D#$A;
begin
Astr := 'Connection: Close' + CRLF + 'User-Agent: TestUserAgent' + CRLF;

'Length=' + inttostr(Length(AStr)) + CRLF +
'GetAfter=' + GetAfter('User-Agent', AStr) + CRLF +
'GetBefore=' + GetBefore('User-Agent', AStr) + CRLF +
'GetBetween=' + GetBetween(AStr, 'Connection', 'User-Agent') + CRLF +
'SubStrPos=' + inttostr(SubStrPos(AStr, CRLF, 20)) + CRLF +
'RegExprGetMatchSubStr=' + RegExprGetMatchSubStr(AStr, 'Connection:(.*?)\r\n') + CRLF +
'RegExprReplaseMatchSubStr=' + RegExprReplaseMatchSubStr(AStr, 'Connection:(.*?)\r\n', 'Connection: Keep-Alive'+CRLF);

Результат:

Length=46
GetAfter=: TestUserAgent#$D#$A
GetBefore=Connection: Close#$D#$A
GetBetween=: Close#$D#$A
SubStrPos=45
RegExprGetMatchSubStr= Close
RegExprReplaseMatchSubStr=Connection: Keep-Alive#$D#$AUser-Agent: TestUserAgent#$D#$A

Так же, доступны стандартные функции copy (http://www.delphibasics.ru/Copy.php) и pos (http://www.delphibasics.ru/Pos.php)

gpsMax

11-04-2011 20:14

manager   ~0001780

Круто. Только чуть косметически допилить вот это:

> GetAfter=: TestUserAgent#$D#$A

Народ, в общем-то, интересует получить из ответа значение заголовка по его имени. Собственно, это писали и выше. Чтобы каждый раз не писать лишние конструкции, нужна отдельная целевая функция, типа

GetHeader('User-Agent', AStr)

Вот отпилить от результата с GetAfter двоеточие, пробел(возможно, его не будет или он будет не один), и перенос строки, и будет конфетка.

zed

11-04-2011 20:33

manager   ~0001783

Более универсальная функция RegExprGetMatchSubStr - составляете регулярное выражение и получаете искомое.

gpsMax

11-04-2011 21:01

manager   ~0001784

Универсальная, но не удобная.

Tolik

12-04-2011 04:03

manager   ~0001789

Last edited: 12-04-2011 04:09

> GetHeader('User-Agent', AStr)
В точности то же двумя постами выше (note 1755).

Однако мы увлеклись теорией. Можно написать сколько угодно функций, а реально это нужно?
В какой конкретно карте мы будем (точнее, нам необходимо) анализировать заголовки response?
Parasite упоминал какие-то хитрые куки в Гугле, что именно нужно для их вычисления?

> function RegExprReplaseMatchSubStr(const Str, MatchExpr, Replase: string): string
Пожалуйста, исправьте replase на replace
(please replace replase with replace :))

Parasite

12-04-2011 04:49

administrator   ~0001797

>Результат - например, ParseHeader(ResponseHead, "Content-Type") = "image/jpeg". Типа того.
Читай: не зная названия конкретного поля - ты его и не узнаешь, пока в сниффер (сторонний продукт, от которых мы и желаем избавляться тут) не полезешь и не увидишь как он пишется и что конкретно отдает. :)
Получая же весь массив заголовков в скрипт - получаем все поля текстом, разбирай\парсь скриптом какие угодно и как угодно - не хочу. Любые возможные извращения на лету при парсинге опять же - доступны, а не только так как соизволит скомпилированный (неизменяемый) САСовский парсер.

>Parasite упоминал какие-то хитрые куки в Гугле, что именно нужно для их вычисления?
Нужны просто ровные руки и парсер строки из текста (на Перле - половина строчки регекспом), плюс возможность манипуляции хидерами на базе выпарсенных строк. :) Также нужна возможность запрашивать посторонние УРЛы, а не только графику начинающуюся с BaseURL - в частности, веб-страницы (Content-Type: text/html) и уметь с ними работать как с текстом.

PS: Вопрос тонкой ломки Гугля, как я понимаю - выходит за рамки данного тикета.

Tolik

12-04-2011 04:53

manager   ~0001798

Вопрос ломки гугла, конечно, выходит. А вопрос о необходимых для этого инструментах как раз сюда.

Достаточно ли для этого ResponseHead, RequestHead и прямых рук?
Я так понял, что нет, нужно ещё формировать посторонние запросы, т.е. в рамках данного тикета проблему не решить?

Parasite

12-04-2011 05:37

administrator   ~0001801

>нужно ещё формировать посторонние запросы, т.е. в рамках данного тикета проблему не решить?
На паскальскрипте - без понятия, я на нем почти не размовляю. На ранееупомянутом PHP\Перле сабж делается буквально за 10-15минут с перерывами на пиво.

Для гугла - да, понадобятся посторонние запросы. Для других сервисов - зависит уже от них. В любом случае - сабж нужный и полезный хотя бы для переназначения Referrer\UserAgent и проч (что обычно делается разово и доп.запросы в этом случае не нужны).

А для более сложных случаев (типа Гугла, или вон vdemidov куки с яваскрипта упоминал) - там уже надо будет развивать тему. Предлагаю сперва ввести и отладить возможность "чуть менее чем статичных" хидеров. :)

Tolik

12-04-2011 05:42

manager   ~0001802

В таком случае ПОКА нам достаточно строки RequestHead.

ResponseHead и строковые функции, конечно, пусть тоже будут, может и пригодятся.
Пора в релиз ;)

zed

12-04-2011 15:14

manager   ~0001825

Last edited: 12-04-2011 15:15

>Пожалуйста, исправьте replase на replace
Исправил.

Добавил так же возможность устанавливать хидеры и из zmp:
RequestHead=Referer: maps.kosmosnimki.ru#13#10

Tolik

12-04-2011 15:46

manager   ~0001829

Без кавычек? А если несколько хедеров, то как писать? Всё в одну строку? Лимита на длину нет?
А если и в params.txt, и в GetUrlScript.txt вставить RequestHead, какой будет результат?

Вы уж, пожалуйста, не забудьте к релизу подготовить описание всех нововведений.

zed

12-04-2011 17:28

manager   ~0001832

Немного подправил, теперь нужно писать так: RequestHead=Referer: maps.kosmosnimki.ru\r\nConnection: Close\r\n (всё в одну строку, без всяких кавычек. Разделитель строк (\r\n) в самом конце можно не ставить)

>А если и в params.txt, и в GetUrlScript.txt вставить RequestHead, какой будет результат?
Из GetUrlScript.txt

Garl

12-04-2011 18:44

manager   ~0001838

длина строки учитывается? а то у мну набирается длина больше 400 символов в строке.

zed

12-04-2011 19:45

manager   ~0001839

Да вроде если не более 1024 байт должно отрабатывать без вопросов. А дальше - опытным путём.

Issue History

Date Modified Username Field Change
10-01-2011 15:57 Parasite New Issue
10-01-2011 18:24 Garl Note Added: 0000871
10-01-2011 18:38 Garl Relationship added related to 0000123
10-01-2011 18:38 Garl Note Edited: 0000871
11-01-2011 03:53 Parasite Note Added: 0000875
12-01-2011 18:11 vdemidov Status new => acknowledged
12-01-2011 18:11 vdemidov Target Version => 44xxxx
22-01-2011 06:45 Parasite Relationship added related to 0000379
11-03-2011 04:03 Parasite Tag Attached: загрузка
11-03-2011 04:03 Parasite Tag Attached: закачка
16-03-2011 03:13 gpsMax Tag Attached: http headers
23-03-2011 07:00 Tolik Note Added: 0001367
24-03-2011 06:03 Parasite Note Added: 0001373
26-03-2011 16:23 gpsMax Note Added: 0001414
26-03-2011 20:40 Tolik Note Added: 0001419
28-03-2011 03:35 Parasite Note Added: 0001421
30-03-2011 05:08 vdemidov Category Баг => Хотелка
30-03-2011 05:08 vdemidov Summary Невозможность определять headers сокетов => Возможность определять headers сокетов
07-04-2011 15:05 zed Note Added: 0001601
07-04-2011 15:06 zed Note Edited: 0001601
07-04-2011 15:06 zed Note Edited: 0001601
07-04-2011 15:07 zed Note Edited: 0001601
07-04-2011 15:08 zed Note Edited: 0001601
07-04-2011 15:59 Tolik Note Added: 0001602
07-04-2011 16:05 zed Note Added: 0001603
07-04-2011 17:03 gpsMax Note Added: 0001604
07-04-2011 17:58 zed Note Added: 0001605
08-04-2011 05:55 Parasite Note Added: 0001608
08-04-2011 09:19 zed Note Added: 0001609
08-04-2011 10:25 Parasite Note Added: 0001612
08-04-2011 10:51 zed Note Added: 0001614
08-04-2011 11:05 gpsMax Note Added: 0001616
08-04-2011 14:21 zed Note Added: 0001624
09-04-2011 06:45 vdemidov Note Added: 0001650
09-04-2011 08:56 zed Note Added: 0001653
09-04-2011 09:02 vdemidov Note Added: 0001655
09-04-2011 09:38 Tolik Note Added: 0001657
09-04-2011 12:57 gpsMax Relationship added parent of 0000305
09-04-2011 13:01 gpsMax Relationship replaced parent of 0000123
09-04-2011 13:27 Parasite Note Added: 0001664
09-04-2011 16:53 zed Note Added: 0001667
09-04-2011 17:17 vdemidov Note Added: 0001668
09-04-2011 17:39 zed Note Added: 0001670
09-04-2011 17:46 Tolik Note Added: 0001671
09-04-2011 17:47 zed Note Added: 0001672
09-04-2011 17:51 zed Note Edited: 0001672
09-04-2011 18:52 vdemidov Note Added: 0001674
09-04-2011 19:59 Parasite Note Added: 0001675
09-04-2011 20:11 zed Note Added: 0001676
10-04-2011 19:01 zed Note Added: 0001719
11-04-2011 05:29 Parasite Note Added: 0001729
11-04-2011 05:48 Tolik Note Added: 0001731
11-04-2011 05:49 Tolik Note Edited: 0001731
11-04-2011 07:11 vdemidov Status acknowledged => confirmed
11-04-2011 11:17 zed Note Added: 0001754
11-04-2011 11:29 Tolik Note Added: 0001755
11-04-2011 20:01 zed Note Added: 0001778
11-04-2011 20:04 zed Note Edited: 0001778
11-04-2011 20:14 gpsMax Note Added: 0001780
11-04-2011 20:33 zed Note Added: 0001783
11-04-2011 21:01 gpsMax Note Added: 0001784
12-04-2011 04:03 Tolik Note Added: 0001789
12-04-2011 04:06 Tolik Note Edited: 0001789
12-04-2011 04:09 Tolik Note Edited: 0001789
12-04-2011 04:49 Parasite Note Added: 0001797
12-04-2011 04:53 Tolik Note Added: 0001798
12-04-2011 05:37 Parasite Note Added: 0001801
12-04-2011 05:42 Tolik Note Added: 0001802
12-04-2011 15:12 zed Assigned To => zed
12-04-2011 15:12 zed Status confirmed => assigned
12-04-2011 15:13 zed Status assigned => resolved
12-04-2011 15:13 zed Fixed in Version => 110412
12-04-2011 15:13 zed Resolution open => fixed
12-04-2011 15:14 zed Note Added: 0001825
12-04-2011 15:15 zed Note Edited: 0001825
12-04-2011 15:46 Tolik Note Added: 0001829
12-04-2011 17:28 zed Note Added: 0001832
12-04-2011 18:44 Garl Note Added: 0001838
12-04-2011 19:45 zed Note Added: 0001839
13-04-2011 05:46 Tolik Relationship added related to 0000577
13-04-2011 05:47 Tolik Relationship deleted related to 0000577
13-04-2011 05:47 Tolik Relationship added parent of 0000577
15-04-2011 07:50 vdemidov Fixed in Version 110412 => 110414
15-04-2011 07:50 vdemidov Target Version 44xxxx => 110414
15-04-2011 11:56 zed Relationship added related to 0000596
24-04-2011 18:24 Tolik Status resolved => closed
29-02-2012 11:49 gpsMax Tag Attached: паскальскрипт
08-08-2025 13:24 zed Category Хотелка => Хотелка / Feature request