mirror of
https://git.friendi.ca/friendica/friendica-addons.git
synced 2024-11-19 01:43:41 +00:00
jappixmini: improve roster management
This commit is contained in:
parent
bec530c9bb
commit
e7d4a17428
1 changed files with 46 additions and 6 deletions
|
@ -111,13 +111,53 @@ function jappixmini_manage_roster(contacts, autoapprove, autosubscribe) {
|
|||
});
|
||||
|
||||
// autosubscribe
|
||||
if (autosubscribe) {
|
||||
for (i=0; i<contacts.length; i++) {
|
||||
xid = contacts[i];
|
||||
sendSubscribe(xid, "subscribe");
|
||||
console.log("Subscribed to "+xid);
|
||||
}
|
||||
if (!autosubscribe) return;
|
||||
|
||||
var get_roster = new JSJaCIQ();
|
||||
get_roster.setType('get');
|
||||
get_roster.setQuery(NS_ROSTER);
|
||||
|
||||
con.send(get_roster, function(iq){
|
||||
var handleXML = iq.getQuery();
|
||||
|
||||
// filter out contacts that are already in the roster
|
||||
$(handleXML).find('item').each(function() {
|
||||
xid = $(this).attr("jid");
|
||||
name = $(this).attr("name");
|
||||
subscription = $(this).attr("subscription");
|
||||
console.log(xid+" "+subscription);
|
||||
|
||||
// ignore accounts not in the list
|
||||
if (contacts[xid]===undefined) return;
|
||||
|
||||
// TODO: add to Friendica group
|
||||
|
||||
// TODO: unblock and authorize if necessary
|
||||
|
||||
// remove from list
|
||||
delete contacts[xid];
|
||||
});
|
||||
|
||||
// go through remaining contacts
|
||||
for (var xid in contacts) {if(!contacts.hasOwnProperty(xid)) continue;
|
||||
// subscribe
|
||||
var presence = new JSJaCPresence();
|
||||
presence.setTo(xid);
|
||||
presence.setType("subscribe");
|
||||
con.send(presence);
|
||||
console.log("subscribed to "+xid);
|
||||
|
||||
// add to roster
|
||||
var iq = new JSJaCIQ();
|
||||
iq.setType('set');
|
||||
var iqQuery = iq.setQuery(NS_ROSTER);
|
||||
var item = iqQuery.appendChild(iq.buildNode('item', {'xmlns': NS_ROSTER, 'jid': xid}));
|
||||
item.setAttribute('name', contacts[xid]);
|
||||
item.appendChild(iq.buildNode('group', {'xmlns': NS_ROSTER}, "Friendica"));
|
||||
con.send(iq);
|
||||
console.log("added to roster "+xid);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function jappixmini_addon_subscribe() {
|
||||
|
|
Loading…
Reference in a new issue