temp commit

This commit is contained in:
41666 2019-04-20 04:46:46 -05:00
parent e86f7ff68e
commit 6fb39d6c4d
No known key found for this signature in database
GPG key ID: BC51D07640DC10AF
22 changed files with 282 additions and 39 deletions

View file

@ -4,6 +4,8 @@ import type DiscordSvc from '../discord'
import type ErisClient, { User, Member, Guild } from 'eris'
import LRU from 'lru-cache'
import logger from '../../logger'
// $FlowFixMe
import { OrderedSet } from 'immutable'
const log = logger(__filename)
export default class BotFetcher implements IFetcher {
@ -71,4 +73,31 @@ export default class BotFetcher implements IFetcher {
return null
}
}
getGuilds = async (): Promise<Guild[]> => {
const last: ?string = undefined
const limit: number = 100
let out = OrderedSet<Guild>()
try {
while (true) {
// $FlowFixMe -- last is optional, but typedef isn't.
const gl = await this.client.getRESTGuilds(limit, last)
out = out.union(gl)
if (gl.length !== limit) {
break
}
}
} catch (e) {
log.error('getAllGuilds failed', e)
throw e
}
return out.toArray()
}
invalidateGuild (id: string) {
this.cache.del(`G:${id}`)
}
}

View file

@ -11,4 +11,6 @@ export interface IFetcher {
getGuild: (id: string) => Promise<?Guild>;
getMember: (server: string, user: string) => Promise<?Member>;
getGuilds: () => Promise<Guild[]>;
}