initial state: muzick music player + recommendation engine

This commit is contained in:
kami
2026-07-14 01:35:52 +04:00
commit 737bf19fd1
196 changed files with 32431 additions and 0 deletions
+52
View File
@@ -0,0 +1,52 @@
import { Client as PgClient } from 'pg';
async function seed() {
const pgClient = new PgClient({
connectionString: process.env.DATABASE_URL,
});
await pgClient.connect();
console.log('Seeding database...');
try {
// Clear existing data
await pgClient.query('TRUNCATE artists, albums, tracks, genre, track_genre, dislikes, recommendation_batch, recommendation_batch_track, track_audio_features, track_lyrics CASCADE');
// Insert an artist
const artistRes = await pgClient.query(
'INSERT INTO artists (name, mbid) VALUES ($1, $2) RETURNING id',
['Daft Punk', '5742e173-e031-4848-90a4-977799791608']
);
const artistId = artistRes.rows[0].id;
// Insert an album
const albumRes = await pgClient.query(
'INSERT INTO albums (artist_id, title, year) VALUES ($1, $2, $3) RETURNING id',
[artistId, 'Discovery', 2001]
);
const albumId = albumRes.rows[0].id;
// Insert tracks
await pgClient.query(
`INSERT INTO tracks (path, hash, title, artist, album_id, duration, state, source_type)
VALUES ($1, $2, $3, $4, $5, $6, $7, $8)`,
['/music/daft_punk/discovery/one_more_time.mp3', 'hash1', 'One More Time', 'Daft Punk', albumId, 320, 'LIBRARY', 'MANUAL']
);
await pgClient.query(
`INSERT INTO tracks (path, hash, title, artist, album_id, duration, state, source_type)
VALUES ($1, $2, $3, $4, $5, $6, $7, $8)`,
['/music/daft_punk/discovery/harder_better_faster_stronger.mp3', 'hash2', 'Harder, Better, Faster, Stronger', 'Daft Punk', albumId, 224, 'LIBRARY', 'MANUAL']
);
console.log('Seeding successful!');
} catch (err) {
console.error('Seeding failed:', err);
process.exit(1);
} finally {
await pgClient.end();
}
}
seed();
+6
View File
@@ -0,0 +1,6 @@
#!/bin/bash
# Initialize the database schema
psql "$DATABASE_URL" -f src/db/schema.sql
echo "Database initialized successfully."