Block and unblock options

master
Bob Mottram 2019-07-14 20:57:05 +01:00
parent 005bd0b0af
commit 645f45cfcb
2 changed files with 34 additions and 3 deletions

View File

@ -9,20 +9,21 @@ __status__ = "Production"
import os
def addBlock(baseDir: str,nickname: str,domain: str, \
blockNickname: str,blockDomain: str) -> None:
blockNickname: str,blockDomain: str) -> bool:
"""Block the given account
"""
blockingFilename=baseDir+'/accounts/'+nickname+'@'+domain+'/blocking.txt'
blockHandle=blockNickName+'@'+blockDomain
if os.path.isfile(blockingFilename):
if blockHandle in open(blockingFilename).read():
return
return False
blockFile=open(blockingFilename, "a+")
blockFile.write(blockHandle+'\n')
blockFile.close()
return True
def removeBlock(baseDir: str,nickname: str,domain: str, \
unblockNickname: str,unblockDomain: str) -> None:
unblockNickname: str,unblockDomain: str) -> bool:
"""Unblock the given account
"""
unblockingFilename=baseDir+'/accounts/'+nickname+'@'+domain+'/blocking.txt'
@ -37,6 +38,8 @@ def removeBlock(baseDir: str,nickname: str,domain: str, \
fpnew.write(handle+'\n')
if os.path.isfile(unblockingFilename+'.new'):
os.rename(unblockingFilename+'.new',unblockingFilename)
return True
return False
def isBlocked(baseDir: str,nickname: str,domain: str, \
blockNickname: str,blockDomain: str) -> bool:

View File

@ -30,6 +30,8 @@ from posts import getUserUrl
from posts import archivePosts
from session import createSession
from session import getJson
from blocking import addBlock
from blocking import removeBlock
import json
import os
import shutil
@ -185,6 +187,10 @@ parser.add_argument('--level', dest='skillLevelPercent', type=int,default=None,
help='Set a skill level for a person as a percentage, or zero to remove')
parser.add_argument('--status','--availability', dest='availability', type=str,default=None, \
help='Set an availability status')
parser.add_argument('--block', dest='block', type=str,default=None, \
help='Block a particular address')
parser.add_argument('--unblock', dest='unblock', type=str,default=None, \
help='Remove a block on a particular address')
args = parser.parse_args()
debug=False
@ -586,6 +592,28 @@ if not os.path.isdir(baseDir+'/accounts/'+nickname+'@'+domain):
setConfigParam(baseDir,'adminPassword',adminPassword)
createPerson(baseDir,nickname,domain,port,httpPrefix,True,adminPassword)
if args.block:
if not args.nickname:
print('Please specify a nickname')
sys.exit()
if '@' not in args.block:
print('syntax: --block nickname@domain')
sys.exit()
if addBlock(baseDir,args.nickname,domain,args.block.split('@')[0],args.block.split('@')[1].replace('\n','')):
print(args.block+' is blocked by '+args.nickname)
sys.exit()
if args.unblock:
if not args.nickname:
print('Please specify a nickname')
sys.exit()
if '@' not in args.block:
print('syntax: --unblock nickname@domain')
sys.exit()
if removeBlock(baseDir,args.nickname,domain,args.block.split('@')[0],args.block.split('@')[1].replace('\n','')):
print('The block on '+args.block+' was removed by '+args.nickname)
sys.exit()
if args.testdata:
useBlurhash=False
nickname='testuser567'