Первая кастомная сборка
- Mikanoshi
- Автор темы
- Не в сети
- Moderator
- Сообщений: 1105
- Спасибо получено: 156
Что это такое?)) У меня 8.1, так что без понятия.альфа версии ночных сборок
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- AleXHQ
- Не в сети
- Elite Member
- Сообщений: 163
- Спасибо получено: 0
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- Mikanoshi
- Автор темы
- Не в сети
- Moderator
- Сообщений: 1105
- Спасибо получено: 156
- Добавлены последние изменения из оригинального репо
- Смещение иконки только вниз при нажатии на кнопки
- Появление подсказок на том же экране, что и КЛ; отступы также относительно границ этого экрана
- Анимация затухания при появлении и скрытии подсказок (для КЛ и чата - только при появлении)
- Поддержка доп. статусов из ICQ 8.3 (в настройках можно включить возможность выставлять статусы, которые будут видны только в данной сборке R&Q и оф. клиенте)
- Добавлены новые иконки доп. статусов в стандартную тему оформления и в тему Fresh 3.0
- Увеличены отступы от границ окна и между сообщениями в чате
- Выровнено положение многих элементов
- Скомпилировано в Delphi XE8 с изменёнными исходниками RTL для уменьшения размера exe (RTTI юнит = 12-22 КБ)
Версия со встроенным отчётом об ошибках:
code.highspec.ru/Mikanoshi/rnq/blob/mast...tro/R&Qx64_Debug.exe
P.S. Сообщение о новой сборке пока не работает, т.к. не работает установка данных в полях Город и Область в профиле (именно по ним проверяется версия с другого номера), похоже в протоколе изменили что-то, либо некоторые поля вообще убрали.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- Rapid D
- Не в сети
- Administrator
- Сообщений: 1992
- Спасибо получено: 34
Я там не закончил ещё переводить на отдельный репо для VTV - хочу чтобы легче было его синхронизировать с оригинальным.1124 Сборка 15
- Добавлены последние изменения из оригинального репо
...
P.S. Сообщение о новой сборке пока не работает, т.к. не работает установка данных в полях Город и Область в профиле (именно по ним проверяется версия с другого номера), похоже в протоколе изменили что-то, либо некоторые поля вообще убрали.
И по поводу автообновлений, у меня в планах было добавить новую проверку обновлений, через сайт. Но времени как обычно нету.
Может вы как раз это и сделаете?
Правда хочется всё по хорошему, с проверкой подписи обновления, а то подсунут ещё какую-нибудь вирусню...
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- Mikanoshi
- Автор темы
- Не в сети
- Moderator
- Сообщений: 1105
- Спасибо получено: 156
А я и не делал VTV в другом репо) Просто заменил, вообще не уверен, что GitLab у меня поддерживает такое.Я там не закончил ещё переводить на отдельный репо для VTV - хочу чтобы легче было его синхронизировать с оригинальным.
И по поводу автообновлений, у меня в планах было добавить новую проверку обновлений, через сайт. Но времени как обычно нету.
Может вы как раз это и сделаете?
Правда хочется всё по хорошему, с проверкой подписи обновления, а то подсунут ещё какую-нибудь вирусню...
Учитывая насколько надёжен данный сайт, номер как-то получше будет)) Пока есть более важные исправления, например сохранение профиля практически полностью не работает, сейчас переписываю его со SNAC(15,02)/07DA/0C3F на /0FD2. В оф. клиенте нет вообще изменения своего профиля, так что даже пакеты не посниффить, но хоть в исходниках есть коды многих полей. Город и область уже починил. Там ещё если часто сохранять и запрашивать данные, то сервер тебя банит, и совсем не на пару минут)) Приходится ждать.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- Mikanoshi
- Автор темы
- Не в сети
- Moderator
- Сообщений: 1105
- Спасибо получено: 156
03.10.1986: 40DEBE40 00000000 = 1088339520 / 64 = 17005305
12.03.1988: 40DFA840 00000000 = 1088399424 / 64 = 17006241
17006241 - 17005305 = 936, ровно столько дней между этими датами.
Непонятно только от чего отсчитывается. Даже если вычесть $40404040 из чисел, то дней останется ещё на 444 года))
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- Rapid D
- Не в сети
- Administrator
- Сообщений: 1992
- Спасибо получено: 34
Int64((@eventWP.bday)^) := getTLVqwordBE(META_COMPAD_BDAY, snac, ofs);
if eventWP.bday > 0 then
begin
eventWP.bday := eventWP.bday + 2;
eventWP.age := YearsBetween(now, eventWP.bday)
end
Вот, в 10ке опять вернули прозрачненькие окна:
vhanla.codigobit.info/2015/07/enable-win...-glass-aka-blur.html
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- Mikanoshi
- Автор темы
- Не в сети
- Moderator
- Сообщений: 1105
- Спасибо получено: 156
Дак при получении может быть, а при сохранении:Дата вроде всегда была 8 байт:
И пора уже для 10ки делать, а не для такого старья как 8.1
Вот, в 10ке опять вернули прозрачненькие окна:
sb:=Word_LEasStr(yearOf(c.birth)) + Word_LEasStr(monthOf(c.birth)) + Word_LEasStr(dayOf(c.birth))
Так сейчас сделал, вроде пашет. Сервер сам обрубает дробную часть потом:
QWord_BEasStr(Int64((@c.birth)^))
UPD: Короче пришлось при сохранении вычитать 2 дня, а при получении обратно прибавлять, а то с ICQ и QIP не совпадает. Загадка) А ещё я без понятия как убрать теперь ДР, т.к. посылка всех нулей делает дату 14.12.1901, в кипе точно также.
10 только завтра выйдет)) Я ничего не добавлял такого специфичного под 8.1, только интерфейс облагородил, так что и на 10 должно быть нормально. Эти прозрачные окна - недокументированные, да и вобще Glass был отстоем))
Я пока ставить 10 не собираюсь, до первого сервис пака хотя бы.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- Rapid D
- Не в сети
- Administrator
- Сообщений: 1992
- Спасибо получено: 34
А если пусто слать? Там же TLV?...
UPD: Короче пришлось при сохранении вычитать 2 дня, а при получении обратно прибавлять, а то с ICQ и QIP не совпадает. Загадка) А ещё я без понятия как убрать теперь ДР, т.к. посылка всех нулей делает дату 14.12.1901, в кипе точно также.
...
Вместо
TLV(META_COMPAD_BDAY, QWord_BEasStr(Int64((@c.birth)^)-2) )
послать
TLV(META_COMPAD_BDAY, '')
?
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- Mikanoshi
- Автор темы
- Не в сети
- Moderator
- Сообщений: 1105
- Спасибо получено: 156
Тогда вообще игнорируется и ничего не меняет. Любое число ранее 14.12.1901 сбрасывается до этой даты. Я вобщем сделал эту дату признаком отключения (712 вместо 0), а мин дату в профиле начиная с 15 числа можно задать.А если пусто слать? Там же TLV?
Вместо
TLV(birth, QWord_BEasStr(Int64((@c.birth)^)) )
послать
TLV(birth, '')
?
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- Mikanoshi
- Автор темы
- Не в сети
- Moderator
- Сообщений: 1105
- Спасибо получено: 156
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- Mikanoshi
- Автор темы
- Не в сети
- Moderator
- Сообщений: 1105
- Спасибо получено: 156
В профиле оказывается вообще почти ничего не работало кроме имени, фамилии и ника)) Ещё и аватар не меняется. Возвращает 1003 с ошибкой 04. В кипе так же, он просто локально сохраняет аватар и показывает его потом.
Веб интерфейс требует минимум 600 пикселей по обеим сторонам изображения, ппц.
Придётся отсылать юзера на сайт для смены наверно, вот
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- Mikanoshi
- Автор темы
- Не в сети
- Moderator
- Сообщений: 1105
- Спасибо получено: 156
Не имел дел с Web ICQ API? Что-то нифига не получается залогиниться)
Нашёл примеры генерации запроса (и главное подписи) на C++ и Ruby
Пытаюсь зайти в www.icq.com/people/*UIN*/edit/ без ввода номера-пароля, сосниффил с оф.клиента запрос:
http://www.icq.com/karma_api/karma_client2web_login.php
?a=%252FwQAAAAAAAGcrNcvlKSdd919XSVhnS%252F0cXQs%252FXxhQgzo0DOA7BO%252FELO0IPr53VZ9ybPwOhb8P8eqsejdCtiabMu0UE5WzHrLLXys9CnrsrbYNsR0hhlYY2rdQzQNMFWys8qEt9uaewysAfV6UgZDOHudPmMroR8hlWxTMwNTU%252FnV33kh455EeKVu7HM%253D
&d=http%3A%2F%2Fwww.icq.com%2Fpeople%2F666666666%2Fedit%2F
&k=ic1nmMjqg7Yu-0hL
&owner=666666666
&ts=1438223321
&sig_sha256=tMKA%2BBWX5AqS%2FUH68a9oRi28NGMDKzIIfWBGf4%2F5O9Y%3D
Токен а из другого запроса получается нормально, ts - время в UTC, правильное, подпись генерирую так:
gist.github.com/Mikanoshi/cd2ebd25518591bd38a6
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- Rapid D
- Не в сети
- Administrator
- Сообщений: 1992
- Спасибо получено: 34
web.archive.org/web/20080308233204/http:...l.com/aim/oscar/#SSO
digest := CalcHMAC_SHA256(StrToUTF8(icq.getPwdOnly), StrToUTF8(session.secret));
Это правильный порядок?
Написано: $sessionKey = hmac_sha256_base64("m3UPFGcH5hmKSv24", "WeakPassword");
Также тут:
digest := CalcHMAC_SHA256(sSecret, StrToUTF8(hash));
и
$digest = hmac_sha256_base64($hashData, $sessionKey);
= "F2U+nrI5cJXVuTVwSOMyH3r6lhsCOspQ9J6XpLxgmAw="
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- Mikanoshi
- Автор темы
- Не в сети
- Moderator
- Сообщений: 1105
- Спасибо получено: 156
Оказался правильный) Там сначала ключ, а потом данные идут.Тут описано:
web.archive.org/web/20080308233204/http:...l.com/aim/oscar/#SSO
digest := CalcHMAC_SHA256(StrToUTF8(icq.getPwdOnly), StrToUTF8(session.secret));
Это правильный порядок?
Вобщем сделал, нужно было заурлэнкодить параметры запроса в хэше дважды просто.
Жаль, что всё это пашет только если хранится пароль, а не его MD5...
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- Mikanoshi
- Автор темы
- Не в сети
- Moderator
- Сообщений: 1105
- Спасибо получено: 156
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- Mikanoshi
- Автор темы
- Не в сети
- Moderator
- Сообщений: 1105
- Спасибо получено: 156
- Исправлены сохранение и загрузка данных для многих полей в профиле
- Исправлена установка WebAware, требования авторизации и уровня приватности профиля
- Добавлена новая вкладка Дом и новые поля - адрес, место рождения, дом. страница и др.
- Полная поддержка стикеров с возможностью выбора их размера, включая скрытые стикеры, которые нельзя отправить оф. клиентом, но получать их он умеет.
Горячие клавиши: Ctrl+Shift+S для открытия окна со стикерами, Tab и Shift+Tab для перемещения между категориями, выбор стикера стрелками, Enter или Space для отправки
- Новые иконки для диалогов в теме Fresh 3.0
- Добавлена ссылка в меню на веб-профиль, добавлены ссылки на смену аватара и на добавление верифицированных номеров телефонов в своём профиле
- Изменен способ задания горячих клавиш с CTRL в чате для устранения звука ошибки, также убран этот звук при поиске по истории
- При масштабировании прозрачных PNG в чате теперь всегда используется Cosine фильтр, т.к. другие дают артефакты
- Добавлена возможность переключения вкладок в чате при помощи кнопок вперёд и назад (для браузера) на мышке
- Исправлен баг с отрисовкой фона фильтра в КЛ
- Активировано считывание описания из языковых файлов
Версия со встроенным отчётом об ошибках:
code.highspec.ru/Mikanoshi/rnq/blob/mast...tro/R&Qx64_Debug.exe
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- Mikanoshi
- Автор темы
- Не в сети
- Moderator
- Сообщений: 1105
- Спасибо получено: 156
- Исправлены вылеты при попытке отобразить невалидное изображение
- Добавлено определение различных видов JPEG файлов для их отображения в чате
- Изображения занимающие более 5МБ всегда масштабируются с фильтром Эскиз, иначе слишком медленно
- Исправлено отображение непрозрачных PNG в чате
- Исправлен двойной клик по некоторым изображениям, если их 2 и более в сообщении
- Всплывающие подсказки теперь показывают текст сообщения и все изображения в нём
- Настройки масштабирования изображений также распространяются и на эти подсказки
- Настройки времени показа подсказок больше не учитывают картинки
- Исправлена проблема с установкой доп. статуса при первом подключении после запуска программы
Также обновил плагин Pic-is-Big до 1.2.6 , исправлены вылеты при получении картинок, если включено отображение прогресса.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- Mikanoshi
- Автор темы
- Не в сети
- Moderator
- Сообщений: 1105
- Спасибо получено: 156
На самом деле даже оф. клиенты ICQ не могут придти к общему мнению на этот счёт.
Десктопная версия использует AOL chat rooms какие-то (при создании отправляет участникам строку типа aol://2719:10-4-chat1245382434654977163, что с ней делать - непонятно) и требует присутствие капсов поддержки чата у всех участников. При закрытии окна чата он удаляется.
А версия на андроиде например этого не поддерживает, но там тоже есть групповые чаты, причём даже публичные, но при создании чата совершенно другой принцип - всем участникам в КЛ на сервере в группу Conferences добавляется новый номер вида Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript. и через него всё работает без какой-либо поддержки клиентом. Вот второй вариант вполне можно добавить, но почему-то при создании чата в крысу не приходит уведомление об изменении SSI, поэтому чат появляется только после первого сообщения или переподключения.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- Mikanoshi
- Автор темы
- Не в сети
- Moderator
- Сообщений: 1105
- Спасибо получено: 156
- Добавлена функция "Разбудить собеседника" и соответствующее событие.
При отправке попытки пробуждения в оф. клиенте трясётся окно чата (если оно открыто) и проигрывается звуковой сигнал (если он включен). В R&Q также есть звук и вибрация чата, но её можно отключить в событиях (пункт "мигание окна чата")
Будить собеседника можно не чаще чем каждые 15 секунд
- Добавлена поддержка ICQ мультов (только получение и без flash анимации, в сообщении показывается название мульта и его иконка, а также ссылка на swf, но многие ссылки не рабочие, т.к. оф. клиент хранит большинство мультов локально)
- Добавлена обработка полученных ссылок с files.icq.net, если файл по ссылке является изображением, то он скачивается и отображается в чате
- Исправлена обработка ссылок в чате, чтобы они не включали в себя кавычки
- Множество изменений в процессе подключения клиента к серверу (на основе анализа оф. клиента)
- Добавлены ещё 2 поля для сохранения доп. номеров телефонов контакта на сервере
- Добавлен пак для определения клиентов Cat in a Bag! с последними изменениями (мобильные клиенты, у которых нет никаких других признаков кроме 3-4 капсов)
- Отключена передача файлов (всё равно не работала) и поиск в истории по регулярным выражениям, что позволило уменьшить размер EXE
- Переведены на русский возможности клиентов
З.Ы. С конференциями/групповыми чатами, XMPP контактами Facebook, отправкой смс и закачкой на files.icq.net пока не разобрался
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.