From fbfbb968727617ae9bbeedc9b3d4adb7636ad5da Mon Sep 17 00:00:00 2001 From: Christophe Romain Date: Tue, 22 Nov 2016 14:48:01 +0100 Subject: Improve ODBC import --- src/mod_last.erl | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) (limited to 'src/mod_last.erl') diff --git a/src/mod_last.erl b/src/mod_last.erl index 56e3b1c5e..47db0b6c6 100644 --- a/src/mod_last.erl +++ b/src/mod_last.erl @@ -34,8 +34,8 @@ -behaviour(gen_mod). -export([start/2, stop/1, process_local_iq/1, export/1, - process_sm_iq/1, on_presence_update/4, import/1, - import/3, store_last_info/4, get_last_info/2, + process_sm_iq/1, on_presence_update/4, import_info/0, + import/5, store_last_info/4, get_last_info/2, remove_user/2, transform_options/1, mod_opt_type/1, opt_type/1, register_user/2, depends/2]). @@ -207,18 +207,28 @@ remove_user(User, Server) -> Mod = gen_mod:db_mod(LServer, ?MODULE), Mod:remove_user(LUser, LServer). -export(LServer) -> - Mod = gen_mod:db_mod(LServer, ?MODULE), - Mod:export(LServer). - -import(LServer) -> - Mod = gen_mod:db_mod(LServer, ?MODULE), - Mod:import(LServer). +import_info() -> + [{<<"last">>, 3}]. -import(LServer, DBType, LA) -> +import_start(LServer, DBType) -> + Mod = gen_mod:db_mod(DBType, ?MODULE), + Mod:init(LServer, []). + +import(LServer, {sql, _}, DBType, <<"last">>, [LUser, TimeStamp, State]) -> + TS = case TimeStamp of + <<"">> -> 0; + _ -> jlib:binary_to_integer(TimeStamp) + end, + LA = #last_activity{us = {LUser, LServer}, + timestamp = TS, + status = State}, Mod = gen_mod:db_mod(DBType, ?MODULE), Mod:import(LServer, LA). +export(LServer) -> + Mod = gen_mod:db_mod(LServer, ?MODULE), + Mod:export(LServer). + transform_options(Opts) -> lists:foldl(fun transform_options/2, [], Opts). -- cgit v1.2.3