local base64 = require("vendor.base64") local json = require("vendor.JSON") local table_unpack = table.unpack or unpack local function base64_dec(x) local succ, dec = pcall(base64.decode, x) if succ then return dec end end local function json_dec(x) local succ, dec = pcall(json.decode, json, x) if succ then return dec end end local function json_enc(x) return json:encode(x) end local function send(peer, x) peer:send(json_enc(x)) end local rand_string if love then rand_string = function(n) local b = {} for i = 1, n do table.insert(b, love.math.random(0, 255)) end return string.char(table_unpack(b)) end mkdir = love.filesystem.mkdir else local rand_file rand_string = function(n) local rand_file = rand_file or io.open("/dev/random") return rand_file:read(n) end end return { rand_string = rand_string, mkdir = mkdir, base64_dec = base64_dec, base64_enc = base64.encode, json_dec = json_dec, json_enc = json_enc, send = send, }