mirror of
https://github.com/ragestudio/comty.git
synced 2025-06-09 10:34:17 +00:00
- Introduces a new Music Library system for managing favorites (tracks, playlists, releases), replacing the previous TrackLike model. - Completely revamps the Studio TV profile page, adding live statistics, stream configuration, restream management, and media URL display. - Enhances the media player with a custom seekbar and improved audio playback logic for MPD and non-MPD sources. - Lays foundational groundwork for chat encryption with new models and APIs. - Refactors critical UI components like PlaylistView and PagePanel. - Standardizes monorepo development scripts to use npm. - Updates comty.js submodule and adds various new UI components.
54 lines
1.2 KiB
JavaScript
54 lines
1.2 KiB
JavaScript
import DbManager from "@shared-classes/DbManager"
|
|
import { TrackLike, MusicLibraryItem } from "@db_models"
|
|
|
|
async function main() {
|
|
await global.injectEnvFromInfisical()
|
|
|
|
const db = new DbManager()
|
|
await db.initialize()
|
|
|
|
if (!TrackLike) {
|
|
console.log("TrackLike model not found, skipping migration.")
|
|
return null
|
|
}
|
|
|
|
if (!MusicLibraryItem) {
|
|
console.log("MusicLibraryItem model not found, skipping migration.")
|
|
return null
|
|
}
|
|
|
|
// find all liked tracks
|
|
const likedTracks = await TrackLike.find()
|
|
const totalLikedTracks = await TrackLike.countDocuments()
|
|
|
|
for await (const likedTrack of likedTracks) {
|
|
// first check if already exist a library item for this track like
|
|
let libraryItem = await MusicLibraryItem.findOne({
|
|
user_id: likedTrack.user_id,
|
|
item_id: likedTrack.track_id,
|
|
kind: "tracks",
|
|
})
|
|
|
|
if (!libraryItem) {
|
|
console.log(
|
|
`Migrating [${likedTrack._id.toString()}] track like to library item...`,
|
|
)
|
|
// if not exist, create a new one
|
|
libraryItem = new MusicLibraryItem({
|
|
user_id: likedTrack.user_id,
|
|
item_id: likedTrack.track_id,
|
|
kind: "tracks",
|
|
created_at: likedTrack.created_at ?? new Date(),
|
|
})
|
|
|
|
await libraryItem.save()
|
|
}
|
|
}
|
|
|
|
console.log({
|
|
totalLikedTracks,
|
|
})
|
|
}
|
|
|
|
main()
|