Your IP : 216.73.217.78


Current Path : /home/seto/indexator.pm/
Upload File :
Current File : /home/seto/indexator.pm/create_projects.php

<?php
require __DIR__ . '/bootstrap.php';

use App\Core\Database;
use App\Projects\ProjectRepository;
use App\Import\SitemapImporter;
use App\Urls\UrlRepository;
use App\Urls\UrlNormalizer;

$db       = Database::getInstance($GLOBALS['config']['DB_PATH']);
$projects = new ProjectRepository($db);
$config   = $GLOBALS['config'];

$sites = [
    ['name' => 'Wazamba Hellas', 'domain' => 'wazamba-hellas.com', 'sitemap' => 'https://wazamba-hellas.com/sitemap.xml'],
    ['name' => 'Spinmama Club',  'domain' => 'spinmamaclub.com',   'sitemap' => 'https://spinmamaclub.com/sitemap.xml'],
];

$importer   = new SitemapImporter($config);
$normalizer = new UrlNormalizer();
$urlRepo    = new UrlRepository($db);

foreach ($sites as $site) {
    $existing = $db->fetchOne("SELECT id FROM projects WHERE domain = ?", [$site['domain']]);

    if ($existing) {
        $projectId = $existing['id'];
        echo "Project already exists #{$projectId}: {$site['domain']}\n";
    } else {
        $projectId = $projects->create($site['name'], $site['domain'], 'sitemap');
        $db->execute("UPDATE projects SET source_reference = ? WHERE id = ?", [$site['sitemap'], $projectId]);
        echo "Created project #{$projectId}: {$site['domain']}\n";
    }

    echo "  Fetching: {$site['sitemap']}\n";
    try {
        $urls = $importer->fetch($site['sitemap']);
        $rows = [];
        foreach ($urls as $url) {
            $rows[] = ['url' => $url, 'normalized_url' => $normalizer->normalize($url)];
        }
        $urlRepo->bulkInsert($projectId, $rows, 'sitemap');
        echo "  Imported: " . count($rows) . " URLs\n";
    } catch (\Throwable $e) {
        echo "  ERROR: " . $e->getMessage() . "\n";
    }
}