diff --git a/README.md b/README.md new file mode 100644 index 0000000..2189dc2 --- /dev/null +++ b/README.md @@ -0,0 +1,63 @@ +# MobileBalance - расширение для Chromium-браузеров +Предназначено для получения баланса номеров (или иных учётных данных) провайдеров. Является одной из альтернатив программ агрегации баланса провайдеров для персональных компьютеров. + +Работает на основе эмуляции входа пользователя в личный кабинет провайдера в браузере по учётным данным (логин / пароль). Язык русский, в силу особенностей аудитории иная локализация не предполагалась. + +Распространение и использование расширения для пользователей бесплатно (и оплата не предполагается). + +## Предпосылки +Расширение разработано на основе идей прототипа - автономной программы с одноимённым названием. Автономная MobileBalance была разработана для Microsoft Windows, основана на взаимодействии с MS Internet Explorer и хранении данных в формате базы MS Access. С 15.06.2022 Microsoft прекратил развитие и поддержку IE. Подавляющее большинство провайдеров уже отказались от обеспечения совместимости с ним своих сайтов. + +Сопровождение автономной MobileBalance со стороны автора также прекращено. Последняя версия программы (18.3) была выпущена 08.05.2018. Сайт программы упразднён. + +Несмотря на развитие мобильных приложений провайдеров, дающих информацию о балансах своих абонентов, агрегатор подобный MobileBalance остаётся востребованным. Автономный MobileBalance предполагал возможность расширения опрашиваемых провайдеров за счёт написания подключаемых JSMB-плагинов. Она была благоприятно принята сообществом - после прекращения поддержки плагины долгое время актуализировались и развивались энтузиастами (до момента, пока сайты провайдеров сохраняли работоспособность при обращениях от устаревших механизмов IE). + +Для персональных компьютеров единственной известной автору альтернативой является [MBPlugin](https://github.com/artyl/mbplugin). Сильно упрощая его работу (для интересующимся - предыдущая ссылка), он сопрягает базы автономный MobileBalance с актуальным браузером (Google Chrome), при этом заменяет большинство плагинов их python-аналогами. "Жизнь" автономной MobileBalance за счёт MBPlugin возможно продлить. В качестве разработки аналогичной направленности под Android следует выделить [AnyBalance](https://github.com/dukei/any-balance-providers). Из Google WebStore он с недавнего времени пропал, но легко обнаруживается на [RuStore](https://www.rustore.ru/catalog/app/com.dukei.android.apps.anybalance). + +## О расширении +Разработка расширения ведётся с 24.11.2021. Первая версия опубликована в [Google WebStore](https://chromewebstore.google.com/detail/mobilebalance/oogdlalfhmhjbdbgefpgmdhmfnjnlggo) 23.02.2022. + +Учётная запись, позволяющая публиковать расширения в магазине расширений Microsoft, более полугода на подтверждении. Вопрос не решается (очевидно, по причинам текущей политической ситуации). + +Полную историю изменений расширения можно посмотреть в его настройках, на вкладке "О расширении" + +- Расширение ориентировано на работу в Chromium-браузерах. Опубликовано в [Google WebStore](https://chromewebstore.google.com/detail/mobilebalance/oogdlalfhmhjbdbgefpgmdhmfnjnlggo); +- Расширение не производит никаких пересылок чувствительных данных по сети. Учётные данные сохраняются в локальном хранилище расширения (только на том компьютере, где оно установлено). Пароли дополнительно кодируются и декодируются непосредственно перед их использованием для входа в личный кабинет провайдера; +- Плюсом расширения является кроссплатформенность. На текущий момент работоспособность проверена в среде MS Windows (Google Chrome, Yandex browser, Microsoft Edge) и Linux (Chromium на базе Debian); +- Код расширения открыт, оно может быть дополнено новыми возможностями; +- Плагины и код расширения обильно прокомментированы, что упрощает для желающих изучение их работы; +- Предусмотрено дополнение коллекции плагинов расширения плагинами разрабатываемыми сообществом; +- Плагины расширения по алгоритму работы аналогичны плагинам прототипа. При этом они имеют большую свободу в использовании современных языковых конструкций JavaScript, на котором они (как и само расширение) написаны; +- В составе расширения есть выгружаемые файлы с кратким руководством по подготовке плагинов и описанием структур данных; +- Структура данных, принимаемых при опросах, и наименования её полей унаследованы из автономной MobileBalance (для совместимости). Хранение данных обеспечивается механизмами браузеров - LocalStorage и IndexedDB; +- Данные настроек и истории запросов могут быть сохранены в локальные файлы и загружены обратно в расширение. Локальные файлы параллельно играют роль резервных копий данных; +- В расширение (после необходимой обработки) могут быть перенесены данные истории опросов из базы автономной MobileBalance. + +## Текущий состав коллекции плагинов +Актуальные данные можно посмотреть в подсказке на пиктограмме **(?)** к выбранному провайдеру +_(Настройки расширения -> Общие настройки -> подраздел настроек провайдера)_ +| Плагин | Описание | +| ------ | -------- | +| МТС (API) | Запрос данных оператора связи МТС (через API)
Забирает:
- баланс;
- кредитный лимит (если он есть);
- кэшбэк (если он есть, в поле 'Баланс2');
- остаток пакета минут;
- остаток пакета SMS;
- остаток пакета интернета;
- ФИО владельца;
- наименование тарифа;
- дату завершения оплаченного периода;
- статус блокировки;
- состав услуг ( формат: 'бесплатные' / 'платные' / (сумма по платным) ) | +| BeeLine v3 (API)
_рекомендуемый_ | Запрос данных оператора связи BeeLine (через обновлённый API) с авторизацией в форме сайта BeeLine и авторешения капчи
При авторизации плагин однократно пробует решить капчу. Если попытка неуспешна, то плагин пробует решить капчу повторно и ждёт подтверждения ползователя. В этот момент значение можно исправить вручную или использовать кнопку обновления капчи
Забирает:
- баланс;
- остаток пакета минут;
- остаток пакета SMS;
- остаток пакета интернета;
- наименование тарифа;
- статус блокировки;
- состав услуг ( формат: 'бесплатные' / 'платные' / 'по подпискам' / (сумма по платным) ) | +| BeeLine v2 (API) | Запрос данных оператора связи BeeLine (через обновлённый API) с авторизацией в форме для ЮЛ
Забирает:
- баланс;
- остаток пакета минут;
- остаток пакета SMS;
- остаток пакета интернета;
- наименование тарифа;
- статус блокировки;
- состав услуг ( формат: 'бесплатные' / 'платные' / 'по подпискам' / (сумма по платным) ) | +| BeeLine (API) | Запрос данных оператора связи BeeLine (через старый API)
Забирает: (не для всех тарифов)
- баланс;
- остаток пакета минут;
- остаток пакета SMS;
- остаток пакета интернета;
- наименование тарифа;
- статус блокировки;
- состав услуг ( формат: 'бесплатные' / 'платные' / 'по подпискам' ) | +| Мегафон v2 (API) | Запрос данных оператора связи Мегафон (через API)
Забирает:
- баланс;
- кредитный лимит (если он есть);
- остаток пакета минут;
- остаток пакета SMS;
- остаток пакета интернета;
- ФИО владельца;
- наименование тарифа;
- номер лицевого счета;
- дату завершения оплаченного периода;
- состав услуг ( формат: 'бесплатные' / 'платные' / (сумма по платным) ) | +| Т2 (API) | Запрос данных оператора связи Т2 (ранее Теле2), требуется начальная авторизация на странице запроса по коду из SMS или письма эл. почты
Забирает:
- баланс;
- остаток пакета минут;
- остаток пакета SMS;
- остаток пакета интернета;
- ФИО владельца;
- наименование тарифа;
- дату завершения оплаченного периода;
- статус блокировки;
- состав услуг ( формат: 'бесплатные' / 'платные' / (сумма по платным) ) | +| МТС. Решения для дома (http) | Запрос данных оператора связи МТС для сервиса 'Решения для дома' (ранее МГТС)
Забирает:
- баланс;
- номер лицевого счета;
- наименование тарифа;
- ФИО владельца | +| АКАДО Телеком (API) | Запрос данных оператора связи 'АКАДО Телеком'
Забирает:
- баланс;
- номер лицевого счета;
- ФИО владельца;
- дату завершения оплаченного периода | +| WiFire (API) Интернет | Запрос данных провайдера WiFire (через API) по Интернет-подключению
Забирает:
- баланс;
- наименование тарифа (Интернет);
- номер лицевого счета;
- ФИО владельца;
- дату следующего платежа;
- cтатус блокировки | +| Автодор-Платные Дороги (API) | Запрос данных 'Автодор-Платные Дороги'
Забирает:
- баланс;
- бонусные баллы (если они есть, в поле 'Баланс2');
- номер лицевого счета;
- ФИО владельца;
- статус блокировки | +| Тройка-кошелёк (API) | Запрос данных кошелька карты 'Тройка' (через API). Требуется начальная регистрация в личном кабинете (ЛК) на 'mosmetro.ru' и привязка в нём карт (физических, для виртуальных не опробовано).
Логин - номер карты, пароль не используется.
При первом запросе ЛК должен быть открыт или нужна однократная авторизация (вход в ЛК) на странице запроса
Забирает:
- баланс кошелька;
- сумму ожидающую записи (если она есть, в поле 'Баланс2');
- статус блокировки | + +## Разработка плагинов для дополнительных провайдеров +Можно ли разработать плагин для провайдера X? Можно попробовать, но для разработки и тестирования нужны учётные данные по этому провайдеру. Если вы их предоставите - будет с чем пробовать поработать. То же самое касается различных тарифов, которые могут отрабатывать в разработанных плагинах не так, как вы этого ожидаете. У меня нет возможности протестировать все существующие варианты ответы всех провайдеров. + +## ToDo +Автономная MobileBalance выполняет запросы последовательно по списку учётных данных. Этот последовательный режим опроса обеспечивается и в расширении. Из ещё не реализованных задумок - реализовать параллельный режим опроса провайдеров, при этом для учётных записей каждого провайдера проводить запросы по списку учётных данных последовательно. + +## Контакты +Для общения можно использовать: +- [Issues](https://github.com/Unlicensed-ZZZ/MobileBalance/issues) здесь, на GiHub; +- профильную тему на [4PDA](https://4pda.to/forum/index.php?s=&showtopic=985296&view=findpost&p=114094620) (предпочтительно для приватных обсуждений в Личных сообщениях, включая передачу учётных данных); +- указанную здесь **электронную почту**