mirror of
https://github.com/ragestudio/comty.git
synced 2025-06-13 12:34:16 +00:00
49 lines
1.2 KiB
JavaScript
49 lines
1.2 KiB
JavaScript
import { Track } from "@shared-classes/DbModels"
|
|
|
|
const urlRegex = new RegExp(`^https://(.*?)/(.*)$`)
|
|
|
|
export default async (tracksIds) => {
|
|
if (typeof tracksIds === "string") {
|
|
tracksIds = [tracksIds]
|
|
}
|
|
|
|
const removedIds = []
|
|
|
|
// find Tracks
|
|
const tracks = await Track.find({
|
|
_id: tracksIds,
|
|
})
|
|
|
|
for (const track of tracks) {
|
|
const match = urlRegex.exec(track.source)
|
|
|
|
const bucket = match[2].split("/")[0]
|
|
const objectName = match[2].split("/").slice(1).join("/")
|
|
|
|
try {
|
|
// find on storage and remove
|
|
await new Promise((resolve, reject) => {
|
|
global.storage.removeObject(bucket, objectName, (err) => {
|
|
if (err) {
|
|
return reject(err)
|
|
}
|
|
|
|
return resolve()
|
|
})
|
|
}).catch((err) => {
|
|
console.error(err)
|
|
return false
|
|
})
|
|
|
|
// remove from db
|
|
await track.remove()
|
|
} catch (error) {
|
|
console.error(error)
|
|
continue
|
|
}
|
|
|
|
removedIds.push(track._id)
|
|
}
|
|
|
|
return removedIds
|
|
} |