diff options
-rw-r--r-- | boot.php | 7 | ||||
-rw-r--r-- | mod/zfinger.php | 42 |
2 files changed, 49 insertions, 0 deletions
@@ -521,6 +521,13 @@ if(! class_exists('App')) { $this->module = 'hostxrd'; } + if(strstr($this->cmd,'.well-known/zot-guid/')) { + $this->argc -= 1; + array_shift($this->argv); + $this->argv[0] = 'zfinger'; + $this->module = 'zfinger'; + } + /** * See if there is any page number information, and initialise * pagination diff --git a/mod/zfinger.php b/mod/zfinger.php new file mode 100644 index 000000000..1434471ca --- /dev/null +++ b/mod/zfinger.php @@ -0,0 +1,42 @@ +<?php + +function zfinger_init(&$a) { + +logger('args: ' . print_r($a->argv,true)); + + $ret = array('success' => false, 'message' => ''); + if(argc() > 1) { + $zguid = argv(1); + + if(strlen($zguid)) { + $r = q("select * from entity where entity_global_id = '%s' limit 1", + dbesc($zguid) + ); + if(! ($r && count($r))) { + $ret['message'] = 'Item not found.'; + json_return_and_die($ret); + } + } + else { + $ret['message'] = 'Invalid request'; + json_return_and_die($ret); + } + $e = $r[0]; + + $ret['success'] = true; + + $ret['guid'] = $e['entity_global_id']; + $ret['url'] = z_root(); + $ret['primary'] = (bool) $e['entity_primary']; + $ret['callback'] = z_root() . '/' . 'post'; + $ret['sitekey'] = get_config('system','pubkey'); + $ret['key'] = $e['pubkey']; + + // more stuff + + json_return_and_die($ret); + + } + $ret['message'] = 'Item not found.'; + json_return_and_die($ret); +}
\ No newline at end of file |