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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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);