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).
This commit is contained in:
parent
863ee9e6dd
commit
b13fb1cca9
@ -29,7 +29,7 @@ class Connect extends \Zotlabs\Web\Controller {
|
||||
profile_load($which,'');
|
||||
}
|
||||
|
||||
function post() {
|
||||
function post() {
|
||||
|
||||
if(! array_key_exists('channel', \App::$data))
|
||||
return;
|
||||
@ -78,7 +78,7 @@ class Connect extends \Zotlabs\Web\Controller {
|
||||
|
||||
|
||||
|
||||
function get() {
|
||||
function get() {
|
||||
|
||||
$edit = ((local_channel() && (local_channel() == \App::$data['channel']['channel_id'])) ? true : false);
|
||||
|
||||
|
64
util/connect
Executable file
64
util/connect
Executable file
@ -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);
|
Reference in New Issue
Block a user