telegram-moderator/model.py

62 lines
1.8 KiB
Python
Raw Permalink Normal View History

2020-01-28 04:28:14 +00:00
from sqlalchemy import Column, DateTime, BigInteger, String, Integer, Numeric, ForeignKey, func
2018-01-28 23:29:58 +00:00
from sqlalchemy.orm import relationship, backref
from sqlalchemy.ext.declarative import declarative_base
import os
# Localhost url: postgresql://localhost/postgres
postgres_url = os.environ["TELEGRAM_BOT_POSTGRES_URL"]
2018-01-28 23:29:58 +00:00
'''
This model has been referenced from: https://www.pythoncentral.io/sqlalchemy-orm-examples/
'''
2018-01-28 23:29:58 +00:00
Base = declarative_base()
2018-01-28 23:29:58 +00:00
class User(Base):
__tablename__ = 'telegram_users'
2018-01-28 23:29:58 +00:00
id = Column(Integer, primary_key=True)
first_name = Column(String)
last_name = Column(String)
username = Column(String)
2018-01-28 23:29:58 +00:00
class Message(Base):
__tablename__ = 'telegram_messages'
2018-01-28 23:29:58 +00:00
id = Column(Integer, primary_key=True)
user_id = Column(Integer, ForeignKey('telegram_users.id'), nullable=False)
2018-01-28 23:29:58 +00:00
message = Column(String)
2020-01-28 02:24:25 +00:00
language_code = Column(String)
english_message = Column(String)
2020-01-25 01:51:34 +00:00
chat_id = Column(BigInteger)
2020-01-28 04:08:00 +00:00
polarity = Column(Numeric)
subjectivity = Column(Numeric)
2018-02-10 01:13:09 +00:00
time = Column(DateTime, default=func.now())
class MessageHide(Base):
__tablename__ = 'telegram_message_hides'
id = Column(Integer, primary_key=True)
user_id = Column(Integer, ForeignKey('telegram_users.id'), nullable=False)
message = Column(String)
time = Column(DateTime, default=func.now())
class UserBan(Base):
__tablename__ = 'telegram_user_bans'
id = Column(Integer, primary_key=True)
user_id = Column(Integer, ForeignKey('telegram_users.id'), nullable=False)
reason = Column(String)
2018-01-28 23:29:58 +00:00
time = Column(DateTime, default=func.now())
2018-01-28 23:29:58 +00:00
from sqlalchemy import create_engine
engine = create_engine(postgres_url)
2018-01-28 23:29:58 +00:00
from sqlalchemy.orm import sessionmaker
session = sessionmaker()
session.configure(bind=engine)
Base.metadata.create_all(engine)
2018-02-10 01:13:09 +00:00
2018-01-30 23:44:44 +00:00
print ("Created database model")