Usage: util/connect uid|nick channel uid|nick must be a local channel. The target channel can be any channel. If a nick is supplied as a target it is assumed to refer to a channel on the localhost unless @host is provided. RSS feeds and remote networks can also be connected, assuming the appropriate protocols are already enabled for the local channel. If the target channel is a non-forum on the local system and you wish bi-directional communication to be enabled you will probably need to use a second connnect command with the source and target reversed. Examples: util/connect bob marketing Connects bob to the marketing channel util/connect marketing bob Connects the marketing channel to bob. util/connect 6 channelone@macgirvin.com Connects the channel with channel_id 6 to the Channel One public forum. util/connect bob https://mysite.foo/feed.rss Connects bob to an RSS feed if RSS feeds are allowed as connections on this site util/connect bob jb@diasp.org Connects bob to a diaspora account on diap.org (both the site and Bob's channel must previously have the Diaspora Protocol enabled).
65 lines
1.4 KiB
PHP
Executable File
65 lines
1.4 KiB
PHP
Executable File
#!/usr/bin/env php
|
|
<?php
|
|
|
|
// connect utility
|
|
|
|
if(! file_exists('include/cli_startup.php')) {
|
|
echo t('Run from the top level $Projectname web directory, as util/connect <args>') . PHP_EOL;
|
|
exit(1);
|
|
}
|
|
|
|
require_once('include/cli_startup.php');
|
|
require_once('include/follow.php');
|
|
|
|
cli_startup();
|
|
|
|
|
|
if($argc != 3) {
|
|
echo t('Usage: util/connect channel_id|channel_address channel[@hub]');
|
|
exit(1);
|
|
}
|
|
|
|
if(ctype_digit($argv[1])) {
|
|
$c = channelx_by_n($argv[1]);
|
|
}
|
|
else {
|
|
$c = channelx_by_nick($argv[1]);
|
|
}
|
|
|
|
if(! $c) {
|
|
echo t('Source channel not found.');
|
|
exit(1);
|
|
}
|
|
|
|
$result = new_contact($c['channel_id'],$argv[2],$c,false,false);
|
|
|
|
if($result['success'] == false) {
|
|
echo $result['message'];
|
|
exit(1);
|
|
}
|
|
|
|
$clone = array();
|
|
foreach($result['abook'] as $k => $v) {
|
|
if(strpos($k,'abook_') === 0) {
|
|
$clone[$k] = $v;
|
|
}
|
|
}
|
|
unset($clone['abook_id']);
|
|
unset($clone['abook_account']);
|
|
unset($clone['abook_channel']);
|
|
|
|
$abconfig = load_abconfig($c['channel_id'],$clone['abook_xchan']);
|
|
if($abconfig)
|
|
$clone['abconfig'] = $abconfig;
|
|
build_sync_packet($c['channel_id'], array('abook' => array($clone)), true);
|
|
|
|
$can_view_stream = intval(get_abconfig($c['channel_id'],$clone['abook_xchan'],'their_perms','view_stream'));
|
|
|
|
// If we can view their stream, pull in some posts
|
|
|
|
if(($can_view_stream) || ($result['abook']['xchan_network'] === 'rss'))
|
|
\Zotlabs\Daemon\Master::Summon(array('Onepoll',$result['abook']['abook_id']));
|
|
|
|
|
|
exit(0);
|