local max_characters = 1000 local display_thread_subject = true -- Doesn't count for max_characters local send_image = true local function html2text(data) data = string.gsub(data, "

", "\n") data = string.gsub(data, "
", "\n") data = string.gsub(data, "", " ") data = string.gsub(data, "", " ") data = string.gsub(data, "(.-)

", "%1\n") data = string.gsub(data, "", "") data = string.gsub(data, "", "") data = string.gsub(data, "", "") data = string.gsub(data, "", "") data = string.gsub(data, "", "") data = string.gsub(data, "", "") data = string.gsub(data, "", "\n") data = string.gsub(data, "", "\n") data = string.gsub(data, "(.-)", "%1\n") --data = string.gsub(data, "[.-]", "") data = string.gsub(data, ".-", "") data = string.gsub(data, "(.-)", " - %1\n") data = string.gsub(data, "<.->", "") data = string.gsub(data, ">", ">") data = string.gsub(data, "&", "&") data = string.gsub(data, "&..;", "") data = string.gsub(data, "&...;", "") data = string.gsub(data, "&....;", "") return data end local function get4chanRandomThread() local api = "http://a.4cdn.org/vg/catalog.json" local res, code = http.request(api) if code ~= 200 then return nil end local jsonCatalog = json:decode(res) local data = jsonCatalog if not data then return nil end if #data == 0 then return nil end -- Random page from catalog local i = math.random(#data) local page = data[i] if not page then print("page = nil") return nil end if #page.threads == 0 then print("#page.threads = 0") return nil end --Random thread from page local j = math.random(#page.threads) local thread = page.threads[j] return thread end local function run(msg, matches) local receiver = get_receiver(msg) local thread = get4chanRandomThread() if thread == nil then return "ERROR!" end if thread.com == nil then return "ERROR!" end local text = thread.com text = string.gsub(text, ".-", "") text = string.gsub(text, "%s.-%sThread", "") text = html2text(text) if string.len(text) >= max_characters then text = string.sub(text, 1, max_characters).."\n[...]" end if thread.tim ~= nill and thread.ext ~= nil and send_image then send_photo_from_url(get_receiver(msg), "http://i.4cdn.org/vg/"..thread.tim..thread.ext) end if thread.sub ~= nill and display_thread_subject then text = thread.sub..":\n"..text end return text end return { description = "Get a random thread.", usage = "/4chan: get a random thread", patterns = {"^/4chan$"}, run = run }