mirror of
https://github.com/ceratic/MediaCollectorLibary.git
synced 2026-05-13 23:56:46 +02:00
first commit
This commit is contained in:
154
setup_adult_source.php
Normal file
154
setup_adult_source.php
Normal file
@@ -0,0 +1,154 @@
|
||||
<?php
|
||||
|
||||
require_once __DIR__ . '/vendor/autoload.php';
|
||||
|
||||
// Load helper functions
|
||||
require_once __DIR__ . '/app/helpers.php';
|
||||
|
||||
// Load environment variables
|
||||
$dotenv = Dotenv\Dotenv::createImmutable(__DIR__);
|
||||
$dotenv->load();
|
||||
|
||||
// Load database configuration
|
||||
$dbConfig = require __DIR__ . '/config/database.php';
|
||||
|
||||
// Set up database connection
|
||||
try {
|
||||
\App\Database\Database::setConfig($dbConfig);
|
||||
$pdo = \App\Database\Database::getInstance();
|
||||
echo "Database connection established successfully.\n";
|
||||
} catch (Exception $e) {
|
||||
die('Database connection failed: ' . $e->getMessage() . "\n");
|
||||
}
|
||||
|
||||
echo "Setting up Adult Video Media Source...\n";
|
||||
|
||||
try {
|
||||
|
||||
// Check if adult source already exists
|
||||
$stmt = $pdo->prepare("SELECT id FROM sources WHERE name = 'adult' LIMIT 1");
|
||||
$stmt->execute();
|
||||
$existingSource = $stmt->fetch(PDO::FETCH_ASSOC);
|
||||
|
||||
// Create adult_videos table if it doesn't exist
|
||||
$stmt = $pdo->query("SHOW TABLES LIKE 'adult_videos'");
|
||||
if ($stmt->rowCount() == 0) {
|
||||
echo "Creating adult_videos table...\n";
|
||||
|
||||
$pdo->exec("
|
||||
CREATE TABLE adult_videos (
|
||||
id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
||||
title VARCHAR(255) NOT NULL,
|
||||
overview TEXT,
|
||||
poster_url VARCHAR(500),
|
||||
backdrop_url VARCHAR(500),
|
||||
rating DECIMAL(3,1),
|
||||
runtime_minutes INT,
|
||||
release_date DATE,
|
||||
director VARCHAR(255),
|
||||
writer VARCHAR(255),
|
||||
cast TEXT,
|
||||
genre VARCHAR(255),
|
||||
metadata JSON,
|
||||
watched BOOLEAN DEFAULT FALSE,
|
||||
watch_count INT DEFAULT 0,
|
||||
is_favorite BOOLEAN DEFAULT FALSE,
|
||||
source_id BIGINT UNSIGNED NOT NULL,
|
||||
external_id VARCHAR(255),
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
FOREIGN KEY (source_id) REFERENCES sources(id) ON DELETE CASCADE,
|
||||
INDEX idx_source_external (source_id, external_id),
|
||||
INDEX idx_title (title)
|
||||
)
|
||||
");
|
||||
|
||||
echo "✓ Created adult_videos table\n";
|
||||
} else {
|
||||
echo "✓ adult_videos table already exists\n";
|
||||
}
|
||||
|
||||
// Check for XBVR sources and migrate their data
|
||||
$stmt = $pdo->prepare("SELECT id, display_name FROM sources WHERE name = 'xbvr' AND is_active = 1");
|
||||
$stmt->execute();
|
||||
$xbvrSources = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
|
||||
if (!empty($xbvrSources)) {
|
||||
echo "\nFound XBVR sources:\n";
|
||||
foreach ($xbvrSources as $xbvrSource) {
|
||||
echo "- {$xbvrSource['display_name']} (ID: {$xbvrSource['id']})\n";
|
||||
|
||||
// Count movies to migrate
|
||||
$countStmt = $pdo->prepare("SELECT COUNT(*) as count FROM movies WHERE source_id = ?");
|
||||
$countStmt->execute([$xbvrSource['id']]);
|
||||
$count = $countStmt->fetch(PDO::FETCH_ASSOC)['count'];
|
||||
|
||||
if ($count > 0) {
|
||||
echo " Migrating {$count} movies...\n";
|
||||
|
||||
// Migrate XBVR movies to adult source
|
||||
$migrateStmt = $pdo->prepare("
|
||||
UPDATE movies
|
||||
SET source_id = (SELECT id FROM sources WHERE name = 'adult' LIMIT 1), updated_at = NOW()
|
||||
WHERE source_id = ?
|
||||
");
|
||||
$migrateStmt->execute([$xbvrSource['id']]);
|
||||
|
||||
echo " ✓ Migrated {$count} XBVR movies to adult source\n";
|
||||
} else {
|
||||
echo " No movies to migrate\n";
|
||||
}
|
||||
}
|
||||
} else {
|
||||
echo "\nNo active XBVR sources found\n";
|
||||
}
|
||||
|
||||
// Check for Stash sources and migrate their data
|
||||
$stmt = $pdo->prepare("SELECT id, display_name FROM sources WHERE name = 'stash' AND is_active = 1");
|
||||
$stmt->execute();
|
||||
$stashSources = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
|
||||
if (!empty($stashSources)) {
|
||||
echo "\nFound Stash sources:\n";
|
||||
foreach ($stashSources as $stashSource) {
|
||||
echo "- {$stashSource['display_name']} (ID: {$stashSource['id']})\n";
|
||||
|
||||
// Count movies to migrate
|
||||
$countStmt = $pdo->prepare("SELECT COUNT(*) as count FROM movies WHERE source_id = ?");
|
||||
$countStmt->execute([$stashSource['id']]);
|
||||
$count = $countStmt->fetch(PDO::FETCH_ASSOC)['count'];
|
||||
|
||||
if ($count > 0) {
|
||||
echo " Migrating {$count} movies...\n";
|
||||
|
||||
// Migrate Stash movies to adult source
|
||||
$migrateStmt = $pdo->prepare("
|
||||
UPDATE movies
|
||||
SET source_id = (SELECT id FROM sources WHERE name = 'adult' LIMIT 1), updated_at = NOW()
|
||||
WHERE source_id = ?
|
||||
");
|
||||
$migrateStmt->execute([$stashSource['id']]);
|
||||
|
||||
echo " ✓ Migrated {$count} Stash movies to adult source\n";
|
||||
} else {
|
||||
echo " No movies to migrate\n";
|
||||
}
|
||||
}
|
||||
} else {
|
||||
echo "\nNo active Stash sources found\n";
|
||||
}
|
||||
|
||||
// Show final adult source stats
|
||||
$adultSourceId = $pdo->query("SELECT id FROM sources WHERE name = 'adult' LIMIT 1")->fetch(PDO::FETCH_ASSOC)['id'];
|
||||
$countStmt = $pdo->prepare("SELECT COUNT(*) as count FROM movies WHERE source_id = ?");
|
||||
$countStmt->execute([$adultSourceId]);
|
||||
$adultCount = $countStmt->fetch(PDO::FETCH_ASSOC)['count'];
|
||||
|
||||
echo "\n✅ Adult Video Media Source Setup Complete!\n";
|
||||
echo "Adult source now contains {$adultCount} videos\n";
|
||||
echo "\nYou can now sync adult content through the Admin Dashboard!\n";
|
||||
|
||||
} catch (Exception $e) {
|
||||
echo "Error: " . $e->getMessage() . "\n";
|
||||
exit(1);
|
||||
}
|
||||
Reference in New Issue
Block a user