From 7d047cf9ca0cebb3d28a9d7583658835786fc6c0 Mon Sep 17 00:00:00 2001 From: Izalia Mae Date: Fri, 29 Nov 2019 15:33:40 -0500 Subject: [PATCH] update ban if it exists --- block.py | 45 ++++++++++++++++++++++++++++++--------------- 1 file changed, 30 insertions(+), 15 deletions(-) diff --git a/block.py b/block.py index cbe094c..e5530c1 100755 --- a/block.py +++ b/block.py @@ -164,30 +164,45 @@ def ban(data): if not data: return 'Missing domain to block' + if data[1] in ['suspend', 'silence', 'none']: + bantype = {'silence': 0, 'suspend': 1, 'none': 2} + severity = bantype[data[1]] + + else: + severity = 0 + + media=data[2] if data[2] != None else False + reports=data[3] if data[3] != None else False + private=data[4] if boolean(data[4]) else None + public=data[5] if boolean(data[5]) else None + date = datetime.datetime.now() + if not ban_check(data[0]): - date = datetime.datetime.now() - - if data[1] in ['suspend', 'silence', 'none']: - bantype = {'silence': 0, 'suspend': 1, 'none': 2} - severity = bantype[data[1]] - - else: - severity = 0 - db.insert('public.domain_blocks', domain=data[0], severity=severity, - reject_media=data[2] if data[2] != None else False, - reject_reports=data[3] if data[3] != None else False, - private_comment=data[4] if boolean(data[4]) else None, - public_comment=data[5] if boolean(data[5]) else None, + reject_media=media, + reject_reports=reports, + private_comment=private, + public_comment=public, created_at=date, updated_at=date ) return f'Created new block for {data[0]}' - # This will eventually be replaced with code to update the ban - return f'{data[0]} was already banned' + rowquery = db.query(f'SELECT * FROM public.domain_blocks WHERE domain = \'{data[0]}\';').dictresult() + rowdata = rowquery[0] if rowquery else None + + db.update('public.domain_blocks', {'id': rowdata['id']}, + severity=severity, + reject_media=media, + reject_reports=reports, + private_comment=private, + public_comment=public, + updated_at=date + ) + + return f'Ban for {data[0]} has been updated' def unban(data):