{"id":24228632,"url":"https://github.com/unlicensed-zzz/mobilebalance","last_synced_at":"2026-02-27T00:01:15.071Z","repository":{"id":271161601,"uuid":"912551872","full_name":"Unlicensed-ZZZ/MobileBalance","owner":"Unlicensed-ZZZ","description":"Расширение для Chromium-браузеров. Получает баланс по учётным данным провайдеров. Одна из альтернатив для персональных компьютеров (прототип - автономная программа MobileBalance)","archived":false,"fork":false,"pushed_at":"2025-02-27T19:50:41.000Z","size":579,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-28T04:21:44.050Z","etag":null,"topics":["chrome","chrome-extension","chrome-extensions","chromium","chromium-extension","extension","extension-chrome","extension-edge","extensions","extensions-chrome","javascript","js"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Unlicensed-ZZZ.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-01-05T22:09:38.000Z","updated_at":"2025-02-27T19:50:44.000Z","dependencies_parsed_at":null,"dependency_job_id":"3e4ac7a2-9e74-4cc7-be90-7a8b6110882b","html_url":"https://github.com/Unlicensed-ZZZ/MobileBalance","commit_stats":null,"previous_names":["unlicensed-zzz/mobilebalance"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Unlicensed-ZZZ%2FMobileBalance","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Unlicensed-ZZZ%2FMobileBalance/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Unlicensed-ZZZ%2FMobileBalance/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Unlicensed-ZZZ%2FMobileBalance/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Unlicensed-ZZZ","download_url":"https://codeload.github.com/Unlicensed-ZZZ/MobileBalance/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241801853,"owners_count":20022531,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chrome","chrome-extension","chrome-extensions","chromium","chromium-extension","extension","extension-chrome","extension-edge","extensions","extensions-chrome","javascript","js"],"created_at":"2025-01-14T11:17:51.644Z","updated_at":"2026-02-14T19:04:21.972Z","avatar_url":"https://github.com/Unlicensed-ZZZ.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MobileBalance - расширение для Chromium-браузеров\nПредназначено для получения баланса номеров (или иных учётных данных) провайдеров. Является одной из альтернатив программ агрегации баланса провайдеров для персональных компьютеров.\n\nРаботает на основе эмуляции входа пользователя в личный кабинет провайдера в браузере по учётным данным (логин / пароль). Язык русский, в силу особенностей аудитории иная локализация не предполагалась.\n\nРаспространение и использование расширения для пользователей бесплатно (и оплата не предполагается).\n\n## Предпосылки\nРасширение разработано на основе идей прототипа - автономной программы с одноимённым названием. Автономная MobileBalance была разработана для Microsoft Windows, основана на взаимодействии с MS Internet Explorer и хранении данных в формате базы MS Access. С 15.06.2022 Microsoft прекратил развитие и поддержку IE. Подавляющее большинство провайдеров уже отказались от обеспечения совместимости с ним своих сайтов.\n\nСопровождение автономной MobileBalance со стороны автора также прекращено. Последняя версия программы (18.3) была выпущена 08.05.2018. Сайт программы упразднён.\n\nНесмотря на развитие мобильных приложений провайдеров, дающих информацию о балансах своих абонентов, агрегатор подобный MobileBalance остаётся востребованным. Автономный MobileBalance предполагал возможность расширения опрашиваемых провайдеров за счёт написания подключаемых JSMB-плагинов. Она была благоприятно принята сообществом - после прекращения поддержки плагины долгое время актуализировались и развивались энтузиастами (до момента, пока сайты провайдеров сохраняли работоспособность при обращениях от устаревших механизмов IE).\n\nДля персональных компьютеров единственной известной автору альтернативой является [MBPlugin](https://github.com/artyl/mbplugin). Сильно упрощая его работу (для интересующимся - предыдущая ссылка), он сопрягает базы автономный MobileBalance с актуальным браузером (Google Chrome), при этом заменяет большинство плагинов их python-аналогами. \"Жизнь\" автономной MobileBalance за счёт MBPlugin возможно продлить. В качестве разработки аналогичной направленности под Android следует выделить [AnyBalance](https://github.com/dukei/any-balance-providers). Из Google WebStore она с недавнего времени пропала, но легко [обнаруживается](https://www.rustore.ru/catalog/app/com.dukei.android.apps.anybalance) на RuStore.\n\n## О расширении\nРазработка расширения ведётся с 24.11.2021. Первая версия опубликована в [Google WebStore](https://chromewebstore.google.com/detail/mobilebalance/oogdlalfhmhjbdbgefpgmdhmfnjnlggo) 23.02.2022.\n\nУчётная запись, позволяющая публиковать расширения в магазине расширений Microsoft, более полугода на подтверждении. Вопрос не решается (очевидно, по причинам текущей политической ситуации).\n\nПолную историю изменений расширения можно посмотреть в его настройках, на вкладке \"О расширении\"\n\n- Расширение ориентировано на работу в Chromium-браузерах. Опубликовано в [Google WebStore](https://chromewebstore.google.com/detail/mobilebalance/oogdlalfhmhjbdbgefpgmdhmfnjnlggo);\n- Расширение не производит никаких пересылок чувствительных данных по сети. Учётные данные сохраняются в локальном хранилище расширения (только на том компьютере, где оно установлено). Пароли дополнительно кодируются и декодируются непосредственно перед их использованием для входа в личный кабинет провайдера;\n- Плюсом расширения является кроссплатформенность. На текущий момент работоспособность проверена в среде MS Windows (Google Chrome, Yandex browser, Microsoft Edge, Opera) и Linux (Chromium на базе Debian);\n- Код расширения открыт, оно может быть дополнено новыми возможностями;\n- Плагины и код расширения обильно прокомментированы, что упрощает для желающих изучение их работы;\n- Предусмотрено дополнение коллекции плагинов расширения плагинами разрабатываемыми сообществом;\n- Плагины расширения по алгоритму работы аналогичны плагинам прототипа. При этом они имеют большую свободу в использовании современных языковых конструкций JavaScript, на котором они (как и само расширение) написаны;\n- В составе расширения есть выгружаемые файлы с кратким руководством по подготовке плагинов и описанием структур данных;\n- Структура данных, принимаемых при опросах, и наименования её полей унаследованы из автономной MobileBalance (для совместимости). Хранение данных обеспечивается механизмами браузеров - LocalStorage и IndexedDB;\n- Данные настроек и истории запросов могут быть сохранены в локальные файлы и загружены обратно в расширение. Локальные файлы параллельно играют роль резервных копий данных;\n- В расширение (после необходимой обработки) могут быть перенесены данные истории опросов из базы автономной MobileBalance.\n\n## Текущий состав коллекции плагинов\nАктуальные данные можно посмотреть в подсказке на пиктограмме **(?)** к выбранному провайдеру\n_(Настройки расширения -\u003e Настройки провайдеров)_\n| Плагин | Описание |\n| ------ | -------- |\n| МТС v2 (API) | \u003ci\u003eЗапрос данных оператора связи МТС (через API 2025)\u003c/i\u003e\u003cbr\u003e\u003cb\u003eЗабирает:\u003c/b\u003e\u003cbr\u003e- баланс;\u003cbr\u003e- кредитный лимит (если он есть);\u003cbr\u003e- кэшбэк (если он есть, в поле 'Баланс2');\u003cbr\u003e- остаток пакета минут;\u003cbr\u003e- остаток пакета SMS;\u003cbr\u003e- остаток пакета интернета;\u003cbr\u003e- ФИО владельца;\u003cbr\u003e- наименование тарифа;\u003cbr\u003e- дату завершения оплаченного периода;\u003cbr\u003e- статус блокировки;\u003cbr\u003e- состав услуг ( формат: 'бесплатные'\u0026nbsp;/ 'платные'\u0026nbsp;/ (сумма по платным) ) |\n| BeeLine v3 (API)\u003cbr\u003e_рекомендуемый_ | \u003ci\u003eЗапрос данных оператора связи BeeLine (через обновлённый API) с авторизацией в форме сайта BeeLine и авторешением капчи\u003c/i\u003e\u003cbr\u003eПри авторизации плагин однократно пробует решить капчу. Если попытка неуспешна, то плагин пробует решить капчу повторно и ждёт подтверждения ползователя. В этот момент значение можно исправить вручную или использовать кнопку обновления капчи\u003cbr\u003e\u003cb\u003eЗабирает:\u003c/b\u003e\u003cbr\u003e- баланс;\u003cbr\u003e- остаток пакета минут;\u003cbr\u003e- остаток пакета SMS;\u003cbr\u003e- остаток пакета интернета;\u003cbr\u003e- наименование тарифа;\u003cbr\u003e- статус блокировки;\u003cbr\u003e- состав услуг ( формат: 'бесплатные'\u0026nbsp;/ 'платные'\u0026nbsp;/ 'по\u0026nbsp;подпискам'\u0026nbsp;/ (сумма по платным) ) |\n| BeeLine v2 (API) | \u003ci\u003eЗапрос данных оператора связи BeeLine (через обновлённый API) с авторизацией в форме для ЮЛ\u003c/i\u003e\u003cbr\u003e\u003cb\u003eЗабирает:\u003c/b\u003e\u003cbr\u003e- баланс;\u003cbr\u003e- остаток пакета минут;\u003cbr\u003e- остаток пакета SMS;\u003cbr\u003e- остаток пакета интернета;\u003cbr\u003e- наименование тарифа;\u003cbr\u003e- статус блокировки;\u003cbr\u003e- состав услуг ( формат: 'бесплатные'\u0026nbsp;/ 'платные'\u0026nbsp;/ 'по\u0026nbsp;подпискам'\u0026nbsp;/ (сумма по платным) ) |\n| BeeLine (API) | \u003ci\u003eЗапрос данных оператора связи BeeLine (через старый API)\u003c/i\u003e\u003cbr\u003e\u003cb\u003eЗабирает:\u003c/b\u003e (не для всех тарифов)\u003cbr\u003e- баланс;\u003cbr\u003e- остаток пакета минут;\u003cbr\u003e- остаток пакета SMS;\u003cbr\u003e- остаток пакета интернета;\u003cbr\u003e- наименование тарифа;\u003cbr\u003e- статус блокировки;\u003cbr\u003e- состав услуг ( формат: 'бесплатные'\u0026nbsp;/ 'платные'\u0026nbsp;/ 'по\u0026nbsp;подпискам' ) |\n| Мегафон v2 (API) | \u003ci\u003eЗапрос данных оператора связи Мегафон (через API)\u003c/i\u003e\u003cbr\u003e\u003cb\u003eЗабирает:\u003c/b\u003e\u003cbr\u003e- баланс;\u003cbr\u003e- кредитный лимит (если он есть);\u003cbr\u003e- остаток пакета минут;\u003cbr\u003e- остаток пакета SMS;\u003cbr\u003e- остаток пакета интернета;\u003cbr\u003e- ФИО владельца;\u003cbr\u003e- наименование тарифа;\u003cbr\u003e- номер лицевого счета;\u003cbr\u003e- дату завершения оплаченного периода;\u003cbr\u003e- состав услуг ( формат: 'бесплатные'\u0026nbsp;/ 'платные'\u0026nbsp;/ (сумма по платным) ) |\n| Т2 (API) | \u003ci\u003eЗапрос данных оператора связи Т2 (ранее Теле2), \u003c/i\u003e\u003cu\u003eтребуется однократная начальная авторизация до проведения запроса или на вкладке в ходе запроса\u003c/u\u003e по коду из SMS или письма эл. почты\u003cbr\u003e\u003cb\u003eЗабирает:\u003c/b\u003e\u003cbr\u003e- баланс;\u003cbr\u003e- остаток пакета минут;\u003cbr\u003e- остаток пакета SMS;\u003cbr\u003e- остаток пакета интернета;\u003cbr\u003e- ФИО владельца;\u003cbr\u003e- наименование тарифа;\u003cbr\u003e- дату завершения оплаченного периода;\u003cbr\u003e- статус блокировки;\u003cbr\u003e- состав услуг ( формат: 'бесплатные'\u0026nbsp;/ 'платные'\u0026nbsp;/ (сумма по платным) ) |\n| Yota Smartphone (API) | \u003ci\u003eЗапрос данных оператора связи Yota для смартфона/планшета, \u003c/i\u003e\u003cu\u003eтребуется однократная начальная авторизация до проведения запроса или на вкладке в ходе запроса\u003c/u\u003e по коду из SMS\u003cbr\u003e\u003cb\u003eЗабирает:\u003c/b\u003e\u003cbr\u003e- баланс;\u003cbr\u003e- остаток пакета минут;\u003cbr\u003e- остаток пакета SMS (не протестировано);\u003cbr\u003e- остаток пакета интернета;\u003cbr\u003e- дату завершения оплаченного периода;\u003cbr\u003e- статус блокировки;\u003cbr\u003e- состав услуг ( формат: 'бесплатные'\u0026nbsp;/ 'платные'\u0026nbsp;/ (сумма по платным) ) |\n| МТС. Решения для дома (http) | \u003ci\u003eЗапрос данных оператора связи МТС для сервиса 'Решения для дома' (ранее МГТС)\u003c/i\u003e\u003cbr\u003e\u003cb\u003eЗабирает\u003c/b\u003e:\u003cbr\u003e- баланс;\u003cbr\u003e- номер лицевого счета;\u003cbr\u003e- наименование тарифа;\u003cbr\u003e- ФИО владельца |\n| МТС-Беларусь (http) | \u003ci\u003eЗапрос данных оператора связи МТС-Беларусь\u003c/i\u003e\u003cbr\u003e\u003cu\u003eФормат логина - слитно цифры номера без '+375'\u003c/u\u003e\u003cbr\u003e\u003cb\u003eЗабирает:\u003c/b\u003e\u003cbr\u003e- баланс;\u003cbr\u003e- остаток пакета минут;\u003cbr\u003e- остаток пакета SMS;\u003cbr\u003e- остаток пакета интернета;\u003cbr\u003e- ФИО владельца;\u003cbr\u003e- наименование тарифа;\u003cbr\u003e- дату завершения оплаченного периода;\u003cbr\u003e- статус блокировки;\u003cbr\u003e- состав услуг ( формат: 'бесплатные'\u0026nbsp;/ 'платные'\u0026nbsp;/ (сумма по платным) );\u003cbr\u003e- бонусные баллы всего (в поле 'Баланс2') и к списанию (в поле 'Баланс3') |\n| ВТБ Мобайл (API) | \u003ci\u003eЗапрос данных оператора связи ВТБ Мобайл (через API)\u003c/i\u003e\u003cbr\u003eЗабирает:\u003c/b\u003e\u003cbr\u003e- общий баланс;\u003cbr\u003e- бонусный баланс в сумме общего (если есть, в поле 'Баланс2');\u003cbr\u003e- остаток пакета минут;\u003cbr\u003e- остаток пакета SMS;\u003cbr\u003e- остаток пакета интернета;\u003cbr\u003e- ФИО владельца;\u003cbr\u003e- наименование тарифа;\u003cbr\u003e- дату завершения оплаченного периода;\u003cbr\u003e- статус блокировки;\u003cbr\u003e- состав услуг ( формат: 'бесплатные'\u0026nbsp;???\u0026nbsp;(сумма по платным) )\u003cbr\u003e\u003ci\u003eДополнительных (платных) услуг в протестированном тарифе не было, поэтому пока их количества и стоимости нет\u003c/i\u003e |\n| АКАДО Телеком (API) | \u003ci\u003eЗапрос данных оператора связи 'АКАДО Телеком'\u003c/i\u003e\u003cbr\u003e\u003cb\u003eЗабирает\u003c/b\u003e:\u003cbr\u003e- баланс;\u003cbr\u003e- номер лицевого счета;\u003cbr\u003e- ФИО владельца;\u003cbr\u003e- дату завершения оплаченного периода |\n| WiFire (API) Интернет | \u003ci\u003eЗапрос данных провайдера WiFire (через API) по Интернет-подключению\u003c/i\u003e\u003cbr\u003e\u003cb\u003eЗабирает\u003c/b\u003e:\u003cbr\u003e- баланс;\u003cbr\u003e- наименование тарифа (Интернет);\u003cbr\u003e- номер лицевого счета;\u003cbr\u003e- ФИО владельца;\u003cbr\u003e- дату следующего платежа;\u003cbr\u003e- cтатус блокировки |\n| Автодор-Платные Дороги (API) | \u003ci\u003eЗапрос данных 'Автодор-Платные Дороги'\u003c/i\u003e\u003cbr\u003e\u003cb\u003eЗабирает\u003c/b\u003e:\u003cbr\u003e- баланс;\u003cbr\u003e- бонусные баллы (если они есть, в поле 'Баланс2');\u003cbr\u003e- номер лицевого счета;\u003cbr\u003e- ФИО владельца;\u003cbr\u003e- статус блокировки |\n| Тройка-кошелёк (API) | \u003ci\u003eЗапрос данных кошелька карты 'Тройка' (через API). \u003c/i\u003e\u003cu\u003eТребуется начальная регистрация в личном кабинете (ЛК) на 'mosmetro.ru' и привязка в нём карт\u003c/u\u003e (физических, для виртуальных не опробовано).\u003cbr\u003eЛогин - номер карты, пароль не используется.\u003cbr\u003eПри первом запросе ЛК должен быть открыт или нужна однократная авторизация (вход в ЛК) на странице запроса\u003cbr\u003e\u003cb\u003eЗабирает\u003c/b\u003e:\u003cbr\u003e- баланс кошелька;\u003cbr\u003e- сумму ожидающую записи (если она есть, в поле 'Баланс2');\u003cbr\u003e- статус блокировки |\n\n## Разработка плагинов для дополнительных провайдеров\nМожно ли разработать плагин для провайдера X? Можно попробовать, но для разработки и тестирования нужны учётные данные по этому провайдеру. Если вы их предоставите - будет с чем пробовать поработать. То же самое касается различных тарифов, которые могут отрабатывать в разработанных плагинах не так, как вы этого ожидаете. У меня нет возможности протестировать все существующие варианты ответов для всех провайдеров.\n\n## ToDo\nАвтономная MobileBalance выполняет запросы последовательно по списку учётных данных. Этот последовательный режим опроса обеспечивается и в расширении. Из ещё не реализованных задумок - реализовать параллельный режим опроса провайдеров, при этом для учётных записей каждого провайдера проводить запросы по списку учётных данных последовательно.\n\n## Контакты\nДля общения можно использовать:\n- [Issues](https://github.com/Unlicensed-ZZZ/MobileBalance/issues) здесь, на GiHub;\n- профильную тему на [4PDA](https://4pda.to/forum/index.php?s=\u0026showtopic=985296\u0026view=findpost\u0026p=114094620) (предпочтительно для приватных обсуждений в Личных сообщениях, включая передачу чувствительных данных);\n- указанную в профиле **электронную почту**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Funlicensed-zzz%2Fmobilebalance","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Funlicensed-zzz%2Fmobilebalance","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Funlicensed-zzz%2Fmobilebalance/lists"}