import generator , { detector , ProxyConfig } from 'megalodon' ; import { LocalAccount } from '~/src/types/localAccount' ; import { EnabledTimelines } from '~/src/types/enabledTimelines' ; const confirm = async ( account , proxy ) => { const sns = await detector ( account . baseURL , proxy ) ; const client = generator ( sns , account . baseURL , account . accessToken , 'Whalebird' , proxy ) ; let timelines = { 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 ;