mirror of
https://github.com/gryf/slack-backup.git
synced 2025-12-17 11:30:25 +01:00
Started to convert objects to SA db objects
This commit is contained in:
@@ -1,9 +1,29 @@
|
|||||||
#!/usr/bin/env python3
|
|
||||||
"""
|
"""
|
||||||
Convinient object mapping from slack API reponses
|
Convinient object mapping from slack API reponses
|
||||||
"""
|
"""
|
||||||
|
from sqlalchemy import Column, Integer, Text
|
||||||
|
from sqlalchemy import DateTime
|
||||||
|
from sqlalchemy import UniqueConstraint
|
||||||
|
from sqlalchemy.orm import relation
|
||||||
|
|
||||||
|
from slack_backup.db import Base
|
||||||
|
|
||||||
|
|
||||||
|
class IdMap(Base):
|
||||||
|
__tablename__ = "idmap"
|
||||||
|
slackid = Column(Text, nullable=False)
|
||||||
|
dbid = Column(Integer, nullable=False)
|
||||||
|
classname = Column(Text, nullable=False)
|
||||||
|
__table_args__ = (UniqueConstraint('slackid', 'dbid', 'classname',
|
||||||
|
name='slackid_dbid_classname_uniq'))
|
||||||
|
|
||||||
|
|
||||||
|
class Purpose(Base):
|
||||||
|
__tablename__ = "purpose"
|
||||||
|
creator = relation("User", backref="purposes")
|
||||||
|
last_set = Column(DateTime)
|
||||||
|
value = Column(Text)
|
||||||
|
|
||||||
class Base(object):
|
|
||||||
def __init__(self, data_dict=None):
|
def __init__(self, data_dict=None):
|
||||||
data_dict = data_dict or {}
|
data_dict = data_dict or {}
|
||||||
self.creator = data_dict.get('creator', '')
|
self.creator = data_dict.get('creator', '')
|
||||||
@@ -17,30 +37,27 @@ class Base(object):
|
|||||||
return u", %s" % self.value
|
return u", %s" % self.value
|
||||||
|
|
||||||
|
|
||||||
class Purpose(Base):
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
class Topic(Base):
|
class Topic(Base):
|
||||||
pass
|
__tablename__ = "topic"
|
||||||
|
creator = relation("User", backref="topics")
|
||||||
|
last_set = Column(DateTime)
|
||||||
|
value = Column(Text)
|
||||||
|
|
||||||
|
def __init__(self, data_dict=None):
|
||||||
class BaseObject(object):
|
data_dict = data_dict or {}
|
||||||
def __init__(self):
|
self.creator = data_dict.get('creator', '')
|
||||||
self._id = None
|
self.last_set = data_dict.get('last_set', 0)
|
||||||
self.name = None
|
self.value = data_dict.get('value')
|
||||||
|
|
||||||
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, %s %s" % (self.__class__.__name__, self._id, self.name)
|
return u", %s" % self.value
|
||||||
|
|
||||||
|
|
||||||
class Channel(BaseObject):
|
class Channel(object):
|
||||||
def __init__(self, data_dict=None):
|
def __init__(self, data_dict=None):
|
||||||
super().__init__()
|
|
||||||
|
|
||||||
data_dict = data_dict or {}
|
data_dict = data_dict or {}
|
||||||
|
|
||||||
self._id = data_dict['id']
|
self._id = data_dict['id']
|
||||||
@@ -55,10 +72,15 @@ class Channel(BaseObject):
|
|||||||
self.purpose = Purpose(data_dict.get('purpose'))
|
self.purpose = Purpose(data_dict.get('purpose'))
|
||||||
self.topic = Topic(data_dict.get('topic'))
|
self.topic = Topic(data_dict.get('topic'))
|
||||||
|
|
||||||
|
def __repr__(self):
|
||||||
|
return u"<%s %s>" % (str(hex(id(self))), self.__unicode__())
|
||||||
|
|
||||||
|
def __unicode__(self):
|
||||||
|
return u"%s, %s %s" % (self.__class__.__name__, self._id, self.name)
|
||||||
|
|
||||||
|
|
||||||
class UserProfile(object):
|
class UserProfile(object):
|
||||||
def __init__(self, data_dict=None):
|
def __init__(self, data_dict=None):
|
||||||
super().__init__()
|
|
||||||
|
|
||||||
data_dict = data_dict or {}
|
data_dict = data_dict or {}
|
||||||
|
|
||||||
@@ -80,7 +102,7 @@ class UserProfile(object):
|
|||||||
self.skype = data_dict.get("skype", "")
|
self.skype = data_dict.get("skype", "")
|
||||||
|
|
||||||
|
|
||||||
class User(BaseObject):
|
class User(object):
|
||||||
def __init__(self, data_dict=None):
|
def __init__(self, data_dict=None):
|
||||||
data_dict = data_dict or {}
|
data_dict = data_dict or {}
|
||||||
|
|
||||||
@@ -106,6 +128,13 @@ class User(BaseObject):
|
|||||||
|
|
||||||
self.profile = UserProfile(data_dict.get("profile"))
|
self.profile = UserProfile(data_dict.get("profile"))
|
||||||
|
|
||||||
|
def __repr__(self):
|
||||||
|
return u"<%s %s>" % (str(hex(id(self))), self.__unicode__())
|
||||||
|
|
||||||
|
def __unicode__(self):
|
||||||
|
return u"%s, %s %s" % (self.__class__.__name__, self._id, self.name)
|
||||||
|
|
||||||
|
|
||||||
class Reactions(object):
|
class Reactions(object):
|
||||||
def __init__(self, data_dict=None):
|
def __init__(self, data_dict=None):
|
||||||
data_dict = data_dict or {}
|
data_dict = data_dict or {}
|
||||||
@@ -120,4 +149,3 @@ class Messages(object):
|
|||||||
self.type = data_dict.get('type', '')
|
self.type = data_dict.get('type', '')
|
||||||
self.text = data_dict.get('text', '')
|
self.text = data_dict.get('text', '')
|
||||||
self.reactions = Reactions(data_dict.get('reactions', ''))
|
self.reactions = Reactions(data_dict.get('reactions', ''))
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user