From 098de66c2fcda2e6e2449640e888a0d1f9e5aa84 Mon Sep 17 00:00:00 2001 From: friendica Date: Sat, 29 Dec 2012 00:33:04 -0800 Subject: [PATCH] probe diagnostic translated to zot, will use your current channel for permissions, logout to check anonymous permissions --- include/text.php | 58 ++++++++++++++++++++++++++++++++++++++++++++++++ mod/probe.php | 10 ++++++--- 2 files changed, 65 insertions(+), 3 deletions(-) diff --git a/include/text.php b/include/text.php index 3ca0b3b6d..36b465bea 100644 --- a/include/text.php +++ b/include/text.php @@ -1762,3 +1762,61 @@ function stringify_array_elms(&$arr) { for($x = 0; $x < count($arr); $x ++) $arr[$x] = "'" . $arr[$x] . "'"; } + +/** + * Indents a flat JSON string to make it more human-readable. + * + * @param string $json The original JSON string to process. + * + * @return string Indented version of the original JSON string. + */ +function jindent($json) { + + $result = ''; + $pos = 0; + $strLen = strlen($json); + $indentStr = ' '; + $newLine = "\n"; + $prevChar = ''; + $outOfQuotes = true; + + for ($i=0; $i<=$strLen; $i++) { + + // Grab the next character in the string. + $char = substr($json, $i, 1); + + // Are we inside a quoted string? + if ($char == '"' && $prevChar != '\\') { + $outOfQuotes = !$outOfQuotes; + + // If this character is the end of an element, + // output a new line and indent the next line. + } else if(($char == '}' || $char == ']') && $outOfQuotes) { + $result .= $newLine; + $pos --; + for ($j=0; $j<$pos; $j++) { + $result .= $indentStr; + } + } + + // Add the character to the result string. + $result .= $char; + + // If the last character was the beginning of an element, + // output a new line and indent the next line. + if (($char == ',' || $char == '{' || $char == '[') && $outOfQuotes) { + $result .= $newLine; + if ($char == '{' || $char == '[') { + $pos ++; + } + + for ($j = 0; $j < $pos; $j++) { + $result .= $indentStr; + } + } + + $prevChar = $char; + } + + return $result; +} diff --git a/mod/probe.php b/mod/probe.php index c95db291b..f90728df2 100644 --- a/mod/probe.php +++ b/mod/probe.php @@ -1,6 +1,7 @@
'; if(x($_GET,'addr')) { - + $channel = $a->get_channel(); $addr = trim($_GET['addr']); - $res = probe_url($addr); + $res = zot_finger($addr,$channel); $o .= '
';
-		$o .= str_replace("\n",'
',print_r($res,true)); + $j = json_decode($res['body'],true); + if($j && $j['permissions'] && $j['permissions']['iv']) + $j['permissions'] = json_decode(aes_unencapsulate($j['permissions'],$channel['channel_prvkey']),true); + $o .= str_replace("\n",'
',print_r($j,true)); $o .= '
'; } return $o;