Парсит рустор, достаёт имена пакетов приложений от определённых нежелательных разработчиков
Find a file
2026-04-17 17:21:59 +03:00
src/main/java/wings/v/rustore/parser [crawler]: add targeted rerun support 2026-04-17 17:21:59 +03:00
.gitignore [crawler]: add incremental state runner 2026-04-17 15:16:40 +03:00
build.gradle.kts [crawler]: add incremental state runner 2026-04-17 15:16:40 +03:00
LICENSE [docs/license] init 2026-04-16 01:22:27 +03:00
README.md [init] 2026-04-15 16:06:21 +03:00
settings.gradle.kts [init] 2026-04-15 16:06:21 +03:00

librustoreparser

Методы

  • RuStoreCrawlerConfig.builder(): создаёт настройки обхода
  • baseUrl(String): задаёт базовый URL RuStore
  • seedDeveloperIds(Collection<String>): задаёт ID разработчиков для обхода
  • directPackages(Collection<String>): добавляет package name напрямую
  • maxDeveloperPages(int): ограничивает число страниц одного разработчика, 0 без лимита
  • maxSeedDevelopers(int): ограничивает число разработчиков, 0 без лимита
  • concurrency(int): задаёт число параллельных обходов
  • requestTimeout(Duration): задаёт таймаут HTTP запроса
  • requestDelay(Duration): задаёт задержку между запросами
  • maxAttempts(int): задаёт число попыток запроса
  • userAgent(String): задаёт user agent
  • logger(RuStoreLogger): подключает обработчик логов
  • build(): возвращает RuStoreCrawlerConfig
  • new RuStoreCrawler(config): создаёт crawler со стандартным HTTP загрузчиком
  • new RuStoreCrawler(config, fetcher): создаёт crawler со своим RuStorePageFetcher
  • crawl(): запускает обход и возвращает CrawlResult
  • CrawlResult.getPackageNames(): возвращает список package name
  • CrawlResult.getApps(): возвращает список AppInfo
  • CrawlResult.getDevelopers(): возвращает список DeveloperSeed
  • AppInfo.getPackageName(): возвращает package name
  • AppInfo.getAppName(): возвращает название приложения
  • AppInfo.getDeveloperName(): возвращает имя разработчика
  • AppInfo.getDeveloperPath(): возвращает путь разработчика в RuStore
  • DeveloperSeed.getId(): возвращает ID разработчика
  • DeveloperSeed.getPath(): возвращает путь разработчика
  • DeveloperSeed.getName(): возвращает имя разработчика

Пример: package name

RuStoreCrawlerConfig config = RuStoreCrawlerConfig.builder().build();
RuStoreCrawler crawler = new RuStoreCrawler(config);
CrawlResult result = crawler.crawl();

for (String packageName : result.getPackageNames()) {
    System.out.println(packageName);
}

Пример: настройки

RuStoreCrawlerConfig config = RuStoreCrawlerConfig.builder()
        .seedDeveloperIds(List.of("df91b73f"))
        .directPackages(List.of("ru.plazius.cofix"))
        .maxDeveloperPages(0)
        .maxSeedDevelopers(0)
        .concurrency(3)
        .requestTimeout(Duration.ofSeconds(20))
        .requestDelay(Duration.ofMillis(300))
        .maxAttempts(5)
        .logger(System.out::println)
        .build();

Пример: свой загрузчик

RuStorePageFetcher fetcher = uri -> new RuStorePageFetcher.PageResponse(
        200,
        "<html>...</html>"
);

RuStoreCrawler crawler = new RuStoreCrawler(config, fetcher);
CrawlResult result = crawler.crawl();