diff options
| author | rebecca <ubq323@ubq323.website> | 2026-09-12 18:30:08 +0100 |
|---|---|---|
| committer | rebecca <ubq323@ubq323.website> | 2026-09-12 18:33:50 +0100 |
| commit | 085040f49cc1386b294857aa68651329b0044420 (patch) | |
| tree | 5d9a5e7d011e384ae1ca36a64be4f4eaca9f8ca0 /discord/pylon.lua | |
| parent | fa9da79c39f62439ece735ed0e7dfe4c4c9692b2 (diff) | |
refactor classes and inheritance
Diffstat (limited to 'discord/pylon.lua')
| -rw-r--r-- | discord/pylon.lua | 40 |
1 files changed, 17 insertions, 23 deletions
diff --git a/discord/pylon.lua b/discord/pylon.lua index d38b8a7..0b50b84 100644 --- a/discord/pylon.lua +++ b/discord/pylon.lua @@ -1,38 +1,32 @@ -local consts = require'discord.consts' -local opcodes = consts.opcodes +local cqueues = require 'cqueues' local websocket = require'http.websocket' +local request = require'http.request' local json = require 'dkjson' -local Queue = require 'queue' -local exec_webhook = require'discord.the' -local http_request = require'http.request' -local cqueues = require 'cqueues' -local pylon = require 'pylon' local pprint = require 'pprint' +local class = require 'r.class' + +local BasePylon = require 'pylon' local Channel = require 'channel' +local consts = require 'discord.consts' +local opcodes = consts.opcodes +local exec_webhook = require'discord.the' -local Discord = pylon.subclass "discord" local API_BASE = "https://discord.com/api/v10/" +local Discord = class.extend(BasePylon) function Discord.init(self) self:check_config "token" end local function identify_payload(token) - local I = consts.intents - return json.encode{ - op = opcodes.identify, - d = { - properties = { - os = "wilson", browser = "wilson", device = "wilson", - }, + local I = consts.intents return json.encode{ + op = opcodes.identify, d = { + properties = {os="wilson",browser="wilson",device="wilson"}, intents = I.guilds + I.guild_messages + I.message_content, - token = token, - } - } -end + token = token } } end function Discord._req_get(self, url) - local req = http_request.new_from_uri(API_BASE..url) + local req = request.new_from_uri(API_BASE..url) req.headers:upsert('content-type','application/json') req.headers:upsert(':method','GET') req.headers:upsert('authorization','Bot '..self.token) @@ -40,7 +34,7 @@ function Discord._req_get(self, url) local head,body = assert(req:go()) local status = head:get':status' assert(status:sub(1,1)=='2','status was '..status) - return body:get_body_as_string() + return assert(json.decode(body:get_body_as_string())) end function Discord._connect(self) @@ -53,7 +47,7 @@ function Discord._connect(self) pprint('I AM ',me) end -function Discord._heartbeat(self, interval_ms) +function Discord._heartbeating(self, interval_ms) local interval = interval_ms / 1000 cqueues.sleep(interval * math.random()) while true do @@ -76,7 +70,7 @@ function Discord.recving(self) if event.s then self.sequence_number = event.s end if event.op == opcodes.hello then - self.cq:wrap(self._heartbeat, self, event.d.heartbeat_interval) + self.cq:wrap(self._heartbeating, self, event.d.heartbeat_interval) elseif event.op == opcodes.dispatch then self:handle_dispatch(event) end |
