Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.08.27;
Скачать: CL | DM;

Вниз

К разработчикам клиентов форума   Найти похожие ветки 

 
xayam ©   (2010-01-23 15:49) [0]

Общими усилиями расширен протокол взаимодействия между клиентами и форумом. Как это происходило можно почитать здесь - http://delphimaster.net/view/16-1257691869/, а как результат этого общения такой вот скрипт для поиска/вывода старых веток форума, ушедших в архив - http://www.delphimaster.net/cgi/client.pl (возможно ссылка еще поменяется)

Поэтому все желающие доработать свои клиенты до возможностей удаленного поиска, имеют возможность это сделать сейчас.


 
Kolan ©   (2010-01-23 18:52) [1]

Можете выделить из ветки описание протокола в окончательном виде, я выложу на сайте рядом с текущим протоколом http://www.ksoftware.ru/wiki/dmclient/dmclient_protocol2


 
xayam ©   (2010-01-23 19:52) [2]

Вот так примерно получилось в конце
ЗАПРОС

s=%s%&forum=%d%&user=%s%&order=%s%&dir=%s%&title=%s%&message=%s%&date_begin=xxxx-xx-xx&date_end=xxxx-xx-xx&from=%d%&pcount=%d%&UserAgent=%s.s%


s - строка запроса, как искать написано здесь - http://www.delphimaster.net/how
forum - номер форума (все значения и описания возвращаются скриптом по запросу client.pl?getforums=1)
user - автор ветки, которую нужно найти
order - сортировка по умолчанию, вопросу, кол-ву ответов в ветке, нику, форуму или дате
dir - направление сортировки: по убыванию или по возрастанию (asc или desc)
title - флаг (1 - включено, другое значение - выключено), означающий поиск по заголовкам веток.
message - флаг (1 - включено, другое значение - выключено), означающий поиск по сообщениям в ветке.
date_begin - дата, с которой следует искать ветки, формат ГГГГ[-ММ[-ДД]], квадратные скобки означают, что вложенное в них - не обязательно указывать;
date_end - дата, по которой следует искать ветки, формат ГГГГ[-ММ[-ДД]], квадратные скобки означают, что вложенное в них - не обязательно указывать;
from - номер выборки, с которой следует давать ветки.
pcount - сколько веток следует пересылать клиенту.
%s% - строка.
%d% - число.
UserAgent - клиент определяет в этом поле название и версию клиента в формате НАЗВАНИЕ.ВЕРСИЯ
Обязательно нужно указать параметр s, forum или user, остальные параметры не обязательно, но рекомендуется указывать параметры pcount (по умолчанию - 50; максимально - 500) и from, для того чтобы вывод не оказался слишком большим. Параметр UserAgent также рекомендуется к использованию для статистики.

ОТВЕТ

ERROR=сообщения об ошибке по-русски | All=xx\tAllcount=xx
TITLE=Тема ветки\tCNT=xxxxx\tNAME=xxxxx\tN=xxxxx\tID=xxxxx\tDATE=ГГГГ-ММ-ДД ЧЧ:ММ
TITLE=Тема ветки\tCNT=xxxxx\tNAME=xxxxx\tN=xxxxx\tID=xxxxx\tDATE=ГГГГ-ММ-ДД ЧЧ:ММ
...
TITLE=Тема ветки\tCNT=xxxxx\tNAME=xxxxx\tN=xxxxx\tID=xxxxx\tDATE=ГГГГ-ММ-ДД ЧЧ:ММ

All - общее количество найденных веток
Allcount - количество отправленных (ниже) из общего кол-ва найденный веток
TITLE - тема найденной ветки
CNT - количество ответов в ветке
NAME - автор ветки
N - номер конференции (все значения и описания возвращаются скриптом по запросу client.pl?getforums=1)
ID - ID найденной ветки
DATE - дата последнего сообщения ветки в формате ГГГГ-ММ-ДД ЧЧ:ММ
\t - символ табуляции.


 
Tornado   (2010-01-23 20:51) [3]

А для чего вообще нужна подобная программа? Здесь поиск неплохо работает


 
xayam ©   (2010-01-23 21:09) [4]


> Tornado   (23.01.10 20:51) [3]
> А для чего вообще нужна подобная программа? Здесь поиск
> неплохо работает

если Вы не постоянный посетитель, то скорей всего не знаете что через некоторое время здесь ветки переносятся в архив и по ним поиск на этом сайте не производится. Поэтому на отдельной площадке (delphimaster.net) был сделан поиск только по архивам старых веток... А чтобы расширить кол-во клиентов для доступа к поиску, был расширен протокол. Теперь любой клиент может реализовать  поиск, не имея представления о том, как хранятся ветки - только запрос-ответ к серверу и разбор ответа для своего отображения...


 
turbouser ©   (2010-01-23 22:01) [5]


> xayam ©   (23.01.10 21:09) [4]

:)
Если
> если Вы не постоянный посетитель

то, боюсь что придется объяснять что такое
> любой клиент

=))


 
xayam ©   (2010-01-23 22:21) [6]


> turbouser ©   (23.01.10 22:01) [5]
> Если
> > если Вы не постоянный посетитель
> то, боюсь что придется объяснять что такое
> > любой клиент

а он оказывается постоянный - http://www.delphimaster.net/?s=&user=Tornado даже веток больше чем у меня :)
но мы до этого не пересекались - http://www.delphimaster.net/?s=xayam&user=Tornado :)


 
turbouser ©   (2010-01-23 22:40) [7]


> xayam ©   (23.01.10 22:21) [6]

Кстати... есть предложение.. было бы совсем неплохо в случае поиска по нику, при клике на ник переходить к первому сообщению в ветке от этого ника.
Как на скл.ру:
http://sql.ru/forum/actualtopics.aspx?search=AP&submit=%CD%E0%E9%F2%E8&bid=16
и при клике
http://sql.ru/forum/actualthread.aspx?tid=710030&pg=1&hl=ap&#7894599


 
turbouser ©   (2010-01-23 22:42) [8]

чего-то вторая ссылка неправильная... мда.. а если так..
_ttp://sql.ru/forum/actualthread.aspx?tid=710030&pg=1&hl=ap&#7894599


 
turbouser ©   (2010-01-23 22:42) [9]

8-()
Однако..
&#7894599


 
turbouser ©   (2010-01-23 22:44) [10]

&#7894500


 
turbouser ©   (2010-01-23 22:45) [11]

если писать & # 7894500 (без пробелов) - получается &#7894500


 
xayam ©   (2010-01-23 22:47) [12]


> turbouser ©   (23.01.10 22:40) [7]
> Кстати... есть предложение.. было бы совсем неплохо в случае
> поиска по нику, при клике на ник переходить к первому сообщению
> в ветке от этого ника.

а как определять, что в строке поиска был введен ник? Там же можно ввести все что угодно.


 
xayam ©   (2010-01-23 22:48) [13]

и вообще когда в результатах отображается ник - то это ник автора ветки а не того которого ты искал. Так что это скорей всего не получится.


 
turbouser ©   (2010-01-23 22:53) [14]


> xayam ©   (23.01.10 22:47) [12]


> а как определять

2 варианта...
1) - вести справочник ников :)
2) - добавить ссылку в списке веток для перехода к первому найденному в ветке сообщению, содержащему искомый текст

2-й вариант выглядит более разумно :)


 
turbouser ©   (2010-01-23 22:54) [15]


> xayam ©   (23.01.10 22:48) [13]

да.. я не сразу это просек :)


 
Andy BitOff ©   (2010-01-23 22:55) [16]

Хаям, а with не ищет!
http://www.delphimaster.net/?s=with&pcount=50&forum=0&user=&order=&dir=asc&title=1&message=1&date_begin=&dat e_end=


 
xayam ©   (2010-01-23 22:59) [17]


> 2) - добавить ссылку в списке веток для перехода к первому
> найденному в ветке сообщению, содержащему искомый текст

Можно кстати ссылку поставить в таком формате http://www.delphimaster.net/view/15-1145872467/4,5,10-11 только с нужными сообщениями!


 
xayam ©   (2010-01-23 23:12) [18]


> Andy BitOff ©   (23.01.10 22:55) [16]
> Хаям, а with не ищет!

странно, но действительно нет. Другие слова с 4-я символами ищет - значит нет проблемы. А вообще должно быть? Желательно ссылкой на файл в архиве.


 
Andy BitOff ©   (2010-01-23 23:23) [19]

Ну незнаю, но как-то странно, чтобы на форуме программистов with ни разу не встретился.
Вот, нашел в клиенте, а потом и на сайте.
Это в заголовке - http://www.delphimaster.net/view/15-1245914217
Это в тексте - http://www.delphimaster.net/view/2-1244028786


 
xayam ©   (2010-01-23 23:40) [20]


> Andy BitOff ©   (23.01.10 23:23) [19]
> Ну незнаю, но как-то странно, чтобы на форуме программистов
> with ни разу не встретился.
> Вот, нашел в клиенте, а потом и на сайте.
> Это в заголовке - http://www.delphimaster.net/view/15-1245914217
> Это в тексте - http://www.delphimaster.net/view/2-1244028786

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


 
Tornado   (2010-01-24 10:56) [21]


> xayam ©   (23.01.10 21:09) [4]

Понял пасип


 
Наиль ©   (2010-01-24 11:15) [22]

> [0] xayam ©   (23.01.10 15:49)

С прошлого воскресения вношу изменения в DMClient.
Результат уже вырисовывается, так что на днях покажу заинтересованой обществености. К сожалению, у меня не больше часа в день на разработку клиента.

> [7] turbouser ©   (23.01.10 22:40)

Очень интересная идея, обязательно внедрю в клиент.
Только при клике на ник происходит создание письма, поэтому думаю сделать дополнительные ссылки рядом с ником: "К первому", "К предыдущему", "К следующему", "К последнему" для данного ника.

> [18] xayam ©   (23.01.10 23:12)
> да глюк есть, нужно разбираться, с ходу не понятно в чем
> может быть проблема.

Очевидных проблем две: либо в базе такого слова нет, либо With воспринимается как оператор запроса, а не поиковый текст, а это большая дыра в защите сайта. Но возможно причина из числа менее очевидных.


 
Наиль ©   (2010-01-24 11:24) [23]

> либо With воспринимается как оператор запроса

Проверил.
Это не так.


 
xayam ©   (2010-01-24 11:26) [24]


> Наиль ©   (24.01.10 11:15) [22]
> > [18] xayam ©   (23.01.10 23:12)
> > да глюк есть, нужно разбираться, с ходу не понятно в чем
> > может быть проблема.
>либо в базе такого слова нет

очевидно есть, ссылки же дали на ветки где есть with и в заголовке и в сообщениях. Просмотр ветки формируется тоже из базы (раньше было из файлов)

> либо With воспринимается как оператор запроса, а не поиковый
> текст, а это большая дыра в защите сайта

вообще я тоже сначала так подумал, но как вариант - это особенность полнотектового поиска, хотя в документации не нашел упоминания об этом операторе, запрос к базе составлен верно и SQL-инъекция невозможна

> Но возможно причина из числа менее очевидных.

Интересно что бы это могло быть? :)


 
Anatoly Podgoretsky ©   (2010-01-24 12:21) [25]

> Наиль  (24.01.2010 11:15:22)  [22]

А разве параметры не используются?


 
Наиль ©   (2010-01-24 15:44) [26]


> [24] xayam ©   (24.01.10 11:26)
> Интересно что бы это могло быть? :)

Попробуй прямым запросом вытащить из базы ветки со словом With.
Что будет?

> [25] Anatoly Podgoretsky ©   (24.01.10 12:21)
> > Наиль  (24.01.2010 11:15:22)  [22]
>
> А разве параметры не используются?

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


 
xayam ©   (2010-01-24 16:00) [27]


> Наиль ©   (24.01.10 15:44) [26]
> Попробуй прямым запросом вытащить из базы ветки со словом
> With.
> Что будет?

да уже пробовал - с помощью like "%With%" по заголовку находит. А полнотекстовый нет. Мне кажется это какая-то особенность полнотекстового поиска, которая нам пока не известна...


 
Kolan ©   (2010-01-24 17:43) [28]

Протокол.

https://www.assembla.com/wiki/show/DMClient/delphimaster_net_protocol


 
xayam ©   (2010-01-25 20:45) [29]

вот еще карту сайта сделал http://www.delphimaster.net/sitemap.xml там больше 200.000 ссылок получилось. Теперь жди беды от поисковиков :)



Страницы: 1 вся ветка

Текущий архив: 2010.08.27;
Скачать: CL | DM;

Наверх




Память: 0.55 MB
Время: 0.064 c
15-1268343373
DillerXX
2010-03-12 00:36
2010.08.27
подскажите, что за БД?


3-1242910124
Fedor
2009-05-21 16:48
2010.08.27
Запрос на выборку


15-1265149756
иксик
2010-02-03 01:29
2010.08.27
Не пытайтесь ничего понять


15-1265361958
Ghost
2010-02-05 12:25
2010.08.27
Nokia 3110c передача *.txt по синезубу


15-1275844691
Dima84
2010-06-06 21:18
2010.08.27
Ошибка form of method call