#!/usr/bin/env php ') . PHP_EOL; exit(1); } require_once('include/cli_startup.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 = Connect::connect($c,$argv[2]); if ($result['success'] == false) { echo $result['message']; exit(1); } $clone = []; 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; } Libsync::build_sync_packet($c['channel_id'], [ 'abook' => [ $clone ] ], true); $can_view_stream = their_perms_contains($c['channel_id'],$clone['abook_xchan'],'view_stream'); // If we can view their stream, pull in some posts if (($can_view_stream) || ($result['abook']['xchan_network'] === 'rss')) { Run::Summon([ 'Onepoll',$result['abook']['abook_id'] ]); } exit(0);