コード例 #1
0
def create_message_handler(data):
    message = Message(comment=data['message']['comment'],
                      author=session.user,
                      room_id=data['room']['id'])
    db.session.add(message)
    db.session.commit()
    emit('newMessage', message.serialize(), room=data['room']['name'])
コード例 #2
0
    def test_CreateMessage_CreatesInstance(self):

        # Create Message instance
        chat = Chat.objects.get(pk=1)
        message = Message(chat=chat)
        message.save()
        self.assertIsInstance(message, Message)
コード例 #3
0
    def test_CreateLeaveMessage_PrintsMessage(self):

        # Create Leave Message
        chat = Chat.objects.get(pk=1)
        user = User.objects.get(pk=1)
        message = Message(chat=chat, author=user, type=MESSAGE_TYPES['leave'])
        message.save()
        self.assertEqual(unicode(message), "User 'test1' has left the chat.")
コード例 #4
0
 def test_xss_messages(self):
     self.login('tim', 'password')
     payload = '<script>alert(42)</script>'
     msg = Message(comment=payload, user=g.user)
     db.session.add(msg)
     db.session.commit()
     rv = self.client.get('/messages', follow_redirects=True)
     self.assertNotIn(payload, rv.data,
                      'XSS payload reflected in the response.')
コード例 #5
0
def chat_update(request, game_id):
    chat = Chat.objects.get(pk=game_id)

    # Update chat state with users message
    message = Message(
        chat=chat,
        author=request.user,
        message=request.POST['message'],
    )
    message.save()
コード例 #6
0
    def test_CreateNotificationMessage_PrintsMessage(self):

        # Create Notification Message
        chat = Chat.objects.get(pk=1)
        message = Message(chat=chat,
                          type=MESSAGE_TYPES['notification'],
                          message=u'This is a notification.')
        message.save()
        self.assertEqual(
            unicode(message),
            u'This is a notification.',
        )
コード例 #7
0
ファイル: api.py プロジェクト: Mohammad-Mehedi-Hasan/pwnedhub
 def post(self):
     jsonobj = request.get_json(force=True)
     comment = jsonobj.get('message')
     if not comment:
         abort(400, 'Invalid request.')
     message = Message(comment=comment, author=g.user)
     db.session.add(message)
     db.session.commit()
     result = message.serialize()
     resp = jsonify(result)
     resp.mimetype = 'text/html'
     return resp
コード例 #8
0
ファイル: api.py プロジェクト: Kevinjob99/PwnedHub
 def post(self):
     jsonobj = request.get_json(force=True)
     message = jsonobj.get('message')
     if message:
         msg = Message(comment=message, user=g.user)
         db.session.add(msg)
         db.session.commit()
     messages = [
         m.serialize()
         for m in Message.query.order_by(Message.created.desc()).all()
     ]
     return {'messages': messages}
コード例 #9
0
    def test_CreateMessage_PrintsMessage(self):

        # Create Message
        chat = Chat.objects.get(pk=1)
        user = User.objects.get(pk=1)
        message = Message(chat=chat,
                          author=user,
                          message=u'This is a message.')
        message.save()
        self.assertEqual(
            (u'[%s]: %s' % (message.author, unicode(message))),
            u'[test1]: This is a message.',
        )
コード例 #10
0
async def crawl_messages_once(slacker: Slacker, logger: Logger) -> None:
    base_url = f"http://{config.DB_URL}/"

    # get messages and insert them into database
    ch_info = await slacker.get_channels_list() or []
    if ch_info:
        for ch_id, ch_name in ch_info:
            logger.debug(f"Channel: {ch_name}")

            prev_date = datetime.now() - timedelta(
                days=config.MESSAGE_DELTA_DAYS)
            messages = await slacker.get_channel_messages(ch_id, prev_date)
            if messages:
                try_request(logger,
                            r.put,
                            base_url + "message/",
                            data=json.dumps([x.dict() for x in messages],
                                            cls=TimerEncoder))

        logger.info(
            f"Messages from {len(ch_info)} channels parsed and sent to the database."
        )
    channels_point = Point("workspace").field("channels", len(ch_info)).time(
        datetime.utcnow())

    # update messages without permalinks
    answer = try_request(logger, r.get, base_url + "message/linkless")
    if answer.is_err():
        return
    answer = answer.value

    empty_links_messages = [Message(**x) for x in answer.json()]
    if empty_links_messages:
        messages = await slacker.update_permalinks(
            messages=empty_links_messages)
        answer = try_request(logger,
                             r.patch,
                             base_url + "message/links",
                             data=json.dumps([x.dict() for x in messages],
                                             cls=TimerEncoder))
        if answer.is_ok():
            logger.debug(f"Updated permalinks for {len(messages)} messages.")
    linkless_messages_point = Point("workspace").field(
        "linkless_messages", len(empty_links_messages)).time(datetime.utcnow())
    INFLUX_API_WRITE([linkless_messages_point, channels_point])
コード例 #11
0
ファイル: core.py プロジェクト: Kevinjob99/PwnedHub
def messages_create():
    message = request.form['message']
    msg = Message(comment=message, user=g.user)
    db.session.add(msg)
    db.session.commit()
    return redirect(url_for('core.messages'))
コード例 #12
0
def messages_create():
    message = request.form['message']
    msg = Message(comment=message, author=g.user, room=Room.query.first())
    db.session.add(msg)
    db.session.commit()
    return redirect(url_for('core.messages'))