diff --git a/docs/general/services.md b/docs/general/services.md index 3c69882f..b7048e58 100644 --- a/docs/general/services.md +++ b/docs/general/services.md @@ -1,4 +1,4 @@ -# Supported Services (26) +# Supported Services (27)
@@ -269,6 +269,20 @@ Class: [MotionBotList](/#/docs/main/$$$ref/class/MotionBotList) Website: https://www.motiondevelopment.top/bot
+
+
diff --git a/src/Interface/ListIndex.ts b/src/Interface/ListIndex.ts
index 3da6449f..8cdd606f 100644
--- a/src/Interface/ListIndex.ts
+++ b/src/Interface/ListIndex.ts
@@ -13,15 +13,16 @@ 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'
import Listcord from './Lists/Listcord'
import MotionBotList from './Lists/MotionBotList'
+import RadarBotList from './Lists/RadarBotList'
import SpaceBotsList from './Lists/SpaceBotsList'
import TopCord from './Lists/TopCord'
import TopGG from './Lists/TopGG'
@@ -56,18 +57,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,
@@ -80,6 +81,9 @@ export const serviceList = {
'motiondevelopment': MotionBotList,
'motionbotlist': MotionBotList,
'motiondevelopment.top': MotionBotList,
+ 'radar': RadarBotList,
+ 'radarbots': RadarBotList,
+ 'radarbotdirectory.xyz': RadarBotList,
'spacebotslist': SpaceBotsList,
'space-bot-list.xyz': SpaceBotsList,
'topcord': TopCord,
diff --git a/src/Interface/Lists/RadarBotList.ts b/src/Interface/Lists/RadarBotList.ts
new file mode 100644
index 00000000..3d817525
--- /dev/null
+++ b/src/Interface/Lists/RadarBotList.ts
@@ -0,0 +1,77 @@
+import { Service, ServicePostOptions } from '../Service'
+import { Util, IDResolvable } from '../../Utils/Util'
+
+/**
+ * Represents the Radar Bot Directory service.
+ * @see https://docs.radarbotdirectory.xyz/
+ */
+export default class RadarBotDirectory extends Service {
+ /** The values that can be used to select the service. */
+ static get aliases() {
+ return ['radar', 'radarbots', 'radarbotdirectory.xyz']
+ }
+
+ /** The logo URL. */
+ static get logoURL() {
+ return 'https://theoverlook.xyz/Images/RBD/botlistlogo.png'
+ }
+
+ /** Service's name. */
+ static get serviceName() {
+ return 'Radar Bot Directory'
+ }
+
+ /** The website URL. */
+ static get websiteURL() {
+ return 'https://radarbotdirectory.xyz'
+ }
+
+ /** The base URL of the service's API. */
+ static get baseURL() {
+ return 'https://radarbotdirectory.xyz/api'
+ }
+
+ /**
+ * Posts statistics to this service.
+ * @param options The options of the request
+ */
+ static post(options: ServicePostOptions) {
+ const { token, clientID, serverCount, shard } = options
+ return super._post({
+ method: 'patch',
+ url: `/bot/${Util.resolveID(clientID)}/stats/`,
+ headers: { Authorization: token },
+ data: shard
+ ? {
+ guilds: Util.resolveCount(serverCount),
+ shards: shard.count
+ }
+ : { guilds: Util.resolveCount(serverCount) }
+ })
+ }
+
+ /**
+ * Gets the bot listed on this service.
+ * @param id The bot's ID
+ */
+ getBot(id: IDResolvable) {
+ return this._request({ url: `/bot/${Util.resolveID(id)}` })
+ }
+
+ /**
+ * Gets the Unix Epoch Timestamp of the last time this user voted for this bot on this service.
+ * @param botID The bot's ID
+ * @param userID The user's ID
+ */
+ getBotVotes(botID: IDResolvable, userID: IDResolvable) {
+ return this._request(
+ {
+ url: `/lastvoted/${Util.resolveID(userID)}/${Util.resolveID(botID)}`,
+ headers: { Authorization: this.token }
+ },
+ {
+ requiresToken: true
+ }
+ )
+ }
+}