diff options
author | Christophe Romain <christophe.romain@process-one.net> | 2016-11-22 14:48:01 +0100 |
---|---|---|
committer | Christophe Romain <christophe.romain@process-one.net> | 2016-11-22 14:48:01 +0100 |
commit | fbfbb968727617ae9bbeedc9b3d4adb7636ad5da (patch) | |
tree | e48dafe80850fe41be32a3ab47f27e6e130b832b /src/mod_last.erl | |
parent | Add new xmpp repo as dependency in mix.exs (diff) |
Improve ODBC import
Diffstat (limited to 'src/mod_last.erl')
-rw-r--r-- | src/mod_last.erl | 30 |
1 files changed, 20 insertions, 10 deletions
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). |