Remove bot example from client.nim. Also export `newDiscordClient`
This commit is contained in:
parent
b64edd95e0
commit
bb0f397aae
|
@ -189,7 +189,7 @@ proc updateClientPresence*(client: DiscordClient, presence: Presence) {.async.}
|
|||
|
||||
await client.sendGatewayRequest(jsonPayload)
|
||||
|
||||
proc newDiscordClient(tkn: string): DiscordClient =
|
||||
proc newDiscordClient*(tkn: string): DiscordClient =
|
||||
## Create a DiscordClient using a token.
|
||||
##
|
||||
## Sets globalDiscordClient to the newly created client.
|
||||
|
@ -199,110 +199,3 @@ proc newDiscordClient(tkn: string): DiscordClient =
|
|||
new(cac)
|
||||
|
||||
result = DiscordClient(token: tkn, cache: cac, reconnecting: false)
|
||||
|
||||
var tokenStream = newFileStream("token.txt", fmRead)
|
||||
var tkn: string
|
||||
if (not isNil(tokenStream)):
|
||||
discard tokenStream.readLine(tkn)
|
||||
echo "Read token from the file: ", tkn
|
||||
|
||||
tokenStream.close()
|
||||
|
||||
var bot = newDiscordClient(tkn)
|
||||
|
||||
registerEventListener(EventType.evtReady, proc(bEvt: BaseEvent) =
|
||||
let event = ReadyEvent(bEvt)
|
||||
|
||||
echo "Ready! (v", 0, ".", 0, ".", 1, ")"
|
||||
echo "Logged in as: ", bot.clientUser.username, "#", bot.clientUser.discriminator
|
||||
echo "ID: ", bot.clientUser.id
|
||||
echo "--------------------"
|
||||
|
||||
let presence = newPresence("with Nimcord", activityTypeGame, clientStatusIdle, false)
|
||||
asyncCheck event.client.updateClientPresence(presence)
|
||||
)
|
||||
|
||||
registerEventListener(EventType.evtMessageCreate, proc(bEvt: BaseEvent) =
|
||||
let event = MessageCreateEvent(bEvt)
|
||||
|
||||
if (event.message.content == "?ping"):
|
||||
var channel: Channel = event.message.getMessageChannel(event.client.cache)
|
||||
if (channel != nil):
|
||||
discard channel.sendMessage("PONG")
|
||||
elif (event.message.content.startsWith("?modifyChannelTopic")):
|
||||
let modifyTopic = event.message.content.substr(20)
|
||||
|
||||
var channel: Channel = event.message.getMessageChannel(event.client.cache)
|
||||
if (channel != nil):
|
||||
discard channel.sendMessage("Modifing Channel!")
|
||||
discard channel.modifyChannel(ChannelFields(topic: some(modifyTopic)))
|
||||
elif (event.message.content.startsWith("?deleteChannel")):
|
||||
let channelID = getIDFromJson(event.message.content.substr(15))
|
||||
var channel: Channel = event.client.cache.getChannel(channelID)
|
||||
|
||||
if (channel != nil):
|
||||
discard channel.sendMessage("Deleting Channel!")
|
||||
discard channel.deleteChannel()
|
||||
discard channel.sendMessage("Deleted Channel!")
|
||||
elif (event.message.content.startsWith("?getMessages")):
|
||||
var channel: Channel = event.message.getMessageChannel(event.client.cache)
|
||||
if (channel != nil):
|
||||
discard channel.getMessages(MessagesGetRequest(limit: some(15), before: some(event.message.id)))
|
||||
elif (event.message.content.startsWith("?bulkDeleteMessages")):
|
||||
var channel: Channel = event.message.getMessageChannel(event.client.cache)
|
||||
if (channel != nil):
|
||||
var amount: int = 25
|
||||
if (event.message.content.len > 19):
|
||||
amount = parseIntEasy(event.message.content.substr(20))
|
||||
let messages = channel.getMessages(MessagesGetRequest(limit: some(amount), before: some(event.message.id)))
|
||||
discard channel.bulkDeleteMessages(messages)
|
||||
elif (event.message.content.startsWith("?reactToMessage")):
|
||||
var channel: Channel = event.message.getMessageChannel(event.client.cache)
|
||||
if (channel != nil):
|
||||
let emojis = @[newEmoji("⏮️"), newEmoji("⬅️"), newEmoji("⏹️"), newEmoji("➡️"), newEmoji("⏭️")]
|
||||
for emoji in emojis:
|
||||
discard event.message.addReaction(emoji)
|
||||
elif (event.message.content.startsWith("?testEmbed")):
|
||||
var channel: Channel = event.message.getMessageChannel(event.client.cache)
|
||||
if (channel != nil):
|
||||
var embed = Embed()
|
||||
embed.setTitle("This embed is being sent from Nimcord!")
|
||||
embed.setDescription("Nimcord was developed in about a week of actual work so there will likely be issues.")
|
||||
embed.addField("Title", "value")
|
||||
embed.addField("Inline-0", "This is an inline field 0", true)
|
||||
embed.addField("Inline-1", "This is an inline field 1", true)
|
||||
embed.setColor(0xffb900)
|
||||
discard channel.sendMessage("", false, embed)
|
||||
elif (event.message.content.startsWith("?sendFile")):
|
||||
var channel: Channel = event.message.getMessageChannel(event.client.cache)
|
||||
if (channel != nil):
|
||||
let filePath = event.message.content.substr(10)
|
||||
|
||||
let splitFile = splitFile(filePath)
|
||||
let fileName = splitFile.name & splitFile.ext
|
||||
|
||||
let file = DiscordFile(filePath: filePath, fileName: fileName)
|
||||
discard channel.sendMessage("", false, nil, @[file])
|
||||
elif (event.message.content.startsWith("?sendImage")):
|
||||
var channel: Channel = event.message.getMessageChannel(event.client.cache)
|
||||
if (channel != nil):
|
||||
let filePath = event.message.content.substr(11)
|
||||
|
||||
let splitFile = splitFile(filePath)
|
||||
let fileName = splitFile.name & splitFile.ext
|
||||
|
||||
let file = DiscordFile(filePath: filePath, fileName: fileName)
|
||||
|
||||
var embed = Embed()
|
||||
embed.setTitle("Image attachment test.")
|
||||
embed.setImage("attachment://" & fileName)
|
||||
discard channel.sendMessage("", false, embed, @[file])
|
||||
elif (event.message.content.startsWith("?reconnect")):
|
||||
var channel: Channel = event.message.getMessageChannel(event.client.cache)
|
||||
if (channel != nil):
|
||||
discard channel.sendMessage("Reconnecting...")
|
||||
#asyncCheck event.client.reconnectClient()
|
||||
asyncCheck event.client.ws.sendText("aaaa")
|
||||
)
|
||||
|
||||
waitFor bot.startConnection()
|
Reference in New Issue