diff options
-rw-r--r-- | include/text.php | 58 | ||||
-rw-r--r-- | 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 @@ <?php require_once('include/Scrape.php'); +require_once('include/zot.php'); function probe_content(&$a) { @@ -13,11 +14,14 @@ function probe_content(&$a) { $o .= '<br /><br />'; if(x($_GET,'addr')) { - + $channel = $a->get_channel(); $addr = trim($_GET['addr']); - $res = probe_url($addr); + $res = zot_finger($addr,$channel); $o .= '<pre>'; - $o .= str_replace("\n",'<br />',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",'<br />',print_r($j,true)); $o .= '</pre>'; } return $o; |