Advertisement
Guest User

Untitled

a guest
Oct 25th, 2017
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.90 KB | None | 0 0
  1. import json
  2. import datetime
  3. import requests
  4. from matrix_client.client import MatrixClient
  5. from vaderSentiment.vaderSentiment import SentimentIntensityAnalyzer
  6.  
  7. CLIENT = MatrixClient("https://matrix.lant.uk")
  8. TOKEN  = CLIENT.login_with_password(username='@sadbot:lant.uk', password='XXXXXXXXX')
  9.  
  10. MATRIX_HQ = CLIENT.join_room('#matrix:matrix.org')
  11. TEST = CLIENT.join_room('#tom:lant.uk')
  12.  
  13. SADWATCH = CLIENT.join_room('#sadwatch:lant.uk')
  14.  
  15. ANALYZER = SentimentIntensityAnalyzer()
  16.  
  17. #From VADER:
  18. """
  19. {'neg': 0.0, 'neu': 1.0, 'pos': 0.0, 'compound': 0.0}
  20. """
  21.  
  22. def sadness_listener(room, event):
  23.     user = event['sender']
  24.     message = event['content']['body']
  25.     sentiment = ANALYZER.polarity_scores(message)
  26.  
  27.     human_time = datetime.datetime.utcfromtimestamp(int(event['origin_server_ts']) / 1000).strftime('%Y-%m-%d %H:%M:%S')
  28.     minute_bucket = int(event['origin_server_ts']) / 1000 / 60 / 15
  29.     bucket_start = datetime.datetime.utcfromtimestamp(minute_bucket * 15 * 60).strftime('%Y-%m-%d %H:%M:%S')
  30.     payload = (('time', event['origin_server_ts']),
  31.                ('user', user),
  32.                ('positive', sentiment['pos']),
  33.                ('neutral', sentiment['neu']),
  34.                ('negative', sentiment['neg']),
  35.                ('compound', sentiment['compound']),
  36.                ('human_time', human_time),
  37.                ('minute_bucket', minute_bucket),
  38.                ('bucket_start', bucket_start))
  39.     requests.get('https://lant.uk/api/googledrive/v1/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/1/', params=payload)
  40.  
  41.     if sentiment['compound'] < 0.0:
  42.         SADWATCH.send_text('%s: %s (%s)' % (user, message, sentiment['compound']))
  43.  
  44. #TEST.add_listener(sadness_listener, 'm.room.message')
  45. MATRIX_HQ.add_listener(sadness_listener, 'm.room.message')
  46.  
  47. SADWATCH.send_text('Go ahead caller, sadbot is listening')
  48.  
  49. print 'app launched and we\'re still doing stuff'
  50. CLIENT.listen_forever()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement