106 lines
3.0 KiB
Python
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)
|