SpiceBot-migrated/sopel_modules/SpiceBot_Database_Tools/DatabaseTools.py
2019-05-13 11:48:25 -04:00

65 lines
1.6 KiB
Python

#!/usr/bin/env python
# coding=utf-8
from __future__ import unicode_literals, absolute_import, print_function, division
# sopel imports
import sopel.module
"""Dyanmic Table Creation"""
def db_create_table(bot, tablename):
bot.db._create_table(tablename)
"""Database Direct"""
# Get a value
def db_get_nick_value(bot, nick, key):
database_value = bot.db.get_nick_value(nick, key) or None
return database_value
# set a value
def db_set_nick_value(bot, nick, key, value):
bot.db.set_nick_value(nick, key, value)
# DELETE a value
def db_reset_value(bot, nick, key):
bot.db.reset_nick_value(nick, key)
# add or subtract from current value
def db_adjust_value(bot, nick, key, value):
bot.db.adjust_nick_value(nick, key, value)
# list stored in database, add or remove elements
def db_adjust_list(bot, nick, entries, key, adjustmentdirection):
if not isinstance(entries, list):
entries = [entries]
adjustlist = db_get_nick_value(bot, nick, key) or []
adjustlistnew = []
for x in adjustlist:
adjustlistnew.append(x)
db_reset_value(bot, nick, key)
adjustlist = []
if adjustmentdirection == 'add':
for y in entries:
if y not in adjustlistnew:
adjustlistnew.append(y)
elif adjustmentdirection == 'del':
for y in entries:
if y in adjustlistnew:
adjustlistnew.remove(y)
for x in adjustlistnew:
if x not in adjustlist:
adjustlist.append(x)
if not len(adjustlist):
db_reset_value(bot, nick, key)
else:
db_set_nick_value(bot, nick, key, adjustlist)