Skip to content

Instantly share code, notes, and snippets.

View MagnificentPako's full-sized avatar

Paul MagnificentPako

  • Germany
View GitHub Profile

Keybase proof

I hereby claim:

  • I am TheFreakLord on github.
  • I am h4x0rz (https://keybase.io/h4x0rz) on keybase.
  • I have a public key whose fingerprint is 6663 E7A0 73B0 A0C9 CB7D 33C5 40B8 D400 D377 1CEC

To claim this, I am signing this object:

@MagnificentPako
MagnificentPako / Dentatsu.lua
Last active January 24, 2017 21:52
A simple communication abstraction for CC
local loading = {}
local oldRequire, preload, loaded = require, {}, { startup = loading }
local function require(name)
local result = loaded[name]
if result ~= nil then
if result == loading then
error("loop or previous error loading module '" .. name .. "'", 2)
end
use "net"
use "net/ssl"
use "files"
use "encode/base64"
class MyTCPConnectionNotify is TCPConnectionNotify
let _out: Env
new iso create(out: Env) =>
_out = out
use "buffered"
class Frame
let _final: Bool
let _rsv: (Bool, Bool, Bool)
let _opcode: Opcode
let _use_mask: Bool
let _payload_type: U8
let _payload_size: (U8 | U16 | U64)
let _mask_key: (None | U32)
class BitWriter
fun _bit_to_bool(bit: U8): Bool =>
if bit == 0 then false else true end
fun byte_to_bits(byte': U8): Array[U8] =>
var bits: Array[U8] = bits.create(8)
var mask: U8 = 0b00000001
bits.push(((byte' >> 7) and mask))
class BitWriter
var _content: Array[U8] = _content.create(1)
var _size: USize = 0
var _offset: USize = 0
fun ref done(): Array[U8] =>
var byte_amount: USize = (_content.size() / 8)
var output: Array[U8] ref = output.create(byte_amount)
if ((_content.size() % 8) != 0) then byte_amount = byte_amount + 1 end
use "buffered"
class Frame
let _final: Bool
let _rsv: (Bool, Bool, Bool)
let _opcode: Opcode
let _use_mask: Bool
let _payload_type: U8
let _payload_size: U64
let _mask_key: (None | U32)
let rb: Reader = Reader
rb.append(consume data)
var final: Bool = true
var opcode: Opcode = OPCLOSE
var datt: String = ""
try
var fin_op: U8 = rb.u8()
var mask_payloadlen: U8 = rb.u8()
final = if (((fin_op >> 7) and 0b00000001) == 1) then true else false end
opcode = OPTEXT
use "net"
use "encode/base64"
class WebsocketHandler is TCPConnectionNotify
let _host: String
let _target: String
var _connected: Bool = false
var _current_content: String = ""
var _notify: WebsocketNotify
use "json"
use "net"
use "files"
use "net/ssl"
use "json"
class TestWSNotify is WebsocketNotify
let _env: Env
var _identified: Bool = false