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;