epicyon/epicyon.py

115 lines
3.8 KiB
Python
Raw Normal View History

2019-06-28 18:55:29 +00:00
__filename__ = "epicyon.py"
__author__ = "Bob Mottram"
__license__ = "AGPL3+"
__version__ = "0.0.1"
__maintainer__ = "Bob Mottram"
__email__ = "bob@freedombone.net"
__status__ = "Production"
from person import createPerson
from person import setPreferredUsername
2019-06-28 20:00:25 +00:00
from person import setBio
2019-06-28 18:55:29 +00:00
from webfinger import webfingerHandle
from posts import getUserPosts
2019-06-29 10:08:59 +00:00
from posts import createPublicPost
2019-06-29 11:47:33 +00:00
from posts import deleteAllPosts
2019-06-29 13:17:02 +00:00
from posts import createOutbox
2019-06-29 13:44:21 +00:00
from posts import archivePosts
2019-06-30 10:14:02 +00:00
from posts import sendPost
2019-07-01 10:25:03 +00:00
from posts import getPersonBox
2019-06-28 18:55:29 +00:00
from session import createSession
2019-06-29 16:47:37 +00:00
from session import getJson
2019-06-28 18:55:29 +00:00
import json
2019-06-30 22:56:37 +00:00
import os
2019-06-28 18:55:29 +00:00
import sys
import requests
from pprint import pprint
2019-06-30 20:14:03 +00:00
from tests import testHttpsig
2019-06-28 18:55:29 +00:00
from daemon import runDaemon
2019-06-28 19:52:35 +00:00
import socket
2019-06-29 18:23:13 +00:00
from follow import clearFollows
2019-06-29 20:21:37 +00:00
from follow import clearFollowers
2019-06-29 18:23:13 +00:00
from follow import followPerson
from follow import followerOfPerson
from follow import unfollowPerson
from follow import unfollowerOfPerson
2019-06-30 21:20:02 +00:00
from tests import testPostMessageBetweenServers
from tests import runAllTests
runAllTests()
2019-06-28 18:55:29 +00:00
2019-06-30 16:29:53 +00:00
federationList=['mastodon.social','wild.com','trees.com','127.0.0.1']
2019-06-28 19:52:35 +00:00
username='testuser'
#domain=socket.gethostname()
2019-06-30 16:29:53 +00:00
domain='127.0.0.1'
2019-06-28 19:52:35 +00:00
port=6227
2019-06-30 19:01:43 +00:00
https=False
2019-06-28 18:55:29 +00:00
useTor=False
2019-06-30 22:56:37 +00:00
baseDir=os.getcwd()
2019-06-28 18:55:29 +00:00
session = createSession(useTor)
2019-07-01 14:30:48 +00:00
personCache={}
cachedWebfingers={}
2019-06-30 22:56:37 +00:00
2019-07-01 09:59:57 +00:00
clearFollows(baseDir,username,domain)
followPerson(baseDir,username,domain,'badger','wild.com',federationList)
followPerson(baseDir,username,domain,'squirrel','secret.com',federationList)
followPerson(baseDir,username,domain,'rodent','drainpipe.com',federationList)
followPerson(baseDir,username,domain,'batman','mesh.com',federationList)
followPerson(baseDir,username,domain,'giraffe','trees.com',federationList)
2019-06-29 18:23:13 +00:00
2019-07-01 09:59:57 +00:00
clearFollowers(baseDir,username,domain)
followerOfPerson(baseDir,username,domain,'badger','wild.com',federationList)
followerOfPerson(baseDir,username,domain,'squirrel','secret.com',federationList)
followerOfPerson(baseDir,username,domain,'rodent','drainpipe.com',federationList)
followerOfPerson(baseDir,username,domain,'batman','mesh.com',federationList)
followerOfPerson(baseDir,username,domain,'giraffe','trees.com',federationList)
2019-06-29 20:21:37 +00:00
#unfollowPerson(username,domain,'squirrel','secret.com')
#sys.exit()
#asHeader = {'Accept': 'application/ld+json; profile="https://www.w3.org/ns/activitystreams"'}
2019-06-29 16:47:37 +00:00
#userFollowing = getJson(session,"https://mastodon.social/users/Gargron/followers?page=true",asHeader,None)
2019-06-29 20:21:37 +00:00
#userFollowing = getJson(session,"https://mastodon.social/users/Gargron/following",asHeader,None)
#userFollowing = getJson(session,"https://mastodon.social/users/Gargron/following?page=1",asHeader,None)
#pprint(userFollowing)
#sys.exit()
2019-06-29 15:18:35 +00:00
2019-06-30 22:56:37 +00:00
privateKeyPem,publicKeyPem,person,wfEndpoint=createPerson(baseDir,username,domain,port,https,True)
2019-06-29 13:17:02 +00:00
#deleteAllPosts(username,domain)
2019-07-01 09:59:57 +00:00
setPreferredUsername(baseDir,username,domain,'badger')
setBio(baseDir,username,domain,'Some personal info')
2019-07-01 12:47:08 +00:00
#createPublicPost(baseDir,username, domain, port,https, "G'day world!", False, True, None, None, 'Not suitable for Vogons')
2019-06-30 22:56:37 +00:00
#archivePosts(username,domain,baseDir,4)
#outboxJson=createOutbox(baseDir,username,domain,port,https,2,True,None)
2019-06-29 17:12:26 +00:00
#pprint(outboxJson)
2019-06-29 10:08:59 +00:00
2019-07-01 10:25:03 +00:00
testPostMessageBetweenServers()
2019-07-01 08:22:15 +00:00
#runDaemon(domain,port,https,federationList,useTor)
2019-06-28 18:55:29 +00:00
#testHttpsig()
2019-07-01 11:09:09 +00:00
sys.exit()
2019-06-28 18:55:29 +00:00
#pprint(person)
#print('\n')
#pprint(wfEndpoint)
handle="https://mastodon.social/@Gargron"
2019-07-01 14:30:48 +00:00
wfRequest = webfingerHandle(session,handle,True,cachedWebfingers)
2019-06-28 18:55:29 +00:00
if not wfRequest:
sys.exit()
2019-07-01 10:25:03 +00:00
2019-07-01 14:30:48 +00:00
personJson,pubKeyId,pubKey,personId=getPersonBox(session,wfRequest,personCache)
2019-07-01 10:25:03 +00:00
pprint(personJson)
sys.exit()
2019-07-01 09:59:57 +00:00
wfResult = json.dumps(wfRequest, indent=4, sort_keys=True)
print(str(wfResult))
sys.exit()
2019-06-28 18:55:29 +00:00
maxMentions=10
maxEmoji=10
maxAttachments=5
2019-06-28 20:43:37 +00:00
userPosts = getUserPosts(session,wfRequest,2,maxMentions,maxEmoji,maxAttachments,federationList)
2019-06-29 10:08:59 +00:00
#print(str(userPosts))