-
> по содержимому тега ..
по содержимому тега CODE, чтобы можно было наравне с поиском по заголовкам и сообщениям, искать только в этом теге
-
> xayam (09.11.2009 23:23:15) [15]
> по-моему это не нужно, client.pl в любом случае будет реализован отдельно от DMSearch (index.php) и будет выдавать результат только в текстовом виде под клиенты. Но у меня баз пока оптимизирована под delphimaster, а надо чтобы она была как можно больше совместима с nntp-pop3-sntp-rss...-протоколами. Поэтому пока буду, наверное, долго занят изучением этих протоколов и выявлением общего знаменателя, благо набросок базы уже есть, соответствующий nntp
Проблемма только с NNTP - поскольку должна быть независимая нумерация по каждому форуму, все остальные без проблем и как бы являются расширением NNTP Насколько я понимаю, ты пошел на предложеный мною варинт
nntp-pop3-sntp-rss --> база
База <--> delphimaster
Первая цепочка независима, кроме постинга, от второй Постинг по схеме
nntp-pop3-sntp-rss --> delphimaster --> ответ клиенту
-
> [15] xayam © (09.11.09 23:23)
> по-моему это не нужно, client.pl в любом случае будет реализован > отдельно от DMSearch (index.php) и будет выдавать результат > только в текстовом виде под клиенты. Но у меня баз пока > оптимизирована под delphimaster, а надо чтобы она была как > можно больше совместима с nntp-pop3-sntp-rss...-протоколами. > Поэтому пока буду, наверное, долго занят изучением этих > протоколов и выявлением общего знаменателя, благо набросок > базы уже есть, соответствующий nntp
Что-то,я вас с Анатолием не пойму. Не могу уловить соль идеи. DelphiMaster.net - большой архив с удобным поиском. Информация на нём обновляется один раз в неделю. Если я буду пользоваться nntp или pop, то инструменты поиска мне не доступны. nntp/pop-клиент вынуждены закачивать полный список содержимого базы, пополняя локальную копию. Я понимаю, для чего nntp Анатолию. У него обновление происходит с высокой периодичностью, поэтому данные на nntp актуальные. Но использовать nntp для того, чтобы раз в неделю узнать, что на DelphiMaster.net появилось ещё 5000 новых веток. Это мне не понятно. Или же собираетесь дублировать поддержку клиентов как в DelphiMaster.ru, только через промежуточный протокол(ы)? Далее. Есть сайт DelphiMaster.net, он выполняет поисковый запрос пользователя или клиента, запрос передаётся базе данных. Между сайтом и базой нет ни каких nntp. Результат ПОИСКОВОГО запроса передаётся клиенту/пользователю через http. Опять для nntp нет места. nntp для DelphiMaster.ru отличное решение, т.к. позволяет следить за обсуждениями. Для DelphiMaster.net, nntp - страное решение: следить не за чем, а поиск в протоколе не придусмотрен. Что я упустил?
-
> по содержимому тега CODE, чтобы можно было наравне с поиском > по заголовкам и сообщениям, искать только в этом теге
Лишнее, т.к. слово "TListBox" встречается, как правило в тегах CODE, а слова "Привед, Медвед" за пределами тега. Другими словами, будет ли поиск по содержимому тэгов или нет, результат будет почти один и тот же.
-
> в протоколе же это есть. Или не реализован параметр UserAgent?
Клиенты рождаются и умирают достаточно часто, под всех не подстроишься. Иногда появляются новые браузеры, иногда UserAgent в Браузерах подменяется. Очередному пользователю будет обидно увидеть вместо DelphiMaster.net его "клиентский" вариант. Поэтому должно быть явное указание от клиента, что ему нужен текстовый вариант.
-
> [16] xayam © (10.11.09 00:41) > Примерно так, предложения, поправки. Видимо еще нужно предусмотреть > вывод заголовков найденных веток "от" указанного значения > и "до". Или не нужно?
Обязательно нужно, а то можно будет по какому-нибудь запросу получить пол базы. Поэтому нужно ограничить длину списка выдаваемого по умолчанию, либо давать опредёленые диапазон результатов, например найденые ветки от 12го до 24го. Пример большого запроса: "Игорь" А вот pnumber в запросе лишний, т.к. клиент сам разбивает на сраницы в соответствии настройками.
-
> Наиль (10.11.2009 12:32:22) [22]
А мне тоже бизнес идея не ясна, как мне кажется оно хочет сделать шлюз к delphimaster по нескольким протоколам. NNTP не требует казачки полного списка и всех сообщений - клиенты для него достаточно развитые, кроме того можно всегда перезакачать, но это очень дорогая работа, у меня база примерно 1.5 гб - устанешь скачивать, даже список скачать накладно, например для talks список порядка 400 000 записей. У меня действительно обычный шлюз к ДМ, но с расширеными функциями, для очень быстрого чтения и ответов. Я даже локальный кеш не использую и если мне потребуется поиск, то я просто сделаю поиского клиента к БАЗЕ. В общем ясность внести может только xayam
-
> Наиль © (10.11.09 12:32) [22] > DelphiMaster.net - большой архив с удобным поиском. > Информация на нём обновляется один раз в неделю.
ну это ты польстил, уже давно не обновлялся, поскольку все переделываю > Я понимаю, для чего nntp Анатолию. У него обновление происходит > с высокой периодичностью, поэтому данные на nntp актуальные. > Но использовать nntp для того, чтобы раз в неделю узнать, > что на DelphiMaster.net появилось ещё 5000 новых веток. > Это мне не понятно.
хотелось бы просто увеличить количество клиентов, через которые можно получить доступ к информации из базы и возможности отправлять сообщения. Реализация NNTP - один из вариантов достижения этого, тем более у нас будут свои дополнительные форумы. Другим вариантов является реализация связки IMAP(поиск ветки и получение)/SMTP (отправка новых сообщений). Поэтому POP3, как я понял мне не нужен, IMAP его заменяет полностью, имея при этом достаточно много преимуществ:
* Письма хранятся на сервере, а не на клиенте. Возможен доступ к одному и тому же почтовому ящику с разных клиентов. Поддерживается также одновременный доступ нескольких клиентов. В протоколе есть механизмы, с помощью которых клиент может быть проинформирован об изменениях, сделанных другими клиентами.
* Поддержка нескольких почтовых ящиков (или папок). Клиент может создавать, удалять и переименовывать почтовые ящики на сервере, а также перемещать письма из одного почтового ящика в другой.
* Возможно создание общих папок, к которым могут иметь доступ несколько пользователей.
* Информация о состоянии писем хранится на сервере и доступна всем клиентам. Письма могут быть помечены как прочитанные, важные и т. п.
* Поддержка поиска на сервере. Нет необходимости скачивать с сервера множество сообщений для того, чтобы найти одно нужное.
* Поддержка онлайн-работы. Клиент может поддерживать с сервером постоянное соединение, при этом сервер в реальном времени информирует клиента об изменениях в почтовых ящиках, в том числе о новых письмах.
* Предусмотрен механизм расширения возможностей протокола.
> > в протоколе же это есть. Или не реализован параметр UserAgent? > Иногда появляются новые браузеры, иногда UserAgent в Браузерах > подменяется. > Очередному пользователю будет обидно увидеть вместо DelphiMaster. > net его "клиентский" вариант. > Поэтому должно быть явное указание от клиента, что ему нужен > текстовый вариант.
че то я тебя не пойму. Я хочу, по совету Анатолия, разделить интерфейсные части друг от друга, т.е. веб-доступ к файлу index.php - это одно (результат оформляется по моему усмотрению), client.pl - это второе (результат отсылается в текстовом виде и вывод оформляется клиентом DMClient или любым другим) и UserAgent передается скрипту в виде обязательного одноименного параметра; NNTP-клиент - это третье; IMAP/SMTP - четвертое. И что мы имеем? Одну базу и целую кучу представлений для каждого клиента, выбор клиента - дело каждого в отдельности. Поддержка и реализация каждого сервера - независима друг от друга. Но сначала, конечно, нужна универсальная база.
-
> Наиль © (10.11.09 12:51) [25] Поправка 3ЗАПРОС
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%&to=%d%
s - строка запроса forum - номер форума (все значения и описания возвращаются скриптом по запросу client.pl?getforums=1) user - автор ветки, которую нужно найти order - сортировка по умолчанию, вопросу, кол-ву ответов в ветке, нику, форуму или дате dir - направление сортировки: по убыванию или по возрастанию (asc или desc) title - флаг (on - включено, другое значение - выключено), означающий поиск по заголовкам веток. message - флаг (on - включено, другое значение - выключено), означающий поиск по сообщениям в ветке. date_begin - дата, с которой следует искать ветки, формат ГГГГ[-ММ[-ДД]], квадратные скобки означают, что вложенное в них - не обязательно указывать; date_end - дата, до которой следует искать ветки, формат ГГГГ[-ММ[-ДД]], квадратные скобки означают, что вложенное в них - не обязательно указывать; from - номер выборки, с которой следует давать ветки. to - номер выборки, по которую следует давать ветки. %s% - строка. %d% - число. ОТВЕТ
ERROR=сообщения об ошибке по-русски | All=xx\tAllcount=xx
TITLE=Тема ветки\tCNT=xxxxx\tNAME=xxxxx\tN=xxxxx\tID=xxxxx\tDATE=xxxx-xx-xx
TITLE=Тема ветки\tCNT=xxxxx\tNAME=xxxxx\tN=xxxxx\tID=xxxxx\tDATE=xxxx-xx-xx
...
TITLE=Тема ветки\tCNT=xxxxx\tNAME=xxxxx\tN=xxxxx\tID=xxxxx\tDATE=xxxx-xx-xx
All - общее количество найденных веток Allcount - количество отправленных (ниже) из общего кол-ва найденный веток TITLE - тема найденной ветки CNT - количество ответов в ветке NAME - автор ветки N - номер конференции (все значения и описания возвращаются скриптом по запросу client.pl?getforums=1) ID - ID найденной ветки (для этой ветки id=1257691869) DATE - дата ветки в формате ГГГГ-ММ-ДД \t - символ табуляции.
-
> Обязательно нужно, а то можно будет по какому-нибудь запросу > получить пол базы. Поэтому нужно ограничить длину списка > выдаваемого по умолчанию, либо давать опредёленые диапазон > результатов, например найденые ветки от 12го до 24го.
В спешке не точно сформулировал. Лучше так: "30 найденных веток начиная с 31-го" Тогда запрос будет такой: 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%&count=%d% > Другим вариантов является реализация связки IMAP(поиск ветки > и получение)/SMTP (отправка новых сообщений).
С этим я ещё могу согласиться. Хотя мне всё равно не понять, зачем мне видеть в своём IMAP-клиенте десятки тысяч названий веток. На DM.net мне нужны и старые и очень старые ветки. А на DM.ru только свежие, а очень старых на нём и не бывает. Поэтому для DM.ru IMAP выдавал бы необходимый минимум информации, но DM.net - поисковый сайт и необходимый минимум определяется поисковым запросом. Допустим что будет использоваться IMAP. Тогда цепочка будет приблизительно такой IMAP -> Client.pl -> Программа-клиент Т.к. программе-клиенту всё равно, откуда Client.pl берёт данные, то не проще ли сделать пока цепочку такой: База Данных -> Client.pl -> Программа-клиент Тогда в процессе эксплуатации можно будет выявить все необходимые нюансы необходимые для более сложной схемы (основа экстремального программирования). > [27] xayam © (10.11.09 22:57) > UserAgent передается скрипту в виде обязательного одноименного > параметра
Не согласен. UserAgent нужен для статистики и не для чего более. Client.pl - вход для клиентов по протоколу ДелфиМастера Для стандартных протоколов точками входа являются порты. Кстати есть возможность открывать порты кроме 80го? Привязываться к UserAgent бесполезно: Что делать, если появится новый Браузер со своим UserAgent? Что делать, если в Браузер подменят (есть и такие Браузеры) UserAgent? Что делать, если появятся новые программы-клиенты, у каждого свой UserAgent или вообще отсутствует? Допустим для зачёта кому-то будут даны задания по написанию клиентов в том числе и для DelphiMaster.net(ru). То-то помучаются студенты, пока не укажут правильно UserAgent.
-
> > getforums - желателен, но необязателен, названия всех > форумов > > известны и могут заложены в программу в виде констант > > это скорей всего обязательно нужно, поскольку KilkennyCat > говорил, что у нас будут еще дополнительные форумы, которых > нет на dm. Но хотелось бы чтобы к этим форумам тоже был > доступ по всем выше перечисленным протоколам
Пока нет никаких форумов, лучше сосредоточиться только на поисковом протоколе. > хотелось бы просто увеличить количество клиентов, через > которые можно получить доступ к информации из базы и возможности > отправлять сообщения
Отправлять - это для форумов. А я всё время говорю про внешнюю (по отношению к клиенту) систему поиска. Если сосредоточится только на этом, то потребуется не более 2х недель, даже при отсутствии свободного времени.
-
> Наиль (11.11.2009 15:39:30) [30]
Разработка клиента не требует полной реализации всех протоколов, если протоколы реализованы независимо друг от друга и работающие только с общей базой, то их можно добавлять по мере надобности.
-
> [31] Anatoly Podgoretsky © (11.11.09 16:45) > > Наиль (11.11.2009 15:39:30) [30] > > Разработка клиента не требует полной реализации всех протоколов, > если протоколы реализованы независимо друг от друга и работающие > только с общей базой, то их можно добавлять по мере надобности.
Точно клиента, а не клиентского транспорта? Клиенты всё таки обращаются к транспортам на основе протоколов, а не к базе. А вот транспорты точно обращаются к базе.
-
> Наиль © (11.11.09 15:08) [29] > UserAgent
ты наверное не понял, что я имел ввиду, когда написал, что UserAgent - это параметр, передающийся методом GET в запросе. Или я неправ? Т.е. будет так. Поправка 3ЗАПРОС
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%&pnumber=%d%&UserAgent=%s.s%
s - строка запроса forum - номер форума (все значения и описания возвращаются скриптом по запросу client.pl?getforums=1) user - автор ветки, которую нужно найти order - сортировка по умолчанию, вопросу, кол-ву ответов в ветке, нику, форуму или дате dir - направление сортировки: по убыванию или по возрастанию (asc или desc) title - флаг (on - включено, другое значение - выключено), означающий поиск по заголовкам веток. message - флаг (on - включено, другое значение - выключено), означающий поиск по сообщениям в ветке. date_begin - дата, с которой следует искать ветки, формат ГГГГ[-ММ[-ДД]], квадратные скобки означают, что вложенное в них - не обязательно указывать; date_end - дата, до которой следует искать ветки, формат ГГГГ[-ММ[-ДД]], квадратные скобки означают, что вложенное в них - не обязательно указывать; from - номер выборки, с которой следует давать ветки. pnumber - кол-во веток, по которые следует пересылать клиенту. %s% - строка. %d% - число. UserAgent - клиент определяет в этом поле название и версию клиента в виде НАЗВАНИЕ.ВЕРСИЯ ОТВЕТ
ERROR=сообщения об ошибке по-русски | All=xx\tAllcount=xx
TITLE=Тема ветки\tCNT=xxxxx\tNAME=xxxxx\tN=xxxxx\tID=xxxxx\tDATE=xxxx-xx-xx
TITLE=Тема ветки\tCNT=xxxxx\tNAME=xxxxx\tN=xxxxx\tID=xxxxx\tDATE=xxxx-xx-xx
...
TITLE=Тема ветки\tCNT=xxxxx\tNAME=xxxxx\tN=xxxxx\tID=xxxxx\tDATE=xxxx-xx-xx
All - общее количество найденных веток Allcount - количество отправленных (ниже) из общего кол-ва найденный веток TITLE - тема найденной ветки CNT - количество ответов в ветке NAME - автор ветки N - номер конференции (все значения и описания возвращаются скриптом по запросу client.pl?getforums=1) ID - ID найденной ветки (для этой ветки id=1257691869) DATE - дата ветки в формате ГГГГ-ММ-ДД \t - символ табуляции. > Хотя мне всё равно не понять, зачем мне видеть в своём IMAP- > клиенте десятки тысяч названий веток.
это зависит от сервера, а сервер писать мне все равно и порт я могу открыть любой, поскольку выделенный IP > Допустим для зачёта кому-то будут даны задания по написанию > клиентов в том числе и для DelphiMaster.net(ru). То-то помучаются > студенты, пока не укажут правильно UserAgent.
вообще проблемы не вижу, для этого есть ERROR, где можно написать что угодно, в том числе, что UserAgent обязателен.
-
> Наиль (11.11.2009 17:02:32) [32]
Я не знаю как назвать продукт, речь идет о системе, которую делает xayam, я назвал его условно КЛИЕНТ, его даже шлюзом назвать нельзя. Это просто сервер delphimaster.net с кучей сервисов, который кроме поиска и своих форумов имеет еще и шлюз к delphimaster.ru Доступ к серверу осуществляется на основе некоторого количества открытых протоколов и расширяема. Термин транспорт мне не нравится, но я понимаю о чем речь.
-
-
> xayam (11.11.2009 21:49:35) [35]
Дело не в деньгах, у меня просто нет желания за что ни будь браться, устал я очень. В моей коллекции русских переводов это тоже отсутствует
-
> Anatoly Podgoretsky © (11.11.09 23:02) [36] > Дело не в деньгах, у меня просто нет желания за что ни будь > браться, устал я очень. В моей коллекции русских переводов > это тоже отсутствует
может переведете, если я сильно попрошу, пожалуйста!
Вроде набросок NNTP-сервера сделал на основе patServer'а. Только не пойму какой символ перевода строки используется в telnet , \n не помогает. Реализовал две команды - help и quit :)
-
> xayam (11.11.2009 23:35:37) [37]
Стандартный CRLF
-
|