broadcast notices to jabber
darcs-hash:20080624014241-34904-39ace8e82e50e5f50c5980b5fb3256184a7c9050.gz
This commit is contained in:
parent
d1e55b3777
commit
a8a2f40696
|
@ -20,6 +20,7 @@
|
||||||
if (!defined('LACONICA')) { exit(1); }
|
if (!defined('LACONICA')) { exit(1); }
|
||||||
|
|
||||||
require_once(INSTALLDIR.'/lib/settingsaction.php');
|
require_once(INSTALLDIR.'/lib/settingsaction.php');
|
||||||
|
require_once(INSTALLDIR.'/lib/jabber.php');
|
||||||
|
|
||||||
class ImsettingsAction extends SettingsAction {
|
class ImsettingsAction extends SettingsAction {
|
||||||
|
|
||||||
|
|
|
@ -19,6 +19,8 @@
|
||||||
|
|
||||||
if (!defined('LACONICA')) { exit(1); }
|
if (!defined('LACONICA')) { exit(1); }
|
||||||
|
|
||||||
|
require_once('xmpp.php');
|
||||||
|
|
||||||
function jabber_valid_base_jid($jid) {
|
function jabber_valid_base_jid($jid) {
|
||||||
# Cheap but effective
|
# Cheap but effective
|
||||||
return Validate::email($jid);
|
return Validate::email($jid);
|
||||||
|
@ -96,4 +98,31 @@ function jabber_confirm_address($code, $nickname, $address) {
|
||||||
|
|
||||||
jabber_send_message($address, $body);
|
jabber_send_message($address, $body);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function jabber_broadcast_notice($notice) {
|
||||||
|
# First, get users subscribed to this profile
|
||||||
|
# XXX: use a join here rather than looping through results
|
||||||
|
$profile = Profile::staticGet($notice->profile_id);
|
||||||
|
if (!$profile) {
|
||||||
|
common_log(LOG_WARNING, 'Refusing to broadcast notice with ' .
|
||||||
|
'unknown profile ' . common_log_objstring($notice),
|
||||||
|
__FILE__);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
$sub = new Subscription();
|
||||||
|
$sub->subscribed = $notice->profile_id;
|
||||||
|
if ($sub->find()) {
|
||||||
|
$msg = jabber_format_notice($profile, $notice);
|
||||||
|
while ($sub->fetch()) {
|
||||||
|
$user = User::staticGet($sub->subscriber);
|
||||||
|
if ($user && $user->jabber) {
|
||||||
|
jabber_send_message($user->jabber,
|
||||||
|
$msg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function jabber_format_notice(&$profile, &$notice) {
|
||||||
|
return = $profile->nickname . ': ' . $notice->content;
|
||||||
|
}
|
||||||
|
|
|
@ -649,7 +649,8 @@ function common_broadcast_notice($notice, $remote=false) {
|
||||||
require_once(INSTALLDIR.'/lib/omb.php');
|
require_once(INSTALLDIR.'/lib/omb.php');
|
||||||
omb_broadcast_remote_subscribers($notice);
|
omb_broadcast_remote_subscribers($notice);
|
||||||
}
|
}
|
||||||
// XXX: broadcast notices to Jabber
|
require_once(INSTALLDIR.'/lib/jabber.php');
|
||||||
|
jabber_broadcast_notice($notice);
|
||||||
// XXX: broadcast notices to SMS
|
// XXX: broadcast notices to SMS
|
||||||
// XXX: broadcast notices to other IM
|
// XXX: broadcast notices to other IM
|
||||||
return true;
|
return true;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user