diff --git a/README.md b/README.md index 126a0966..65b3da18 100644 --- a/README.md +++ b/README.md @@ -3,6 +3,7 @@ Some experiments with ActivityPub in Python. Based on the specification: https://www.w3.org/TR/activitypub +Also: https://raw.githubusercontent.com/w3c/activitypub/gh-pages/activitypub-tutorial.txt ## Install diff --git a/epicyon.py b/epicyon.py index ae8262f9..6b9281ba 100644 --- a/epicyon.py +++ b/epicyon.py @@ -12,6 +12,7 @@ from person import setBio from webfinger import webfingerHandle from posts import getUserPosts from posts import createPublicPost +from posts import deleteAllPosts from session import createSession import json import sys @@ -31,14 +32,15 @@ useTor=False session = createSession(useTor) privateKeyPem,publicKeyPem,person,wfEndpoint=createPerson(username,domain,https,True) +deleteAllPosts(username,domain) setPreferredUsername(username,domain,'badger') setBio(username,domain,'Some personal info') -#createPublicPost(username, domain, https, "G'day world!", False, True, None, None, 'Not suitable for Vogons') +createPublicPost(username, domain, https, "G'day world!", False, True, None, None, 'Not suitable for Vogons') #runDaemon(domain,port,federationList,useTor) #testHttpsig() -#sys.exit() +sys.exit() #pprint(person) #print('\n') diff --git a/posts.py b/posts.py index 054d9cbb..74354bc7 100644 --- a/posts.py +++ b/posts.py @@ -11,7 +11,7 @@ import json import commentjson import html import datetime -import os +import os, shutil from pprint import pprint from random import randint from session import getJson @@ -167,8 +167,22 @@ def createOutboxDir(username: str,domain: str) -> (str,str): outboxJsonFilename=baseDir+'/accounts/'+handle+'/outbox.json' return outboxJsonFilename,outboxDir +def deleteAllPosts(username: str, domain: str) -> None: + """Deletes all posts for a person + """ + outboxJsonFilename,outboxDir = createOutboxDir(username,domain) + for deleteFilename in os.listdir(outboxDir): + filePath = os.path.join(outboxDir, deleteFilename) + try: + if os.path.isfile(filePath): + os.unlink(filePath) + elif os.path.isdir(filePath): shutil.rmtree(filePath) + except Exception as e: + print(e) + # TODO update output feed + def createPublicPost(username: str, domain: str, https: bool, content: str, followersOnly: bool, saveToFile: bool, inReplyTo=None, inReplyToAtomUri=None, subject=None) -> {}: - """Creates a post + """Creates a public post """ prefix='https' if not https: @@ -232,6 +246,7 @@ def createPublicPost(username: str, domain: str, https: bool, content: str, foll filename=outboxDir+'/'+newPostId.replace('/','#')+'.json' with open(filename, 'w') as fp: commentjson.dump(newPost, fp, indent=4, sort_keys=False) + # TODO update output feed return newPost def createOutbox(username: str,domain: str,https: bool,noOfItems: int):