ru24.pro
Работа
Октябрь
2024
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
27
28
29
30
31

Обновить версию клиента Телеграм с применением имеющихся изменений

0
Кратко:

Нужно доработать официальный клиент Telegram под андройд, перенеся в него функционал, который у меня уже реализован в одной из предыдущих версий клиента.

Подробно:

Какое-то время назад я создавал заявку здесь на выполнение задачи по доработке официального клиента телеграм.
Вот ссылка на нее для ознакомления:
https://freelance.habr.com/tasks/414073

По заявке удалось найти исполнителя и не без проблем но сделать следующий функционал:
1. При входе в телеграм-клиент отображается окно для ввода сервера, логина и пароля
2. На данный сервер идёт обращение с basic-авторизацией по данному логину и паролю
3. Сервер возвращает json содержащий черный и белый список. Где черный список - это ID пользователей с которыми нельзя общаться (с остальными можно) а белый - это ID групп и чатов в которые можно заходить (в остальные нельзя). Задача фильтрации по никнеймам не реализована, оставлены только ID.
4. При попытке открыть пользователя или группу, которые открывать нельзя - происходило открытие страницы "Избранное" пользователя.

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

* Правильно работает чёрный и белый списки
* json приходящий с сервера хранится в приложении, а не запрашивается на каждый чих
* Сам адрес сервера, логин и пароль также сохраняются в приложении в виде json-файла, чтобы не вводить их каждый раз.

Проблемы, которые возникли:
1) Данный код мне не удаётся перенести на новую версию Telegram, так как с момента, когда была начата работа, в телеграм-клиент были внесены многие изменения, часть из которых я вообще не понимаю.
2) Имеющаяся версия телеграм-клиента перестала собираться на моём ПК, и как починить эту сборку я не знаю в силу недостатка опыта.

Здесь в моём репозитории можно посмотреть пулл-реквест который содержит все сделанные изменения https://github.com/MihanEntalpo/BlackAndWhiteTeleg...

Итого, задача:
1) Пройти по изменениям в pull-реквесте и перенести их на новую, актуальную версию клиента телеграм: https://github.com/DrKLO/Telegram (форкнуть репозиторий)
2) Добиться возможности сборки и запуска
3) Добиться работоспособности функционала, а именно:
1) Отображать окно с вводом адреса сервера, логином и паролем
2) Сохранять введённые данные, если удалось подключиться к серверу и получить оттуда Json
3) Сохранять полученный Json
4) При открытии группы/канала, которые НЕ входят в белый список - перекидывать в заметки
5) При открытии пользователя, который входит в чёрный список - тоже перекидывать в заметки

Примеры данных авторизации на сервере для чтения чёрных-белых списков:

Пустые списки:
https://bwtg.mihanentalpo.me/lists
логин: guest
пароль: guest

Возвращается json:

{"whitelist":[],"blacklist":[],"info":"Default empty lists for guest user"}

Не-пустые списки:
https://bwtg.mihanentalpo.me/lists
логин: user0
пароль: password0

Возвращается json:

{"blacklist":["540829676"],"whitelist":["-1001009062025"],"info":"whitelist is 'Yaplakal' channel"}

Как сейчас выглядит окно ввода сервера, логина и пароля можно увидеть на приложенной картинке. А больше никаких интерфейсных элементов нет.

Если планы по дальнейшему развитию функциональности, если сработаемся - будут и другие задачи.