Mercurial > prosody-modules
annotate mod_storage_metronome_readonly/mod_storage_metronome_readonly.lua @ 6141:dcd16e349a7a
mod_storage_metronome_readonly: Fix luacheck warnings
| author | Link Mauve <linkmauve@linkmauve.fr> |
|---|---|
| date | Mon, 27 Jan 2025 21:33:18 +0100 |
| parents | 8eec0a296218 |
| children | ec0e9d4f2275 |
| rev | line source |
|---|---|
|
6119
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; |
|
6141
dcd16e349a7a
mod_storage_metronome_readonly: Fix luacheck warnings
Link Mauve <linkmauve@linkmauve.fr>
parents:
6138
diff
changeset
|
5 local gen_id = require "prosody.util.id".medium; |
|
6119
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; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
8 |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
9 local host = module.host; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
10 |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
11 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
|
12 |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
13 -- Metronome doesn’t store the item publish time, so fallback to the migration time. |
|
6141
dcd16e349a7a
mod_storage_metronome_readonly: Fix luacheck warnings
Link Mauve <linkmauve@linkmauve.fr>
parents:
6138
diff
changeset
|
14 local time_now = math.floor(now()); |
|
6119
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
15 |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
16 local function encode (s) |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
17 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
|
18 end |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
19 |
|
6137
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6119
diff
changeset
|
20 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:
6119
diff
changeset
|
21 local mimes = {}; |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6119
diff
changeset
|
22 while true do |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6119
diff
changeset
|
23 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:
6119
diff
changeset
|
24 if not line then |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6119
diff
changeset
|
25 break; |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6119
diff
changeset
|
26 end |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6119
diff
changeset
|
27 if line ~= "" then |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6119
diff
changeset
|
28 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:
6119
diff
changeset
|
29 if first_char ~= "#" then |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6119
diff
changeset
|
30 --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:
6119
diff
changeset
|
31 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:
6119
diff
changeset
|
32 local mime = match(); |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6119
diff
changeset
|
33 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:
6119
diff
changeset
|
34 mimes[ext] = mime; |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6119
diff
changeset
|
35 end |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6119
diff
changeset
|
36 end |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6119
diff
changeset
|
37 end |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6119
diff
changeset
|
38 end |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6119
diff
changeset
|
39 file:close(); |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6119
diff
changeset
|
40 |
|
6119
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
41 local driver = {}; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
42 |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
43 function driver:open(store, typ) |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
44 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
|
45 if not mt then |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
46 return nil, "unsupported-store"; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
47 end |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
48 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
|
49 end |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
50 |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
51 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
|
52 if username == true then |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
53 local nodes = set.new(); |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
54 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
|
55 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
|
56 |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
57 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
|
58 nodes:add("pep_" .. node); |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
59 end |
|
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 return function() |
|
6141
dcd16e349a7a
mod_storage_metronome_readonly: Fix luacheck warnings
Link Mauve <linkmauve@linkmauve.fr>
parents:
6138
diff
changeset
|
62 -- luacheck: ignore 512 |
|
6119
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
63 for node in nodes do |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
64 nodes:remove(node); |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
65 return node; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
66 end |
|
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 |
|
6141
dcd16e349a7a
mod_storage_metronome_readonly: Fix luacheck warnings
Link Mauve <linkmauve@linkmauve.fr>
parents:
6138
diff
changeset
|
71 function driver:purge(user) -- luacheck: ignore 212/self user |
|
6119
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
72 return nil, "unsupported-store"; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
73 end |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
74 |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
75 local keyval = { }; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
76 driver.keyval = { __index = keyval }; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
77 |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
78 function keyval:get(user) |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
79 if self.store == "pep" then |
|
6141
dcd16e349a7a
mod_storage_metronome_readonly: Fix luacheck warnings
Link Mauve <linkmauve@linkmauve.fr>
parents:
6138
diff
changeset
|
80 local ret = datamanager.load(user, host, self.store); |
|
dcd16e349a7a
mod_storage_metronome_readonly: Fix luacheck warnings
Link Mauve <linkmauve@linkmauve.fr>
parents:
6138
diff
changeset
|
81 local nodes = ret["nodes"]; |
|
6119
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
82 local result = {}; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
83 |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
84 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
|
85 |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
86 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
|
87 local path = ("%s/%s.dat"):format(pep_base_path, encode(node)); |
|
6141
dcd16e349a7a
mod_storage_metronome_readonly: Fix luacheck warnings
Link Mauve <linkmauve@linkmauve.fr>
parents:
6138
diff
changeset
|
88 local get_data = envloadfile(path, {}); |
|
dcd16e349a7a
mod_storage_metronome_readonly: Fix luacheck warnings
Link Mauve <linkmauve@linkmauve.fr>
parents:
6138
diff
changeset
|
89 if not get_data then |
|
dcd16e349a7a
mod_storage_metronome_readonly: Fix luacheck warnings
Link Mauve <linkmauve@linkmauve.fr>
parents:
6138
diff
changeset
|
90 module:log("error", "Failed to load metronome storage"); |
|
6119
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
91 return nil, "Error reading storage"; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
92 end |
|
6141
dcd16e349a7a
mod_storage_metronome_readonly: Fix luacheck warnings
Link Mauve <linkmauve@linkmauve.fr>
parents:
6138
diff
changeset
|
93 local success, data = pcall(get_data); |
|
6119
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
94 if not success then |
|
6141
dcd16e349a7a
mod_storage_metronome_readonly: Fix luacheck warnings
Link Mauve <linkmauve@linkmauve.fr>
parents:
6138
diff
changeset
|
95 module:log("error", "Unable to load metronome storage"); |
|
6119
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
96 return nil, "Error reading storage"; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
97 end |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
98 local new_node = {}; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
99 new_node["name"] = node; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
100 new_node["subscribers"] = data["subscribers"]; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
101 new_node["affiliations"] = data["affiliations"]; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
102 new_node["config"] = data["config"]; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
103 result[node] = new_node; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
104 end |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
105 return result; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
106 elseif self.store == "cloud_notify" then |
|
6141
dcd16e349a7a
mod_storage_metronome_readonly: Fix luacheck warnings
Link Mauve <linkmauve@linkmauve.fr>
parents:
6138
diff
changeset
|
107 local ret = datamanager.load(user, host, "push"); |
|
6119
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
108 local result = {}; |
|
6141
dcd16e349a7a
mod_storage_metronome_readonly: Fix luacheck warnings
Link Mauve <linkmauve@linkmauve.fr>
parents:
6138
diff
changeset
|
109 for jid, data in pairs(ret) do |
|
6119
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
110 local secret = data["secret"]; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
111 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
|
112 -- 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
|
113 local options; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
114 if secret then |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
115 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
|
116 :tag("field", { var = "FORM_TYPE" }) |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
117 :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
|
118 :up() |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
119 :tag("field", { var = "secret" }) |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
120 :text_tag("value", secret)); |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
121 end |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
122 result[jid.."<"..node] = { |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
123 jid = jid, |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
124 node = node, |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
125 options = options, |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
126 }; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
127 end |
|
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 return result; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
130 elseif self.store == "roster" then |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
131 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
|
132 elseif self.store == "vcard" then |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
133 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
|
134 elseif self.store == "private" then |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
135 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
|
136 |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
137 -- 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
|
138 elseif self.store == "persistent" then |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
139 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
|
140 elseif self.store == "config" then |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
141 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
|
142 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
|
143 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
|
144 return data and data["photo"]; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
145 else |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
146 return nil, "unsupported-store"; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
147 end |
|
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 |
|
6141
dcd16e349a7a
mod_storage_metronome_readonly: Fix luacheck warnings
Link Mauve <linkmauve@linkmauve.fr>
parents:
6138
diff
changeset
|
150 function keyval:set(user, data) -- luacheck: ignore 212/self user data |
|
6119
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
151 return nil, "unsupported-store"; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
152 end |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
153 |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
154 function keyval:users() |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
155 local store; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
156 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
|
157 store = "room_icons"; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
158 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
|
159 store = "push"; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
160 else |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
161 store = self.store; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
162 end |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
163 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
|
164 end |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
165 |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
166 local archive = {}; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
167 driver.archive = { __index = archive }; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
168 |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
169 archive.caps = { |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
170 total = true; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
171 quota = archive_item_limit; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
172 full_id_range = true; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
173 ids = true; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
174 }; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
175 |
|
6141
dcd16e349a7a
mod_storage_metronome_readonly: Fix luacheck warnings
Link Mauve <linkmauve@linkmauve.fr>
parents:
6138
diff
changeset
|
176 function archive:append(username, key, value, when, with) -- luacheck: ignore 212/self username key value when with |
|
6119
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
177 return nil, "unsupported-store"; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
178 end |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
179 |
|
6141
dcd16e349a7a
mod_storage_metronome_readonly: Fix luacheck warnings
Link Mauve <linkmauve@linkmauve.fr>
parents:
6138
diff
changeset
|
180 function archive:find(username, query) -- luacheck: ignore 212/self query |
|
6119
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
181 if self.store == "archive" then |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
182 local jid = username.."@"..host; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
183 local data = datamanager.load(username, host, "archiving"); |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
184 local iter = ipairs(data["logs"]); |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
185 local i = 0; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
186 local message; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
187 return function() |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
188 i, message = iter(data["logs"], i); |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
189 if not message then |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
190 return; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
191 end |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
192 |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
193 local with; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
194 local bare_to = message["bare_to"]; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
195 local bare_from = message["bare_from"]; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
196 if jid == bare_to then |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
197 -- received |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
198 with = bare_from; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
199 else |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
200 -- sent |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
201 with = bare_to; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
202 end |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
203 |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
204 local to = message["to"]; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
205 local from = message["from"]; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
206 local id = message["id"]; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
207 local type = message["type"]; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
208 |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
209 local key = message["uid"]; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
210 local when = message["timestamp"]; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
211 local item = st.message({ to = to, from = from, id = id, type = type }, message["body"]); |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
212 if message["tags"] then |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
213 for _, tag in ipairs(message["tags"]) do |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
214 setmetatable(tag, st.stanza_mt); |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
215 item:add_direct_child(tag); |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
216 end |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
217 end |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
218 if message["marker"] then |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
219 item:tag(message["marker"], { xmlns = "urn:xmpp:chat-markers:0", id = message["marker_id"] }); |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
220 end |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
221 return key, item, when, with; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
222 end; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
223 |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
224 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
|
225 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
|
226 |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
227 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
|
228 local path = ("%s/%s.dat"):format(pep_base_path, encode(node)); |
|
6141
dcd16e349a7a
mod_storage_metronome_readonly: Fix luacheck warnings
Link Mauve <linkmauve@linkmauve.fr>
parents:
6138
diff
changeset
|
229 local get_data = envloadfile(path, {}); |
|
dcd16e349a7a
mod_storage_metronome_readonly: Fix luacheck warnings
Link Mauve <linkmauve@linkmauve.fr>
parents:
6138
diff
changeset
|
230 if not get_data then |
|
dcd16e349a7a
mod_storage_metronome_readonly: Fix luacheck warnings
Link Mauve <linkmauve@linkmauve.fr>
parents:
6138
diff
changeset
|
231 module:log("debug", "Failed to load metronome storage"); |
|
6119
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
232 return {}; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
233 end |
|
6141
dcd16e349a7a
mod_storage_metronome_readonly: Fix luacheck warnings
Link Mauve <linkmauve@linkmauve.fr>
parents:
6138
diff
changeset
|
234 local success, data = pcall(get_data); |
|
6119
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
235 if not success then |
|
6141
dcd16e349a7a
mod_storage_metronome_readonly: Fix luacheck warnings
Link Mauve <linkmauve@linkmauve.fr>
parents:
6138
diff
changeset
|
236 module:log("error", "Unable to load metronome storage"); |
|
6119
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
237 return nil, "Error reading storage"; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
238 end |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
239 |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
240 local iter = pairs(data["data"]); |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
241 local key = nil; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
242 local payload; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
243 return function() |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
244 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
|
245 if not key then |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
246 return; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
247 end |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
248 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
|
249 local with = data["data_author"][key]; |
|
6141
dcd16e349a7a
mod_storage_metronome_readonly: Fix luacheck warnings
Link Mauve <linkmauve@linkmauve.fr>
parents:
6138
diff
changeset
|
250 return key, item, time_now, with; |
|
6119
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
251 end; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
252 elseif self.store == "offline" then |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
253 -- 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
|
254 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
|
255 if not list then |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
256 if err then |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
257 return list, err; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
258 end |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
259 return function() |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
260 end; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
261 end |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
262 |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
263 local i = 0; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
264 local iter = function() |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
265 i = i + 1; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
266 return list[i]; |
|
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 return function() |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
270 local item = iter(); |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
271 if item == nil then |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
272 if list.close then |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
273 list:close(); |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
274 end |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
275 return |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
276 end |
|
6141
dcd16e349a7a
mod_storage_metronome_readonly: Fix luacheck warnings
Link Mauve <linkmauve@linkmauve.fr>
parents:
6138
diff
changeset
|
277 local key = gen_id(); |
|
6119
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
278 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
|
279 local with = ""; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
280 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
|
281 item.attr.stamp = nil; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
282 -- 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
|
283 item.attr.stamp_legacy = nil; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
284 item = st.deserialize(item); |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
285 return key, item, when, with; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
286 end |
|
6137
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6119
diff
changeset
|
287 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:
6119
diff
changeset
|
288 local list = {}; |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6119
diff
changeset
|
289 |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6119
diff
changeset
|
290 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:
6119
diff
changeset
|
291 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:
6119
diff
changeset
|
292 if not data then |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6119
diff
changeset
|
293 if err then |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6119
diff
changeset
|
294 return data, err; |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6119
diff
changeset
|
295 end |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6119
diff
changeset
|
296 return function() |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6119
diff
changeset
|
297 end; |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6119
diff
changeset
|
298 end |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6119
diff
changeset
|
299 |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6119
diff
changeset
|
300 for _, stuff in ipairs(data) do |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6119
diff
changeset
|
301 local dir = stuff.dir; |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6119
diff
changeset
|
302 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:
6119
diff
changeset
|
303 local time = stuff.time; |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6119
diff
changeset
|
304 local filename = stuff.filename; |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6119
diff
changeset
|
305 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:
6119
diff
changeset
|
306 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:
6119
diff
changeset
|
307 local stanza = st.stanza("request", { xmlns = "urn:xmpp:http:upload:0", size = size, ["content-type"] = mime, filename = filename }) |
|
6138
8eec0a296218
mod_storage_metronome_readonly: Fix with to be JID, and not just username
Link Mauve <linkmauve@linkmauve.fr>
parents:
6137
diff
changeset
|
308 list[dir] = {user.."@"..host, time, stanza}; |
|
6137
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6119
diff
changeset
|
309 end |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6119
diff
changeset
|
310 end |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6119
diff
changeset
|
311 |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6119
diff
changeset
|
312 local iter = pairs(list); |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6119
diff
changeset
|
313 local key = nil; |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6119
diff
changeset
|
314 local payload; |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6119
diff
changeset
|
315 return function() |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6119
diff
changeset
|
316 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:
6119
diff
changeset
|
317 if not key then |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6119
diff
changeset
|
318 return; |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6119
diff
changeset
|
319 end |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6119
diff
changeset
|
320 local with = payload[1]; |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6119
diff
changeset
|
321 local when = payload[2]; |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6119
diff
changeset
|
322 local stanza = payload[3]; |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6119
diff
changeset
|
323 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:
6119
diff
changeset
|
324 end; |
|
6119
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
325 else |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
326 return nil, "unsupported-store"; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
327 end |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
328 end |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
329 |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
330 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
|
331 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
|
332 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
|
333 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
|
334 if key == wanted_key then |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
335 return stanza, when, with; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
336 end |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
337 end |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
338 return nil, "item-not-found"; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
339 end |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
340 |
|
6141
dcd16e349a7a
mod_storage_metronome_readonly: Fix luacheck warnings
Link Mauve <linkmauve@linkmauve.fr>
parents:
6138
diff
changeset
|
341 function archive:set(username, key, new_value, new_when, new_with) -- luacheck: ignore 212/self username key new_value new_when new_with |
|
6119
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
342 return nil, "unsupported-store"; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
343 end |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
344 |
|
6141
dcd16e349a7a
mod_storage_metronome_readonly: Fix luacheck warnings
Link Mauve <linkmauve@linkmauve.fr>
parents:
6138
diff
changeset
|
345 function archive:dates(username) -- luacheck: ignore 212/self username |
|
6119
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
346 return nil, "unsupported-store"; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
347 end |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
348 |
|
6141
dcd16e349a7a
mod_storage_metronome_readonly: Fix luacheck warnings
Link Mauve <linkmauve@linkmauve.fr>
parents:
6138
diff
changeset
|
349 function archive:summary(username, query) -- luacheck: ignore 212/self username query |
|
6119
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
350 return nil, "unsupported-store"; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
351 end |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
352 |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
353 function archive:users() |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
354 if self.store == "archive" then |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
355 return datamanager.users(host, "archiving"); |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
356 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
|
357 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
|
358 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
|
359 return function() |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
360 while true do |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
361 local user = iter(tbl); |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
362 if not user then |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
363 return; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
364 end |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
365 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
|
366 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
|
367 if node == wanted_node then |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
368 return user; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
369 end |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
370 end |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
371 end |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
372 end; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
373 elseif self.store == "offline" then |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
374 return datamanager.users(host, self.store, "list"); |
|
6137
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6119
diff
changeset
|
375 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:
6119
diff
changeset
|
376 local done = false; |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6119
diff
changeset
|
377 return function() |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6119
diff
changeset
|
378 if not done then |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6119
diff
changeset
|
379 done = true; |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6119
diff
changeset
|
380 return ""; |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6119
diff
changeset
|
381 end |
|
11650fe276c0
mod_storage_metronome_readonly: Add support for migrating to mod_http_file_share
Link Mauve <linkmauve@linkmauve.fr>
parents:
6119
diff
changeset
|
382 end; |
|
6119
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
383 else |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
384 return nil, "unsupported-store"; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
385 end |
|
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 |
|
6141
dcd16e349a7a
mod_storage_metronome_readonly: Fix luacheck warnings
Link Mauve <linkmauve@linkmauve.fr>
parents:
6138
diff
changeset
|
388 function archive:trim(username, to_when) -- luacheck: ignore 212/self username to_when |
|
6119
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
389 return nil, "unsupported-store"; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
390 end |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
391 |
|
6141
dcd16e349a7a
mod_storage_metronome_readonly: Fix luacheck warnings
Link Mauve <linkmauve@linkmauve.fr>
parents:
6138
diff
changeset
|
392 function archive:delete(username, query) -- luacheck: ignore 212/self username query |
|
6119
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
393 return nil, "unsupported-store"; |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
394 end |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
395 |
|
6ba0489e4828
mod_storage_metronome_readonly: New module for migrating off Metronome
Link Mauve <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
396 module:provides("storage", driver); |
