1 | #!/usr/bin/env python |
||
2 | """ |
||
3 | Find examples of "I love/hate the word X" on Twitter and |
||
4 | add them to Wordnik word lists. |
||
5 | """ |
||
6 | import word_tools |
||
7 | |||
8 | # Optional, http://stackoverflow.com/a/1557906/724176 |
||
9 | try: |
||
10 | import timing |
||
11 | assert timing # silence warnings |
||
12 | except ImportError: |
||
13 | pass |
||
14 | |||
15 | # Twitter: create an app at https://dev.twitter.com/apps/new |
||
16 | CONSUMER_KEY = "TODO_ENTER_YOURS_HERE" |
||
17 | CONSUMER_SECRET = "TODO_ENTER_YOURS_HERE" |
||
18 | OAUTH_TOKEN = "TODO_ENTER_YOURS_HERE" |
||
19 | OAUTH_SECRET = "TODO_ENTER_YOURS_HERE" |
||
20 | |||
21 | love_max_id, hate_max_id = 0, 0 |
||
22 | STUFF = [ |
||
23 | ["I love the word", "I hate the word"], # search term |
||
24 | [love_max_id, hate_max_id], |
||
25 | ["twitter-loves", "twitter-hates"] # Wordnik word list permalink |
||
26 | ] |
||
27 | |||
28 | # "I love the word X" or "X is my favourite new word"? |
||
29 | TARGET_WORD_FOLLOWS_SEARCH_TERM = True |
||
30 | |||
31 | # Test mode doesn't actually save csv, ini or update Wordnik or Twitter |
||
32 | TEST_MODE = False |
||
33 | |||
34 | View Code Duplication | if __name__ == '__main__': |
|
0 ignored issues
–
show
Duplication
introduced
by
![]() |
|||
35 | parser = word_tools.do_argparse( |
||
36 | 'Find examples of "I love/hate the word X" ' |
||
37 | 'on Twitter and add them to Wordnik word lists.') |
||
38 | parser.add_argument( |
||
39 | '-i', '--ini', |
||
40 | default='/Users/hugo/Dropbox/bin/data/lovihatibot.ini', |
||
41 | help='INI file location for storing last Twitter ID checked') |
||
42 | parser.add_argument( |
||
43 | '-c', '--csv', |
||
44 | default='/Users/hugo/Dropbox/bin/data/lovihatibot.csv', |
||
45 | help='CSV file location for storing matching tweets') |
||
46 | args = parser.parse_args() |
||
47 | |||
48 | word_tools.init_twitter( |
||
49 | OAUTH_TOKEN, OAUTH_SECRET, CONSUMER_KEY, CONSUMER_SECRET) |
||
50 | STUFF = word_tools.load_ini(args.ini, STUFF) # updates STUFF[1] |
||
51 | |||
52 | for i, search_term in enumerate(STUFF[0]): |
||
53 | STUFF[1][i], results = word_tools.get_words_from_twitter( |
||
54 | search_term, STUFF[1][i]) |
||
55 | words = word_tools.find_words( |
||
56 | search_term, TARGET_WORD_FOLLOWS_SEARCH_TERM, results, args.csv) |
||
57 | |||
58 | if not TEST_MODE: |
||
59 | word_tools.add_to_wordnik(words, STUFF[2][i]) |
||
60 | |||
61 | tweet_prefix = STUFF[0][i].replace("I ", "Tweeters ") |
||
62 | if "love" in STUFF[0][i]: |
||
63 | tweet_prefix = u"\u2665 " + tweet_prefix # heart |
||
64 | else: |
||
65 | tweet_prefix = u"\u2020 " + tweet_prefix # dagger |
||
66 | |||
67 | if args.tweet == "random": |
||
68 | from random import choice |
||
69 | # exclude none and random: |
||
70 | args.tweet = choice(word_tools.TWEET_CHOICES[1:-2]) |
||
71 | print("Random tweet type:" + args.tweet) |
||
72 | |||
73 | word_tools.tweet_those( |
||
74 | words, tweet_prefix, args.csv, search_term, args.tweet) |
||
75 | |||
76 | word_tools.save_ini(args.ini, STUFF) |
||
77 | |||
78 | # End of file |
||
79 |