diff options
author | Evgeniy Khramtsov <ekhramtsov@process-one.net> | 2012-04-04 20:37:43 +1000 |
---|---|---|
committer | Evgeniy Khramtsov <ekhramtsov@process-one.net> | 2012-04-04 20:37:43 +1000 |
commit | 41a0eae0bd1b70a15225c8ed95fa8c86115191c6 (patch) | |
tree | e44d4c98844f9ee4df4abd0d17189839801522bc /src/ejd2odbc.erl | |
parent | ODBC support for mod_irc (diff) |
ODBC support for mod_shared_roster
Diffstat (limited to 'src/ejd2odbc.erl')
-rw-r--r-- | src/ejd2odbc.erl | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/ejd2odbc.erl b/src/ejd2odbc.erl index 42956fd77..206b403cd 100644 --- a/src/ejd2odbc.erl +++ b/src/ejd2odbc.erl @@ -40,6 +40,8 @@ export_motd/2, export_motd_users/2, export_irc_custom/2, + export_sr_group/2, + export_sr_user/2, export_muc_room/2, export_muc_registered/2]). @@ -70,6 +72,8 @@ -record(irc_custom, {us_host, data}). -record(muc_room, {name_host, opts}). -record(muc_registered, {us_host, nick}). +-record(sr_group, {group_host, opts}). +-record(sr_user, {us, group_host}). -record(motd, {server, packet}). -record(motd_users, {us, dummy = []}). @@ -397,6 +401,38 @@ export_privacy(Server, Output) -> [] end). +export_sr_group(Server, Output) -> + export_common( + Server, sr_group, Output, + fun(Host, #sr_group{group_host = {Group, LServer}, opts = Opts}) + when LServer == Host -> + SGroup = ejabberd_odbc:escape(Group), + SOpts = mod_shared_roster_odbc:encode_opts(Opts), + ["delete from sr_group where name='", Group, "';" + "insert into sr_group(name, opts) values ('", + SGroup, "', '", SOpts, "');"]; + (_Host, _R) -> + [] + end). + +export_sr_user(Server, Output) -> + export_common( + Server, sr_user, Output, + fun(Host, #sr_user{us = {U, S}, group_host = {Group, LServer}}) + when LServer == Host -> + SGroup = ejabberd_odbc:escape(Group), + SJID = ejabberd_odbc:escape( + jlib:jid_to_string( + jlib:jid_tolower( + jlib:make_jid(U, S, "")))), + ["delete from sr_user where jid='", SJID, + "'and grp='", Group, "';" + "insert into sr_user(jid, grp) values ('", + SJID, "', '", SGroup, "');"]; + (_Host, _R) -> + [] + end). + export_motd(Server, Output) -> export_common( Server, motd, Output, |