async def set(self, guild, value):
     self.__data[guild.id] = value
     lock = asyncio.Lock()
     async with lock:
         db = DB()
         query = f"""
         INSERT INTO {self.table} (guild_id, value)
           VALUES (?, ?)
           ON CONFLICT (guild_id)
           DO UPDATE SET value=?;
         """
         db.cursor.execute(query, (guild.id, value, value))
         db.commit()
         db.close()
Exemple #2
0
db = DB()
db.cursor.execute(
    'CREATE TABLE Prefix (guild_id INTEGER UNIQUE, value TEXT NOT NULL);')

with open('prefixes.json') as f:
    prefixes = json.load(f)
for guild_id, prefix in prefixes.items():
    db.cursor.execute('INSERT INTO Prefix VALUES (?, ?);', (guild_id, prefix))

db.cursor.execute(
    'CREATE TABLE Language (guild_id INTEGER UNIQUE, value TEXT NOT NULL);')
with open('languages.json') as f:
    languages = json.load(f)
for guild_id, lang in languages.items():
    db.cursor.execute('INSERT INTO Language VALUES (?, ?);', (guild_id, lang))

db.cursor.execute(
    'CREATE TABLE Subscription '
    '(channel_id INTEGER UNIQUE, guild_id INTEGER, guild TEXT, channel TEXT, pc BOOLEAN, switch BOOLEAN);'
)
with open('subscriptions.json') as f:
    subscriptions = json.load(f)
for subscription_id, s in subscriptions.items():
    db.cursor.execute(
        'INSERT INTO Subscription VALUES (?, ?, ?, ?, ?, ?);',
        (s['channel_id'], s['channel_name'], s['guild_id'], s['guild_name'],
         s.get('pc', False), s.get('switch', False)))

db.commit()