mirror of
https://github.com/gryf/slack-backup.git
synced 2025-12-17 11:30:25 +01:00
Removed IdMap, added slackid column
This commit is contained in:
@@ -1,23 +1,19 @@
|
|||||||
"""
|
"""
|
||||||
Convinient object mapping from slack API reponses
|
Convinient object mapping from slack API reponses
|
||||||
"""
|
"""
|
||||||
from sqlalchemy import Column, Integer, Text, Boolean, ForeignKey
|
from datetime import datetime
|
||||||
|
|
||||||
|
from sqlalchemy import Column, Integer, Text, Boolean, ForeignKey, Sequence
|
||||||
from sqlalchemy import DateTime
|
from sqlalchemy import DateTime
|
||||||
from sqlalchemy.orm import relationship
|
from sqlalchemy.orm import relationship
|
||||||
|
|
||||||
from slack_backup.db import Base
|
from slack_backup.db import Base
|
||||||
|
|
||||||
|
|
||||||
class IdMap(Base):
|
|
||||||
__tablename__ = 'idmap'
|
|
||||||
slackid = Column(Text, nullable=False, primary_key=True)
|
|
||||||
dbid = Column(Integer, nullable=False, primary_key=True,
|
|
||||||
autoincrement=False)
|
|
||||||
classname = Column(Text, nullable=False, primary_key=True)
|
|
||||||
|
|
||||||
|
|
||||||
class Purpose(Base):
|
class Purpose(Base):
|
||||||
__tablename__ = 'purposes'
|
__tablename__ = 'purposes'
|
||||||
|
__table_args__ = {'sqlite_autoincrement': True}
|
||||||
|
|
||||||
id = Column(Integer, primary_key=True)
|
id = Column(Integer, primary_key=True)
|
||||||
last_set = Column(DateTime, primary_key=True)
|
last_set = Column(DateTime, primary_key=True)
|
||||||
value = Column(Text, primary_key=True)
|
value = Column(Text, primary_key=True)
|
||||||
@@ -28,25 +24,26 @@ class Purpose(Base):
|
|||||||
channel_id = Column(Integer, ForeignKey('channels.id'), index=True)
|
channel_id = Column(Integer, ForeignKey('channels.id'), index=True)
|
||||||
channel = relationship("Channel", back_populates="purpose")
|
channel = relationship("Channel", back_populates="purpose")
|
||||||
|
|
||||||
def __init__(self, creator, data_dict=None):
|
def __init__(self, data_dict=None):
|
||||||
self.update(creator, data_dict)
|
self.update(data_dict)
|
||||||
|
|
||||||
def update(self, creator, data_dict):
|
def update(self, data_dict):
|
||||||
data_dict = data_dict or {}
|
data_dict = data_dict or {}
|
||||||
self.last_set = data_dict.get('last_set', 0)
|
self.last_set = datetime.fromtimestamp(data_dict.get('last_set', 0))
|
||||||
self.value = data_dict.get('value')
|
self.value = data_dict.get('value')
|
||||||
self.creator = creator
|
|
||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
return u'<%s %s>' % (str(hex(id(self))), self.__unicode__())
|
return u'<%s %s>' % (str(hex(id(self))), self.__unicode__())
|
||||||
|
|
||||||
def __unicode__(self):
|
def __unicode__(self):
|
||||||
return u', %s' % self.value
|
return u', %s %s' % (self.id, self.value)
|
||||||
|
|
||||||
|
|
||||||
class Topic(Base):
|
class Topic(Base):
|
||||||
__tablename__ = 'topics'
|
__tablename__ = 'topics'
|
||||||
id = Column(Integer, primary_key=True)
|
__table_args__ = {'sqlite_autoincrement': True}
|
||||||
|
|
||||||
|
id = Column(Integer, Sequence("file_id_seq"), primary_key=True)
|
||||||
last_set = Column(DateTime, primary_key=True)
|
last_set = Column(DateTime, primary_key=True)
|
||||||
value = Column(Text, primary_key=True)
|
value = Column(Text, primary_key=True)
|
||||||
|
|
||||||
@@ -56,31 +53,33 @@ class Topic(Base):
|
|||||||
creator_id = Column(Integer, ForeignKey('users.id'), index=True)
|
creator_id = Column(Integer, ForeignKey('users.id'), index=True)
|
||||||
creator = relationship("User", back_populates="topics")
|
creator = relationship("User", back_populates="topics")
|
||||||
|
|
||||||
def __init__(self, creator, data_dict=None):
|
def __init__(self, data_dict=None):
|
||||||
self.update(creator, data_dict)
|
self.update(data_dict)
|
||||||
|
|
||||||
def update(self, creator, data_dict):
|
def update(self, data_dict):
|
||||||
data_dict = data_dict or {}
|
data_dict = data_dict or {}
|
||||||
self.last_set = data_dict.get('last_set', 0)
|
self.last_set = datetime.fromtimestamp(data_dict.get('last_set', 0))
|
||||||
self.value = data_dict.get('value')
|
self.value = data_dict.get('value')
|
||||||
self.creator = creator
|
|
||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
return u'<%s %s>' % (str(hex(id(self))), self.__unicode__())
|
return u'<%s %s>' % (str(hex(id(self))), self.__unicode__())
|
||||||
|
|
||||||
def __unicode__(self):
|
def __unicode__(self):
|
||||||
return u', %s' % self.value
|
return u', %s %s' % (self.id, self.value)
|
||||||
|
|
||||||
|
|
||||||
class Channel(Base):
|
class Channel(Base):
|
||||||
__tablename__ = 'channels'
|
__tablename__ = 'channels'
|
||||||
|
__table_args__ = {'sqlite_autoincrement': True}
|
||||||
|
|
||||||
id = Column(Integer, primary_key=True)
|
id = Column(Integer, primary_key=True)
|
||||||
|
slackid = Column(Text)
|
||||||
name = Column(Text)
|
name = Column(Text)
|
||||||
created = Column(DateTime)
|
created = Column(DateTime)
|
||||||
is_archived = Column(Boolean, default=False)
|
is_archived = Column(Boolean, default=False)
|
||||||
|
|
||||||
creator_id = Column(Integer, ForeignKey("users.id"), index=True)
|
creator_id = Column(Integer, ForeignKey("users.id"), nullable=True,
|
||||||
|
index=True)
|
||||||
creator = relationship("User", back_populates="channels")
|
creator = relationship("User", back_populates="channels")
|
||||||
|
|
||||||
purpose = relationship("Purpose", uselist=False, back_populates="channel")
|
purpose = relationship("Purpose", uselist=False, back_populates="channel")
|
||||||
@@ -92,8 +91,9 @@ class Channel(Base):
|
|||||||
def update(self, data_dict):
|
def update(self, data_dict):
|
||||||
data_dict = data_dict or {}
|
data_dict = data_dict or {}
|
||||||
|
|
||||||
self.name = data_dict['name']
|
self.slackid = data_dict.get('id', '')
|
||||||
self.created = data_dict.get('created', '')
|
self.name = data_dict.get('name', '')
|
||||||
|
self.created = datetime.fromtimestamp(data_dict.get('created', 0))
|
||||||
self.is_archived = data_dict.get('is_archived', False)
|
self.is_archived = data_dict.get('is_archived', False)
|
||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
@@ -105,6 +105,8 @@ class Channel(Base):
|
|||||||
|
|
||||||
class UserProfile(Base):
|
class UserProfile(Base):
|
||||||
__tablename__ = "profiles"
|
__tablename__ = "profiles"
|
||||||
|
__table_args__ = {'sqlite_autoincrement': True}
|
||||||
|
|
||||||
id = Column(Integer, primary_key=True)
|
id = Column(Integer, primary_key=True)
|
||||||
user_id = Column(Integer, ForeignKey("users.id"), index=True)
|
user_id = Column(Integer, ForeignKey("users.id"), index=True)
|
||||||
user = relationship("User", back_populates="profile")
|
user = relationship("User", back_populates="profile")
|
||||||
@@ -142,7 +144,10 @@ class UserProfile(Base):
|
|||||||
|
|
||||||
class User(Base):
|
class User(Base):
|
||||||
__tablename__ = 'users'
|
__tablename__ = 'users'
|
||||||
|
__table_args__ = {'sqlite_autoincrement': True}
|
||||||
|
|
||||||
id = Column(Integer, primary_key=True)
|
id = Column(Integer, primary_key=True)
|
||||||
|
slackid = Column(Text)
|
||||||
deleted = Column(Boolean, default=False)
|
deleted = Column(Boolean, default=False)
|
||||||
name = Column(Text)
|
name = Column(Text)
|
||||||
real_name = Column(Text)
|
real_name = Column(Text)
|
||||||
@@ -158,6 +163,7 @@ class User(Base):
|
|||||||
def update(self, data_dict=None):
|
def update(self, data_dict=None):
|
||||||
data_dict = data_dict or {}
|
data_dict = data_dict or {}
|
||||||
|
|
||||||
|
self.slackid = data_dict.get('id', '')
|
||||||
self.deleted = data_dict.get('deleted', False)
|
self.deleted = data_dict.get('deleted', False)
|
||||||
self.name = data_dict.get("name", '')
|
self.name = data_dict.get("name", '')
|
||||||
self.real_name = data_dict.get('real_name', '')
|
self.real_name = data_dict.get('real_name', '')
|
||||||
|
|||||||
@@ -151,3 +151,4 @@ class TestClient(unittest.TestCase):
|
|||||||
users = cl.session.query(objects.User).all()
|
users = cl.session.query(objects.User).all()
|
||||||
self.assertEqual(len(users), 4)
|
self.assertEqual(len(users), 4)
|
||||||
self.assertEqual(users[0].id, 1)
|
self.assertEqual(users[0].id, 1)
|
||||||
|
self.assertEqual(users[0].slackid, 'UAAAAAAAA')
|
||||||
|
|||||||
Reference in New Issue
Block a user