Software / code / prosody-modules
Annotate
mod_storage_metronome_readonly/mod_storage_metronome_readonly.lua @ 6344:eb834f754f57 draft default tip
Merge update
| author | Trần H. Trung <xmpp:trần.h.trung@trung.fun> |
|---|---|
| date | Fri, 18 Jul 2025 20:45:38 +0700 |
| parent | 6174:877416deacfa |
| rev | line source |
|---|---|
|
6147
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
1 local datamanager = require "prosody.core.storagemanager".olddm; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
2 local datetime = require "prosody.util.datetime"; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
3 local st = require "prosody.util.stanza"; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
4 local now = require "prosody.util.time".now; |
|
6169
dcd16e349a7a
mod_storage_metronome_readonly: Fix luacheck warnings
Link Mauve <linkmauve@linkmauve.fr>
parents:
6166
diff
changeset
|
5 local gen_id = require "prosody.util.id".medium; |
|
6147
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
6 local set = require "prosody.util.set"; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
7 local envloadfile = require"prosody.util.envload".envloadfile; |
|
6170
ec0e9d4f2275
mod_storage_metronome_readonly: Add support for mod_muc_mam storage
Link Mauve <linkmauve@linkmauve.fr>
parents:
6169
diff
changeset
|
8 local dir = require "lfs".dir; |
|
6147
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
9 |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
10 local host = module.host; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
11 |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
12 local archive_item_limit = module:get_option_integer("storage_archive_item_limit", 10000, 0); |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
13 |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
14 -- Metronome doesn’t store the item publish time, so fallback to the migration time. |
|
6169
dcd16e349a7a
mod_storage_metronome_readonly: Fix luacheck warnings
Link Mauve <linkmauve@linkmauve.fr>
parents:
6166
diff
changeset
|
15 local time_now = math.floor(now()); |
|
6147
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
16 |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
17 local function encode (s) |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
18 return s and (s:gsub("%W", function (c) return string.format("%%%02x", c:byte()); end)); |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
19 end |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
20 |
|
6165
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6147
diff
changeset
|
21 local file = io.open("/etc/mime.types"); |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6147
diff
changeset
|
22 local mimes = {}; |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6147
diff
changeset
|
23 while true do |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6147
diff
changeset
|
24 local line = file:read("*l"); |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6147
diff
changeset
|
25 if not line then |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6147
diff
changeset
|
26 break; |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6147
diff
changeset
|
27 end |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6147
diff
changeset
|
28 if line ~= "" then |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6147
diff
changeset
|
29 local first_char = line:sub(1, 1); |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6147
diff
changeset
|
30 if first_char ~= "#" then |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6147
diff
changeset
|
31 --local line:match("(%S+)%s+")); |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6147
diff
changeset
|
32 local match = line:gmatch("%S+"); |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6147
diff
changeset
|
33 local mime = match(); |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6147
diff
changeset
|
34 for ext in match do |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6147
diff
changeset
|
35 mimes[ext] = mime; |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6147
diff
changeset
|
36 end |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6147
diff
changeset
|
37 end |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6147
diff
changeset
|
38 end |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6147
diff
changeset
|
39 end |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6147
diff
changeset
|
40 file:close(); |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6147
diff
changeset
|
41 |
|
6147
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
42 local driver = {}; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
43 |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
44 function driver:open(store, typ) |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
45 local mt = self[typ or "keyval"] |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
46 if not mt then |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
47 return nil, "unsupported-store"; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
48 end |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
49 return setmetatable({ store = store, type = typ }, mt); |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
50 end |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
51 |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
52 function driver:stores(username) -- luacheck: ignore 212/self |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
53 if username == true then |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
54 local nodes = set.new(); |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
55 for user in datamanager.users(host, "pep") do |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
56 local data = datamanager.load(user, host, "pep"); |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
57 |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
58 for _, node in ipairs(data["nodes"]) do |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
59 nodes:add("pep_" .. node); |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
60 end |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
61 end |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
62 return function() |
|
6169
dcd16e349a7a
mod_storage_metronome_readonly: Fix luacheck warnings
Link Mauve <linkmauve@linkmauve.fr>
parents:
6166
diff
changeset
|
63 -- luacheck: ignore 512 |
|
6147
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
64 for node in nodes do |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
65 nodes:remove(node); |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
66 return node; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
67 end |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
68 end; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
69 end |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
70 end |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
71 |
|
6169
dcd16e349a7a
mod_storage_metronome_readonly: Fix luacheck warnings
Link Mauve <linkmauve@linkmauve.fr>
parents:
6166
diff
changeset
|
72 function driver:purge(user) -- luacheck: ignore 212/self user |
|
6147
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
73 return nil, "unsupported-store"; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
74 end |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
75 |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
76 local keyval = { }; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
77 driver.keyval = { __index = keyval }; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
78 |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
79 function keyval:get(user) |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
80 if self.store == "pep" then |
|
6169
dcd16e349a7a
mod_storage_metronome_readonly: Fix luacheck warnings
Link Mauve <linkmauve@linkmauve.fr>
parents:
6166
diff
changeset
|
81 local ret = datamanager.load(user, host, self.store); |
|
dcd16e349a7a
mod_storage_metronome_readonly: Fix luacheck warnings
Link Mauve <linkmauve@linkmauve.fr>
parents:
6166
diff
changeset
|
82 local nodes = ret["nodes"]; |
|
6147
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
83 local result = {}; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
84 |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
85 local pep_base_path = datamanager.getpath(user, host, self.store):sub(1, -5); |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
86 |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
87 for _, node in ipairs(nodes) do |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
88 local path = ("%s/%s.dat"):format(pep_base_path, encode(node)); |
|
6169
dcd16e349a7a
mod_storage_metronome_readonly: Fix luacheck warnings
Link Mauve <linkmauve@linkmauve.fr>
parents:
6166
diff
changeset
|
89 local get_data = envloadfile(path, {}); |
|
dcd16e349a7a
mod_storage_metronome_readonly: Fix luacheck warnings
Link Mauve <linkmauve@linkmauve.fr>
parents:
6166
diff
changeset
|
90 if not get_data then |
|
dcd16e349a7a
mod_storage_metronome_readonly: Fix luacheck warnings
Link Mauve <linkmauve@linkmauve.fr>
parents:
6166
diff
changeset
|
91 module:log("error", "Failed to load metronome storage"); |
|
6147
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
92 return nil, "Error reading storage"; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
93 end |
|
6169
dcd16e349a7a
mod_storage_metronome_readonly: Fix luacheck warnings
Link Mauve <linkmauve@linkmauve.fr>
parents:
6166
diff
changeset
|
94 local success, data = pcall(get_data); |
|
6147
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
95 if not success then |
|
6169
dcd16e349a7a
mod_storage_metronome_readonly: Fix luacheck warnings
Link Mauve <linkmauve@linkmauve.fr>
parents:
6166
diff
changeset
|
96 module:log("error", "Unable to load metronome storage"); |
|
6147
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
97 return nil, "Error reading storage"; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
98 end |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
99 local new_node = {}; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
100 new_node["name"] = node; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
101 new_node["subscribers"] = data["subscribers"]; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
102 new_node["affiliations"] = data["affiliations"]; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
103 new_node["config"] = data["config"]; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
104 result[node] = new_node; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
105 end |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
106 return result; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
107 elseif self.store == "cloud_notify" then |
|
6169
dcd16e349a7a
mod_storage_metronome_readonly: Fix luacheck warnings
Link Mauve <linkmauve@linkmauve.fr>
parents:
6166
diff
changeset
|
108 local ret = datamanager.load(user, host, "push"); |
|
6147
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
109 local result = {}; |
|
6169
dcd16e349a7a
mod_storage_metronome_readonly: Fix luacheck warnings
Link Mauve <linkmauve@linkmauve.fr>
parents:
6166
diff
changeset
|
110 for jid, data in pairs(ret) do |
|
6147
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
111 local secret = data["secret"]; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
112 for node in pairs(data["nodes"]) do |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
113 -- TODO: Does Metronome store more info than that? |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
114 local options; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
115 if secret then |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
116 options = st.preserialize(st.stanza("x", { xmlns = "jabber:x:data", type = "submit" }) |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
117 :tag("field", { var = "FORM_TYPE" }) |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
118 :text_tag("value", "http://jabber.org/protocol/pubsub#publish-options") |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
119 :up() |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
120 :tag("field", { var = "secret" }) |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
121 :text_tag("value", secret)); |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
122 end |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
123 result[jid.."<"..node] = { |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
124 jid = jid, |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
125 node = node, |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
126 options = options, |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
127 }; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
128 end |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
129 end |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
130 return result; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
131 elseif self.store == "roster" then |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
132 return datamanager.load(user, host, self.store); |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
133 elseif self.store == "vcard" then |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
134 return datamanager.load(user, host, self.store); |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
135 elseif self.store == "private" then |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
136 return datamanager.load(user, host, self.store); |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
137 |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
138 -- After that, handle MUC specific stuff, not tested yet whatsoever. |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
139 elseif self.store == "persistent" then |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
140 return datamanager.load(user, host, self.store); |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
141 elseif self.store == "config" then |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
142 return datamanager.load(user, host, self.store); |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
143 elseif self.store == "vcard_muc" then |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
144 local data = datamanager.load(user, host, "room_icons"); |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
145 return data and data["photo"]; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
146 else |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
147 return nil, "unsupported-store"; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
148 end |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
149 end |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
150 |
|
6169
dcd16e349a7a
mod_storage_metronome_readonly: Fix luacheck warnings
Link Mauve <linkmauve@linkmauve.fr>
parents:
6166
diff
changeset
|
151 function keyval:set(user, data) -- luacheck: ignore 212/self user data |
|
6147
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
152 return nil, "unsupported-store"; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
153 end |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
154 |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
155 function keyval:users() |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
156 local store; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
157 if self.store == "vcard_muc" then |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
158 store = "room_icons"; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
159 elseif self.store == "cloud_notify" then |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
160 store = "push"; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
161 else |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
162 store = self.store; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
163 end |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
164 return datamanager.users(host, store, self.type); |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
165 end |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
166 |
|
6172
983549664bd4
mod_storage_metronome_readonly: Fix wrongly done refactoring
Link Mauve <linkmauve@linkmauve.fr>
parents:
6171
diff
changeset
|
167 local function parse_logs(logs, jid) |
|
6170
ec0e9d4f2275
mod_storage_metronome_readonly: Add support for mod_muc_mam storage
Link Mauve <linkmauve@linkmauve.fr>
parents:
6169
diff
changeset
|
168 local iter = ipairs(logs); |
|
ec0e9d4f2275
mod_storage_metronome_readonly: Add support for mod_muc_mam storage
Link Mauve <linkmauve@linkmauve.fr>
parents:
6169
diff
changeset
|
169 local i = 0; |
|
ec0e9d4f2275
mod_storage_metronome_readonly: Add support for mod_muc_mam storage
Link Mauve <linkmauve@linkmauve.fr>
parents:
6169
diff
changeset
|
170 local message; |
|
ec0e9d4f2275
mod_storage_metronome_readonly: Add support for mod_muc_mam storage
Link Mauve <linkmauve@linkmauve.fr>
parents:
6169
diff
changeset
|
171 return function() |
|
ec0e9d4f2275
mod_storage_metronome_readonly: Add support for mod_muc_mam storage
Link Mauve <linkmauve@linkmauve.fr>
parents:
6169
diff
changeset
|
172 i, message = iter(logs, i); |
|
ec0e9d4f2275
mod_storage_metronome_readonly: Add support for mod_muc_mam storage
Link Mauve <linkmauve@linkmauve.fr>
parents:
6169
diff
changeset
|
173 if not message then |
|
ec0e9d4f2275
mod_storage_metronome_readonly: Add support for mod_muc_mam storage
Link Mauve <linkmauve@linkmauve.fr>
parents:
6169
diff
changeset
|
174 return; |
|
ec0e9d4f2275
mod_storage_metronome_readonly: Add support for mod_muc_mam storage
Link Mauve <linkmauve@linkmauve.fr>
parents:
6169
diff
changeset
|
175 end |
|
ec0e9d4f2275
mod_storage_metronome_readonly: Add support for mod_muc_mam storage
Link Mauve <linkmauve@linkmauve.fr>
parents:
6169
diff
changeset
|
176 |
|
ec0e9d4f2275
mod_storage_metronome_readonly: Add support for mod_muc_mam storage
Link Mauve <linkmauve@linkmauve.fr>
parents:
6169
diff
changeset
|
177 local with; |
|
6171
44f77f4f653a
mod_storage_metronome_readonly: Revert non-working is_muc hack, the correct with is "message<groupchat"
Link Mauve <linkmauve@linkmauve.fr>
parents:
6170
diff
changeset
|
178 local bare_to = message["bare_to"]; |
|
44f77f4f653a
mod_storage_metronome_readonly: Revert non-working is_muc hack, the correct with is "message<groupchat"
Link Mauve <linkmauve@linkmauve.fr>
parents:
6170
diff
changeset
|
179 local bare_from = message["bare_from"]; |
|
44f77f4f653a
mod_storage_metronome_readonly: Revert non-working is_muc hack, the correct with is "message<groupchat"
Link Mauve <linkmauve@linkmauve.fr>
parents:
6170
diff
changeset
|
180 if jid == bare_to then |
|
44f77f4f653a
mod_storage_metronome_readonly: Revert non-working is_muc hack, the correct with is "message<groupchat"
Link Mauve <linkmauve@linkmauve.fr>
parents:
6170
diff
changeset
|
181 -- received |
|
44f77f4f653a
mod_storage_metronome_readonly: Revert non-working is_muc hack, the correct with is "message<groupchat"
Link Mauve <linkmauve@linkmauve.fr>
parents:
6170
diff
changeset
|
182 with = bare_from; |
|
6170
ec0e9d4f2275
mod_storage_metronome_readonly: Add support for mod_muc_mam storage
Link Mauve <linkmauve@linkmauve.fr>
parents:
6169
diff
changeset
|
183 else |
|
6171
44f77f4f653a
mod_storage_metronome_readonly: Revert non-working is_muc hack, the correct with is "message<groupchat"
Link Mauve <linkmauve@linkmauve.fr>
parents:
6170
diff
changeset
|
184 -- sent |
|
44f77f4f653a
mod_storage_metronome_readonly: Revert non-working is_muc hack, the correct with is "message<groupchat"
Link Mauve <linkmauve@linkmauve.fr>
parents:
6170
diff
changeset
|
185 with = bare_to; |
|
6170
ec0e9d4f2275
mod_storage_metronome_readonly: Add support for mod_muc_mam storage
Link Mauve <linkmauve@linkmauve.fr>
parents:
6169
diff
changeset
|
186 end |
|
ec0e9d4f2275
mod_storage_metronome_readonly: Add support for mod_muc_mam storage
Link Mauve <linkmauve@linkmauve.fr>
parents:
6169
diff
changeset
|
187 |
|
ec0e9d4f2275
mod_storage_metronome_readonly: Add support for mod_muc_mam storage
Link Mauve <linkmauve@linkmauve.fr>
parents:
6169
diff
changeset
|
188 local to = message["to"]; |
|
ec0e9d4f2275
mod_storage_metronome_readonly: Add support for mod_muc_mam storage
Link Mauve <linkmauve@linkmauve.fr>
parents:
6169
diff
changeset
|
189 local from = message["from"]; |
|
ec0e9d4f2275
mod_storage_metronome_readonly: Add support for mod_muc_mam storage
Link Mauve <linkmauve@linkmauve.fr>
parents:
6169
diff
changeset
|
190 local id = message["id"]; |
|
ec0e9d4f2275
mod_storage_metronome_readonly: Add support for mod_muc_mam storage
Link Mauve <linkmauve@linkmauve.fr>
parents:
6169
diff
changeset
|
191 local type = message["type"]; |
|
ec0e9d4f2275
mod_storage_metronome_readonly: Add support for mod_muc_mam storage
Link Mauve <linkmauve@linkmauve.fr>
parents:
6169
diff
changeset
|
192 |
|
ec0e9d4f2275
mod_storage_metronome_readonly: Add support for mod_muc_mam storage
Link Mauve <linkmauve@linkmauve.fr>
parents:
6169
diff
changeset
|
193 local key = message["uid"]; |
|
ec0e9d4f2275
mod_storage_metronome_readonly: Add support for mod_muc_mam storage
Link Mauve <linkmauve@linkmauve.fr>
parents:
6169
diff
changeset
|
194 local when = message["timestamp"]; |
|
ec0e9d4f2275
mod_storage_metronome_readonly: Add support for mod_muc_mam storage
Link Mauve <linkmauve@linkmauve.fr>
parents:
6169
diff
changeset
|
195 local item = st.message({ to = to, from = from, id = id, type = type }, message["body"]); |
|
ec0e9d4f2275
mod_storage_metronome_readonly: Add support for mod_muc_mam storage
Link Mauve <linkmauve@linkmauve.fr>
parents:
6169
diff
changeset
|
196 if message["tags"] then |
|
ec0e9d4f2275
mod_storage_metronome_readonly: Add support for mod_muc_mam storage
Link Mauve <linkmauve@linkmauve.fr>
parents:
6169
diff
changeset
|
197 for _, tag in ipairs(message["tags"]) do |
|
ec0e9d4f2275
mod_storage_metronome_readonly: Add support for mod_muc_mam storage
Link Mauve <linkmauve@linkmauve.fr>
parents:
6169
diff
changeset
|
198 setmetatable(tag, st.stanza_mt); |
|
ec0e9d4f2275
mod_storage_metronome_readonly: Add support for mod_muc_mam storage
Link Mauve <linkmauve@linkmauve.fr>
parents:
6169
diff
changeset
|
199 item:add_direct_child(tag); |
|
ec0e9d4f2275
mod_storage_metronome_readonly: Add support for mod_muc_mam storage
Link Mauve <linkmauve@linkmauve.fr>
parents:
6169
diff
changeset
|
200 end |
|
ec0e9d4f2275
mod_storage_metronome_readonly: Add support for mod_muc_mam storage
Link Mauve <linkmauve@linkmauve.fr>
parents:
6169
diff
changeset
|
201 end |
|
ec0e9d4f2275
mod_storage_metronome_readonly: Add support for mod_muc_mam storage
Link Mauve <linkmauve@linkmauve.fr>
parents:
6169
diff
changeset
|
202 if message["marker"] then |
|
ec0e9d4f2275
mod_storage_metronome_readonly: Add support for mod_muc_mam storage
Link Mauve <linkmauve@linkmauve.fr>
parents:
6169
diff
changeset
|
203 item:tag(message["marker"], { xmlns = "urn:xmpp:chat-markers:0", id = message["marker_id"] }); |
|
ec0e9d4f2275
mod_storage_metronome_readonly: Add support for mod_muc_mam storage
Link Mauve <linkmauve@linkmauve.fr>
parents:
6169
diff
changeset
|
204 end |
|
ec0e9d4f2275
mod_storage_metronome_readonly: Add support for mod_muc_mam storage
Link Mauve <linkmauve@linkmauve.fr>
parents:
6169
diff
changeset
|
205 return key, item, when, with; |
|
ec0e9d4f2275
mod_storage_metronome_readonly: Add support for mod_muc_mam storage
Link Mauve <linkmauve@linkmauve.fr>
parents:
6169
diff
changeset
|
206 end; |
|
ec0e9d4f2275
mod_storage_metronome_readonly: Add support for mod_muc_mam storage
Link Mauve <linkmauve@linkmauve.fr>
parents:
6169
diff
changeset
|
207 end |
|
ec0e9d4f2275
mod_storage_metronome_readonly: Add support for mod_muc_mam storage
Link Mauve <linkmauve@linkmauve.fr>
parents:
6169
diff
changeset
|
208 |
|
6147
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
209 local archive = {}; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
210 driver.archive = { __index = archive }; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
211 |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
212 archive.caps = { |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
213 total = true; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
214 quota = archive_item_limit; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
215 full_id_range = true; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
216 ids = true; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
217 }; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
218 |
|
6169
dcd16e349a7a
mod_storage_metronome_readonly: Fix luacheck warnings
Link Mauve <linkmauve@linkmauve.fr>
parents:
6166
diff
changeset
|
219 function archive:append(username, key, value, when, with) -- luacheck: ignore 212/self username key value when with |
|
6147
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
220 return nil, "unsupported-store"; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
221 end |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
222 |
|
6169
dcd16e349a7a
mod_storage_metronome_readonly: Fix luacheck warnings
Link Mauve <linkmauve@linkmauve.fr>
parents:
6166
diff
changeset
|
223 function archive:find(username, query) -- luacheck: ignore 212/self query |
|
6147
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
224 if self.store == "archive" then |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
225 local jid = username.."@"..host; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
226 local data = datamanager.load(username, host, "archiving"); |
|
6172
983549664bd4
mod_storage_metronome_readonly: Fix wrongly done refactoring
Link Mauve <linkmauve@linkmauve.fr>
parents:
6171
diff
changeset
|
227 return parse_logs(data["logs"], jid); |
|
6147
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
228 |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
229 elseif self.store:sub(1, 4) == "pep_" then |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
230 local node = self.store:sub(5); |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
231 |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
232 local pep_base_path = datamanager.getpath(username, host, "pep"):sub(1, -5); |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
233 local path = ("%s/%s.dat"):format(pep_base_path, encode(node)); |
|
6169
dcd16e349a7a
mod_storage_metronome_readonly: Fix luacheck warnings
Link Mauve <linkmauve@linkmauve.fr>
parents:
6166
diff
changeset
|
234 local get_data = envloadfile(path, {}); |
|
dcd16e349a7a
mod_storage_metronome_readonly: Fix luacheck warnings
Link Mauve <linkmauve@linkmauve.fr>
parents:
6166
diff
changeset
|
235 if not get_data then |
|
dcd16e349a7a
mod_storage_metronome_readonly: Fix luacheck warnings
Link Mauve <linkmauve@linkmauve.fr>
parents:
6166
diff
changeset
|
236 module:log("debug", "Failed to load metronome storage"); |
|
6147
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
237 return {}; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
238 end |
|
6169
dcd16e349a7a
mod_storage_metronome_readonly: Fix luacheck warnings
Link Mauve <linkmauve@linkmauve.fr>
parents:
6166
diff
changeset
|
239 local success, data = pcall(get_data); |
|
6147
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
240 if not success then |
|
6169
dcd16e349a7a
mod_storage_metronome_readonly: Fix luacheck warnings
Link Mauve <linkmauve@linkmauve.fr>
parents:
6166
diff
changeset
|
241 module:log("error", "Unable to load metronome storage"); |
|
6147
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
242 return nil, "Error reading storage"; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
243 end |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
244 |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
245 local iter = pairs(data["data"]); |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
246 local key = nil; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
247 local payload; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
248 return function() |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
249 key, payload = iter(data["data"], key); |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
250 if not key then |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
251 return; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
252 end |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
253 local item = st.deserialize(payload[1]); |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
254 local with = data["data_author"][key]; |
|
6169
dcd16e349a7a
mod_storage_metronome_readonly: Fix luacheck warnings
Link Mauve <linkmauve@linkmauve.fr>
parents:
6166
diff
changeset
|
255 return key, item, time_now, with; |
|
6147
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
256 end; |
|
6170
ec0e9d4f2275
mod_storage_metronome_readonly: Add support for mod_muc_mam storage
Link Mauve <linkmauve@linkmauve.fr>
parents:
6169
diff
changeset
|
257 |
|
6147
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
258 elseif self.store == "offline" then |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
259 -- This is mostly copy/pasted from mod_storage_internal. |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
260 local list, err = datamanager.list_open(username, host, self.store); |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
261 if not list then |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
262 if err then |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
263 return list, err; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
264 end |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
265 return function() |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
266 end; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
267 end |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
268 |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
269 local i = 0; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
270 local iter = function() |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
271 i = i + 1; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
272 return list[i]; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
273 end |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
274 |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
275 return function() |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
276 local item = iter(); |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
277 if item == nil then |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
278 if list.close then |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
279 list:close(); |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
280 end |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
281 return |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
282 end |
|
6169
dcd16e349a7a
mod_storage_metronome_readonly: Fix luacheck warnings
Link Mauve <linkmauve@linkmauve.fr>
parents:
6166
diff
changeset
|
283 local key = gen_id(); |
|
6147
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
284 local when = item.attr and datetime.parse(item.attr.stamp); |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
285 local with = ""; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
286 item.key, item.when, item.with = nil, nil, nil; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
287 item.attr.stamp = nil; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
288 -- COMPAT Stored data may still contain legacy XEP-0091 timestamp |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
289 item.attr.stamp_legacy = nil; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
290 item = st.deserialize(item); |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
291 return key, item, when, with; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
292 end |
|
6170
ec0e9d4f2275
mod_storage_metronome_readonly: Add support for mod_muc_mam storage
Link Mauve <linkmauve@linkmauve.fr>
parents:
6169
diff
changeset
|
293 |
|
6165
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6147
diff
changeset
|
294 elseif self.store == "uploads" then |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6147
diff
changeset
|
295 local list = {}; |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6147
diff
changeset
|
296 |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6147
diff
changeset
|
297 for user in datamanager.users(host, "http_upload", "list") do |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6147
diff
changeset
|
298 local data, err = datamanager.list_open(user, host, "http_upload"); |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6147
diff
changeset
|
299 if not data then |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6147
diff
changeset
|
300 if err then |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6147
diff
changeset
|
301 return data, err; |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6147
diff
changeset
|
302 end |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6147
diff
changeset
|
303 return function() |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6147
diff
changeset
|
304 end; |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6147
diff
changeset
|
305 end |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6147
diff
changeset
|
306 |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6147
diff
changeset
|
307 for _, stuff in ipairs(data) do |
|
6172
983549664bd4
mod_storage_metronome_readonly: Fix wrongly done refactoring
Link Mauve <linkmauve@linkmauve.fr>
parents:
6171
diff
changeset
|
308 local key = stuff.dir; |
|
6165
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6147
diff
changeset
|
309 local size = tostring(stuff.size); |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6147
diff
changeset
|
310 local time = stuff.time; |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6147
diff
changeset
|
311 local filename = stuff.filename; |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6147
diff
changeset
|
312 local ext = filename:match(".*%.(%S+)"):lower(); |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6147
diff
changeset
|
313 local mime = mimes[ext] or "application/octet-stream"; |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6147
diff
changeset
|
314 local stanza = st.stanza("request", { xmlns = "urn:xmpp:http:upload:0", size = size, ["content-type"] = mime, filename = filename }) |
|
6172
983549664bd4
mod_storage_metronome_readonly: Fix wrongly done refactoring
Link Mauve <linkmauve@linkmauve.fr>
parents:
6171
diff
changeset
|
315 list[key] = {user.."@"..host, time, stanza}; |
|
6165
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6147
diff
changeset
|
316 end |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6147
diff
changeset
|
317 end |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6147
diff
changeset
|
318 |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6147
diff
changeset
|
319 local iter = pairs(list); |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6147
diff
changeset
|
320 local key = nil; |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6147
diff
changeset
|
321 local payload; |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6147
diff
changeset
|
322 return function() |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6147
diff
changeset
|
323 key, payload = iter(list, key); |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6147
diff
changeset
|
324 if not key then |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6147
diff
changeset
|
325 return; |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6147
diff
changeset
|
326 end |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6147
diff
changeset
|
327 local with = payload[1]; |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6147
diff
changeset
|
328 local when = payload[2]; |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6147
diff
changeset
|
329 local stanza = payload[3]; |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6147
diff
changeset
|
330 return key, stanza, when, with; |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6147
diff
changeset
|
331 end; |
|
6170
ec0e9d4f2275
mod_storage_metronome_readonly: Add support for mod_muc_mam storage
Link Mauve <linkmauve@linkmauve.fr>
parents:
6169
diff
changeset
|
332 |
|
ec0e9d4f2275
mod_storage_metronome_readonly: Add support for mod_muc_mam storage
Link Mauve <linkmauve@linkmauve.fr>
parents:
6169
diff
changeset
|
333 elseif self.store == "muc_log" then |
|
ec0e9d4f2275
mod_storage_metronome_readonly: Add support for mod_muc_mam storage
Link Mauve <linkmauve@linkmauve.fr>
parents:
6169
diff
changeset
|
334 local base_path = datamanager.getpath("", host, "stanza_log"):sub(1, -5); |
|
6174
877416deacfa
mod_storage_metronome_readonly: Sort the days first before iterating on MUC MAM entries
Link Mauve <linkmauve@linkmauve.fr>
parents:
6172
diff
changeset
|
335 local days = {}; |
|
877416deacfa
mod_storage_metronome_readonly: Sort the days first before iterating on MUC MAM entries
Link Mauve <linkmauve@linkmauve.fr>
parents:
6172
diff
changeset
|
336 for date in dir(base_path) do |
|
877416deacfa
mod_storage_metronome_readonly: Sort the days first before iterating on MUC MAM entries
Link Mauve <linkmauve@linkmauve.fr>
parents:
6172
diff
changeset
|
337 if date ~= "." and date ~= ".." then |
|
877416deacfa
mod_storage_metronome_readonly: Sort the days first before iterating on MUC MAM entries
Link Mauve <linkmauve@linkmauve.fr>
parents:
6172
diff
changeset
|
338 table.insert(days, date); |
|
877416deacfa
mod_storage_metronome_readonly: Sort the days first before iterating on MUC MAM entries
Link Mauve <linkmauve@linkmauve.fr>
parents:
6172
diff
changeset
|
339 end |
|
877416deacfa
mod_storage_metronome_readonly: Sort the days first before iterating on MUC MAM entries
Link Mauve <linkmauve@linkmauve.fr>
parents:
6172
diff
changeset
|
340 end |
|
877416deacfa
mod_storage_metronome_readonly: Sort the days first before iterating on MUC MAM entries
Link Mauve <linkmauve@linkmauve.fr>
parents:
6172
diff
changeset
|
341 table.sort(days); |
|
6170
ec0e9d4f2275
mod_storage_metronome_readonly: Add support for mod_muc_mam storage
Link Mauve <linkmauve@linkmauve.fr>
parents:
6169
diff
changeset
|
342 local list = {}; |
|
6174
877416deacfa
mod_storage_metronome_readonly: Sort the days first before iterating on MUC MAM entries
Link Mauve <linkmauve@linkmauve.fr>
parents:
6172
diff
changeset
|
343 for _, date in ipairs(days) do |
|
877416deacfa
mod_storage_metronome_readonly: Sort the days first before iterating on MUC MAM entries
Link Mauve <linkmauve@linkmauve.fr>
parents:
6172
diff
changeset
|
344 local path = base_path..date.."/"..encode(username)..".dat"; |
|
877416deacfa
mod_storage_metronome_readonly: Sort the days first before iterating on MUC MAM entries
Link Mauve <linkmauve@linkmauve.fr>
parents:
6172
diff
changeset
|
345 local get_data = envloadfile(path, {}); |
|
877416deacfa
mod_storage_metronome_readonly: Sort the days first before iterating on MUC MAM entries
Link Mauve <linkmauve@linkmauve.fr>
parents:
6172
diff
changeset
|
346 if get_data then |
|
877416deacfa
mod_storage_metronome_readonly: Sort the days first before iterating on MUC MAM entries
Link Mauve <linkmauve@linkmauve.fr>
parents:
6172
diff
changeset
|
347 local success, data = pcall(get_data); |
|
877416deacfa
mod_storage_metronome_readonly: Sort the days first before iterating on MUC MAM entries
Link Mauve <linkmauve@linkmauve.fr>
parents:
6172
diff
changeset
|
348 if not success then |
|
877416deacfa
mod_storage_metronome_readonly: Sort the days first before iterating on MUC MAM entries
Link Mauve <linkmauve@linkmauve.fr>
parents:
6172
diff
changeset
|
349 module:log("error", "Unable to load metronome storage"); |
|
877416deacfa
mod_storage_metronome_readonly: Sort the days first before iterating on MUC MAM entries
Link Mauve <linkmauve@linkmauve.fr>
parents:
6172
diff
changeset
|
350 return nil, "Error reading storage"; |
|
877416deacfa
mod_storage_metronome_readonly: Sort the days first before iterating on MUC MAM entries
Link Mauve <linkmauve@linkmauve.fr>
parents:
6172
diff
changeset
|
351 end |
|
877416deacfa
mod_storage_metronome_readonly: Sort the days first before iterating on MUC MAM entries
Link Mauve <linkmauve@linkmauve.fr>
parents:
6172
diff
changeset
|
352 for key, item, when in parse_logs(data) do |
|
877416deacfa
mod_storage_metronome_readonly: Sort the days first before iterating on MUC MAM entries
Link Mauve <linkmauve@linkmauve.fr>
parents:
6172
diff
changeset
|
353 table.insert(list, {key, item, when}); |
|
6170
ec0e9d4f2275
mod_storage_metronome_readonly: Add support for mod_muc_mam storage
Link Mauve <linkmauve@linkmauve.fr>
parents:
6169
diff
changeset
|
354 end |
|
ec0e9d4f2275
mod_storage_metronome_readonly: Add support for mod_muc_mam storage
Link Mauve <linkmauve@linkmauve.fr>
parents:
6169
diff
changeset
|
355 end |
|
ec0e9d4f2275
mod_storage_metronome_readonly: Add support for mod_muc_mam storage
Link Mauve <linkmauve@linkmauve.fr>
parents:
6169
diff
changeset
|
356 end |
|
ec0e9d4f2275
mod_storage_metronome_readonly: Add support for mod_muc_mam storage
Link Mauve <linkmauve@linkmauve.fr>
parents:
6169
diff
changeset
|
357 |
|
ec0e9d4f2275
mod_storage_metronome_readonly: Add support for mod_muc_mam storage
Link Mauve <linkmauve@linkmauve.fr>
parents:
6169
diff
changeset
|
358 local i = 0; |
|
ec0e9d4f2275
mod_storage_metronome_readonly: Add support for mod_muc_mam storage
Link Mauve <linkmauve@linkmauve.fr>
parents:
6169
diff
changeset
|
359 local iter = function() |
|
ec0e9d4f2275
mod_storage_metronome_readonly: Add support for mod_muc_mam storage
Link Mauve <linkmauve@linkmauve.fr>
parents:
6169
diff
changeset
|
360 i = i + 1; |
|
ec0e9d4f2275
mod_storage_metronome_readonly: Add support for mod_muc_mam storage
Link Mauve <linkmauve@linkmauve.fr>
parents:
6169
diff
changeset
|
361 return list[i]; |
|
ec0e9d4f2275
mod_storage_metronome_readonly: Add support for mod_muc_mam storage
Link Mauve <linkmauve@linkmauve.fr>
parents:
6169
diff
changeset
|
362 end |
|
ec0e9d4f2275
mod_storage_metronome_readonly: Add support for mod_muc_mam storage
Link Mauve <linkmauve@linkmauve.fr>
parents:
6169
diff
changeset
|
363 |
|
ec0e9d4f2275
mod_storage_metronome_readonly: Add support for mod_muc_mam storage
Link Mauve <linkmauve@linkmauve.fr>
parents:
6169
diff
changeset
|
364 return function() |
|
ec0e9d4f2275
mod_storage_metronome_readonly: Add support for mod_muc_mam storage
Link Mauve <linkmauve@linkmauve.fr>
parents:
6169
diff
changeset
|
365 local item = iter(); |
|
ec0e9d4f2275
mod_storage_metronome_readonly: Add support for mod_muc_mam storage
Link Mauve <linkmauve@linkmauve.fr>
parents:
6169
diff
changeset
|
366 if item == nil then |
|
ec0e9d4f2275
mod_storage_metronome_readonly: Add support for mod_muc_mam storage
Link Mauve <linkmauve@linkmauve.fr>
parents:
6169
diff
changeset
|
367 if list.close then |
|
ec0e9d4f2275
mod_storage_metronome_readonly: Add support for mod_muc_mam storage
Link Mauve <linkmauve@linkmauve.fr>
parents:
6169
diff
changeset
|
368 list:close(); |
|
ec0e9d4f2275
mod_storage_metronome_readonly: Add support for mod_muc_mam storage
Link Mauve <linkmauve@linkmauve.fr>
parents:
6169
diff
changeset
|
369 end |
|
ec0e9d4f2275
mod_storage_metronome_readonly: Add support for mod_muc_mam storage
Link Mauve <linkmauve@linkmauve.fr>
parents:
6169
diff
changeset
|
370 return |
|
ec0e9d4f2275
mod_storage_metronome_readonly: Add support for mod_muc_mam storage
Link Mauve <linkmauve@linkmauve.fr>
parents:
6169
diff
changeset
|
371 end |
|
6171
44f77f4f653a
mod_storage_metronome_readonly: Revert non-working is_muc hack, the correct with is "message<groupchat"
Link Mauve <linkmauve@linkmauve.fr>
parents:
6170
diff
changeset
|
372 return item[1], item[2], item[3], "message<groupchat" |
|
6170
ec0e9d4f2275
mod_storage_metronome_readonly: Add support for mod_muc_mam storage
Link Mauve <linkmauve@linkmauve.fr>
parents:
6169
diff
changeset
|
373 end |
|
ec0e9d4f2275
mod_storage_metronome_readonly: Add support for mod_muc_mam storage
Link Mauve <linkmauve@linkmauve.fr>
parents:
6169
diff
changeset
|
374 |
|
6147
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
375 else |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
376 return nil, "unsupported-store"; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
377 end |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
378 end |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
379 |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
380 function archive:get(username, wanted_key) |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
381 local iter, err = self:find(username, { key = wanted_key }) |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
382 if not iter then return iter, err; end |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
383 for key, stanza, when, with in iter do |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
384 if key == wanted_key then |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
385 return stanza, when, with; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
386 end |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
387 end |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
388 return nil, "item-not-found"; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
389 end |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
390 |
|
6169
dcd16e349a7a
mod_storage_metronome_readonly: Fix luacheck warnings
Link Mauve <linkmauve@linkmauve.fr>
parents:
6166
diff
changeset
|
391 function archive:set(username, key, new_value, new_when, new_with) -- luacheck: ignore 212/self username key new_value new_when new_with |
|
6147
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
392 return nil, "unsupported-store"; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
393 end |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
394 |
|
6169
dcd16e349a7a
mod_storage_metronome_readonly: Fix luacheck warnings
Link Mauve <linkmauve@linkmauve.fr>
parents:
6166
diff
changeset
|
395 function archive:dates(username) -- luacheck: ignore 212/self username |
|
6147
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
396 return nil, "unsupported-store"; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
397 end |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
398 |
|
6169
dcd16e349a7a
mod_storage_metronome_readonly: Fix luacheck warnings
Link Mauve <linkmauve@linkmauve.fr>
parents:
6166
diff
changeset
|
399 function archive:summary(username, query) -- luacheck: ignore 212/self username query |
|
6147
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
400 return nil, "unsupported-store"; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
401 end |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
402 |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
403 function archive:users() |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
404 if self.store == "archive" then |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
405 return datamanager.users(host, "archiving"); |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
406 elseif self.store:sub(1, 4) == "pep_" then |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
407 local wanted_node = self.store:sub(5); |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
408 local iter, tbl = datamanager.users(host, "pep"); |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
409 return function() |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
410 while true do |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
411 local user = iter(tbl); |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
412 if not user then |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
413 return; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
414 end |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
415 local data = datamanager.load(user, host, "pep"); |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
416 for _, node in ipairs(data["nodes"]) do |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
417 if node == wanted_node then |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
418 return user; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
419 end |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
420 end |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
421 end |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
422 end; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
423 elseif self.store == "offline" then |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
424 return datamanager.users(host, self.store, "list"); |
|
6165
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6147
diff
changeset
|
425 elseif self.store == "uploads" then |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6147
diff
changeset
|
426 local done = false; |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6147
diff
changeset
|
427 return function() |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6147
diff
changeset
|
428 if not done then |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6147
diff
changeset
|
429 done = true; |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6147
diff
changeset
|
430 return ""; |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6147
diff
changeset
|
431 end |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6147
diff
changeset
|
432 end; |
|
6170
ec0e9d4f2275
mod_storage_metronome_readonly: Add support for mod_muc_mam storage
Link Mauve <linkmauve@linkmauve.fr>
parents:
6169
diff
changeset
|
433 elseif self.store == "muc_log" then |
|
ec0e9d4f2275
mod_storage_metronome_readonly: Add support for mod_muc_mam storage
Link Mauve <linkmauve@linkmauve.fr>
parents:
6169
diff
changeset
|
434 local iter, tbl = pairs(datamanager.load(nil, host, "persistent")); |
|
ec0e9d4f2275
mod_storage_metronome_readonly: Add support for mod_muc_mam storage
Link Mauve <linkmauve@linkmauve.fr>
parents:
6169
diff
changeset
|
435 local jid = nil; |
|
ec0e9d4f2275
mod_storage_metronome_readonly: Add support for mod_muc_mam storage
Link Mauve <linkmauve@linkmauve.fr>
parents:
6169
diff
changeset
|
436 return function() |
|
ec0e9d4f2275
mod_storage_metronome_readonly: Add support for mod_muc_mam storage
Link Mauve <linkmauve@linkmauve.fr>
parents:
6169
diff
changeset
|
437 jid = iter(tbl, jid); |
|
ec0e9d4f2275
mod_storage_metronome_readonly: Add support for mod_muc_mam storage
Link Mauve <linkmauve@linkmauve.fr>
parents:
6169
diff
changeset
|
438 if not jid then |
|
ec0e9d4f2275
mod_storage_metronome_readonly: Add support for mod_muc_mam storage
Link Mauve <linkmauve@linkmauve.fr>
parents:
6169
diff
changeset
|
439 return; |
|
ec0e9d4f2275
mod_storage_metronome_readonly: Add support for mod_muc_mam storage
Link Mauve <linkmauve@linkmauve.fr>
parents:
6169
diff
changeset
|
440 end |
|
ec0e9d4f2275
mod_storage_metronome_readonly: Add support for mod_muc_mam storage
Link Mauve <linkmauve@linkmauve.fr>
parents:
6169
diff
changeset
|
441 local user = jid:gsub("@.*", ""); |
|
ec0e9d4f2275
mod_storage_metronome_readonly: Add support for mod_muc_mam storage
Link Mauve <linkmauve@linkmauve.fr>
parents:
6169
diff
changeset
|
442 return user; |
|
ec0e9d4f2275
mod_storage_metronome_readonly: Add support for mod_muc_mam storage
Link Mauve <linkmauve@linkmauve.fr>
parents:
6169
diff
changeset
|
443 end; |
|
6147
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
444 else |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
445 return nil, "unsupported-store"; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
446 end |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
447 end |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
448 |
|
6169
dcd16e349a7a
mod_storage_metronome_readonly: Fix luacheck warnings
Link Mauve <linkmauve@linkmauve.fr>
parents:
6166
diff
changeset
|
449 function archive:trim(username, to_when) -- luacheck: ignore 212/self username to_when |
|
6147
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
450 return nil, "unsupported-store"; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
451 end |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
452 |
|
6169
dcd16e349a7a
mod_storage_metronome_readonly: Fix luacheck warnings
Link Mauve <linkmauve@linkmauve.fr>
parents:
6166
diff
changeset
|
453 function archive:delete(username, query) -- luacheck: ignore 212/self username query |
|
6147
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
454 return nil, "unsupported-store"; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
455 end |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
456 |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
457 module:provides("storage", driver); |