- TypeScript 100%
| src | ||
| .gitignore | ||
| LICENSE | ||
| package.json | ||
| pnpm-lock.yaml | ||
| pnpm-workspace.yaml | ||
| README.md | ||
| tsconfig.json | ||
Общее описание
rustore-api - неофициальный TypeScript клиент для RuStore API.
на данный момент реализовано: искать приложения в каталоге получать информацию о приложении по package name получать ссылки на скачивание APK
апи ручки получены путём реверс-инжиниринга официального клиента ru.vk.store.
Использование
CLI команды
инфо о приложении:
pnpm app:info ru.ozon.app.android
поиск приложений:
pnpm app:search google
автодополнение (suggestions):
pnpm app:suggest yande
использование в качестве библиотеки
import { getAppInfo, getAppSummary, searchApps, getSearchSuggestions } from "./api";
// получить полную информацию
const info = await getAppInfo("ru.ozon.app.android");
// получить краткую сводку с download url
const summary = await getAppSummary("ru.ozon.app.android");
console.log(summary.downloadUrl);
// поиск
const results = await searchApps("telegram", { pageSize: 10 });
// автодополнение
const suggestions = await getSearchSuggestions("yand");
разработка
установка зависимостей:
pnpm install
сборка:
pnpm build
реверсинг клиента: используйте frida и скрипт bypass-ssl-pinning:
frida --codeshare Q0120S/bypass-ssl-pinning -U -f ru.vk.store
в какие ручки ходит оригинальный клиент?
| Метод | Эндпоинт | Описание |
|---|---|---|
| GET | /applicationData/overallInfo/{packageName} |
инфо о приложении |
| POST | /applicationData/v2/download-link |
получение ссылки на скачивание |
| GET | /applicationData/apps?query=... |
поиск приложений |
| GET | /search/suggest?query=... |
автодополнение поиска |
дисклеймер
это !неофициальный! клиент. апи оригинального клиента может измениться в любой момент.
Записка
эта библиотека (если ее можно так назвать) делалась для того, чтобы решить проблему скачивания apk из RuStore с которой я столкнулся. Изначально я не хотел ставить RuStore ради установки одного приложения поэтому сделал данную библиотеку на будущее чтобы любой мог изучив ее написать свой собственный клиент, или сделать свой сервис по скачивания приложений с RuStore. патчи не принимаются, вы можете спокойно перезалить данную библиотеку на ваш профиль в GitHub если вы этого пожелаете.