mirror of
https://codeberg.org/SafeTwitch/safetwitch-backend.git
synced 2025-01-18 18:32:29 -05:00
53 lines
No EOL
1.4 KiB
TypeScript
53 lines
No EOL
1.4 KiB
TypeScript
import { Router } from 'express'
|
|
import { TwitchAPI } from '../util/scraping/extractor/index'
|
|
|
|
const profileRouter = Router()
|
|
const twitch = new TwitchAPI()
|
|
|
|
profileRouter.get('/users/:username', async (req, res, next) => {
|
|
const username = req.params.username
|
|
|
|
let streamerData = await twitch.getStreamerInfo(username)
|
|
.catch(next)
|
|
|
|
if (streamerData)
|
|
res.send(streamerData)
|
|
})
|
|
|
|
profileRouter.get('/discover', async (req, res, next) => {
|
|
let cursor = req.query.cursor
|
|
let discoveryData;
|
|
if (cursor) {
|
|
cursor = cursor.toString()
|
|
discoveryData = await twitch.getDirectory(15, cursor)
|
|
} else {
|
|
discoveryData = await twitch.getDirectory(15)
|
|
}
|
|
|
|
res.send(discoveryData)
|
|
})
|
|
|
|
profileRouter.get('/discover/:game', async (req, res, next) => {
|
|
let discoveryData = await twitch.getDirectoryGame(req.params.game, 50)
|
|
.catch(next)
|
|
|
|
if(discoveryData)
|
|
res.send(discoveryData)
|
|
})
|
|
|
|
profileRouter.get('/badges', async (req, res, next) => {
|
|
let badges = await twitch.getTwitchBadges()
|
|
.catch(next)
|
|
|
|
if(req.query.streamerName) {
|
|
let broadcastBadges = await twitch.getStreamerBadges(req.query.streamerName.toString())
|
|
.catch(next)
|
|
if(broadcastBadges && badges)
|
|
badges = [...badges, ...broadcastBadges]
|
|
}
|
|
|
|
if(badges)
|
|
res.send(badges)
|
|
})
|
|
|
|
export default profileRouter |