From 6c388865394af784a56f95033b44fab6825a6d89 Mon Sep 17 00:00:00 2001 From: Marcel Schneider Date: Wed, 17 Oct 2018 19:42:54 +0200 Subject: [PATCH] Add chat id, for separated entries in db --- db.py | 20 ++++++++++---------- schneiderbot.py | 10 +++++----- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/db.py b/db.py index 0f7ffdd..cd07206 100644 --- a/db.py +++ b/db.py @@ -7,28 +7,28 @@ class Db(): self.conn = sqlite3.connect("deaths.db") table_exist = self.conn.execute("SELECT name FROM sqlite_master WHERE type='table' AND name='death'") if table_exist.fetchall() == []: - self.conn.execute("CREATE TABLE death(name)") + self.conn.execute("CREATE TABLE death(name text, chat integer )") + self.conn.execute("create index chat_idx on death(chat)") def __del__(self): self.conn.commit() - def is_dead(self, user): + def is_dead(self, user, chat): """Reports whether a user is already dead""" - print(str(user)) - res = self.conn.execute("select * from death where name = ?", [user]) + res = self.conn.execute("select * from death where chat = ? and name = ?", [chat, user]) return res.fetchall() != [] - def kill(self, user): + def kill(self, user, chat): """Kills a user""" - self.conn.execute("insert into death(name) values(?)", [user]) + self.conn.execute("insert into death(name, chat) values(?, ?)", [user, chat]) - def revive(self, user): + def revive(self, user, chat): """Revives a user""" - self.conn.execute("delete from death where name = ?", [user]) + self.conn.execute("delete from death where chat = ? and name = ?", [chat, user]) - def get_dead_bodies(self): + def get_dead_bodies(self, chat): """List the dead""" names = [] - for name in self.conn.execute("select * from death").fetchall(): + for name in self.conn.execute("select * from death where chat = ?", chat).fetchall(): names.append(name[0]) return ", ".join(names) diff --git a/schneiderbot.py b/schneiderbot.py index eba0222..4ca722a 100755 --- a/schneiderbot.py +++ b/schneiderbot.py @@ -131,7 +131,7 @@ def kill(bot, update, sudocall = False): """kill me pls""" db = Db() user = update.message.from_user.first_name - if db.is_dead(user): + if db.is_dead(user, update.message.chat_id): if sudocall: update.message.reply_text("%s killed again" % user) return @@ -141,19 +141,19 @@ def kill(bot, update, sudocall = False): message = update.message.from_user.first_name + " died" if sudocall: message += " for real" - db.kill(user) + db.kill(user, update.message.chat_id) update.message.reply_text(message) def revive(bot, update, sudocall = False): """unkill me pls""" db = Db() user = update.message.from_user.first_name - if not db.is_dead(user): + if not db.is_dead(user, update.message.chat_id): update.message.reply_text("Maybe %s should have a litte 'accident' before" % user) return if sudocall: update.message.reply_text("%s is living again, for real" % user) - db.revive(user) + db.revive(user, update.message.chat_id) return update.message.reply_text("You fool! You cannot revive a dead person!") @@ -165,7 +165,7 @@ SUDOCMDS = { def graveyard(bot, update): """List the dead""" db = Db() - update.message.reply_text("Here are the dead people:\n%s" % db.get_dead_bodies()) + update.message.reply_text("Here are the dead people:\n%s" % db.get_dead_bodies(update.message.chat_id)) def sudo(bot, update, args): """for real"""