aboutsummaryrefslogtreecommitdiff
path: root/src/mod_last.erl
diff options
context:
space:
mode:
authorChristophe Romain <christophe.romain@process-one.net>2016-11-22 14:48:01 +0100
committerChristophe Romain <christophe.romain@process-one.net>2016-11-22 14:48:01 +0100
commitfbfbb968727617ae9bbeedc9b3d4adb7636ad5da (patch)
treee48dafe80850fe41be32a3ab47f27e6e130b832b /src/mod_last.erl
parentAdd 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.erl30
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).