Example #1
0
def word_of_the_day():
    apiUrl = 'http://api.wordnik.com/v4'
    apiKey = '***'
    client = swagger.ApiClient(apiKey, apiUrl)

    words_api = WordsApi.WordsApi(client)
    day_word = words_api.getWordOfTheDay()

    word_api = WordApi.WordApi(client)
    '''
    ugly but sometimes the word of the day wont have IPA pronunciation.  Probably I should figure out what type of
    pron it does have.
    '''
    try:
        pron = word_api.getTextPronunciations(day_word.word, typeFormat='IPA')
    except urllib.error.HTTPError:
        pron = ''

    # word of the day .definitions returns a list with a custom object (SimpleDefinitions) inside.
    # index 0 gets us that object, then we use .text to get the definition text.
    # pron.raw gives us the pronunciation as a string in IPA format per kwarg above.  Not sure what pron.raw[0] is,
    # but it isnt in IPA format, so I'm going to just use [1]

    if pron:
        return day_word.word, day_word.definitions[0].text, pron[
            0].raw  # error is here b/c according to the try/except
        # block up there, pron is a string. because of
        # the if statement, tho, pron wont ever be a str
        # if we're at this point in the code.
    else:
        return day_word.word, day_word.definitions[0].text, pron
Example #2
0
def random_words(count=10):
    wordsapi = WordsApi.WordsApi(client)
    rns = wordsapi.getRandomWords()
    for i in range(min(len(rns), count)):
        print('%d:' % (i + 1), rns[i].word)

    return
def get_wotd():
    with open('.context', 'r') as f:
        gordon_context = json.loads(f.read())
    apiUrl = 'http://api.wordnik.com/v4'
    client = swagger.ApiClient(gordon_context['wordnik_api_key'], apiUrl)
    wordsApi = WordsApi.WordsApi(client)
    wotd = wordsApi.getWordOfTheDay()
    return wotd
Example #4
0
 def __init__(self):
     self.word_api = WordApi.WordApi(
         swagger.ApiClient(wordnik_api_key, wordnik_api))
     self.wordoftheday_api = WordsApi.WordsApi(
         swagger.ApiClient(wordnik_api_key, wordnik_api))
     self.urbandictionary_api = urbandictionary_api
     self.dictionaryCache = LFUCache(maxsize=1000)
     self.urbandictionaryCache = LFUCache(maxsize=1000)
     self.wordOfTheDayCache = {}
     self.session = requests.Session()
     self.session.mount('http://',
                        requests.adapters.HTTPAdapter(max_retries=5))
     self.session.mount('https://',
                        requests.adapters.HTTPAdapter(max_retries=5))
Example #5
0
    def __init__(self,
                 api_url=API_URL,
                 api_key=API_KEY,
                 max_api_calls=10,
                 words_per_api_call=10):
        super(WordnikWordSource, self).__init__()

        client = swagger.ApiClient(api_key, api_url)
        self.words_api = WordsApi.WordsApi(client)
        self.words_per_api_call = words_per_api_call
        self.max_api_calls = max_api_calls

        # TODO Hard coded for now, as per https://groups.google.com/d/msg/wordnik-api/pXNsaR7IMac/vvPlR36aAgAJ,
        # but I'd like a better way
        self.length = 1500000
Example #6
0
def init_wordnik(yaml, days):
    global words_api, plural_nouns, pears, trees, verbs, adjectives

    credentials = load_yaml(yaml)
    wordnik_client = swagger.ApiClient(credentials["wordnik_api_key"],
                                       "http://api.wordnik.com/v4")
    words_api = WordsApi.WordsApi(wordnik_client)

    how_many = days - 12
    plural_nouns = get_plural_nouns(how_many)
    how_many = int(days * 0.1) - 1 + 1
    pears = get_pears(how_many)
    trees = get_trees(how_many)
    # Don't need as many verbs or adjectives
    # 9 in 10 need verbs, but 11/12 are taken care of, and one for luck
    how_many = int(days * 0.9) - 11 + 1
    verbs = get_verbs(how_many)
    # 1 in 10 need adjectives, but 1/12 is taken care of, and one for luck
    how_many = int(days * 0.1) - 1 + 1
    adjectives = get_random_words_from_wordnik("adjective", how_many)
Example #7
0
import os

from wordnik import swagger, WordApi, WordsApi
import tweepy

import secret

TWITTER_CONSUMER_KEY = os.environ['TWITTER_CONSUMER_KEY']
TWITTER_CONSUMER_SECRET = os.environ['TWITTER_CONSUMER_SECRET']
TWITTER_ACCESS_KEY = os.environ['TWITTER_ACCESS_KEY']
TWITTER_ACCESS_SECRET = os.environ['TWITTER_ACCESS_SECRET']
auth = tweepy.OAuthHandler(TWITTER_CONSUMER_KEY, TWITTER_CONSUMER_SECRET)
auth.set_access_token(TWITTER_ACCESS_KEY, TWITTER_ACCESS_SECRET)
api = tweepy.API(auth, wait_on_rate_limit=True)

WORDNIK_ACCESS_URL = 'https://api.wordnik.com/v4'
WORDNIK_ACCESS_KEY = os.environ['WORDNIK_ACCESS_KEY']
client = swagger.ApiClient(WORDNIK_ACCESS_KEY, WORDNIK_ACCESS_URL)
wordAPI = WordApi.WordApi(client)
wordsAPI = WordsApi.WordsApi(client)
Example #8
0
        "--test",
        action="store_true",
        help="Test mode: go through the motions but don't tweet anything",
    )
    args = parser.parse_args()

    timecheck()

    credentials = load_yaml(args.yaml)

    day = day_of_chistmas()

    if day > 12:
        wordnik_client = swagger.ApiClient(credentials["wordnik_api_key"],
                                           "http://api.wordnik.com/v4")
        xdaysofxmas.words_api = WordsApi.WordsApi(wordnik_client)

    if args.test:
        # Mock Wordnik
        def mock_get_random_words_from_wordnik(*args):
            return ["bleep"]

        xdaysofxmas.get_random_words_from_wordnik = mock_get_random_words_from_wordnik

    screen_name = screen_name(day)
    tweet = giftify(day)
    print(screen_name)
    print(tweet)

    update_screen_name(screen_name, credentials)
    tweet_it(tweet, credentials)
Example #9
0
# -*- coding: utf-8 -*-`
"""game.py - Generate target word from wordnik API."""

from wordnik import swagger, WordsApi

WORDNIK_API_URL = 'http://api.wordnik.com/v4'
WORDNIK_KEY = 'your-wordnik-api-key'
client = swagger.ApiClient(WORDNIK_KEY, WORDNIK_API_URL)
wordApi = WordsApi.WordsApi(client)


def get_target(length):
    """ Retuns the word for the game """
    isValid = False
    # get a word from Wordnik API
    # avoid to return a non-valid word (with non alpha characters)
    while not isValid:
        word = wordApi.getRandomWord(hasDictionaryDef=True,
                                     includePartOfSpeech='noun',
                                     minCorpusCount=0,
                                     maxCorpusCount=-1,
                                     minDictionaryCount=1,
                                     maxDictionaryCount=-1,
                                     minLength=length,
                                     maxLength=length)
        isValid = word.word.isalpha()
    print '-------------------------'
    print word.word.lower()
    print '-------------------------'
    return word.word.lower()
Example #10
0
clarifai_app = clarifai.rest.ClarifaiApp(
    app_id=credentials.clarifai_api_id,
    app_secret=credentials.clarifai_api_secret)
clarifai_general_model = clarifai_app.models.get("general-v1.3")
clarifai_nsfw_model = clarifai_app.models.get("nsfw-v1.0")
inflect_engine = inflect.engine()
owm_client = pyowm.OWM(credentials.owm_api_key)
twitter_auth = tweepy.OAuthHandler(credentials.twitter_consumer_key,
                                   credentials.twitter_consumer_secret)
twitter_auth.set_access_token(credentials.twitter_access_token,
                              credentials.twitter_access_token_secret)
twitter_api = tweepy.API(twitter_auth)
wordnik_client = swagger.ApiClient(credentials.wordnik_apikey,
                                   "http://api.wordnik.com/v4")
wordnik_word_api = WordApi.WordApi(wordnik_client)
wordnik_words_api = WordsApi.WordsApi(wordnik_client)
wolfram_alpha_client = wolframalpha.Client(credentials.wolframalpha_appid)
application_info = None
harmonbot_listener = None
# TODO: Include owner variable for user object?
sys.setrecursionlimit(5000)

try:
    imgur_client = imgurpython.ImgurClient(credentials.imgur_client_id,
                                           credentials.imgur_client_secret)
except imgurpython.helpers.error.ImgurClientError as e:
    print("Discord Harmonbot: Failed to load Imgur Client: {}".format(e))

aiml_predicates = {
    "name": "Harmonbot",
    "botmaster": "owner",
Example #11
0
def get_word_of_the_day():
    wordsapi = WordsApi.WordsApi(client)
    ret = wordsapi.getWordOfTheDay()
    out = 'Word of the day: ' + ret.word
    return out