diff options
author | zotlabs <mike@macgirvin.com> | 2016-11-01 15:27:34 -0700 |
---|---|---|
committer | zotlabs <mike@macgirvin.com> | 2016-11-01 15:27:34 -0700 |
commit | b13fb1cca92807a86b9802496c5f809263dcedfd (patch) | |
tree | b8651e77bc74785b3bb2946d39cc5bb03bca0323 /util | |
parent | 863ee9e6dd890d49602b67b9ffbed1bab816b54c (diff) | |
download | volse-hubzilla-b13fb1cca92807a86b9802496c5f809263dcedfd.tar.gz volse-hubzilla-b13fb1cca92807a86b9802496c5f809263dcedfd.tar.bz2 volse-hubzilla-b13fb1cca92807a86b9802496c5f809263dcedfd.zip |
command line connect utility.
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).
Diffstat (limited to 'util')
-rwxr-xr-x | util/connect | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/util/connect b/util/connect new file mode 100755 index 000000000..eed14961c --- /dev/null +++ b/util/connect @@ -0,0 +1,64 @@ +#!/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); |