From 80601ce00023c5266a02ff308ac1a6ba2aa1fc86 Mon Sep 17 00:00:00 2001 From: Oly Date: Fri, 8 Sep 2017 13:35:36 +0100 Subject: [PATCH] matrix tasks for spirit and wiki --- mhackspace/base/models.py | 15 ++++++++++++++- mhackspace/base/tasks.py | 13 +++++++------ 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/mhackspace/base/models.py b/mhackspace/base/models.py index 07d3fe1..b1d3e6f 100644 --- a/mhackspace/base/models.py +++ b/mhackspace/base/models.py @@ -1,5 +1,6 @@ # -*- coding: utf-8 -*- from __future__ import unicode_literals, absolute_import +from django.contrib.sites.models import Site from django.db import models from django.utils import timezone @@ -8,6 +9,7 @@ from stdimage.utils import UploadToAutoSlugClassNameDir from stdimage.validators import MinSizeValidator from spirit.comment.models import Comment +from wiki.models.article import ArticleRevision # from django.contrib.auth.models import User from django.core.mail import EmailMessage from django.db.models.signals import post_save @@ -67,7 +69,18 @@ def send_topic_update_email(sender, instance, **kwargs): to=[user_email], headers={'Reply-To': 'no-reply@maidstone-hackspace.org.uk'}) email.send() - matrix_message.delay('[MH] %s' % instance.topic.title) + matrix_message.delay('%s https://%s%s' % ( + instance.topic.title, + Site.objects.get_current().domain, + instance.topic.get_absolute_url())) +def wiki_article_updated(sender, instance, **kwargs): + matrix_message.delay('%s https://%s%s' % ( + instance.title, + Site.objects.get_current().domain, + instance.article.get_absolute_url())) + + +post_save.connect(wiki_article_updated, sender=ArticleRevision) post_save.connect(send_topic_update_email, sender=Comment) diff --git a/mhackspace/base/tasks.py b/mhackspace/base/tasks.py index 86cb8bb..414801c 100644 --- a/mhackspace/base/tasks.py +++ b/mhackspace/base/tasks.py @@ -14,9 +14,10 @@ matrix_join_room_alias_url = matrix_url + "/join/{room}?access_token={access_tok matrix_join_room_id_url = matrix_url + "rooms/%21{room}/join?access_token={access_token}" matrix_send_msg_url = matrix_url + "/rooms/%21{room}/send/m.room.message?access_token={access_token}" + @shared_task def matrix_message(message): - #login + # login details = { "type":"m.login.password", "user":settings.MATRIX_USER, @@ -24,22 +25,22 @@ def matrix_message(message): r0 = requests.post(matrix_login_url, json = details) access_token = r0.json().get('access_token') - #join room by id + # join room by id url_params = { 'room': settings.MATRIX_ROOM, 'access_token': access_token} url = matrix_join_room_id_url.format(**url_params) r1 = requests.post(url) - #send message + # send message url_params = { "room": settings.MATRIX_ROOM, "access_token": access_token} url = matrix_send_msg_url.format(**url_params) details = { - "msgtype":"m.text", - "body":message} - r2 = requests.post(url, json = details) + "msgtype": "m.text", + "body": "%s %s" % (settings.MSG_PREFIX, message)} + r2 = requests.post(url, json=details) return True # url = "https://matrix.org/_matrix/client/r0/join/{room_alias}?access_token={access_token}".format(