mirror of
https://git.sr.ht/~cadence/cloudtube
synced 2024-11-10 02:27:29 +00:00
31 lines
1.0 KiB
JavaScript
31 lines
1.0 KiB
JavaScript
const {render} = require("pinski/plugins")
|
|
const db = require("./utils/db")
|
|
const {fetchChannelLatest} = require("./utils/youtube")
|
|
const {getUser} = require("./utils/getuser")
|
|
|
|
module.exports = [
|
|
{
|
|
route: `/subscriptions`, methods: ["GET"], code: async ({req}) => {
|
|
const user = getUser(req)
|
|
let hasSubscriptions = false
|
|
let videos = []
|
|
let channels = []
|
|
if (user.token) {
|
|
const subscriptions = user.getSubscriptions()
|
|
const channelPrepared = db.prepare("SELECT * FROM Channels WHERE ucid = ?")
|
|
channels = subscriptions.map(id => channelPrepared.get(id)).sort((a, b) => {
|
|
if (a.name < b.name) return -1
|
|
else if (b.name > a.name) return 1
|
|
else return 0
|
|
})
|
|
if (subscriptions.length) {
|
|
hasSubscriptions = true
|
|
const template = Array(subscriptions.length).fill("?").join(", ")
|
|
videos = db.prepare(`SELECT * FROM Videos WHERE authorId IN (${template}) ORDER BY published DESC LIMIT 60`).all(subscriptions)
|
|
}
|
|
}
|
|
return render(200, "pug/subscriptions.pug", {hasSubscriptions, videos, channels})
|
|
}
|
|
}
|
|
]
|