mirror of
https://github.com/ragestudio/comty.git
synced 2025-06-09 10:34:17 +00:00
implement new music & sync models
This commit is contained in:
parent
f0227354c6
commit
76fa2a3fd1
@ -16,9 +16,10 @@
|
||||
"js-cookie": "^3.0.5",
|
||||
"jsonwebtoken": "^9.0.0",
|
||||
"jwt-decode": "^3.1.2",
|
||||
"luxon": "^3.3.0",
|
||||
"socket.io-client": "^4.6.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"corenode": "^0.28.26"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -28,7 +28,7 @@ export default class FeedModel {
|
||||
return data
|
||||
}
|
||||
|
||||
static getTimelineFeed = async ({ trim, limit } = {}) => {
|
||||
static getTimelineFeed = async ({ trim, limit = 10 } = {}) => {
|
||||
const { data } = await request({
|
||||
method: "GET",
|
||||
url: `/feed/timeline`,
|
||||
|
@ -1,18 +1,62 @@
|
||||
import request from "../../handlers/request"
|
||||
import pmap from "p-map"
|
||||
import SyncModel from "../sync"
|
||||
|
||||
export default class MusicModel {
|
||||
static get api_instance() {
|
||||
return globalThis.__comty_shared_state.instances["music"]
|
||||
}
|
||||
|
||||
static getFavorites = async () => {
|
||||
const { data } = await request({
|
||||
instance: MusicModel.api_instance,
|
||||
method: "GET",
|
||||
url: `/tracks/liked`,
|
||||
static getFavorites = async ({
|
||||
useTidal = false
|
||||
}) => {
|
||||
let result = []
|
||||
|
||||
const requesters = [
|
||||
async () => {
|
||||
let { data } = await request({
|
||||
instance: MusicModel.api_instance,
|
||||
method: "GET",
|
||||
url: `/tracks/liked`,
|
||||
})
|
||||
|
||||
return data
|
||||
},
|
||||
]
|
||||
|
||||
if (useTidal) {
|
||||
requesters.push(
|
||||
async () => {
|
||||
const tidalResult = await SyncModel.tidalCore.getMyFavoriteTracks()
|
||||
|
||||
return tidalResult
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
result = await pmap(
|
||||
requesters,
|
||||
async (requester) => {
|
||||
const data = await requester()
|
||||
|
||||
return data
|
||||
},
|
||||
{
|
||||
concurrency: 3
|
||||
}
|
||||
)
|
||||
|
||||
result = result.reduce((acc, cur) => {
|
||||
return [...acc, ...cur]
|
||||
}, [])
|
||||
|
||||
result = result.sort((a, b) => {
|
||||
return b.liked_at - a.liked_at
|
||||
})
|
||||
|
||||
return data
|
||||
console.log(result)
|
||||
|
||||
return result
|
||||
}
|
||||
|
||||
static search = async (keywords, {
|
||||
|
@ -1,6 +1,8 @@
|
||||
import spotifyService from "./services/spotify"
|
||||
import tidalService from "./services/tidal"
|
||||
|
||||
import request from "../../handlers/request"
|
||||
|
||||
const namespacesServices = {
|
||||
spotify: spotifyService,
|
||||
tidal: tidalService
|
||||
@ -44,4 +46,14 @@ export default class SyncModel {
|
||||
|
||||
return await service.isActive()
|
||||
}
|
||||
|
||||
static async getLinkedServices() {
|
||||
const response = await request({
|
||||
instance: globalThis.__comty_shared_state.instances["sync"],
|
||||
method: "GET",
|
||||
url: "/active_services",
|
||||
})
|
||||
|
||||
return response.data
|
||||
}
|
||||
}
|
@ -80,4 +80,14 @@ export default class TidalService {
|
||||
|
||||
return data
|
||||
}
|
||||
|
||||
static async getMyFavoriteTracks() {
|
||||
const { data } = await request({
|
||||
instance: TidalService.api_instance,
|
||||
method: "GET",
|
||||
url: `/services/tidal/favorites/tracks`,
|
||||
})
|
||||
|
||||
return data
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user