1
0
mirror of https://github.com/gryf/slack-backup.git synced 2025-12-17 03:20:25 +01:00

Introducing templates for message lines

This commit is contained in:
2018-03-10 18:57:19 +01:00
parent 710142d3d7
commit 59ae9c7046

View File

@@ -142,6 +142,7 @@ class NoneReporter(Reporter):
class TextReporter(Reporter): class TextReporter(Reporter):
"""Text aka IRC reporter""" """Text aka IRC reporter"""
ext = '.log' ext = '.log'
tpl = '{date} {nick:>{max_len}} {separator} {msg}\n'
def __init__(self, args, query): def __init__(self, args, query):
super(TextReporter, self).__init__(args, query) super(TextReporter, self).__init__(args, query)
@@ -191,56 +192,54 @@ class TextReporter(Reporter):
def _msg_join(self, msg, text): def _msg_join(self, msg, text):
"""return formatter for join""" """return formatter for join"""
data = {'date': msg.datetime().strftime("%Y-%m-%d %H:%M:%S"), return {'date': msg.datetime().strftime("%Y-%m-%d %H:%M:%S"),
'msg': text, 'msg': text,
'max_len': self._max_len, 'max_len': self._max_len,
'separator': self._get_symbol('separator'), 'separator': self._get_symbol('separator'),
'nick': self._get_symbol('join')} 'nick': self._get_symbol('join'),
return '{date} {nick:>{max_len}} {separator} {msg}\n'.format(**data) 'tpl': '{date} {nick:>{max_len}} {separator} {msg}\n'}
def _msg_leave(self, msg, text): def _msg_leave(self, msg, text):
"""return formatter for leave""" """return formatter for leave"""
data = {'date': msg.datetime().strftime("%Y-%m-%d %H:%M:%S"), return {'date': msg.datetime().strftime("%Y-%m-%d %H:%M:%S"),
'msg': text, 'msg': text,
'max_len': self._max_len, 'max_len': self._max_len,
'separator': self._get_symbol('separator'), 'separator': self._get_symbol('separator'),
'nick': self._get_symbol('leave')} 'nick': self._get_symbol('leave'),
return '{date} {nick:>{max_len}} {separator} {msg}\n'.format(**data) 'tpl': '{date} {nick:>{max_len}} {separator} {msg}\n'}
def _msg_topic(self, msg, text): def _msg_topic(self, msg, text):
"""return formatter for set topic""" """return formatter for set topic"""
data = {'date': msg.datetime().strftime("%Y-%m-%d %H:%M:%S"), return {'date': msg.datetime().strftime("%Y-%m-%d %H:%M:%S"),
'msg': text, 'msg': text,
'max_len': self._max_len, 'max_len': self._max_len,
'separator': self._get_symbol('separator'), 'separator': self._get_symbol('separator'),
'char': self._get_symbol('topic')} 'char': self._get_symbol('topic'),
return '{date} {char:>{max_len}} {separator} {msg}\n'.format(**data) 'tpl': '{date} {char:>{max_len}} {separator} {msg}\n'}
def _msg_me(self, msg, text): def _msg_me(self, msg, text):
"""return formatter for /me""" """return formatter for /me"""
data = {'date': msg.datetime().strftime("%Y-%m-%d %H:%M:%S"), return {'date': msg.datetime().strftime("%Y-%m-%d %H:%M:%S"),
'msg': text, 'msg': text,
'max_len': self._max_len, 'max_len': self._max_len,
'nick': msg.user.name, 'nick': msg.user.name,
'separator': self._get_symbol('separator'), 'separator': self._get_symbol('separator'),
'char': self._get_symbol('me')} 'char': self._get_symbol('me'),
return '{date} {char:>{max_len}} {separator} {nick} {msg}\n'.\ 'tpl': '{date} {char:>{max_len}} {separator} {nick} {msg}\n'}
format(**data)
def _msg_file(self, msg, text): def _msg_file(self, msg, text):
"""return formatter for file""" """return formatter for file"""
fpath = os.path.abspath(msg.file.filepath) fpath = os.path.abspath(msg.file.filepath)
return {'date': msg.datetime().strftime("%Y-%m-%d %H:%M:%S"),
data = {'date': msg.datetime().strftime("%Y-%m-%d %H:%M:%S"),
'msg': self.url_pat.sub('(file://' + fpath + ') ' + 'msg': self.url_pat.sub('(file://' + fpath + ') ' +
msg.file.title, text), msg.file.title, text),
'max_len': self._max_len, 'max_len': self._max_len,
'separator': self._get_symbol('separator'), 'separator': self._get_symbol('separator'),
'filename': fpath, 'filename': fpath,
'nick': msg.user.name, 'nick': msg.user.name,
'char': self._get_symbol('file')} 'char': self._get_symbol('file'),
return ('{date} {char:>{max_len}} {separator} {nick} ' 'tpl': '{date} {char:>{max_len}} {separator} {nick} '
'shared file "{filename}"{msg}\n'.format(**data)) 'shared file "{filename}"{msg}\n'}
def _msg(self, msg, text): def _msg(self, msg, text):
"""return formatter for all other message types""" """return formatter for all other message types"""
@@ -250,25 +249,22 @@ class TextReporter(Reporter):
'max_len': self._max_len, 'max_len': self._max_len,
'separator': self._get_symbol('separator'), 'separator': self._get_symbol('separator'),
'nick': msg.user.name} 'nick': msg.user.name}
result = '{date} {nick:>{max_len}} {separator} {msg}\n'.format(**data) result = ''
if msg.attachments: if msg.attachments:
for att in msg.attachments: for att in msg.attachments:
if att.title: if att.title:
att_text = "\n" + att.title + '\n' att_text = att.title + '\n'
else: else:
att_text = "\n" + self._fix_newlines(att.fallback) + '\n' att_text = self._fix_newlines(att.fallback) + '\n'
if att.text: if att.text:
att_text += att.text att_text += att.text
att_text = self._fix_newlines(att_text)
# remove first newline
att_text = att_text[1:]
result += att_text + '\n' result += att_text + '\n'
return result data['msg'] += result.strip()
return data
def _remove_entities(self, text): def _remove_entities(self, text):
"""replace html entites into appropriate chars""" """replace html entites into appropriate chars"""