mirror of https://gitlab.com/bashrc2/epicyon
Block and unblock options
parent
005bd0b0af
commit
645f45cfcb
|
@ -9,20 +9,21 @@ __status__ = "Production"
|
||||||
import os
|
import os
|
||||||
|
|
||||||
def addBlock(baseDir: str,nickname: str,domain: str, \
|
def addBlock(baseDir: str,nickname: str,domain: str, \
|
||||||
blockNickname: str,blockDomain: str) -> None:
|
blockNickname: str,blockDomain: str) -> bool:
|
||||||
"""Block the given account
|
"""Block the given account
|
||||||
"""
|
"""
|
||||||
blockingFilename=baseDir+'/accounts/'+nickname+'@'+domain+'/blocking.txt'
|
blockingFilename=baseDir+'/accounts/'+nickname+'@'+domain+'/blocking.txt'
|
||||||
blockHandle=blockNickName+'@'+blockDomain
|
blockHandle=blockNickName+'@'+blockDomain
|
||||||
if os.path.isfile(blockingFilename):
|
if os.path.isfile(blockingFilename):
|
||||||
if blockHandle in open(blockingFilename).read():
|
if blockHandle in open(blockingFilename).read():
|
||||||
return
|
return False
|
||||||
blockFile=open(blockingFilename, "a+")
|
blockFile=open(blockingFilename, "a+")
|
||||||
blockFile.write(blockHandle+'\n')
|
blockFile.write(blockHandle+'\n')
|
||||||
blockFile.close()
|
blockFile.close()
|
||||||
|
return True
|
||||||
|
|
||||||
def removeBlock(baseDir: str,nickname: str,domain: str, \
|
def removeBlock(baseDir: str,nickname: str,domain: str, \
|
||||||
unblockNickname: str,unblockDomain: str) -> None:
|
unblockNickname: str,unblockDomain: str) -> bool:
|
||||||
"""Unblock the given account
|
"""Unblock the given account
|
||||||
"""
|
"""
|
||||||
unblockingFilename=baseDir+'/accounts/'+nickname+'@'+domain+'/blocking.txt'
|
unblockingFilename=baseDir+'/accounts/'+nickname+'@'+domain+'/blocking.txt'
|
||||||
|
@ -37,6 +38,8 @@ def removeBlock(baseDir: str,nickname: str,domain: str, \
|
||||||
fpnew.write(handle+'\n')
|
fpnew.write(handle+'\n')
|
||||||
if os.path.isfile(unblockingFilename+'.new'):
|
if os.path.isfile(unblockingFilename+'.new'):
|
||||||
os.rename(unblockingFilename+'.new',unblockingFilename)
|
os.rename(unblockingFilename+'.new',unblockingFilename)
|
||||||
|
return True
|
||||||
|
return False
|
||||||
|
|
||||||
def isBlocked(baseDir: str,nickname: str,domain: str, \
|
def isBlocked(baseDir: str,nickname: str,domain: str, \
|
||||||
blockNickname: str,blockDomain: str) -> bool:
|
blockNickname: str,blockDomain: str) -> bool:
|
||||||
|
|
28
epicyon.py
28
epicyon.py
|
@ -30,6 +30,8 @@ from posts import getUserUrl
|
||||||
from posts import archivePosts
|
from posts import archivePosts
|
||||||
from session import createSession
|
from session import createSession
|
||||||
from session import getJson
|
from session import getJson
|
||||||
|
from blocking import addBlock
|
||||||
|
from blocking import removeBlock
|
||||||
import json
|
import json
|
||||||
import os
|
import os
|
||||||
import shutil
|
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')
|
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, \
|
parser.add_argument('--status','--availability', dest='availability', type=str,default=None, \
|
||||||
help='Set an availability status')
|
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()
|
args = parser.parse_args()
|
||||||
|
|
||||||
debug=False
|
debug=False
|
||||||
|
@ -586,6 +592,28 @@ if not os.path.isdir(baseDir+'/accounts/'+nickname+'@'+domain):
|
||||||
setConfigParam(baseDir,'adminPassword',adminPassword)
|
setConfigParam(baseDir,'adminPassword',adminPassword)
|
||||||
createPerson(baseDir,nickname,domain,port,httpPrefix,True,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:
|
if args.testdata:
|
||||||
useBlurhash=False
|
useBlurhash=False
|
||||||
nickname='testuser567'
|
nickname='testuser567'
|
||||||
|
|
Loading…
Reference in New Issue