aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--wee_slack.py20
1 files changed, 20 insertions, 0 deletions
diff --git a/wee_slack.py b/wee_slack.py
index 74027a5..babbccf 100644
--- a/wee_slack.py
+++ b/wee_slack.py
@@ -2617,6 +2617,23 @@ def process_message(message_json, eventrouter, store=True, **kwargs):
channel.store_message(message, team)
dbg("NORMAL REPLY {}".format(message_json))
+ download_location = config.get_string('files_download_location')
+ if not download_location:
+ return
+
+ for f in message_json.get('files', []):
+ if f.get('mode', '') == 'tombstone':
+ continue
+
+ file_name = '{}_{}.{}'.format(f['id'], f['title'], f['filetype'])
+ weechat.hook_process_hashtable(
+ "url:" + f['url_private'],
+ {
+ 'file_out': os.path.join(download_location, file_name),
+ 'httpheader': 'Authorization: Bearer ' + team.token
+ },
+ config.slack_timeout, "", "")
+
def subprocess_thread_message(message_json, eventrouter, channel, team):
# print ("THREADED: " + str(message_json))
@@ -4066,6 +4083,9 @@ class PluginConfig(object):
'external_user_suffix': Setting(
default='*',
desc='The suffix appended to nicks to indicate external users.'),
+ 'files_download_location': Setting(
+ default='',
+ desc='If set, file attachments will be downloaded to this location.'),
'group_name_prefix': Setting(
default='&',
desc='The prefix of buffer names for groups (private channels).'),