Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import json
- import datetime
- import requests
- from matrix_client.client import MatrixClient
- from vaderSentiment.vaderSentiment import SentimentIntensityAnalyzer
- CLIENT = MatrixClient("https://matrix.lant.uk")
- TOKEN = CLIENT.login_with_password(username='@sadbot:lant.uk', password='XXXXXXXXX')
- MATRIX_HQ = CLIENT.join_room('#matrix:matrix.org')
- TEST = CLIENT.join_room('#tom:lant.uk')
- SADWATCH = CLIENT.join_room('#sadwatch:lant.uk')
- ANALYZER = SentimentIntensityAnalyzer()
- #From VADER:
- """
- {'neg': 0.0, 'neu': 1.0, 'pos': 0.0, 'compound': 0.0}
- """
- def sadness_listener(room, event):
- user = event['sender']
- message = event['content']['body']
- sentiment = ANALYZER.polarity_scores(message)
- human_time = datetime.datetime.utcfromtimestamp(int(event['origin_server_ts']) / 1000).strftime('%Y-%m-%d %H:%M:%S')
- minute_bucket = int(event['origin_server_ts']) / 1000 / 60 / 15
- bucket_start = datetime.datetime.utcfromtimestamp(minute_bucket * 15 * 60).strftime('%Y-%m-%d %H:%M:%S')
- payload = (('time', event['origin_server_ts']),
- ('user', user),
- ('positive', sentiment['pos']),
- ('neutral', sentiment['neu']),
- ('negative', sentiment['neg']),
- ('compound', sentiment['compound']),
- ('human_time', human_time),
- ('minute_bucket', minute_bucket),
- ('bucket_start', bucket_start))
- requests.get('https://lant.uk/api/googledrive/v1/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/1/', params=payload)
- if sentiment['compound'] < 0.0:
- SADWATCH.send_text('%s: %s (%s)' % (user, message, sentiment['compound']))
- #TEST.add_listener(sadness_listener, 'm.room.message')
- MATRIX_HQ.add_listener(sadness_listener, 'm.room.message')
- SADWATCH.send_text('Go ahead caller, sadbot is listening')
- print 'app launched and we\'re still doing stuff'
- CLIENT.listen_forever()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement