simtel/dancemanager-scraper

Scraper tournaments and groups from dancemanager.ru

Maintainers

Package info

github.com/Simtel/dancemanager-scraper

Issues

pkg:composer/simtel/dancemanager-scraper

Transparency log

Statistics

Installs: 154

Dependents: 0

Suggesters: 0

Stars: 0

v4.1 2026-08-04 05:31 UTC

This package is auto-updated.

Last update: 2026-08-04 05:54:20 UTC


README

Скрепер для получения информации о турнирах и группах с сайта dancemanager.ru.

Возможности

  • Получение списка турниров с датами, городами и организаторами
  • Получение списка групп для каждого турнира
  • Пагинация по страницам турниров

Требования

  • PHP 8.5+
  • Composer

Установка

В качестве зависимости в свой проект

composer require simtel/dancemanager-scraper

Для разработки

composer install

Использование

use GuzzleHttp\Client;
use Symfony\Component\Cache\Adapter\FilesystemAdapter;
use Simtel\DanceManagerScraper\DancemanagerScraper;
use Simtel\DanceManagerScraper\Http\GuzzlePageFetcher;
use Simtel\DanceManagerScraper\TournamentGroupScraper;

$client = new Client();

// Кэш — опционально. Без него каждая страница будет скачиваться заново.
$cache = new FilesystemAdapter('dancemanager', 3600, __DIR__ . '/var/cache');
$fetcher = new GuzzlePageFetcher($client, $cache);

// Получение списка турниров
$scraper = new DancemanagerScraper($fetcher);
$tournaments = $scraper->getTournaments();

foreach ($tournaments as $tournament) {
    echo $tournament->getTitle() . ' - ' . ($tournament->getDate()?->format('d.m.Y') ?? 'N/A') . "\n";
    echo '  Город: ' . $tournament->getCity() . "\n";
    echo '  Организатор: ' . $tournament->getOrganizer() . "\n";
}

// Получение групп турнира
$groupScraper = new TournamentGroupScraper($fetcher);

foreach ($tournaments as $tournament) {
    $groups = $groupScraper->getGroups($tournament);

    foreach ($groups as $group) {
        echo $group->getName() . ': ' . $group->getRegistrations() . ' участников' . "\n";
    }
}

Разработка

Установка зависимостей

composer run post-install

Запуск тестов

composer test

Запуск тестов с покрытием

composer test:coverage

Статический анализ (PHPStan)

composer phpstan

Форматирование кода (Pint)

composer pint

Запуск линтеров (phpstan + pint)

composer lint

Запуск всех проверок (тесты + линтеры)

composer check

Лицензия

MIT