Advertisement
Guest User

slimebot.py

a guest
Sep 29th, 2016
145
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.80 KB | None | 0 0
  1. #!/usr/bin/env python
  2.  
  3. from random import random, choice
  4. from time import sleep
  5. from tweepy import API, OAuthHandler, TweepError
  6. from datetime import datetime
  7.  
  8. def flip():
  9.     return random() < 0.5
  10.  
  11. def pick(seq):
  12.     return str.strip(choice(seq))
  13.  
  14. def pluralize(word):
  15.     if word[-1] is 's':
  16.         return word + 'es'
  17.     elif word[-1] is 'y' and word not in ['tity', 'tiddy']:
  18.         return word[:-1] + 'ies'
  19.     else:
  20.         return word + 's'
  21.  
  22. def condplural(word):
  23.     return pluralize(word) if flip() else word
  24.  
  25. def withso(seq):
  26.     def so_inner(word):
  27.         return 'so ' + word
  28.     return map(so_inner, seq)
  29.  
  30. consumer_key = 'consumer key goes here'
  31. consumer_secret = 'consumer secret goes here'
  32. access_token = 'access token goes here'
  33. access_secret = 'access secret goes here'
  34. auth = OAuthHandler(consumer_key, consumer_secret)
  35. auth.set_access_token(access_token, access_secret)
  36. api = API(auth)
  37.  
  38. while True:
  39.     nouns = open('C:/Users/rich_sky/Documents/slime/nouns1.txt').readlines()
  40.     actions = open('C:/Users/rich_sky/Documents/slime/actions1.txt').readlines()
  41.     verbs = open('C:/Users/rich_sky/Documents/slime/verbs1.txt').readlines()
  42.     adjectives = open('C:/Users/rich_sky/Documents/slime/adjectives1.txt').readlines()
  43.     phrases = open('C:/Users/rich_sky/Documents/slime/phrases1.txt').readlines()
  44.     reasons = open('C:/Users/rich_sky/Documents/slime/reasons1.txt').readlines()
  45.     superlatives = open('C:/Users/rich_sky/Documents/slime/superlatives1.txt').readlines()
  46.     hearts = [u'\u2764', u'\U0001f495', u'\U0001f496', u'\U0001f497', u'\U0001f499',
  47.               u'\U0001f49a', u'\U0001f49b', u'\U0001f49c', u'\U0001f49d']
  48.  
  49.     phrase = pick(phrases)
  50.     while '{' in phrase:
  51.         oldphrase = phrase[:]
  52.         phrase = phrase.replace('{noun}', pick(nouns), 1)
  53.         phrase = phrase.replace('{noun:s}', pluralize(pick(nouns)), 1)
  54.         phrase = phrase.replace('{noun:s?}', condplural(pick(nouns)), 1)
  55.         phrase = phrase.replace('{verb}', pick(verbs), 1)
  56.         phrase = phrase.replace('{action}', pick(actions), 1)
  57.         phrase = phrase.replace('{adjective}', pick(adjectives), 1)
  58.         phrase = phrase.replace('{reason}', pick(reasons), 1)
  59.         phrase = phrase.replace('{superlative}', pick(superlatives), 1)
  60.         phrase = phrase.replace('{adjective:super}', pick(adjectives + superlatives), 1)
  61.         phrase = phrase.replace('{adjective:sosuper}', pick(withso(adjectives) + superlatives), 1)
  62.         if phrase == oldphrase:
  63.             raise RuntimeError('Malformed phrase: %s' % phrase)
  64.     phrase = phrase.replace('<3', choice(hearts))
  65.  
  66.     print('%s %s' % (datetime.now(), phrase))
  67.     try:
  68.         api.update_status(phrase)
  69.     except TweepError as e:
  70.         print('    failed: %s' % e.message)
  71.         continue
  72.     sleep(1500)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement