import { ExtendedClient } from "./server/structures/client"
import { config } from "./server/configuration"
import { logger } from "./server/logger"
import { JellyfinHandler } from "./server/jellyfin/handler"
import { attachedImages } from "./server/assets/attachments"
const requestId = 'startup'

export const jellyfinHandler = new JellyfinHandler({ jellyfinToken: config.bot.workaround_token, jellyfinUrl: config.bot.jellyfin_url, movieCollectionId: config.bot.jf_collection_id, collectionUser: config.bot.jf_user })
export const yavinJellyfinHandler = new JellyfinHandler({ jellyfinToken: config.bot.yavin_jellyfin_token, jellyfinUrl: config.bot.yavin_jellyfin_url, movieCollectionId: config.bot.yavin_collection_id, collectionUser: config.bot.yavin_jellyfin_collection_user })

export const client = new ExtendedClient(jellyfinHandler)

export const attachmentImages = attachedImages

async function init() {
	try {
		const users = await jellyfinHandler.getCurrentUsers("", requestId)
		logger.info(`Fetched ${users.map(x => x.name).join(', ')} from JF`, { requestId })
	} catch (error) {
		logger.error(`Error fetching existing users from Jellyfin`, { requestId })
	}
	logger.info(`Starting client`, { requestId })
	client.start()
}
init()
