forked from indymedia/epicyon
Webfinger for shared inbox
parent
0056e67eb3
commit
fe59e482df
24
webfinger.py
24
webfinger.py
|
@ -79,6 +79,7 @@ def storeWebfingerEndpoint(nickname: str,domain: str,port: int,baseDir: str, \
|
||||||
wfJson: {}) -> bool:
|
wfJson: {}) -> bool:
|
||||||
"""Stores webfinger endpoint for a user to a file
|
"""Stores webfinger endpoint for a user to a file
|
||||||
"""
|
"""
|
||||||
|
originalDomain=domain
|
||||||
if port:
|
if port:
|
||||||
if port!=80 and port!=443:
|
if port!=80 and port!=443:
|
||||||
if ':' not in domain:
|
if ':' not in domain:
|
||||||
|
@ -90,6 +91,11 @@ def storeWebfingerEndpoint(nickname: str,domain: str,port: int,baseDir: str, \
|
||||||
filename=baseDir+wfSubdir+'/'+handle.lower()+'.json'
|
filename=baseDir+wfSubdir+'/'+handle.lower()+'.json'
|
||||||
with open(filename, 'w') as fp:
|
with open(filename, 'w') as fp:
|
||||||
commentjson.dump(wfJson, fp, indent=4, sort_keys=False)
|
commentjson.dump(wfJson, fp, indent=4, sort_keys=False)
|
||||||
|
if nickname=='inbox':
|
||||||
|
handle=originalDomain+'@'+domain
|
||||||
|
filename=baseDir+wfSubdir+'/'+handle.lower()+'.json'
|
||||||
|
with open(filename, 'w') as fp:
|
||||||
|
commentjson.dump(wfJson, fp, indent=4, sort_keys=False)
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def createWebfingerEndpoint(nickname: str,domain: str,port: int, \
|
def createWebfingerEndpoint(nickname: str,domain: str,port: int, \
|
||||||
|
@ -102,24 +108,32 @@ def createWebfingerEndpoint(nickname: str,domain: str,port: int, \
|
||||||
if ':' not in domain:
|
if ':' not in domain:
|
||||||
domain=domain+':'+str(port)
|
domain=domain+':'+str(port)
|
||||||
|
|
||||||
|
personName=nickname
|
||||||
|
personId=httpPrefix+"://"+domain+"/users/"+personName
|
||||||
|
subjectStr="acct:"+personName+"@"+originalDomain
|
||||||
|
if nickname=='inbox' or nickname==originalDomain:
|
||||||
|
personName='actor'
|
||||||
|
personId=httpPrefix+"://"+domain+"/"+personName
|
||||||
|
subjectStr="acct:"+originalDomain+"@"+originalDomain
|
||||||
|
|
||||||
account = {
|
account = {
|
||||||
"aliases": [
|
"aliases": [
|
||||||
httpPrefix+"://"+domain+"/@"+nickname,
|
httpPrefix+"://"+domain+"/@"+personName,
|
||||||
httpPrefix+"://"+domain+"/users/"+nickname
|
personId
|
||||||
],
|
],
|
||||||
"links": [
|
"links": [
|
||||||
{
|
{
|
||||||
"href": httpPrefix+"://"+domain+"/@"+nickname,
|
"href": httpPrefix+"://"+domain+"/@"+personName,
|
||||||
"rel": "http://webfinger.net/rel/profile-page",
|
"rel": "http://webfinger.net/rel/profile-page",
|
||||||
"type": "text/html"
|
"type": "text/html"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"href": httpPrefix+"://"+domain+"/users/"+nickname+".atom",
|
"href": personId+".atom",
|
||||||
"rel": "http://schemas.google.com/g/2010#updates-from",
|
"rel": "http://schemas.google.com/g/2010#updates-from",
|
||||||
"type": "application/atom+xml"
|
"type": "application/atom+xml"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"href": httpPrefix+"://"+domain+"/users/"+nickname,
|
"href": personId,
|
||||||
"rel": "self",
|
"rel": "self",
|
||||||
"type": "application/activity+json"
|
"type": "application/activity+json"
|
||||||
},
|
},
|
||||||
|
|
Loading…
Reference in New Issue