smooth-operator/Db.py
Viktor Sjölind 96e6da2752 Refactor to run in both Python 2.7 and Python 3.6
Refactor to run in both Python 2.7 and Python 3.6. This is important as
python 2.7 is end of life.

I tried to edit as few things as possible in this commit to minimize
conflicts which means the code could be prettier.

Signed-off-by: Viktor Sjölind <viktor@sjolind.se>
2017-06-10 11:59:11 +02:00

60 lines
1.5 KiB
Python

from peewee import *
import datetime
DATABASE = "irc.db"
database = SqliteDatabase(DATABASE)
class BaseModel(Model):
class Meta:
database = database
class Day(BaseModel):
date = CharField()
class Channel(BaseModel):
name = CharField(unique = True)
class LogMessage(BaseModel):
day = ForeignKeyField(Day)
channel = ForeignKeyField(Channel)
nickname = CharField()
datetime = DateTimeField()
message_type = CharField()
message = CharField()
def create_tables():
database.connect()
try:
database.create_tables([LogMessage, Day, Channel])
except OperationalError:
pass # Database already exists
def get_current_day():
today = datetime.date.today()
try:
return Day.get(Day.date == today)
except:
Day.create(date = today)
return Day.get(Day.date == today)
def get_channel(c):
try:
return Channel.get(Channel.name == c)
except:
Channel.create(name = c)
return Channel.get(Channel.name == c)
def add_log_message(channel, nickname, message_type, message = None):
msg = LogMessage.create(
day = get_current_day(),
channel = get_channel(channel),
nickname = nickname,
datetime = datetime.datetime.now().strftime("%H:%m:%S"),
message_type = message_type,
message = message)
def show_all_messages():
for message in LogMessage.select():
print("<%s> %s" % (message.nickname, message.message))