63 lines
1.9 KiB
TypeScript
63 lines
1.9 KiB
TypeScript
import generator, { detector, ProxyConfig } from 'megalodon'
|
|
import { LocalAccount } from '~/src/types/localAccount'
|
|
import { EnabledTimelines } from '~/src/types/enabledTimelines'
|
|
|
|
const confirm = async (account: LocalAccount, proxy: ProxyConfig | false) => {
|
|
const sns = await detector(account.baseURL, proxy)
|
|
const client = generator(sns, account.baseURL, account.accessToken, 'Whalebird', proxy)
|
|
|
|
let timelines: EnabledTimelines = {
|
|
home: true,
|
|
notification: true,
|
|
mention: true,
|
|
direct: true,
|
|
favourite: true,
|
|
bookmark: true,
|
|
local: true,
|
|
public: true,
|
|
tag: true,
|
|
list: true
|
|
}
|
|
|
|
const notification = async () => {
|
|
return client.getNotifications({ limit: 1 }).catch(() => {
|
|
timelines = { ...timelines, notification: false, mention: false }
|
|
})
|
|
}
|
|
const direct = async () => {
|
|
return client.getConversationTimeline({ limit: 1 }).catch(() => {
|
|
timelines = { ...timelines, direct: false }
|
|
})
|
|
}
|
|
const favourite = async () => {
|
|
return client.getFavourites({ limit: 1 }).catch(() => {
|
|
timelines = { ...timelines, favourite: false }
|
|
})
|
|
}
|
|
const bookmark = async () => {
|
|
return client.getBookmarks({ limit: 1 }).catch(() => {
|
|
timelines = { ...timelines, bookmark: false }
|
|
})
|
|
}
|
|
const local = async () => {
|
|
return client.getLocalTimeline({ limit: 1 }).catch(() => {
|
|
timelines = { ...timelines, local: false }
|
|
})
|
|
}
|
|
const pub = async () => {
|
|
return client.getPublicTimeline({ limit: 1 }).catch(() => {
|
|
timelines = { ...timelines, public: false }
|
|
})
|
|
}
|
|
const tag = async () => {
|
|
return client.getTagTimeline('whalebird', { limit: 1 }).catch(() => {
|
|
timelines = { ...timelines, tag: false }
|
|
})
|
|
}
|
|
await Promise.all([notification(), direct(), favourite(), bookmark(), local(), pub(), tag()])
|
|
|
|
return timelines
|
|
}
|
|
|
|
export default confirm
|