Software /
code /
prosody
Changeset
9555:ed5a5ddcef17
mod_mam: Remove embedded fallback archive driver (fixes #972)
It was equivalent to mod_storage_memory, which is included as a separate module now.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Thu, 25 Oct 2018 21:59:17 +0200 |
parents | 9554:cba6e6168d26 |
children | 9556:e4c09e335bd9 |
files | plugins/mod_mam/fallback_archive.lib.lua plugins/mod_mam/mod_mam.lua |
diffstat | 2 files changed, 0 insertions(+), 92 deletions(-) [+] |
line wrap: on
line diff
--- a/plugins/mod_mam/fallback_archive.lib.lua Thu Oct 25 21:58:22 2018 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,91 +0,0 @@ --- Prosody IM --- Copyright (C) 2008-2017 Matthew Wild --- Copyright (C) 2008-2017 Waqas Hussain --- Copyright (C) 2011-2017 Kim Alvefur --- --- This project is MIT/X11 licensed. Please see the --- COPYING file in the source package for more information. --- --- luacheck: ignore 212/self - -local uuid = require "util.uuid".generate; -local store = module:shared("archive"); -local archive_store = { _provided_by = "mam"; name = "fallback"; }; - -function archive_store:append(username, key, value, when, with) - local archive = store[username]; - if not archive then - archive = { [0] = 0 }; - store[username] = archive; - end - local index = (archive[0] or #archive)+1; - local item = { key = key, when = when, with = with, value = value }; - if not key or archive[key] then - key = uuid(); - item.key = key; - end - archive[index] = item; - archive[key] = index; - archive[0] = index; - return key; -end - -function archive_store:find(username, query) - local archive = store[username] or {}; - local start, stop, step = 1, archive[0] or #archive, 1; - local qstart, qend, qwith = -math.huge, math.huge; - local limit; - - if query then - if query.reverse then - start, stop, step = stop, start, -1; - if query.before and archive[query.before] then - start = archive[query.before] - 1; - end - elseif query.after and archive[query.after] then - start = archive[query.after] + 1; - end - qwith = query.with; - limit = query.limit; - qstart = query.start or qstart; - qend = query["end"] or qend; - end - - return function () - if limit and limit <= 0 then return end - for i = start, stop, step do - local item = archive[i]; - if (not qwith or qwith == item.with) and item.when >= qstart and item.when <= qend then - if limit then limit = limit - 1; end - start = i + step; -- Start on next item - return item.key, item.value, item.when, item.with; - end - end - end -end - -function archive_store:delete(username, query) - if not query or next(query) == nil then - -- no specifics, delete everything - store[username] = nil; - return true; - end - local archive = store[username]; - if not archive then return true; end -- no messages, nothing to delete - - local qstart = query.start or -math.huge; - local qend = query["end"] or math.huge; - local qwith = query.with; - store[username] = nil; - for i = 1, #archive do - local item = archive[i]; - local when, with = item.when, item.when; - -- Add things that don't match the query - if not ((not qwith or qwith == item.with) and item.when >= qstart and item.when <= qend) then - self:append(username, item.key, item.value, when, with); - end - end - return true; -end - -return archive_store;
--- a/plugins/mod_mam/mod_mam.lua Thu Oct 25 21:58:22 2018 +0200 +++ b/plugins/mod_mam/mod_mam.lua Thu Oct 25 21:59:17 2018 +0200 @@ -44,7 +44,6 @@ error("mod_"..(archive._provided_by or archive.name and "storage_"..archive.name).." does not support archiving\n" .."See https://prosody.im/doc/storage and https://prosody.im/doc/archiving for more information"); end - local use_total = module:get_option_boolean("mam_include_total", true); local cleanup;