Guest User

Untitled

a guest
Jan 8th, 2017
174
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 10.72 KB | None | 0 0
  1. # -*- coding: utf-8 -*-
  2. import os
  3. import webbrowser
  4.  
  5. import pickle
  6. import requests
  7. import json
  8. import pyperclip
  9. import configparser
  10. import urllib3
  11. from multiprocessing import Queue
  12.  
  13. def get_api():
  14.     try:
  15.         with open('api.pickle', 'rb') as f:
  16.             app_id, app_key = pickle.load(f)
  17.     except:
  18.         app_id = input('TODO: Enter your own app_id: ')
  19.         app_key = input('TODO: Enter your own app_key: ')
  20.         with open('api.pickle', 'wb') as f:
  21.             pickle.dump([app_id, app_key], f)
  22.     return app_id, app_key
  23.  
  24. def auth():
  25.     language = 'en'
  26.     url = 'https://od-api.oxforddictionaries.com:443/api/v1/entries/' + language + '/' + word_id.lower() + '/regions=' + region
  27.     r = requests.get(url, headers={'app_id': app_id, 'app_key': app_key})
  28.     try:
  29.         json_str = json.dumps(r.json())
  30.         data = json.loads(json_str)
  31.         return data
  32.     except:
  33.         print('Error')
  34.  
  35. def get_lexical():
  36.     lexical_list = []
  37.     try:
  38.         word = data['results'][0]['id']
  39.         lexical_list.append(word)
  40.     except:
  41.         pass
  42.     lexical_list.append('==========================================================================================')
  43.     lexical = data['results'][0]['lexicalEntries']
  44.     for d in lexical:
  45.         try:
  46.             lexicalCategory = (d['lexicalCategory'])
  47.             lexical_list.append(lexicalCategory)
  48.             try:
  49.                 phoneticSpelling = (d['pronunciations'][0]['phoneticSpelling'])
  50.                 lexical_list.append(phoneticSpelling)
  51.                 lexical_list.append('-----------------------------------------')
  52.             except:
  53.                 pass
  54.         except:
  55.             pass
  56.     lexical_list.append('==========================================================================================')
  57.     return lexical_list
  58.  
  59. def get_definitions():
  60.     defenition_list = []
  61.     try:
  62.         definitions1 = data['results'][0]['lexicalEntries'][0]['entries'][0]['senses']
  63.         for d in definitions1:
  64.             try:
  65.                 domains = (d['domains'])
  66.                 defenition_list.append(domains)
  67.             except:
  68.                 pass
  69.             try:
  70.                 definitions = (d['definitions'])
  71.                 defenition_list.append(definitions)
  72.             except:
  73.                 pass
  74.             try:
  75.                 examples = (d['examples'][0]['text'])
  76.                 defenition_list.append(examples)
  77.                 defenition_list.append('-----------------------------------------')
  78.             except:
  79.                 pass
  80.     except:
  81.         pass
  82.     try:
  83.         definitions2 = data['results'][0]['lexicalEntries'][0]['entries'][0]['senses'][0]['subsenses']
  84.         for d in definitions2:
  85.             try:
  86.                 domains = (d['domains'])
  87.                 defenition_list.append(domains)
  88.             except:
  89.                 pass
  90.             try:
  91.                 definitions = (d['definitions'])
  92.                 defenition_list.append(definitions)
  93.             except:
  94.                 pass
  95.             try:
  96.                 examples = (d['examples'][0]['text'])
  97.                 defenition_list.append(examples)
  98.                 defenition_list.append('-----------------------------------------')
  99.             except:
  100.                 pass
  101.         defenition_list.append('==========================================================================================')
  102.     except:
  103.         pass
  104.     try:
  105.         definitions3 = data['results'][0]['lexicalEntries'][1]['entries'][0]['senses']
  106.         for d in definitions3:
  107.             try:
  108.                 domains = (d['domains'])
  109.                 defenition_list.append(domains)
  110.             except:
  111.                 pass
  112.             try:
  113.                 definitions = (d['definitions'])
  114.                 defenition_list.append(definitions)
  115.             except:
  116.                 pass
  117.             try:
  118.                 examples = (d['examples'][0]['text'])
  119.                 defenition_list.append(examples)
  120.                 defenition_list.append('-----------------------------------------')
  121.             except:
  122.                 pass
  123.     except:
  124.         pass
  125.     try:
  126.         definitions4 = data['results'][0]['lexicalEntries'][1]['entries'][0]['senses'][0]['subsenses']
  127.         for d in definitions4:
  128.             try:
  129.                 domains = (d['domains'])
  130.                 defenition_list.append(domains)
  131.             except:
  132.                 pass
  133.             try:
  134.                 definitions = (d['definitions'])
  135.                 defenition_list.append(definitions)
  136.             except:
  137.                 pass
  138.             try:
  139.                 examples = (d['examples'][0]['text'])
  140.                 defenition_list.append(examples)
  141.                 defenition_list.append('-----------------------------------------')
  142.             except:
  143.                 pass
  144.         defenition_list.append('==========================================================================================')
  145.     except:
  146.         pass
  147.     try:
  148.         definitions5 = data['results'][0]['lexicalEntries'][2]['entries'][0]['senses']
  149.         for d in definitions5:
  150.             try:
  151.                 domains = (d['domains'])
  152.                 defenition_list.append(domains)
  153.             except:
  154.                 pass
  155.             try:
  156.                 definitions = (d['definitions'])
  157.                 defenition_list.append(definitions)
  158.             except:
  159.                 pass
  160.             try:
  161.                 examples = (d['examples'][0]['text'])
  162.                 defenition_list.append(examples)
  163.                 defenition_list.append('-----------------------------------------')
  164.             except:
  165.                 pass
  166.     except:
  167.         pass
  168.     try:
  169.  
  170.         definitions6 = data['results'][0]['lexicalEntries'][2]['entries'][0]['senses'][0]['subsenses']
  171.         for d in definitions6:
  172.             try:
  173.                 domains = (d['domains'])
  174.                 defenition_list.append(domains)
  175.             except:
  176.                 pass
  177.             try:
  178.                 definitions = (d['definitions'])
  179.                 defenition_list.append(definitions)
  180.             except:
  181.                 pass
  182.             try:
  183.                 examples = (d['examples'][0]['text'])
  184.                 defenition_list.append(examples)
  185.                 defenition_list.append('-----------------------------------------')
  186.             except:
  187.                 pass
  188.         defenition_list.append('==========================================================================================')
  189.     except:
  190.         pass
  191.     try:
  192.         definitions7 = data['results'][0]['lexicalEntries'][2]['entries'][1]['senses']
  193.         for d in definitions7:
  194.             try:
  195.                 domains = (d['domains'])
  196.                 defenition_list.append(domains)
  197.             except:
  198.                 pass
  199.             try:
  200.                 definitions = (d['definitions'])
  201.                 defenition_list.append(definitions)
  202.             except:
  203.                 pass
  204.             try:
  205.                 examples = (d['examples'][0]['text'])
  206.                 defenition_list.append(examples)
  207.                 defenition_list.append('-----------------------------------------')
  208.             except:
  209.                 pass
  210.     except:
  211.         pass
  212.     try:
  213.  
  214.         definitions8 = data['results'][0]['lexicalEntries'][2]['entries'][1]['senses'][0]['subsenses']
  215.         for d in definitions8:
  216.             try:
  217.                 domains = (d['domains'])
  218.                 defenition_list.append(domains)
  219.             except:
  220.                 pass
  221.             try:
  222.                 definitions = (d['definitions'])
  223.                 defenition_list.append(definitions)
  224.             except:
  225.                 pass
  226.             try:
  227.                 examples = (d['examples'][0]['text'])
  228.                 defenition_list.append(examples)
  229.                 defenition_list.append('-----------------------------------------')
  230.             except:
  231.                 pass
  232.         defenition_list.append('==========================================================================================')
  233.     except:
  234.         pass
  235.     return defenition_list
  236.  
  237. def get_etymologies():
  238.     etymologies_list = []
  239.     try:
  240.         etymologies = data['results'][0]['lexicalEntries'][0]['entries']
  241.         for d in etymologies:
  242.             etymologies = (d['etymologies'])
  243.             etymologies_list.append(etymologies)
  244.     except:
  245.         pass
  246.     try:
  247.         etymologies = data['results'][0]['lexicalEntries'][1]['entries']
  248.         for d in etymologies:
  249.             etymologies = (d['etymologies'])
  250.             etymologies_list.append(etymologies)
  251.     except:
  252.         pass
  253.     try:
  254.         etymologies = data['results'][0]['lexicalEntries'][2]['entries']
  255.         for d in etymologies:
  256.             etymologies = (d['etymologies'])
  257.             etymologies_list.append(etymologies)
  258.     except:
  259.         pass
  260.     try:
  261.         etymologies = data['results'][0]['lexicalEntries'][2]['entries'][1]['etymologies']
  262.         etymologies_list.append(etymologies)
  263.     except:
  264.         pass
  265.     return etymologies_list
  266.  
  267. def write_file():
  268.     thefile = open('text_output.txt', 'w', encoding='utf8')
  269.  
  270.     for item in get_lexical():
  271.         thefile.write(item + '\n')
  272.     for item in get_definitions():
  273.         thefile.write("%s\n" % item)
  274.     for item in get_etymologies():
  275.         thefile.write("%s\n" % item)
  276.  
  277. def print_results():
  278.     thefile = open('text_output.txt', 'r', encoding='utf8')
  279.     text = thefile.readlines()
  280.     print("\n".join(text))
  281.  
  282. def copy_to_clipboard():
  283.     thefile = open('text_output.txt', 'r', encoding='utf8')
  284.     text = thefile.readlines()
  285.     pyperclip.copy("\n".join(text))
  286.  
  287. def open_google_image():
  288.     url = 'https://www.google.com/search?tbm=isch&q=' + word_id
  289.     webbrowser.open_new_tab(url)
  290.  
  291. print('Please enter (chcp 65001) in the Windows console to display utf8 chars')
  292. input('Press Enter to continue...' )
  293.  
  294. region_entry = input('Do you want to change the IPA region to United Kingdom?(y)(United States is default) ')
  295. if region_entry == 'y':
  296.     region = 'gb'
  297. else:
  298.     region = 'us'
  299.  
  300.  
  301. open_browser = input('Image search on Google(y)(n is default)')
  302. if open_browser == 'y':
  303.     open_browser = 'y'
  304. else:
  305.     open_browser = 'n'
  306.  
  307. exit = ''
  308.  
  309. get_api = get_api()
  310. app_id = get_api[0]
  311. app_key = get_api[1]
  312.  
  313. while exit != 'q':
  314.     os.system('cls')
  315.     word_id = input('Enter a word: ')
  316.     data = auth()
  317.     if data:
  318.         get_lexical()
  319.         get_definitions()
  320.         get_etymologies()
  321.         write_file()
  322.         print_results()
  323.         copy_to_clipboard()
  324.         if open_browser == 'y':
  325.             open_google_image()
  326.         exit = input("Press Enter to continue...(q - exit)")
  327.     else:
  328.         pass
Advertisement
Add Comment
Please, Sign In to add comment