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

Вниз

JDMClient   Найти похожие ветки 

 
VirEx ©   (2006-06-25 22:43) [0]

здрасьте, воот решил сделать клиента форума мастаков для мобилы, для своей Nokia 6021 :)
это пре пре^4 альфа полу версия, поэтому... не пинайте ногами если что :)
работа:
- при запуске мидлета появляется список форумов: прочее, сети и т.п.
- жмем кн. "GO" и заходим в список тем выбранного форума, или жмем "Back"
- жмем кн. "GO" и ...видим ответы, можно выбрать Copy (копирование выделенного ответа в буфер обмена), Citate (переход в окно набора текста для отправки своего ответа в ветке, при этом автоматически вставляется текст ответа который был выделен), и Add message (просто заходим в окно набота текста ответа), или опять же жмем "Back"

конечно есть ограничения:
- запрашиваются не более 20 свежих веток в форуме
- и т.к. посты в ветке бывают огромными (кто что только не запихает, то код своей программы, то новости про футбол...) я ограничил количество показываемых постов до 4х, ...с нулевого поста по 3й :) иначе Оут Оф Мэмори на моей нокии (маловато памяти.. бум делать по другому)
- ..и пка что нельзя добавить свой ответ, также как и свою ветку

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

клиент сделан на MIDletPascal 2.02, код выложу позже, щас не до этого

http://winconsul.kladovka.net.ru/java/JDMClient/DMClient.jad
http://winconsul.kladovka.net.ru/java/JDMClient/DMClient.jar


 
McSimm(proxy)   (2006-06-25 22:48) [1]

Я не знаком с программироанием для телефонов, скажите, было бы удобнее, если бы протокол поддерживал SOAP и/или XML-RPC ?


 
VirEx ©   (2006-06-25 22:56) [2]

SOAP незнаю, но XML-RPC для мобильной VM это жуткие тормоза при парсинге, огромный мидлет и ..ну их нафиг проблемы) юзаем обычный HTTP, нам что GET что POST не сложно :)


 
VirEx ©   (2006-06-25 22:59) [3]

import java.io.*;
import javax.microedition.io.*;
import java.lang.*;

// class name must be prefixed with Lib_ and all letters except  
// the starting L must be lowercase
public class Lib_myhttp
{

public static String propName="";//
public static String propValue="";//

public static void setpostmethod(){
}

public static void setgetmethod(){
}

public static void setproperty(String name, String value){
propName=name;//
propValue=value;//
}

public static String loadurl(String URL){
    HttpConnection conn = null;
    InputStream is = null;
    String s = "";
    int i;
    String n,v;
    char chh=10;

     try {
         StringBuffer sb = new StringBuffer("");
         conn = (HttpConnection)Connector.open(URL);
         //conn.setRequestMethod(HttpConnection.POST);
         conn.setRequestProperty(propName,propValue);

         is = conn.openInputStream();
         int ch;
         while ((ch = is.read()) != -1) {
           sb.append((char)ch);
         }
         s=sb.toString();
         if (is != null)   is.close();
         if (conn != null) conn.close();

         }
     catch( IOException e ){}
     finally{}

     return s;

}

}


 
VirEx ©   (2006-06-25 23:02) [4]

хм, вобщем вот так примерно, не потёр я лишние переменные... :)
жду мнений


 
SergP.   (2006-06-25 23:16) [5]

На Сименсе CF75 будет работать?


 
Marser ©   (2006-06-25 23:33) [6]

Ух, спасибо большое! Завтра закачаю на мобилку.


 
VirEx ©   (2006-06-26 16:00) [7]


> [5] SergP.   (25.06.06 23:16)
> На Сименсе CF75 будет работать?

работает на телефонах которые поддерживают спецификацию MIDP1


 
Кручен-Верчен ©   (2006-06-26 16:20) [8]

А чем Opera Mini не устраивает?


 
Джо ©   (2006-06-26 16:23) [9]

> [8] Кручен-Верчен ©   (26.06.06 16:20)
> А чем Opera Mini не устраивает?

Наверное, тем, что это не клиент мастаков.


 
Rule ©   (2006-06-26 16:30) [10]

Кручен-Верчен ©   (26.06.06 16:20) [8]
наверное с тех же побуждений, по которым я пользуюсь клиентом, а не браузером на ноуте и стационарном компе


 
Другой   (2006-06-26 18:31) [11]

Моя идея! :)


 
VirEx ©   (2006-06-26 18:38) [12]


>  [11] Другой   (26.06.06 18:31)
> Моя идея! :)

нет, моя :)

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


 
Другой   (2006-06-26 19:55) [13]

> VirEx ©   (26.06.06 18:38) [12]
>
> >  [11] Другой   (26.06.06 18:31)
> > Моя идея! :)
>
> нет, моя :)
>
> я на мастаках уже давно не был, и только вчера увидел твой
> пост когда все ветки пересматривал которые ранее пропустил,
> но клиент то с момента моей ветки о документации J2ME был
> задуман

Но все равно молодец! :) Ладно...


 
Pazitron_Brain ©   (2006-06-27 21:14) [14]

> [11] Другой   (26.06.06 18:31)
> Моя идея! :)

Говорил ведь надо организовать DelphiMaster on Phone Foundation :).


 
Pazitron_Brain ©   (2006-06-27 21:15) [15]

Давай те еще кто-нибудь этим займется? Будет конкуренция и качество мидлетов будет увеличиваться и увеличиваться :).
Максимус, молодец :).


 
VirEx ©   (2006-06-28 03:12) [16]

обновил клиента, теперь уже просто "пре альфа" :)
вобщем ломал голову как организовать подгрузку при скроллинге ответов в ветке, если на экране больше одного сообщения ...но опять всё упирается в парсинг HTML который жрет память так же как и отдельные сообщения... Out Off Memory как грится.

решил сделать проще: на экране одно сообщение, можно жать Next или Back и каждый раз ответ будет подгружаться, ...но :)  опять же есть ответы которые бывают огромны что приводит к OOM, в будущем сделаю проверку на размер подгрузки сообщений и будет выводиться чтот типа "сообщение не загружено, мало памяти", либо обрезать, т.е. не докачивать все символы...посмотрим :)

теперь думаю можно поработать с клиентом комфортней:
- в начале спрашивает с какого периода выбрать из сервера новые ветки, в часах.. ну например вводим 3, и покажутся все ветки которые были созданы либо обновились за последние 3 часа
- отображает в начале ответа текущий номер ответа и общее количество ответов в ветке
- можно перейти на заданный номер ветки (опция Go наряду с Copy, Citate и т.п.)

возможность добавления своего ответа либо ветки пока не введена ...дайте поспать :)


 
Kerk ©   (2006-06-28 09:32) [17]

VirEx ©   (28.06.06 03:12) [16]

> но опять всё упирается в парсинг HTML который жрет память
> так же как и отдельные сообщения...

А как же опера работает?


 
tesseract ©   (2006-06-28 09:44) [18]


> А как же опера работает?

Она не на J2ME написано явно.


 
Pazitron_Brain ©   (2006-06-28 09:53) [19]

> [18] tesseract ©   (28.06.06 09:44)
>
> > А как же опера работает?
>
> Она не на J2ME написано явно.

Ну конечно. У меня только j2me работает.


 
VirEx ©   (2006-06-28 11:23) [20]


>  [17] Kerk ©   (28.06.06 09:32)
> VirEx ©   (28.06.06 03:12) [16]
>
> > но опять всё упирается в парсинг HTML который жрет память
>
> > так же как и отдельные сообщения...
>
> А как же опера работает?

Опера мини использует прямой приём объектов отображения со своей прокси.
зайди на сайт http://www.yandex.ru/ через ПК, сколько? 12 Кб страничка без рисунков, а теперь зайди через опера мини... сколько? 3 Кб (тоже без рисунков)
я предполагаю такой механизм работы оперы мини:
- мидлет Опера мини работает через свой "операвский" прокси в инете,
т.е. запрашивает URL
- прокси качает запрошенную страничку и преобразует в формат данных воспринимаемый оперой мини
- запрошенные данные (может даже и в сжатом виде, например gzip) напрямую преобразуются в объекты на страничке: текст, его цвет, местоположение; кнопки; поля ввода. каждый элемент в j2me это класс, даже переменная integer это класс со своими свойствами и методами.
благодаря прямому преобразованию данных в страничку отображаемую на дисплее сотового телефона, без затрат мощностей телефона и времени на преобразование HTML в удобочитаемый вид, опера мини и работает так быстро, да еще и мало траффика потребляет.
даже опция "более высокое качество" картинки тому подтверждение (типа указание прокси, качать ли картинку с её истинным качеством).


>  [18] tesseract ©   (28.06.06 09:44)
>
> > А как же опера работает?
>
> Она не на J2ME написано явно.

а на чем?) на asm2me? :)


 
VirEx ©   (2006-06-28 12:35) [21]

исходник на MIDletPascal языке:
http://winconsul.kladovka.net.ru/java/JDMClient/DMClient.zip

дополнительные модули без которых проект не скопмилится
(исходники *.java и сами модули/классы *.class, модули скопировать
в папку С:\Program Files\MIDletPascal\Libs)
http://winconsul.kladovka.net.ru/java/JDMClient/Libs.zip


 
Kerk ©   (2006-06-28 12:38) [22]


> VirEx ©   (28.06.06 11:23) [20]

Делай так же :)


 
VirEx ©   (2006-06-28 12:53) [23]


> [22] Kerk ©   (28.06.06 12:38)
> Делай так же :)

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


 
Kerk ©   (2006-06-28 12:56) [24]


> VirEx ©   (28.06.06 12:53) [23]

Занялся бы сразу уж основательно :)


 
VirEx ©   (2006-06-28 15:13) [25]


> Kerk ©   (28.06.06 12:56) [24]
>
>
> > VirEx ©   (28.06.06 12:53) [23]
>
> Занялся бы сразу уж основательно :)

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


 
tesseract ©   (2006-06-28 15:20) [26]


> я предполагаю такой механизм работы оперы мини:- мидлет
> Опера мини работает через свой "операвский" прокси в инете,
> т.е. запрашивает URL- прокси качает запрошенную страничку
> и преобразует в формат данных воспринимаемый оперой мини-
>  запрошенные данные (может даже и в сжатом виде, например
> gzip) напрямую преобразуются в объекты на страничке: текст,
>


навернёка используется стандартный для HTTP тип данных deflate/gzip.


 
VirEx ©   (2006-06-28 15:32) [27]


>  [26] tesseract ©   (28.06.06 15:20)
> навернёка используется стандартный для HTTP тип данных deflate/gzip.

ну наверняка то да, даже скроей всего, но думаю что саму страничку HTTP опера не грузит.
есть основания:
- видел мидлет по работе с zip архивами, в котором сам класс реализующий работу с архивами - 70-80 Кб
- и сам парсинг + "разрисовка" HTML"я в "разноцветный" текст, таблицы и т.п. обошелся бы мидлету не менее 30-50 Кб
- представь: загрузила опера сжатую страничку в 3 Кб, затем распаковала на 12 кб, затем пропарсила и создала каждый элемент отображения (текст, строка ввода, линк и т.п.). получается: раздутая инфа, + парсинг отнимающий мемори и время, и вновь созданные элементы которые тоже кушают память, + всё выполняется в отдельном потоке, но всё работает на моём сотике где максимальный размер мидлета не должен превышать 127 Кб и работает быстро.


 
Pazitron_Brain ©   (2006-06-29 14:30) [28]

Motorola c650

Форумы обновляет, а темы - нет. Если еще раз нажму на GO, то вылетает.


 
VirEx ©   (2006-06-29 22:03) [29]


>  [28] Pazitron_Brain ©   (29.06.06 14:30)
> Motorola c650
>
> Форумы обновляет, а темы - нет. Если еще раз нажму на GO,
> то вылетает.

это изза пока еще сырого парсинга html, видимо надо делать на яве, иначе при парсинге (кто читал мой кривой код на MIDletPascal) создаётся куча объектов стрингов, и никак их там не close и не free


 
VirEx ©   (2006-06-30 00:28) [30]

Gero, я совсем запутался как добавить своё сообщение:
методом get так?: http://www.delphimaster.ru/cgi-bin/forum.pl?id=[номер_ветки]&n=[номер_форума]&user=[имя_пользователя]&topsw=[пароль _пользователя]&text=text
или методом post:
User-Agent=useragent  
name=имя_пользователя
password=пароль_пользователя
email=email
text=text


 
Gero ©   (2006-06-30 01:46) [31]

Методом post, только не password, а topsw.


 
VirEx ©   (2006-07-01 09:49) [32]

test


 
VirEx ©   (2006-07-01 09:52) [33]

1


 
VirEx ©   (2006-07-01 09:54) [34]

2


 
VictorT ©   (2006-07-01 10:41) [35]

Может, лучше не парсить html, а например, воспользоваться существующим протоколом для клиентов?


 
VictorT ©   (2006-07-01 10:42) [36]

З.Ы. На nokia 7210 будет работать?


 
VictorT ©   (2006-07-01 10:44) [37]


>я предполагаю такой механизм работы оперы мини:
> - мидлет Опера мини работает через свой "операвский"
>прокси в инете,
>т.е. запрашивает URL
> - прокси качает запрошенную страничку и преобразует в
> формат данных воспринимаемый оперой мини

Всё правильно, только тут и предполагать не надо, так оно и есть, об этом и на сайте оперы мини написано.


 
Gero ©   (2006-07-01 10:56) [38]

> [35] VictorT ©   (01.07.06 10:41)

Протокол возвращает html.


 
VirEx ©   (2006-07-01 11:08) [39]


>  [38] Gero ©   (01.07.06 10:56)

может я что-то не понимаю, но ответ не добавляется ([32]-[34] это я хотел посмотреть через проксю http заголовки).
вобщем так,
отправляется:
POST /cgi-bin/forum.pl?n=3&id=1151261024 HTTP/1.0
Content-Type: text/html
Accept: text/html
User-Agent: JDMClient 1.0.0
name: user
topsw: pass
email: a@a.com
signature: signature
n: 3
id: 1151261024
text: test
Content-Length: 0
Host: www.delphimaster.ru

ответ от сервака:
HTTP/1.1 200 OK
Date: Sat, 01 Jul 2006 06:26:13 GMT
Server: Apache/1.3.34 (Unix) PHP/4.4.2
Content-Length: 29023
Connection: close
Content-Type: text/html; charset=windows-1251


 
VirEx ©   (2006-07-01 11:10) [40]


> [36] VictorT ©   (01.07.06 10:42)
> З.Ы. На nokia 7210 будет работать?

[7] VirEx ©   (26.06.06 16:00)



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

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

Наверх




Память: 0.58 MB
Время: 0.036 c
2-1155029207
Ega23
2006-08-08 13:26
2006.08.27
DBGridEh - TitleFont для нескольких колонок


6-1133493728
Component TIdNNTP
2005-12-02 06:22
2006.08.27
Indy Как избавиться от зависаний при закачке?


6-1144412093
Квэнди
2006-04-07 16:14
2006.08.27
Добавить Ip на интерфейс


8-1140444515
salexn
2006-02-20 17:08
2006.08.27
определение текущей кодировки


8-1120813184
ronyn
2005-07-08 12:59
2006.08.27
Проблемы с установкой DSPack.