mirror of https://gitlab.com/bashrc2/epicyon
cwtch address in profile
parent
a21fa28587
commit
29cb994b31
|
@ -0,0 +1,92 @@
|
|||
__filename__ = "cwtch.py"
|
||||
__author__ = "Bob Mottram"
|
||||
__license__ = "AGPL3+"
|
||||
__version__ = "1.2.0"
|
||||
__maintainer__ = "Bob Mottram"
|
||||
__email__ = "bob@freedombone.net"
|
||||
__status__ = "Production"
|
||||
__module_group__ = "Profile Metadata"
|
||||
|
||||
import re
|
||||
|
||||
|
||||
def getCwtchAddress(actorJson: {}) -> str:
|
||||
"""Returns cwtch address for the given actor
|
||||
"""
|
||||
if not actorJson.get('attachment'):
|
||||
return ''
|
||||
for propertyValue in actorJson['attachment']:
|
||||
if not propertyValue.get('name'):
|
||||
continue
|
||||
if not propertyValue['name'].lower().startswith('cwtch'):
|
||||
continue
|
||||
if not propertyValue.get('type'):
|
||||
continue
|
||||
if not propertyValue.get('value'):
|
||||
continue
|
||||
if propertyValue['type'] != 'PropertyValue':
|
||||
continue
|
||||
propertyValue['value'] = propertyValue['value'].strip()
|
||||
if len(propertyValue['value']) < 2:
|
||||
continue
|
||||
if '"' in propertyValue['value']:
|
||||
continue
|
||||
if ' ' in propertyValue['value']:
|
||||
continue
|
||||
if ',' in propertyValue['value']:
|
||||
continue
|
||||
if '.' in propertyValue['value']:
|
||||
continue
|
||||
return propertyValue['value']
|
||||
return ''
|
||||
|
||||
|
||||
def setCwtchAddress(actorJson: {}, cwtchAddress: str) -> None:
|
||||
"""Sets an cwtch address for the given actor
|
||||
"""
|
||||
notCwtchAddress = False
|
||||
|
||||
if len(cwtchAddress) < 56:
|
||||
notCwtchAddress = True
|
||||
if cwtchAddress != cwtchAddress.lower():
|
||||
notCwtchAddress = True
|
||||
if not re.match("^[a-z0-9]*$", cwtchAddress):
|
||||
notCwtchAddress = True
|
||||
|
||||
if not actorJson.get('attachment'):
|
||||
actorJson['attachment'] = []
|
||||
|
||||
# remove any existing value
|
||||
propertyFound = None
|
||||
for propertyValue in actorJson['attachment']:
|
||||
if not propertyValue.get('name'):
|
||||
continue
|
||||
if not propertyValue.get('type'):
|
||||
continue
|
||||
if not propertyValue['name'].lower().startswith('cwtch'):
|
||||
continue
|
||||
propertyFound = propertyValue
|
||||
break
|
||||
if propertyFound:
|
||||
actorJson['attachment'].remove(propertyFound)
|
||||
if notCwtchAddress:
|
||||
return
|
||||
|
||||
for propertyValue in actorJson['attachment']:
|
||||
if not propertyValue.get('name'):
|
||||
continue
|
||||
if not propertyValue.get('type'):
|
||||
continue
|
||||
if not propertyValue['name'].lower().startswith('cwtch'):
|
||||
continue
|
||||
if propertyValue['type'] != 'PropertyValue':
|
||||
continue
|
||||
propertyValue['value'] = cwtchAddress
|
||||
return
|
||||
|
||||
newCwtchAddress = {
|
||||
"name": "Cwtch",
|
||||
"type": "PropertyValue",
|
||||
"value": cwtchAddress
|
||||
}
|
||||
actorJson['attachment'].append(newCwtchAddress)
|
18
daemon.py
18
daemon.py
|
@ -44,6 +44,8 @@ from briar import getBriarAddress
|
|||
from briar import setBriarAddress
|
||||
from jami import getJamiAddress
|
||||
from jami import setJamiAddress
|
||||
from cwtch import getCwtchAddress
|
||||
from cwtch import setCwtchAddress
|
||||
from matrix import getMatrixAddress
|
||||
from matrix import setMatrixAddress
|
||||
from donate import getDonationUrl
|
||||
|
@ -4517,6 +4519,18 @@ class PubServer(BaseHTTPRequestHandler):
|
|||
setJamiAddress(actorJson, '')
|
||||
actorChanged = True
|
||||
|
||||
# change cwtch address
|
||||
currentCwtchAddress = getCwtchAddress(actorJson)
|
||||
if fields.get('cwtchAddress'):
|
||||
if fields['cwtchAddress'] != currentCwtchAddress:
|
||||
setCwtchAddress(actorJson,
|
||||
fields['cwtchAddress'])
|
||||
actorChanged = True
|
||||
else:
|
||||
if currentCwtchAddress:
|
||||
setCwtchAddress(actorJson, '')
|
||||
actorChanged = True
|
||||
|
||||
# change PGP public key
|
||||
currentPGPpubKey = getPGPpubKey(actorJson)
|
||||
if fields.get('pgp'):
|
||||
|
@ -5811,6 +5825,7 @@ class PubServer(BaseHTTPRequestHandler):
|
|||
toxAddress = None
|
||||
briarAddress = None
|
||||
jamiAddress = None
|
||||
cwtchAddress = None
|
||||
ssbAddress = None
|
||||
emailAddress = None
|
||||
lockedAccount = False
|
||||
|
@ -5832,6 +5847,7 @@ class PubServer(BaseHTTPRequestHandler):
|
|||
toxAddress = getToxAddress(actorJson)
|
||||
briarAddress = getBriarAddress(actorJson)
|
||||
jamiAddress = getJamiAddress(actorJson)
|
||||
cwtchAddress = getCwtchAddress(actorJson)
|
||||
emailAddress = getEmailAddress(actorJson)
|
||||
PGPpubKey = getPGPpubKey(actorJson)
|
||||
PGPfingerprint = getPGPfingerprint(actorJson)
|
||||
|
@ -5866,7 +5882,7 @@ class PubServer(BaseHTTPRequestHandler):
|
|||
xmppAddress, matrixAddress,
|
||||
ssbAddress, blogAddress,
|
||||
toxAddress, briarAddress,
|
||||
jamiAddress,
|
||||
jamiAddress, cwtchAddress,
|
||||
PGPpubKey, PGPfingerprint,
|
||||
emailAddress,
|
||||
self.server.dormantMonths,
|
||||
|
|
|
@ -45,6 +45,7 @@ def htmlPersonOptions(defaultTimeline: str,
|
|||
toxAddress: str,
|
||||
briarAddress: str,
|
||||
jamiAddress: str,
|
||||
cwtchAddress: str,
|
||||
PGPpubKey: str,
|
||||
PGPfingerprint: str,
|
||||
emailAddress: str,
|
||||
|
@ -214,6 +215,9 @@ def htmlPersonOptions(defaultTimeline: str,
|
|||
if jamiAddress:
|
||||
optionsStr += \
|
||||
'<p class="imText">Jami: ' + removeHtml(jamiAddress) + '</p>\n'
|
||||
if cwtchAddress:
|
||||
optionsStr += \
|
||||
'<p class="imText">Cwtch: ' + removeHtml(cwtchAddress) + '</p>\n'
|
||||
if PGPfingerprint:
|
||||
optionsStr += '<p class="pgp">PGP: ' + \
|
||||
removeHtml(PGPfingerprint).replace('\n', '<br>') + '</p>\n'
|
||||
|
|
|
@ -40,6 +40,7 @@ from pgp import getPGPpubKey
|
|||
from tox import getToxAddress
|
||||
from briar import getBriarAddress
|
||||
from jami import getJamiAddress
|
||||
from cwtch import getCwtchAddress
|
||||
from filters import isFiltered
|
||||
from follow import isFollowerOfPerson
|
||||
from webapp_frontscreen import htmlFrontScreen
|
||||
|
@ -517,9 +518,10 @@ def htmlProfile(rssIconAtTop: bool,
|
|||
toxAddress = getToxAddress(profileJson)
|
||||
briarAddress = getBriarAddress(profileJson)
|
||||
jamiAddress = getJamiAddress(profileJson)
|
||||
cwtchAddress = getCwtchAddress(profileJson)
|
||||
if donateUrl or xmppAddress or matrixAddress or \
|
||||
ssbAddress or toxAddress or briarAddress or \
|
||||
jamiAddress or PGPpubKey or \
|
||||
jamiAddress or cwtchAddress or PGPpubKey or \
|
||||
PGPfingerprint or emailAddress:
|
||||
donateSection = '<div class="container">\n'
|
||||
donateSection += ' <center>\n'
|
||||
|
@ -560,6 +562,10 @@ def htmlProfile(rssIconAtTop: bool,
|
|||
donateSection += \
|
||||
'<p>Jami: <label class="toxaddr">' + \
|
||||
jamiAddress + '</label></p>\n'
|
||||
if cwtchAddress:
|
||||
donateSection += \
|
||||
'<p>Cwtch: <label class="toxaddr">' + \
|
||||
cwtchAddress + '</label></p>\n'
|
||||
if PGPfingerprint:
|
||||
donateSection += \
|
||||
'<p class="pgp">PGP: ' + \
|
||||
|
@ -1063,6 +1069,7 @@ def htmlEditProfile(cssCache: {}, translate: {}, baseDir: str, path: str,
|
|||
toxAddress = getToxAddress(actorJson)
|
||||
briarAddress = getBriarAddress(actorJson)
|
||||
jamiAddress = getJamiAddress(actorJson)
|
||||
cwtchAddress = getCwtchAddress(actorJson)
|
||||
emailAddress = getEmailAddress(actorJson)
|
||||
PGPpubKey = getPGPpubKey(actorJson)
|
||||
PGPfingerprint = getPGPfingerprint(actorJson)
|
||||
|
@ -1698,6 +1705,11 @@ def htmlEditProfile(cssCache: {}, translate: {}, baseDir: str, path: str,
|
|||
' <input type="text" name="jamiAddress" value="' + \
|
||||
jamiAddress + '">\n'
|
||||
|
||||
editProfileForm += '<label class="labels">Cwtch</label><br>\n'
|
||||
editProfileForm += \
|
||||
' <input type="text" name="cwtchAddress" value="' + \
|
||||
cwtchAddress + '">\n'
|
||||
|
||||
editProfileForm += \
|
||||
'<label class="labels">' + \
|
||||
translate['PGP Fingerprint'] + '</label><br>\n'
|
||||
|
|
Loading…
Reference in New Issue