streams/Zotlabs/Module/Follow.php

78 lines
1.8 KiB
PHP
Raw Normal View History

2016-04-19 03:38:38 +00:00
<?php
namespace Zotlabs\Module;
2018-06-05 01:40:11 +00:00
use Zotlabs\Lib\Libsync;
2018-06-01 04:05:09 +00:00
2016-04-19 03:38:38 +00:00
require_once('include/follow.php');
class Follow extends \Zotlabs\Web\Controller {
function init() {
if(! local_channel()) {
return;
}
$uid = local_channel();
2018-03-15 01:42:07 +00:00
$url = notags(trim(punify($_REQUEST['url'])));
2016-04-19 03:38:38 +00:00
$return_url = $_SESSION['return_url'];
$confirm = intval($_REQUEST['confirm']);
$interactive = (($_REQUEST['interactive']) ? intval($_REQUEST['interactive']) : 1);
2016-04-19 03:38:38 +00:00
$channel = \App::get_channel();
$result = new_contact($uid,$url,$channel,$interactive,$confirm);
2016-04-19 03:38:38 +00:00
if($result['success'] == false) {
if($result['message'])
notice($result['message']);
if($interactive) {
goaway($return_url);
}
else {
json_return_and_die($result);
}
2016-04-19 03:38:38 +00:00
}
info( t('Connection added.') . EOL);
2016-04-19 03:38:38 +00:00
$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($channel['channel_id'],$clone['abook_xchan']);
2016-04-19 03:38:38 +00:00
if($abconfig)
$clone['abconfig'] = $abconfig;
2018-06-05 01:40:11 +00:00
Libsync::build_sync_packet(0 /* use the current local_channel */, array('abook' => array($clone)), true);
2016-04-19 03:38:38 +00:00
2018-05-26 22:12:02 +00:00
$can_view_stream = their_perms_contains($channel['channel_id'],$clone['abook_xchan'],'view_stream');
2016-04-19 03:38:38 +00:00
// If we can view their stream, pull in some posts
2016-07-10 02:03:29 +00:00
if(($can_view_stream) || ($result['abook']['xchan_network'] === 'rss'))
2016-05-20 05:26:37 +00:00
\Zotlabs\Daemon\Master::Summon(array('Onepoll',$result['abook']['abook_id']));
2016-04-19 03:38:38 +00:00
if($interactive) {
goaway(z_root() . '/connedit/' . $result['abook']['abook_id'] . '?f=&follow=1');
}
else {
json_return_and_die([ 'success' => true ]);
}
2016-04-19 03:38:38 +00:00
}
2016-05-20 05:26:37 +00:00
function get() {
2016-04-19 03:38:38 +00:00
if(! local_channel()) {
return login();
}
}
}