Свой клиент. Подскажите, с чего начать?
От: User_Ok  
Дата: 15.08.12 05:02
Оценка:
Новое и старое API — полагаю, лучше использовать новое, или есть нюансы?
Как работает получение обновленных тем? Ничего не могу понять в логике.
Есть какие-то требования, чтобы не дергать API слишком часто?
Re: Свой клиент. Подскажите, с чего начать?
От: xBlackCat Россия  
Дата: 16.08.12 15:19
Оценка: 1 (1)
Здравствуйте, User_Ok.
Вы писали:

U_O> Новое и старое API — полагаю, лучше использовать новое, или есть нюансы?

U_O> Как работает получение обновленных тем? Ничего не могу понять в логике.
U_O> Есть какие-то требования, чтобы не дергать API слишком часто?

API лучше использовать новое.

Получение оборванных тем — элементарно.
Ищешь у себя в базе оборванные темы и передаёшь полученные id в http://www.rsdn.ru/ws/janusAT.asmx?op=GetTopicByMessage
Я, например, считаю тему оборванной, если есть сообщение темы, но нет начального сообщения.

И что значит, "чтобы не дёргать слишком часто"?
Rojac v0.1 / rev. 906
Rojac — Rsdn Offline JAva Client
Анонсы и обсуждение здесь
Автор: xBlackCat
Дата: 08.02.10
Re[2]: Свой клиент. Подскажите, с чего начать?
От: User_Ok  
Дата: 17.08.12 03:49
Оценка:
Здравствуйте, xBlackCat, Вы писали:

BC>Получение оборванных тем — элементарно.

BC>Ищешь у себя в базе оборванные темы и передаёшь полученные id в http://www.rsdn.ru/ws/janusAT.asmx?op=GetTopicByMessage

Я имел в виду обновленные, а не оборванные.
А с этой функцией какая-то фигня. Сначала работало, а потом стало выдавать:

System.ServiceModel.ProtocolException: The content type text/html; charset=utf-8 of the response message does not match the content type of the binding (text/xml; charset=utf-8). If using a custom encoder, be sure that the IsContentTypeSupported method is implemented properly. The first 1024 bytes of the response were: '
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<html>
<head>
<title>RSDN</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="shortcut icon" href="/favicon.ico" />
<link rel="search" type="application/opensearchdescription+xml"
href="RsdnSearch.xml" title="RSDN" />
<script type="text/javascript" src='http://ajax.googleapis.com/ajax/libs/jquery/1.2.3/jquery.min.js'&gt;&lt;/script&gt;
<script type="text/javascript" src="Script/rsdn.v1.js"></script>
<script type="text/javascript">
// this page should never load inside of another frame
if (top.location != self.location)
{
top.location = self.location;
}
SetCookie('sw',screen.width);

var g_ext = null;
window.onload = function()
{
try {
if (window.external.msIsSiteMode()) {
g_ext = window.external;
g_ext.msSiteModeCreateJumpList("Мой RSDN");

g_ext.msSiteModeAddJumpListItem("Файлы", "?/Users/Pri'.


BC>И что значит, "чтобы не дёргать слишком часто"?


Ну в смысле, обычно в таких API бывают какие-то ограничения, чтобы не создавать слишком большую нагрузку.
Re[3]: Свой клиент. Подскажите, с чего начать?
От: xBlackCat Россия  
Дата: 27.08.12 07:17
Оценка: 3 (1)
Здравствуйте, User_Ok.
Вы писали:

U_O> Я имел в виду обновленные, а не оборванные.

Извини — неправильно прочитал.

В команде http://www.rsdn.ru/ws/janusAT.asmx?op=GetNewData есть поле maxOutput — им ты запрашиваешь количество сообщений, сколько хочешь получить, с последней синхронизации.
Последняя синхронизация "датируется" полем "messageRowVersion". Новое значение получается вместе с новыми постами.

Получение сообщений делается просто: в цикле запрашиваешь GetNewData с указанной порцией, пока тебе приходят новые сообщения. Не забывая передавать постоянно обновляющийся RowVersion.

Если вылазит HTML, то это 99% — ошибка на сайте. Обновляются они там, или ещё что делают.
Rojac v0.1 / rev. 912
Rojac &mdash; Rsdn Offline JAva Client
Анонсы и обсуждение здесь
Автор: xBlackCat
Дата: 08.02.10
Re[2]: Свой клиент. Подскажите, с чего начать?
От: Demandred  
Дата: 03.09.12 09:46
Оценка:
Здравствуйте, xBlackCat, Вы писали:


BC>API лучше использовать новое.


BC>Получение оборванных тем — элементарно.

BC>Ищешь у себя в базе оборванные темы и передаёшь полученные id в http://www.rsdn.ru/ws/janusAT.asmx?op=GetTopicByMessage
BC>Я, например, считаю тему оборванной, если есть сообщение темы, но нет начального сообщения.

Кстати как ты определяешь что сообщение является первым в топике?
По тому что его поле topicId пусто?
Re[3]: Свой клиент. Подскажите, с чего начать?
От: akasoft Россия  
Дата: 03.09.12 18:08
Оценка:
Здравствуйте, Demandred, Вы писали:

D>По тому что его поле topicId пусто?


А разве не mid == tid?
... << RSDN@Home 1.2.0 alpha 5 rev. 66>> SQL Express 2012
Re[4]: Свой клиент. Подскажите, с чего начать?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 03.09.12 19:45
Оценка:
Здравствуйте, akasoft, Вы писали:

A>А разве не mid == tid?


Нет.
... << RSDN@Home 1.2.0 alpha 5 rev. 65 on Windows 7 6.1.7601.65536>>
AVK Blog
Re[5]: Свой клиент. Подскажите, с чего начать?
От: akasoft Россия  
Дата: 04.09.12 03:53
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Нет.


Тогда, наверное, mid != 0 and tid == 0 and pid == 0.

Или достаточно без pid.
... << RSDN@Home 1.2.0 alpha 5 rev. 66>> SQL Express 2012
Re[6]: Свой клиент. Подскажите, с чего начать?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 04.09.12 05:12
Оценка:
Здравствуйте, akasoft, Вы писали:

A>Или достаточно без pid.


Достаточно
... << RSDN@Home 1.2.0 alpha 5 rev. 65 on Windows 7 6.1.7601.65536>>
AVK Blog
Re[6]: Свой клиент. Подскажите, с чего начать?
От: Demandred  
Дата: 04.09.12 09:03
Оценка:
Здравствуйте, akasoft, Вы писали:

A>Здравствуйте, AndrewVK, Вы писали:


AVK>>Нет.


A>Тогда, наверное, mid != 0 and tid == 0 and pid == 0.


A>Или достаточно без pid.


под mid понимается messageId?
А разве оно вообще может быть 0?
Re[7]: Свой клиент. Подскажите, с чего начать?
От: akasoft Россия  
Дата: 04.09.12 09:18
Оценка:
Здравствуйте, Demandred, Вы писали:

D>под mid понимается messageId?


Да.

D>А разве оно вообще может быть 0?


Посмотрел локальную базу. Таких нет. Значит, доп. условие по mid не нужно.
... << RSDN@Home 1.2.0 alpha 5 rev. 66>>
Re[3]: Свой клиент. Подскажите, с чего начать?
От: xBlackCat Россия  
Дата: 05.09.12 16:16
Оценка:
Здравствуйте, Demandred.
Вы писали:

D> Здравствуйте, xBlackCat, Вы писали:

D> BC>API лучше использовать новое.
D> BC>Получение оборванных тем — элементарно.
D> BC>Ищешь у себя в базе оборванные темы и передаёшь полученные id в http://www.rsdn.ru/ws/janusAT.asmx?op=GetTopicByMessage
D> BC>Я, например, считаю тему оборванной, если есть сообщение темы, но нет начального сообщения.
D> Кстати как ты определяешь что сообщение является первым в топике?
D> По тому что его поле topicId пусто?

Да. Только не "пусто", а == 0. Как и parent_id
Rojac v0.1 / rev. 917
Rojac &mdash; Rsdn Offline JAva Client
Анонсы и обсуждение здесь
Автор: xBlackCat
Дата: 08.02.10
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.