sbsheriff/app/helpers.py

106 lines
3.0 KiB
Python

import sqlite3
import re
from sqlite3 import Cursor, Error
import time
import datetime
def sql_set(query = None,data = None):
if query == None: return
try:
con = sqlite3.connect('sbsheriff.sqlite')
cur = con.cursor()
if data != None:
cur.execute(query,data)
else:
cur.execute(query)
cur.close()
con.commit()
con.close()
except Error as e:
print("Sql set error",e)
return Error
def sql_del(query = None):
if query == None: return
try:
con = sqlite3.connect('sbsheriff.sqlite')
cur = con.cursor()
cur.execute(query)
cur.close()
con.commit()
con.close()
except Error as e:
print(e)
return Error
def sql_get(query = None,rfac = False):
if query == None: return
try:
con = sqlite3.connect('sbsheriff.sqlite')
if rfac:
con.row_factory = sqlite3.Row
cur = con.cursor()
cur.execute(query)
re = cur.fetchall()
cur.close()
con.close()
return re
except Error as e:
print(e)
return Error
.knølnlblb
if query == None: return
try:
con = sqlite3.connect('sbsheriff.sqlite')
cur = con.cursor()
cur.execute(query)
re = cur.fetchall()
cur.close()
con.close()
return re
except Error as e:
print(e)
return Error
def calc_times(times,multi:int):
#Split times
timeList = re.split(',| ',times)
time_tuples = []
for num,time_ in enumerate(timeList):
if time_ == '':
continue
#Try and idiotproof some edge cases
if time_.startswith((':',';','.')):
temp_time = time_[1:]
else:
temp_time = time_
modifier = 0
if '|' in time_:
temp = time_.split('|')
name = temp[0]
if name.startswith('>') or name.lower() == 'breaker':
#Breaker
if name.startswith('>'): name = name[1:]
modifier = 10
temp_time = temp[1]
else:
name = '{x}'.format(x = num+1)
time_components = [int(s) for s in re.split('\:|\;|\.',temp_time)]
time_components.reverse()
seconds = 0
for n,t in enumerate(time_components):
seconds += t*60**n
time_tuples.append((name,seconds,multi,modifier))
time_tuples.sort(key=lambda y: y[1])
time_tuples.reverse()
textContent = "**Modifying times to {times}x:**\n".format(times=multi)
for tt in time_tuples:
emoji = '<:Captain:947543163608924181>'
if tt[3] > 0:
emoji = '<:Breaker:947543175025819709>'
textContent += "{emoji}**{vil}**:{t} -{card}x-> {t1}\n".format(vil=tt[0],t=datetime.timedelta(seconds=tt[1]),t1=datetime.timedelta(seconds=int(tt[1]/tt[2])),card=tt[2],emoji=emoji)
textContent += "This message will selfdestruct in <t:{t}:R>".format(t=int(time.time())+540)
return (textContent,time_tuples)