motofan logo
13 страниц V « < 2 3 4 5 6 > »         
> 

[Masya] ICQ Client by G-XaD, Еще не вся нужная функциональность

G-XaD
сообщение 18.4.2010, 20:21 Закрепленное сообщение!


Мастер
****

Группа: Разработчики
Сообщений: 171
Регистрация: 6.11.2007
Из: Donetsk City / Ukraine
Пользователь №: 153 083

Рейтинг: 323



Дожал. Протокол разобрал еще в начале года, он ужасен! Только сейчас собрал все воедино и исправил парсеры пакетов от сервера. Минимум функциональности, примитив.

Файлы:
picq.so - в принципе является клиентом. В либе реализован ICQ протокол.
masya.elf - эльф, который использует протокол. По сути графическая оболочка для клиента.
libuix.so - либа, в корой реализуются диалоги. Эта либа может использоваться многими эльфами, поэтому ее лечше положить рядом с library.bin.
masya.bcfg - конфиг, создается при запуске эльфа.
/b/_icq.log - дамп общения клиента с сервером (FLAP заголовки вырезаны).


Много чего было написано для клиента:
- libuix
- picq
- one socket static lib. Теперь не нужен SynSock ;).
- BCFG file firmat. Посмотрел реализацию на SE, написал по своему. Редактор не написан.
- list_ctrl. Статическая либа управления динамическими списками. (используется почти везде). Идею взял у SE

Что умеет:
- Подключаться. (не умеет использовать безопасную md5 авторизацию)
- Читать SSI (Server Side Information). Аккуратно вырезает только список контактов.
- Получать онлайн статусы тех, кто в списке (от остальных просто не приходят)
- Принимать сообщения (Win1251 и Unicode)
- Отправлять сообщения (только Win1251)
- Выставлять статус. (не проверено).
- Какойто стандартный звук при входящих. Не отключается.

Исправлено:
- Пароль вводится не только цифрами.
- UTF8 в списке контактов (только для кирилицы), в т.ч. буквы Ё и ё.
- Добавлены иконки статуса. Кроме "Invis 4 all": этот статус в доке не описан и в миранде я не нашел.
- Если изначально выставлен статус, то при коннекте он выставляется. Если изначально стоит offline, при коннекте выбирается online. Выбор статуса off после подключения = отключение.
- Выставление статуса в доке и миранде описаны по-разному. Протокол использует реализацию миранды.
- Показывает прогресс подключения.

Особенности:
- Хранит только 16 последних сообщений от одного UIN'а. Выделяет по 2 Кб на сообщение, если от 10 пользователей по 16 сообщений запомнить, то выйдет 2*16*10 = 320 Кб, многовато памяти.
- История сообщений заполнятеся снизу вверх.
- Контакт, у которого есть чат выделен. (по умолчанию желтым).
- Эльф сворачивается красной кнопкой, запоминая стэйт (стэйты это "главное меню", "список контактов", "прогресс подключения", "сообщение об ошибке". Из чата вернется в список контактов). Возвращается из фона откуда угодно комбинацией [*-*-RED].
- Особенно не проверял, но должен выдавать ссобщения об ошибках.
- Не рекомендую сворачивать во время коннекта, у меня эльф завис.
- НЕТ XStatus, и не нужно.
- Не показывает процесс подключения (сделаю потом).
- Кнопка "Connect" работает один раз и блокируется. Чтобы отключиться выбирайте "Exit".
- Не оповещает о входящих (както не до этого было).
- Кнопка выставления своего статуса заблокирована.
- Не принимает сообщения от тех, кто не в списке. Тоесть в клиенте реализовано, но эльф не обрабатывает сообщения вообще, их хранит клиент и прикрепляет к контактам из списка.
- Нет поиска, добавления контактов в список. (Не реализовано в протоколе)
- Нет инфы контакта (не реализовано в протоколе), нет запроса и авторизации.
- Тормозит :). Один поток, что из него можно взять? ГУЙ выполняется тамже где клиент, поэтому когда сервак начинает присылать входящее сообщение ГУЙ зависает.
- Другие не могут определить клиент(это понятно) и версия протокола(я прото не знаю как она определяется :)).
- Не показывает кирилицу в списке контактов. (я не проверял какая там кодировка)
- т.к. редактора bcfg нет, то сделал редактирование UIN/pw из эльфа. Настройки сохраняются в 'masya.bcfg' в папке с эльфом.
- Задумка bcfg предполагает, что дефолтный конфиг зашит эльф. В этом эльфе прописан аккаунт, на котором я тестировал.
- Не читает офф сообщения.


Не выкладывайте файлы 'masya.bcfg' и '_icq.log'!!!
В первом настройки аккаунта в открытом виде с пояснениями где UIN, а где пароль. Во втором UIN/pw не в открытом, но простом виде.


Обновленные:
Ссылка на архив Masya.zip - Эльф и протокол к нему.
Ссылка на архив libuix.zip - Библиотека диалогов. Положить в /b/Elf2/ или в папку с эльфом.
Требуется обновление либы: архив готовых либ по данным с svn. Файл для своей прошивки распаковать и переименовать в library.bin, положить в /b/Elf2/.

Исходники доступны на svn://svn.vilko.ru/elfs2/masya


Изображение Изображение

Сообщение отредактировал om2804 - 19.6.2013, 16:00
Прикрепленный файл masya.zip   ( 477.81 килобайт ) Кол-во скачиваний: 361
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Zloy!
сообщение 21.4.2010, 6:04


Интересующийся
**

Группа: Пользователи
Сообщений: 79
Регистрация: 15.6.2008
Пользователь №: 174 992
Модель телефона: Zn5 TM / E770v

Рейтинг: 23.5



Спасибо, хорошая работа

Пожелания:
Добавьте изменение режима ввода пароля, а то только цифры вводятся (или возможно я не нашел, где сменить?)
Из фона если вытаскивать по **, то открывается фонарик... я считаю нужно сменить клавиши...

DaR 2 test 14.2
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Мачо
сообщение 21.4.2010, 9:57


Ветеран
*****

Группа: Легенды MotoFan.Ru
Сообщений: 456
Регистрация: 26.7.2004
Из: Киров
Пользователь №: 8 569
Модель телефона: Е398 (умер), E6
Прошивка: Dream A Reality 2.0
Финалист Конкурса 2010

Рейтинг: 1410



Zloy!
нажимй 7 * * красная фонарик не загорит
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
MaratMD
сообщение 21.4.2010, 11:54


Ветеран
*****

Группа: Пользователи
Сообщений: 592
Регистрация: 10.9.2008
Из: Самара
Пользователь №: 180 950
Модель телефона: Moto E4 Plus

Рейтинг: 340.5



Zloy!,можно просто нажать *красная она развернется
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Ykraina1992
сообщение 21.4.2010, 21:18


Интересующийся
**

Группа: Пользователи
Сообщений: 44
Регистрация: 26.5.2009
Из: Донецк
Пользователь №: 200 223
Модель телефона: -=L7=-
Прошивка: _Roc_Music_ACR_RB

Рейтинг: 3



Если запускать с пункта меню то получается такое:
Прикрепленное изображение
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
dikont777
сообщение 22.4.2010, 7:25


Новичок
*

Группа: Пользователи
Сообщений: 8
Регистрация: 11.6.2007
Пользователь №: 137 804
Модель телефона: E398
Прошивка: Mpx398_De_Luxe

Рейтинг: 1.5



оч оч необходимо сделать ввод пароля с буквами
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
harchello
сообщение 22.4.2010, 11:35


Интересующийся
**

Группа: Пользователи
Сообщений: 34
Регистрация: 1.12.2008
Пользователь №: 187 435
Модель телефона: Motorola

Рейтинг: 4



v3i 01.03R (rev65) полет нормальный: подключается, отправляет, принимает сообщения, сворачивается и др. Ребутов не наблюдаю, но неудобно вводить буквенный пароль через текстовый редактор, в статусную строку постоянно вылазят часы и иконка передачи данных, не отображаются контакты, кот в сети.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
G-XaD
сообщение 22.4.2010, 17:26


Мастер
****

Группа: Разработчики
Сообщений: 171
Регистрация: 6.11.2007
Из: Donetsk City / Ukraine
Пользователь №: 153 083

Рейтинг: 323



Ykraina1992,
ну... Анимация пункта меню отрисовывается после отрисовки диалога. И что мне делать? Добавить перерисовку диалога каждую секунду?

dikont777,
Для ввобда пароля доступны:
- Латиница (верхний/нижний регистры)
- Кирилица (верхний/нижний регистры)
- Цифры
Переключение осуществляется кнопкой * (звездочка).
Изначально при вводе пароля выбрана латиница.
Ограничение на вводимые символы стоит при вводе UIN'а.


harchello,
Цитата(harchello @ Сегодня, 14:35)
в статусную строку постоянно вылазят часы и иконка передачи данных
*

Статус строку попытаюсь исправить по совету Анди.
Цитата(harchello @ Сегодня, 14:35)
не отображаются контакты, кот в сети
*

После загрузки SSI клиент отправляет CLI_READY, показывая что он готов принимать сообщения. После этого сервер отправляет сообщения о статусах контактов - SRV_USER_ONLINE.
Я посмотрю, может клиент не всегда правильно парсит этот пакет.


Zloy!,
Когда эльф находится в фоне он ловит нажатия на кнопки (точнее релизы) и запоминает 2 последних. Если была нажата красная кнопка, а 2 последних - *, то эльф возвращается из фона. Эльф не проверяет где и при каких обстоятельствах были нажати кнопки. Поэтому можно набирать что угодно и где угодно, но набрав **RED эльф появляется на экране. Когда эльф не в фоне он не запоминает и не затирает 2 последних нажатия (появляется из фона он перед запоминанием кнопки, и нажатие RED повлекшее показ эльфа не запминается), поэтому один раз вызвав эльф из фона, можно скрывать и показывать эльф сколько угодно просто клацая красной кнопкой.

Добавлено позже (22.4.2010, 21:03):
SpyHEX,
У меня 83 контакта в списке и загрузилось. Девятизнак. Да, зависает уже писал - все в одном процессе AFW. Особенно подвисает после авторизации, когда на экране появляется список контактов. В это время сервер присылает SRV_USER_ONLINE по одному пакету на каждый UIN из списка, который в онлайне. После загрузки нужно подождать пару мин. пока загрузятся онлайн статусы.

Mazzog,
SpyHEX,
1. Вообще в протоколе OSCAR единый только сервер авторизации, он проверяет пару UIN/пасс и отправляет печенье клиенту + адрес и порт BOS сервера. Думаю реализация протокола на BOS серверах может отличаться (на практике же были отличия ответа сервера от неофициальной документации, которую я читал), поэтому возможно мася работать не будет для некоторых уинов.
2. Гдето читал, что пасс к UIN'у должен быть из 8 символов, остальные сервер аси не запоминает. Попробуйте изменить пасс.

Цитата(SpyHEX @ 20.4.2010, 12:16)
E398. DAR 14.2
У меня аська не подключается. Хотя список контактов загрузила. Жмешь "Connect" подключается, подключается, выдает минуты через 3: Передано ~150кб, и потом пишет Disconnect, потом если зайти в "Contact list", то контакты там есть, но все не в сети.
*

150 - чтото спишком много. "Disconnected" пишет когда соединение было закрыто. Я не знаю кем - может сервером аси, может провайдером.
Есть мысль по поводу такого обьема данных:
1) У клиента нету лок. копии SSI. Параметры актуальности SSI - нули.
2) Клиент отправляет параметры актуальности SSI.
3) Если параметры актуальности совпадают, тогда переход к пункту 7.
4) Сервер присылает SSI несколькими пакетами (ибо там очень много).
5) В последнем пакете время актуальности SSI. Клиент его запоминает.
6) Перейти к пункту 2.
7) Сервер присылает пакет SRV_SSI_UPxTOxDATE, сообщая что лок. копия SSI актуальна.
Возможно, что один из параметров актуальности (количество) считается неправильно и до 7го пункта не доходит.
У меня в списке 83 контакта, SSI растягивается на 2 пакета и ошибок не происходит.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
AScorpio
сообщение 22.4.2010, 18:17


Опытный
***

Группа: Пользователи
Сообщений: 129
Регистрация: 15.7.2007
Из: Mapleton, Utah
Пользователь №: 141 490
Модель телефона: C650, Е398
Прошивка: DaR2.11

Рейтинг: 23.5



G-XaD, на Е398 Dar 2.14.2 не переключается на латиницу!
По умолчанию стоит 123, а если нажать на *, то вводится какой-то символ.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
zema00
сообщение 22.4.2010, 19:50


Опытный
***

Группа: Пользователи
Сообщений: 112
Регистрация: 19.6.2009
Пользователь №: 201 595
Модель телефона: v3r
Прошивка: d3r

Рейтинг: 35



Цитата(G-XaD @ 22.4.2010, 21:26) *

Для ввобда пароля доступны:
- Латиница (верхний/нижний регистры)
- Кирилица (верхний/нижний регистры)
- Цифры
Переключение осуществляется кнопкой * (звездочка).
Изначально при вводе пароля выбрана латиница.
Ограничение на вводимые символы стоит при вводе UIN'а.



На теле V3r пароль вводится только цифрами (звездочкой не переключается ввод, изначально стоит циферный ввод ). Хотось бы чтобы был режим ввода iTAP smile.gif А почему там все на инглише?

Сообщение отредактировал zema00 - 22.4.2010, 19:53
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
G-XaD
сообщение 22.4.2010, 20:26


Мастер
****

Группа: Разработчики
Сообщений: 171
Регистрация: 6.11.2007
Из: Donetsk City / Ukraine
Пользователь №: 153 083

Рейтинг: 323



Действительно, в том, что я выкладывал забыл флажки. Исправил.

Выяснил - в списке контактов UTF8. Добавил % в прогресс подключения.

Сообщение отредактировал G-XaD - 22.4.2010, 20:28
Прикрепленный файл masya.zip   ( 39.82 килобайт ) Кол-во скачиваний: 126
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
[Masya] ICQ Client by G-XaD, Еще не вся нужная функциональность · Эльфы, их разработка и портирование · Forum
 

13 страниц V « < 2 3 4 5 6 > » 
Ответ в темуСоздание новой темы
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 26.4.2024, 9:46

Форум живёт: