Mercurial > prosody-modules
comparison mod_pastebin/mod_pastebin.lua @ 514:46e1983486e9
mod_pastebin: Support for persistent pastes (set pastebin_expire_after = 0)
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Mon, 19 Dec 2011 12:29:03 +0000 |
parents | 5e8843a869a3 |
children | 3d3687fef751 |
comparison
equal
deleted
inserted
replaced
513:5e8843a869a3 | 514:46e1983486e9 |
---|---|
41 local pastes = {}; | 41 local pastes = {}; |
42 local default_headers = { ["Content-Type"] = "text/plain; charset=utf-8" }; | 42 local default_headers = { ["Content-Type"] = "text/plain; charset=utf-8" }; |
43 | 43 |
44 local xmlns_xhtmlim = "http://jabber.org/protocol/xhtml-im"; | 44 local xmlns_xhtmlim = "http://jabber.org/protocol/xhtml-im"; |
45 local xmlns_xhtml = "http://www.w3.org/1999/xhtml"; | 45 local xmlns_xhtml = "http://www.w3.org/1999/xhtml"; |
46 | |
47 if expire_after == 0 then | |
48 local dm = require "util.datamanager"; | |
49 setmetatable(pastes, { | |
50 __index = function (pastes, id) | |
51 if type(id) == "string" then | |
52 return dm.load(id, module.host, "pastebin"); | |
53 end | |
54 end; | |
55 __newindex = function (pastes, id, data) | |
56 if type(id) == "string" then | |
57 dm.store(id, module.host, "pastebin", data); | |
58 end | |
59 end; | |
60 }); | |
61 else | |
62 setmetatable(pastes, nil); | |
63 end | |
46 | 64 |
47 function pastebin_text(text) | 65 function pastebin_text(text) |
48 local uuid = uuid_new(); | 66 local uuid = uuid_new(); |
49 pastes[uuid] = { body = text, time = os_time(), headers = default_headers }; | 67 pastes[uuid] = { body = text, time = os_time(), headers = default_headers }; |
50 pastes[#pastes+1] = uuid; | 68 pastes[#pastes+1] = uuid; |