Merge branch 'main' of ssh://code.freedombone.net:2222/bashrc/epicyon

main
Bob Mottram 2021-05-17 16:47:39 +01:00
commit 94c0b16c0d
5 changed files with 90 additions and 17 deletions

View File

@ -288,6 +288,10 @@ def _createPersonBase(baseDir: str, nickname: str, domain: str, port: int,
{ {
'@type': 'Occupation', '@type': 'Occupation',
'name': "", 'name': "",
"occupationLocation": {
"@type": "City",
"name": "Fediverse"
},
'skills': [] 'skills': []
} }
], ],
@ -588,6 +592,10 @@ def personUpgradeActor(baseDir: str, personJson: {},
{ {
'@type': 'Occupation', '@type': 'Occupation',
'name': occupationName, 'name': occupationName,
"occupationLocation": {
"@type": "City",
"name": "Fediverse"
},
'skills': [] 'skills': []
} }
] ]
@ -609,10 +617,36 @@ def personUpgradeActor(baseDir: str, personJson: {},
{ {
'@type': 'Occupation', '@type': 'Occupation',
'name': occupationName, 'name': occupationName,
'occupationLocation': {
'@type': 'City',
'name': 'Fediverse'
},
'skills': [] 'skills': []
} }
] ]
updateActor = True updateActor = True
else:
# add location if it is missing
for index in range(len(personJson['hasOccupation'])):
ocItem = personJson['hasOccupation'][index]
if ocItem.get('hasOccupation'):
ocItem = ocItem['hasOccupation']
if ocItem.get('location'):
del ocItem['location']
updateActor = True
if not ocItem.get('occupationLocation'):
ocItem['occupationLocation'] = {
"@type": "City",
"name": "Fediverse"
}
updateActor = True
else:
if ocItem['occupationLocation']['@type'] != 'City':
ocItem['occupationLocation'] = {
"@type": "City",
"name": "Fediverse"
}
updateActor = True
# if no roles are defined then ensure that the admin # if no roles are defined then ensure that the admin
# roles are configured # roles are configured

View File

@ -145,6 +145,11 @@ def _setActorRole(actorJson: {}, roleName: str) -> bool:
"hasOccupation": { "hasOccupation": {
"@type": "Occupation", "@type": "Occupation",
"name": roleName, "name": roleName,
"description": "Fediverse instance role",
"occupationLocation": {
"@type": "City",
"url": "Fediverse"
},
"occupationalCategory": { "occupationalCategory": {
"@type": "CategoryCode", "@type": "CategoryCode",
"inCodeSet": { "inCodeSet": {

View File

@ -86,6 +86,10 @@ def setActorSkillLevel(actorJson: {},
{ {
'@type': 'Occupation', '@type': 'Occupation',
'name': '', 'name': '',
"occupationLocation": {
"@type": "City",
"name": "Fediverse"
},
'skills': [] 'skills': []
} }
] ]

View File

@ -3666,6 +3666,10 @@ def testSkills() -> None:
{ {
'@type': 'Occupation', '@type': 'Occupation',
'name': "Sysop", 'name': "Sysop",
"occupationLocation": {
"@type": "City",
"name": "Fediverse"
},
'skills': [] 'skills': []
} }
] ]
@ -3688,6 +3692,10 @@ def testRoles() -> None:
{ {
'@type': 'Occupation', '@type': 'Occupation',
'name': "Sysop", 'name': "Sysop",
'occupationLocation': {
'@type': 'City',
'name': 'Fediverse'
},
'skills': [] 'skills': []
} }
] ]

View File

@ -720,6 +720,24 @@ def htmlHeaderWithPersonMarkup(cssFilename: str, instanceTitle: str,
if not actorJson: if not actorJson:
return htmlStr return htmlStr
cityMarkup = ''
if city:
city = city.lower().title()
addComma = ''
countryMarkup = ''
if ',' in city:
country = city.split(',', 1)[1].strip().title()
city = city.split(',', 1)[0]
countryMarkup = \
' "addressCountry": "' + country + '"\n'
addComma = ','
cityMarkup = \
' "address": {\n' + \
' "@type": "PostalAddress",\n' + \
' "addressLocality": "' + city + '"' + addComma + '\n' + \
countryMarkup + \
' },\n'
skillsMarkup = '' skillsMarkup = ''
if actorJson.get('hasOccupation'): if actorJson.get('hasOccupation'):
if isinstance(actorJson['hasOccupation'], list): if isinstance(actorJson['hasOccupation'], list):
@ -742,6 +760,14 @@ def htmlHeaderWithPersonMarkup(cssFilename: str, instanceTitle: str,
skillsMarkup += ' "hasOccupation": {\n' skillsMarkup += ' "hasOccupation": {\n'
skillsMarkup += ' "@type": "Occupation",\n' skillsMarkup += ' "@type": "Occupation",\n'
skillsMarkup += ' "name": "' + roleName + '",\n' skillsMarkup += ' "name": "' + roleName + '",\n'
skillsMarkup += ' "description": ' + \
'"Fediverse instance role",\n'
skillsMarkup += ' "occupationLocation": {\n'
skillsMarkup += \
' "@type": "City",\n'
skillsMarkup += \
' "name": "' + city + '"\n'
skillsMarkup += ' },\n'
skillsMarkup += ' "occupationalCategory": {\n' skillsMarkup += ' "occupationalCategory": {\n'
skillsMarkup += ' "@type": "CategoryCode",\n' skillsMarkup += ' "@type": "CategoryCode",\n'
skillsMarkup += ' "inCodeSet": {\n' skillsMarkup += ' "inCodeSet": {\n'
@ -776,29 +802,19 @@ def htmlHeaderWithPersonMarkup(cssFilename: str, instanceTitle: str,
skillsMarkup += ' {\n' skillsMarkup += ' {\n'
skillsMarkup += ' "@type": "Occupation",\n' skillsMarkup += ' "@type": "Occupation",\n'
skillsMarkup += ' "name": "' + ocName + '",\n' skillsMarkup += ' "name": "' + ocName + '",\n'
skillsMarkup += ' "description": ' + \
'"Fediverse instance occupation",\n'
skillsMarkup += ' "occupationLocation": {\n'
skillsMarkup += ' "@type": "City",\n'
skillsMarkup += \
' "name": "' + city + '"\n'
skillsMarkup += ' },\n'
skillsMarkup += \ skillsMarkup += \
' "skills": ' + skillsListStr + '\n' ' "skills": ' + skillsListStr + '\n'
skillsMarkup += ' }' skillsMarkup += ' }'
firstEntry = False firstEntry = False
skillsMarkup += '\n ],\n' skillsMarkup += '\n ],\n'
cityMarkup = ''
if city:
city = city.lower().title()
addComma = ''
countryMarkup = ''
if ',' in city:
country = city.split(',', 1)[1].strip().title()
city = city.split(',', 1)[0]
countryMarkup = \
' "addressCountry": "' + country + '"\n'
addComma = ','
cityMarkup = \
' "address": {\n' + \
' "@type": "PostalAddress",\n' + \
' "addressLocality": "' + city + '"' + addComma + '\n' + \
countryMarkup + \
' },\n'
description = removeHtml(actorJson['summary']) description = removeHtml(actorJson['summary'])
nameStr = removeHtml(actorJson['name']) nameStr = removeHtml(actorJson['name'])
personMarkup = \ personMarkup = \
@ -872,6 +888,11 @@ def htmlHeaderWithBlogMarkup(cssFilename: str, instanceTitle: str,
authorUrl = httpPrefix + '://' + domain + '/users/' + nickname authorUrl = httpPrefix + '://' + domain + '/users/' + nickname
aboutUrl = httpPrefix + '://' + domain + '/about.html' aboutUrl = httpPrefix + '://' + domain + '/about.html'
# license for content on the site may be different from
# the software license
contentLicenseUrl = 'https://creativecommons.org/licenses/by/3.0'
blogMarkup = \ blogMarkup = \
' <script type="application/ld+json">\n' + \ ' <script type="application/ld+json">\n' + \
' {\n' + \ ' {\n' + \
@ -890,6 +911,7 @@ def htmlHeaderWithBlogMarkup(cssFilename: str, instanceTitle: str,
' "name": "' + instanceTitle + '",\n' + \ ' "name": "' + instanceTitle + '",\n' + \
' "sameAs": "' + aboutUrl + '"\n' + \ ' "sameAs": "' + aboutUrl + '"\n' + \
' },\n' + \ ' },\n' + \
' "license": "' + contentLicenseUrl + '",\n' + \
' "description": "' + snippet + '"\n' + \ ' "description": "' + snippet + '"\n' + \
' }\n' + \ ' }\n' + \
' </script>\n' ' </script>\n'