Mercurial > prosody-modules
comparison mod_bookmarks/mod_bookmarks.lua @ 3234:b1e25943a004
mod_bookmarks: Fire empty and updated events, for other modules to use.
| author | Emmanuel Gil Peyrot <linkmauve@linkmauve.fr> |
|---|---|
| date | Sat, 18 Aug 2018 16:55:52 +0100 |
| parents | 176b537a658c |
| children | bd8e94ff726b |
comparison
equal
deleted
inserted
replaced
| 3233:176b537a658c | 3234:b1e25943a004 |
|---|---|
| 83 local username = session.username; | 83 local username = session.username; |
| 84 | 84 |
| 85 local data, err = private_storage:get(username, "storage:storage:bookmarks"); | 85 local data, err = private_storage:get(username, "storage:storage:bookmarks"); |
| 86 if not data then | 86 if not data then |
| 87 module:log("debug", "No existing Private XML bookmarks for %s, migration already done: %s", username, err); | 87 module:log("debug", "No existing Private XML bookmarks for %s, migration already done: %s", username, err); |
| 88 local service = mod_pep.get_pep_service(username); | |
| 89 local ok, id = service:get_last_item("storage:bookmarks", session.full_jid); | |
| 90 if not ok or not id then | |
| 91 module:log("debug", "Additionally, no PEP bookmarks were existing for %s", username); | |
| 92 module:fire_event("bookmarks/empty", { session = session }); | |
| 93 end | |
| 88 return; | 94 return; |
| 89 end | 95 end |
| 90 local bookmarks = st.deserialize(data); | 96 local bookmarks = st.deserialize(data); |
| 91 module:log("debug", "Got private bookmarks of %s: %s", username, bookmarks); | 97 module:log("debug", "Got private bookmarks of %s: %s", username, bookmarks); |
| 92 | 98 |
| 104 return; | 110 return; |
| 105 end | 111 end |
| 106 module:log("debug", "Removed private bookmarks of %s, migration done!", username); | 112 module:log("debug", "Removed private bookmarks of %s, migration done!", username); |
| 107 end | 113 end |
| 108 | 114 |
| 109 module:hook("iq-get/bare/jabber:iq:private:query", on_retrieve_private_xml) | 115 local function on_item_published(event) |
| 110 module:hook("iq-set/bare/jabber:iq:private:query", on_publish_private_xml) | 116 if event.node == "storage:bookmarks" then |
| 111 module:hook("resource-bind", on_resource_bind) | 117 module:fire_event("bookmarks/updated", event); |
| 118 end | |
| 119 end | |
| 120 | |
| 121 module:hook("iq-get/bare/jabber:iq:private:query", on_retrieve_private_xml); | |
| 122 module:hook("iq-set/bare/jabber:iq:private:query", on_publish_private_xml); | |
| 123 module:hook("resource-bind", on_resource_bind); | |
| 124 module:hook("item-published", on_item_published); |
