aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--boot.php7
-rw-r--r--mod/zfinger.php42
2 files changed, 49 insertions, 0 deletions
diff --git a/boot.php b/boot.php
index 646f968cd..06094e42b 100644
--- a/boot.php
+++ b/boot.php
@@ -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