Created
September 21, 2014 00:31
-
-
Save inky/828e66ab3d735af258ca to your computer and use it in GitHub Desktop.
source code for @coolbot420
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import os | |
import twitter # pip install twitter | |
def post_tweet(text): | |
assert len(text) <= 140, 'tweet is too long' | |
auth = twitter.OAuth(os.environ['TWITTER_USER_TOKEN'], | |
os.environ['TWITTER_USER_SECRET'], | |
os.environ['TWITTER_API_KEY'], | |
os.environ['TWITTER_API_SECRET']) | |
t = twitter.Twitter(auth=auth) | |
return t.statuses.update(status=text, trim_user=True) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import codecs | |
import sys | |
from glob import glob | |
from random import choice, randint, random | |
from tweet import post_tweet | |
PATTERN = "%(hour)s:%(minute)s %(verb)s %(noun)s %(every_day)s" | |
WHENEVER = ( | |
'every day', | |
'every week', | |
'every fortnight', | |
'whenever', | |
'right now', | |
) | |
class Weed(): | |
def __init__(self): | |
verbs = set() | |
with codecs.open('verbs.txt', encoding='utf-8') as fp: | |
for line in fp: | |
verbs.add(line.strip()) | |
nouns = set() | |
for fn in glob('nouns/*.txt'): | |
with codecs.open(fn, encoding='utf-8') as fp: | |
for line in fp: | |
nouns.add(line.strip()) | |
self.verbs = tuple(verbs) | |
self.nouns = tuple(nouns) | |
def generate(self): | |
strings = { | |
'hour': randint(1, 12), | |
'minute': '%02d' % randint(0, 59), | |
'verb': choice(self.verbs), | |
'noun': choice(self.nouns), | |
'every_day': 'every day' if random() < 0.95 else choice(WHENEVER) | |
} | |
return (PATTERN % strings).upper() | |
def main(): | |
weed = Weed() | |
if 'tweet' in sys.argv: | |
post_tweet(weed.generate()) | |
else: | |
for _ in range(10): | |
print weed.generate() | |
if __name__ == '__main__': | |
sys.exit(main()) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment