Files
wevads-platform/scripts/api_youtube-channels.php
2026-02-26 04:53:11 +01:00

46 lines
2.7 KiB
PHP
Executable File

<?php
header('Content-Type: application/json');
header('Access-Control-Allow-Origin: *');
$db = pg_connect("host=localhost dbname=adx_system user=admin password=admin123") or die(json_encode(['error'=>'DB']));
pg_query($db, "SET search_path TO admin,public");
$action = $_GET['action'] ?? 'dashboard';
switch($action) {
case 'dashboard':
$channels = pg_fetch_all(pg_query($db, "SELECT * FROM youtube_channels ORDER BY monthly_revenue DESC")) ?: [];
$videos = pg_fetch_all(pg_query($db, "SELECT v.*, c.channel_name FROM youtube_videos v JOIN youtube_channels c ON v.channel_id=c.id ORDER BY v.published_at DESC LIMIT 20")) ?: [];
$totals = pg_fetch_assoc(pg_query($db, "SELECT COUNT(*) as channels, SUM(subscribers) as subs, SUM(total_views) as views, SUM(videos_count) as vids, SUM(monthly_revenue) as rev FROM youtube_channels WHERE status='active'"));
$vid_totals = pg_fetch_assoc(pg_query($db, "SELECT COUNT(*) as total, SUM(views) as views, SUM(ad_revenue) as ad_rev, SUM(affiliate_revenue) as aff_rev FROM youtube_videos WHERE status='published'"));
echo json_encode(['status'=>'success','channels'=>$channels,'videos'=>$videos,'totals'=>$totals,'video_totals'=>$vid_totals]);
break;
case 'channel':
$id = (int)($_GET['id'] ?? 0);
$ch = pg_fetch_assoc(pg_query($db, "SELECT * FROM youtube_channels WHERE id=$id"));
$vids = pg_fetch_all(pg_query($db, "SELECT * FROM youtube_videos WHERE channel_id=$id ORDER BY published_at DESC")) ?: [];
echo json_encode(['status'=>'success','channel'=>$ch,'videos'=>$vids]);
break;
case 'create_channel':
$data = json_decode(file_get_contents('php://input'), true) ?: $_POST;
$name = pg_escape_string($db, $data['channel_name'] ?? 'New Channel');
$niche = pg_escape_string($db, $data['niche'] ?? 'general');
$lang = pg_escape_string($db, $data['language'] ?? 'fr');
$r = pg_query($db, "INSERT INTO youtube_channels (channel_name, niche, language) VALUES ('$name','$niche','$lang') RETURNING id");
echo json_encode(['status'=>'success','id'=>pg_fetch_assoc($r)['id']]);
break;
case 'create_video':
$data = json_decode(file_get_contents('php://input'), true) ?: $_POST;
$ch = (int)($data['channel_id'] ?? 1);
$title = pg_escape_string($db, $data['title'] ?? 'New Video');
$desc = pg_escape_string($db, $data['description'] ?? '');
$dur = (int)($data['duration_sec'] ?? 300);
$r = pg_query($db, "INSERT INTO youtube_videos (channel_id, title, description, duration_sec, status) VALUES ($ch,'$title','$desc',$dur,'draft') RETURNING id");
echo json_encode(['status'=>'success','id'=>pg_fetch_assoc($r)['id']]);
break;
default:
echo json_encode(['error'=>'Unknown action','actions'=>['dashboard','channel','create_channel','create_video']]);
}