mirror of
https://github.com/kennethreitz-archive/python-convore.git
synced 2026-06-05 23:40:18 +00:00
unread attribute for messages and live api topic.
- added an unread attribute to the message class and populate it during sync. - fixed new topics in the live api.
This commit is contained in:
+15
-3
@@ -134,6 +134,12 @@ class Topics(SyncedList):
|
||||
def list(self):
|
||||
return self.data
|
||||
|
||||
def insert(self, index, object):
|
||||
return self.data.insert(index, object)
|
||||
|
||||
def append(self, object):
|
||||
return self.data.append(object)
|
||||
|
||||
def get(self, key):
|
||||
r = get('topics', key)
|
||||
topic = self._create_topic_from_api(deserialize(r.content)['topic'])
|
||||
@@ -177,13 +183,19 @@ class Messages(SyncedList):
|
||||
self.data = []
|
||||
|
||||
r = get('topics', self.topic.id, 'messages')
|
||||
for _message in deserialize(r.content)['messages']:
|
||||
|
||||
messages = deserialize(r.content)['messages']
|
||||
idx = 0
|
||||
msg_count = len(messages)
|
||||
unread_count = self.topic.unread
|
||||
for message_data in messages:
|
||||
idx = idx + 1
|
||||
message = models.Message()
|
||||
message.import_from_api(_message)
|
||||
message.import_from_api(message_data)
|
||||
message.topic = self.topic
|
||||
message.unread = idx > msg_count - unread_count
|
||||
self.data.append(message)
|
||||
|
||||
|
||||
def create(self, message):
|
||||
params = {'topic_id': self.topic.id, 'message': message}
|
||||
r = post(params ,'topics', self.topic.id, 'messages', 'create')
|
||||
|
||||
+6
-2
@@ -62,14 +62,18 @@ class Convore(object):
|
||||
|
||||
try:
|
||||
for data in deserialize(r.content)['messages']:
|
||||
class_ = LIVE_TYPES[data['kind']]
|
||||
try:
|
||||
class_ = LIVE_TYPES[data['kind']]
|
||||
except KeyError:
|
||||
continue
|
||||
|
||||
message = class_()
|
||||
message.import_from_api(data)
|
||||
if data['kind'] == 'read':
|
||||
group = self.groups.get(data['group_id'])
|
||||
message.topic = group.topics.get(data['topic_id'])
|
||||
elif data['kind'] == 'topic':
|
||||
message.group = self.groups.get(data['group_id'])
|
||||
message.group = self.groups.get(data['group'])
|
||||
elif data['kind'] == 'message':
|
||||
group = self.groups.get(data['group'])
|
||||
message.topic = group.topics.get(data['topic']['id'])
|
||||
|
||||
@@ -129,6 +129,7 @@ class Message(object):
|
||||
self.message = None
|
||||
self.date_created = None
|
||||
self.user = None
|
||||
self.unread = False
|
||||
|
||||
|
||||
def import_from_api(self, data):
|
||||
|
||||
Reference in New Issue
Block a user