Attempt to obtain instance actor when using commandline

merge-requests/30/head
Bob Mottram 2021-09-01 18:26:40 +01:00
parent bc77b25520
commit 152febac88
2 changed files with 74 additions and 43 deletions

View File

@ -25,6 +25,7 @@ from roles import setRole
from webfinger import webfingerHandle
from bookmarks import sendBookmarkViaServer
from bookmarks import sendUndoBookmarkViaServer
from posts import getInstanceActorKey
from posts import sendMuteViaServer
from posts import sendUndoMuteViaServer
from posts import c2sBoxJson
@ -688,7 +689,7 @@ if args.posts:
proxyType = 'gnunet'
if not args.language:
args.language = 'en'
signingPrivateKeyPem = None
signingPrivateKeyPem = getInstanceActorKey(baseDir, domain)
getPublicPostsOfPerson(baseDir, nickname, domain, False, True,
proxyType, args.port, httpPrefix, debug,
__version__, args.language,
@ -724,7 +725,7 @@ if args.postDomains:
domainList = []
if not args.language:
args.language = 'en'
signingPrivateKeyPem = None
signingPrivateKeyPem = getInstanceActorKey(baseDir, domain)
domainList = getPublicPostDomains(None,
baseDir, nickname, domain,
proxyType, args.port,
@ -769,7 +770,7 @@ if args.postDomainsBlocked:
domainList = []
if not args.language:
args.language = 'en'
signingPrivateKeyPem = None
signingPrivateKeyPem = getInstanceActorKey(baseDir, domain)
domainList = getPublicPostDomainsBlocked(None,
baseDir, nickname, domain,
proxyType, args.port,
@ -812,7 +813,7 @@ if args.checkDomains:
maxBlockedDomains = 0
if not args.language:
args.language = 'en'
signingPrivateKeyPem = None
signingPrivateKeyPem = getInstanceActorKey(baseDir, domain)
checkDomains(None,
baseDir, nickname, domain,
proxyType, args.port,
@ -833,7 +834,7 @@ if args.socnet:
proxyType = 'tor'
if not args.language:
args.language = 'en'
signingPrivateKeyPem = None
signingPrivateKeyPem = getInstanceActorKey(baseDir, args.domain)
dotGraph = instancesGraph(baseDir, args.socnet,
proxyType, args.port,
httpPrefix, debug,
@ -864,7 +865,7 @@ if args.postsraw:
proxyType = 'gnunet'
if not args.language:
args.language = 'en'
signingPrivateKeyPem = None
signingPrivateKeyPem = getInstanceActorKey(baseDir, domain)
getPublicPostsOfPerson(baseDir, nickname, domain, False, False,
proxyType, args.port, httpPrefix, debug,
__version__, args.language,
@ -877,7 +878,7 @@ if args.json:
asHeader = {
'Accept': 'application/ld+json; profile="' + profileStr + '"'
}
signingPrivateKeyPem = None
signingPrivateKeyPem = getInstanceActorKey(baseDir, args.domain)
testJson = getJson(signingPrivateKeyPem, session, args.json, asHeader,
None, debug, __version__, httpPrefix, None)
pprint(testJson)
@ -1088,7 +1089,7 @@ if args.approve:
postLog = []
cachedWebfingers = {}
personCache = {}
signingPrivateKeyPem = None
signingPrivateKeyPem = getInstanceActorKey(baseDir, domain)
manualApproveFollowRequest(session, baseDir,
httpPrefix,
args.nickname, domain, port,
@ -1112,7 +1113,7 @@ if args.deny:
postLog = []
cachedWebfingers = {}
personCache = {}
signingPrivateKeyPem = None
signingPrivateKeyPem = getInstanceActorKey(baseDir, domain)
manualDenyFollowRequest(session, baseDir,
httpPrefix,
args.nickname, domain, port,
@ -1201,7 +1202,7 @@ if args.message:
replyTo = args.replyto
followersOnly = False
isArticle = False
signingPrivateKeyPem = None
signingPrivateKeyPem = getInstanceActorKey(baseDir, domain)
print('Sending post to ' + args.sendto)
sendPostViaServer(signingPrivateKeyPem, __version__,
@ -1234,7 +1235,7 @@ if args.announce:
session = createSession(proxyType)
personCache = {}
cachedWebfingers = {}
signingPrivateKeyPem = None
signingPrivateKeyPem = getInstanceActorKey(baseDir, domain)
print('Sending announce/repeat of ' + args.announce)
sendAnnounceViaServer(baseDir, session, args.nickname, args.password,
@ -1274,7 +1275,7 @@ if args.box:
args.port = 80
elif args.gnunet:
proxyType = 'gnunet'
signingPrivateKeyPem = None
signingPrivateKeyPem = getInstanceActorKey(baseDir, domain)
session = createSession(proxyType)
boxJson = c2sBoxJson(baseDir, session,
@ -1331,7 +1332,7 @@ if args.itemName:
session = createSession(proxyType)
personCache = {}
cachedWebfingers = {}
signingPrivateKeyPem = None
signingPrivateKeyPem = getInstanceActorKey(baseDir, domain)
print('Sending shared item: ' + args.itemName)
sendShareViaServer(baseDir, session,
@ -1370,7 +1371,7 @@ if args.undoItemName:
session = createSession(proxyType)
personCache = {}
cachedWebfingers = {}
signingPrivateKeyPem = None
signingPrivateKeyPem = getInstanceActorKey(baseDir, domain)
print('Sending undo of shared item: ' + args.undoItemName)
sendUndoShareViaServer(baseDir, session,
@ -1428,7 +1429,7 @@ if args.wantedItemName:
session = createSession(proxyType)
personCache = {}
cachedWebfingers = {}
signingPrivateKeyPem = None
signingPrivateKeyPem = getInstanceActorKey(baseDir, domain)
print('Sending wanted item: ' + args.wantedItemName)
sendWantedViaServer(baseDir, session,
@ -1467,7 +1468,7 @@ if args.undoWantedItemName:
session = createSession(proxyType)
personCache = {}
cachedWebfingers = {}
signingPrivateKeyPem = None
signingPrivateKeyPem = getInstanceActorKey(baseDir, domain)
print('Sending undo of wanted item: ' + args.undoWantedItemName)
sendUndoWantedViaServer(baseDir, session,
@ -1497,7 +1498,7 @@ if args.like:
session = createSession(proxyType)
personCache = {}
cachedWebfingers = {}
signingPrivateKeyPem = None
signingPrivateKeyPem = getInstanceActorKey(baseDir, domain)
print('Sending like of ' + args.like)
sendLikeViaServer(baseDir, session,
@ -1526,7 +1527,7 @@ if args.undolike:
session = createSession(proxyType)
personCache = {}
cachedWebfingers = {}
signingPrivateKeyPem = None
signingPrivateKeyPem = getInstanceActorKey(baseDir, domain)
print('Sending undo like of ' + args.undolike)
sendUndoLikeViaServer(baseDir, session,
@ -1556,7 +1557,7 @@ if args.bookmark:
session = createSession(proxyType)
personCache = {}
cachedWebfingers = {}
signingPrivateKeyPem = None
signingPrivateKeyPem = getInstanceActorKey(baseDir, domain)
print('Sending bookmark of ' + args.bookmark)
sendBookmarkViaServer(baseDir, session,
@ -1586,7 +1587,7 @@ if args.unbookmark:
session = createSession(proxyType)
personCache = {}
cachedWebfingers = {}
signingPrivateKeyPem = None
signingPrivateKeyPem = getInstanceActorKey(baseDir, domain)
print('Sending undo bookmark of ' + args.unbookmark)
sendUndoBookmarkViaServer(baseDir, session,
@ -1615,7 +1616,7 @@ if args.delete:
session = createSession(proxyType)
personCache = {}
cachedWebfingers = {}
signingPrivateKeyPem = None
signingPrivateKeyPem = getInstanceActorKey(baseDir, domain)
print('Sending delete request of ' + args.delete)
sendDeleteViaServer(baseDir, session,
@ -1656,7 +1657,7 @@ if args.follow:
followHttpPrefix = httpPrefix
if args.follow.startswith('https'):
followHttpPrefix = 'https'
signingPrivateKeyPem = None
signingPrivateKeyPem = getInstanceActorKey(baseDir, domain)
sendFollowRequestViaServer(baseDir, session,
args.nickname, args.password,
@ -1698,7 +1699,7 @@ if args.unfollow:
followHttpPrefix = httpPrefix
if args.follow.startswith('https'):
followHttpPrefix = 'https'
signingPrivateKeyPem = None
signingPrivateKeyPem = getInstanceActorKey(baseDir, domain)
sendUnfollowRequestViaServer(baseDir, session,
args.nickname, args.password,
@ -1729,7 +1730,7 @@ if args.followingList:
personCache = {}
cachedWebfingers = {}
followHttpPrefix = httpPrefix
signingPrivateKeyPem = None
signingPrivateKeyPem = getInstanceActorKey(baseDir, domain)
followingJson = \
getFollowingViaServer(baseDir, session,
@ -1758,7 +1759,7 @@ if args.followersList:
personCache = {}
cachedWebfingers = {}
followHttpPrefix = httpPrefix
signingPrivateKeyPem = None
signingPrivateKeyPem = getInstanceActorKey(baseDir, domain)
followersJson = \
getFollowersViaServer(baseDir, session,
@ -1788,7 +1789,7 @@ if args.followRequestsList:
personCache = {}
cachedWebfingers = {}
followHttpPrefix = httpPrefix
signingPrivateKeyPem = None
signingPrivateKeyPem = getInstanceActorKey(baseDir, domain)
followRequestsJson = \
getFollowRequestsViaServer(baseDir, session,
@ -1836,7 +1837,7 @@ if args.migrations:
httpPrefix = 'https'
port = 443
session = createSession(proxyType)
signingPrivateKeyPem = None
signingPrivateKeyPem = getInstanceActorKey(baseDir, domain)
ctr = migrateAccounts(baseDir, session,
httpPrefix, cachedWebfingers,
True, signingPrivateKeyPem)
@ -1847,7 +1848,7 @@ if args.migrations:
sys.exit()
if args.actor:
signingPrivateKeyPem = None
signingPrivateKeyPem = getInstanceActorKey(baseDir, domain)
getActorJson(args.domain, args.actor, args.http, args.gnunet,
debug, False, signingPrivateKeyPem)
sys.exit()
@ -1925,7 +1926,7 @@ if args.followers:
nickname = domain
handle = nickname + '@' + domain
signingPrivateKeyPem = None
signingPrivateKeyPem = getInstanceActorKey(baseDir, domain)
wfRequest = webfingerHandle(session, handle,
httpPrefix, cachedWebfingers,
None, __version__, debug, False,
@ -1971,7 +1972,7 @@ if args.followers:
asHeader = {
'Accept': 'application/ld+json; profile="' + profileStr + '"'
}
signingPrivateKeyPem = None
signingPrivateKeyPem = getInstanceActorKey(baseDir, domain)
followersList = \
downloadFollowCollection(signingPrivateKeyPem,
'followers', session,
@ -2224,7 +2225,7 @@ if args.skill:
session = createSession(proxyType)
personCache = {}
cachedWebfingers = {}
signingPrivateKeyPem = None
signingPrivateKeyPem = getInstanceActorKey(baseDir, domain)
print('Sending ' + args.skill + ' skill level ' +
str(args.skillLevelPercent) + ' for ' + nickname)
@ -2255,7 +2256,7 @@ if args.availability:
session = createSession(proxyType)
personCache = {}
cachedWebfingers = {}
signingPrivateKeyPem = None
signingPrivateKeyPem = getInstanceActorKey(baseDir, domain)
print('Sending availability status of ' + nickname +
' as ' + args.availability)
@ -2365,7 +2366,7 @@ if args.block:
session = createSession(proxyType)
personCache = {}
cachedWebfingers = {}
signingPrivateKeyPem = None
signingPrivateKeyPem = getInstanceActorKey(baseDir, domain)
print('Sending block of ' + args.block)
sendBlockViaServer(baseDir, session, nickname, args.password,
@ -2393,7 +2394,7 @@ if args.mute:
session = createSession(proxyType)
personCache = {}
cachedWebfingers = {}
signingPrivateKeyPem = None
signingPrivateKeyPem = getInstanceActorKey(baseDir, domain)
print('Sending mute of ' + args.mute)
sendMuteViaServer(baseDir, session, nickname, args.password,
@ -2421,7 +2422,7 @@ if args.unmute:
session = createSession(proxyType)
personCache = {}
cachedWebfingers = {}
signingPrivateKeyPem = None
signingPrivateKeyPem = getInstanceActorKey(baseDir, domain)
print('Sending undo mute of ' + args.unmute)
sendUndoMuteViaServer(baseDir, session, nickname, args.password,
@ -2461,7 +2462,7 @@ if args.unblock:
session = createSession(proxyType)
personCache = {}
cachedWebfingers = {}
signingPrivateKeyPem = None
signingPrivateKeyPem = getInstanceActorKey(baseDir, domain)
print('Sending undo block of ' + args.unblock)
sendUndoBlockViaServer(baseDir, session, nickname, args.password,

View File

@ -130,19 +130,49 @@ def noOfFollowersOnDomain(baseDir: str, handle: str,
return ctr
def _getLocalPrivateKey(baseDir: str, nickname: str, domain: str) -> str:
"""Returns the private key for a local account
"""
handle = nickname + '@' + domain
keyFilename = baseDir + '/keys/private/' + handle.lower() + '.key'
if not os.path.isfile(keyFilename):
return None
with open(keyFilename, 'r') as pemFile:
return pemFile.read()
return None
def getInstanceActorKey(baseDir: str, domain: str) -> str:
"""Returns the private key for the instance actor used for
signing GET posts
"""
return _getLocalPrivateKey(baseDir, 'inbox', domain)
def _getLocalPublicKey(baseDir: str, nickname: str, domain: str) -> str:
"""Returns the public key for a local account
"""
handle = nickname + '@' + domain
keyFilename = baseDir + '/keys/public/' + handle.lower() + '.key'
if not os.path.isfile(keyFilename):
return None
with open(keyFilename, 'r') as pemFile:
return pemFile.read()
return None
def _getPersonKey(nickname: str, domain: str, baseDir: str,
keyType: str = 'public', debug: bool = False):
"""Returns the public or private key of a person
"""
handle = nickname + '@' + domain
keyFilename = baseDir + '/keys/' + keyType + '/' + handle.lower() + '.key'
if not os.path.isfile(keyFilename):
if keyType == 'private':
keyPem = _getLocalPrivateKey(baseDir, nickname, domain)
else:
keyPem = _getLocalPublicKey(baseDir, nickname, domain)
if not keyPem:
if debug:
print('DEBUG: private key file not found: ' + keyFilename)
print('DEBUG: ' + keyType + ' key file not found')
return ''
keyPem = ''
with open(keyFilename, 'r') as pemFile:
keyPem = pemFile.read()
if len(keyPem) < 20:
if debug:
print('DEBUG: private key was too short: ' + keyPem)