<?php
declare(strict_types=1);
define('NO_SESSION', '1');
define('CLI', 1);
define('OUTDATED_DATABASE_OK', 1);
$dic = require '/var/www/src/Config/Init.php';
$GLOBALS['user'] = new Ampache\Repository\Model\User(-1);
use Ampache\Module\Catalog\Catalog;
use Ampache\Module\Catalog\Catalog_local;
use Ampache\Repository\Model\Song;
$file = $argv[1] ?? '';
echo "file=$file\n";
echo "exists=".(is_file($file)?'yes':'no')." readable=".(is_readable($file)?'yes':'no')." size=".(@filesize($file) ?: 0)."\n";
echo "is_audio=".(Catalog::is_audio_file($file)?'yes':'no')."\n";
$cat = Catalog::create_from_id(1);
echo "cat_class=".get_class($cat)." name=".$cat->get_name()." gather=".implode(',', $cat->get_gather_types('music'))."\n";
$ref = new ReflectionClass($cat);
$m = $ref->getMethod('_insert_local_song');
$m->setAccessible(true);
try {
    $id = $m->invoke($cat, $file, []);
    echo "insert_id=".var_export($id,true)."\n";
} catch (Throwable $e) {
    echo "EXCEPTION ".get_class($e).": ".$e->getMessage()."\n".$e->getTraceAsString()."\n";
}
echo "song_count=".Song::count()."\n";
