forked from indymedia/epicyon
Block and unblock options
parent
005bd0b0af
commit
645f45cfcb
|
@ -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:
|
||||
|
|
28
epicyon.py
28
epicyon.py
|
@ -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'
|
||||
|
|
Loading…
Reference in New Issue