diff --git a/docs/general/services.md b/docs/general/services.md index 3c69882f..fbec2a78 100644 --- a/docs/general/services.md +++ b/docs/general/services.md @@ -1,4 +1,4 @@ -# Supported Services (26) +# Supported Services (27)

@@ -68,6 +68,21 @@ Class: [DBots](/#/docs/main/$$$ref/class/DBots) Website: https://dbots.co/

+
+

+ dlistgg logo +

+ + + + +

dlist.gg

+ +Keys: `dlistgg`, `dlist.gg`, `discordlistgg`, `discordlist.gg` +Class: [DList](/#/docs/main/$$$ref/class/DList) +Website: https://discordlist.gg +
+

discordboats logo diff --git a/src/Interface/ListIndex.ts b/src/Interface/ListIndex.ts index 3da6449f..fd94cd7d 100644 --- a/src/Interface/ListIndex.ts +++ b/src/Interface/ListIndex.ts @@ -7,16 +7,17 @@ import Blist from './Lists/Blist' import BotsOnDiscord from './Lists/BotsOnDiscord' import Carbon from './Lists/Carbon' import DBots from './Lists/DBots' +import DList from './Lists/DList' import DiscordBoats from './Lists/DiscordBoats' import DiscordBotList from './Lists/DiscordBotList' import DiscordBotlistEU from './Lists/DiscordBotlistEU' import DiscordBotsGG from './Lists/DiscordBotsGG' import DiscordExtremeList from './Lists/DiscordExtremeList' import DiscordLabs from './Lists/DiscordLabs' -import DiscordListology from './Lists/DiscordListology' import DiscordListSpace from './Lists/DiscordListSpace' -import DiscordsCom from './Lists/DiscordsCom' +import DiscordListology from './Lists/DiscordListology' import DiscordServices from './Lists/DiscordServices' +import DiscordsCom from './Lists/DiscordsCom' import Disforge from './Lists/Disforge' import FatesList from './Lists/FatesList' import InfinityBotList from './Lists/InfinityBotList' @@ -44,6 +45,10 @@ export const serviceList = { 'carbon': Carbon, 'dbots': DBots, 'dbots.co': DBots, + 'dlistgg': DList, + 'dlist.gg': DList, + 'discordlistgg': DList, + 'discordlist.gg': DList, 'discordboats': DiscordBoats, 'discord.boats': DiscordBoats, 'discordbotlist': DiscordBotList, @@ -56,18 +61,18 @@ export const serviceList = { 'discordextremelist.xyz': DiscordExtremeList, 'discordlabs': DiscordLabs, 'discordlabs.org': DiscordLabs, - 'discordlistology': DiscordListology, - 'discordlistology.com': DiscordListology, 'discordlistspace': DiscordListSpace, 'discordlist.space': DiscordListSpace, 'botlistspace': DiscordListSpace, 'botlist.space': DiscordListSpace, + 'discordlistology': DiscordListology, + 'discordlistology.com': DiscordListology, + 'discordservices': DiscordServices, + 'discordservices.net': DiscordServices, 'botsfordiscord': DiscordsCom, 'botsfordiscord.com': DiscordsCom, 'discords': DiscordsCom, 'discords.com': DiscordsCom, - 'discordservices': DiscordServices, - 'discordservices.net': DiscordServices, 'disforge': Disforge, 'disforge.com': Disforge, 'fateslist': FatesList, diff --git a/src/Interface/Lists/DList.ts b/src/Interface/Lists/DList.ts new file mode 100644 index 00000000..f7a472c8 --- /dev/null +++ b/src/Interface/Lists/DList.ts @@ -0,0 +1,50 @@ +import { Service, ServicePostOptions } from '../Service' +import { Util } from '../../Utils/Util' + +/** + * Represents the dlist.gg service. + * @see https://api.discordlist.gg/developers/ + */ +export default class DList extends Service { + /** The values that can be used to select the service. */ + static get aliases() { + return ['dlistgg', 'dlist.gg', 'discordlistgg', 'discordlist.gg'] + } + + /** The logo URL. */ + static get logoURL() { + return 'https://avatars.githubusercontent.com/u/68995595' + } + + /** Service's name. */ + static get serviceName() { + return 'dlist.gg' + } + + /** The website URL. */ + static get websiteURL() { + return 'https://discordlist.gg' + } + + /** The base URL of the service's API. */ + static get baseURL() { + return 'https://api.discordlist.gg/v0' + } + + /** + * Posts statistics to this service. + * Shard data posting is not supported for this service. + * @param options The options of the request. + */ + static post(options: ServicePostOptions) { + const { token, clientID, serverCount } = options + return super._post({ + method: 'post', + url: `/bots/${Util.resolveID(clientID)}/guilds`, + headers: { Authorization: `Bearer ${token}` }, + params: { + count: Util.resolveCount(serverCount) + } + }) + } +}