<?php

require_once('include/Scrape.php');
require_once('include/follow.php');

function ostatus_subscribe_content(&$a) {

	if(! local_user()) {
		notice( t('Permission denied.') . EOL);
		goaway($_SESSION['return_url']);
		// NOTREACHED
	}

	$o = "<h2>".t("Subscribing to OStatus contacts")."</h2>";

	$uid = local_user();

	$a = get_app();

	$counter = intval($_REQUEST['counter']);

	if (get_pconfig($uid, "ostatus", "legacy_friends") == "") {

		if ($_REQUEST["url"] == "")
			return $o.t("No contact provided.");

		$contact = probe_url($_REQUEST["url"]);

		if (!$contact)
			return $o.t("Couldn't fetch information for contact.");

		$api = $contact["baseurl"]."/api/";

		// Fetching friends
		$data = z_fetch_url($api."statuses/friends.json?screen_name=".$contact["nick"]);

		if (!$data["success"])
			return $o.t("Couldn't fetch friends for contact.");

		set_pconfig($uid, "ostatus", "legacy_friends", $data["body"]);
	}

	$friends = json_decode(get_pconfig($uid, "ostatus", "legacy_friends"));

	$total = sizeof($friends);

	if ($counter >= $total) {
		$a->page['htmlhead'] = '<meta http-equiv="refresh" content="0; URL='.$a->get_baseurl().'/settings/connectors">';
		del_pconfig($uid, "ostatus", "legacy_friends");
		del_pconfig($uid, "ostatus", "legacy_contact");
		$o .= t("Done");
		return $o;
	}

	$friend = $friends[$counter++];

	$url = $friend->statusnet_profile_url;

	$o .= "<p>".$counter."/".$total.": ".$url;

	$data = probe_url($url);
	if ($data["network"] == NETWORK_OSTATUS) {
		$result = new_contact($uid,$url,true);
		if ($result["success"])
			$o .= " - ".t("success");
		else
			$o .= " - ".t("failed");
	} else
		$o .= " - ".t("ignored");

	$o .= "</p>";

	$o .= "<p>".t("Keep this window open until done.")."</p>";

	$a->page['htmlhead'] = '<meta http-equiv="refresh" content="0; URL='.$a->get_baseurl().'/ostatus_subscribe?counter='.$counter.'">';

	return $o;
}