matrix tasks for spirit and wiki

This commit is contained in:
Oly 2017-09-08 13:35:36 +01:00
parent 5e5312fe74
commit 80601ce000
2 changed files with 21 additions and 7 deletions

View File

@ -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)

View File

@ -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(