mirror of https://gitlab.com/bashrc2/epicyon
Attempt to obtain instance actor when using commandline
parent
bc77b25520
commit
152febac88
73
epicyon.py
73
epicyon.py
|
@ -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,
|
||||
|
|
44
posts.py
44
posts.py
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue