summaryrefslogtreecommitdiff
path: root/bladictionary.py
diff options
context:
space:
mode:
authorJoe Robinson <joe@lc8n.com>2020-10-15 23:29:45 +0000
committerJoe Robinson <joe@lc8n.com>2020-10-15 23:29:45 +0000
commit2ada1031a438f938103230f0b95eb7d7b6f43fc6 (patch)
tree9cc3b86711d702a0f000671228dbbe1fb1e5210a /bladictionary.py
parent65d29c226f216d4a2d2370a133e7eb566a077d6e (diff)
parentecf048b9c1fafffd8e6da1e666740c0311b50b7e (diff)
Merge branch 'master' into 'master'
Upgrade to support python3 See merge request wjoe/bladictionary2!1
Diffstat (limited to 'bladictionary.py')
-rwxr-xr-xbladictionary.py46
1 files changed, 23 insertions, 23 deletions
diff --git a/bladictionary.py b/bladictionary.py
index 42121a4..9fe1827 100755
--- a/bladictionary.py
+++ b/bladictionary.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
@@ -9,7 +9,7 @@ import sqlite3
import requests
from definition import Definition
-VERSION = "2.5.0"
+VERSION = "3.0"
def get_xml(word, word_dict):
api_url = "http://services.aonaware.com/DictService/DictService.asmx/DefineInDict?dictId="+word_dict+"&word="+word
@@ -17,11 +17,11 @@ def get_xml(word, word_dict):
try:
xml = etree.parse(api_url)
except IOError:
- print "Error: Could not access the Dictionary service."
+ print ("Error: Could not access the Dictionary service.")
return
#Root element tag is WordDefinition, which is the same as the element which contains the definition
- #That's akward, so let's just
+ #That's akward, so let's just
for element in xml.iter("{http://services.aonaware.com/webservices/}Definitions"):
root = element
break;
@@ -95,7 +95,7 @@ def parse_xml(xml):
for part in line_parts:
extra_words = part.strip().split(" ")
for ant in extra_words:
- antonyms.append(syn.strip("{},] "))
+ antonyms.append(syn.strip("{},] "))
else:
definition += line_parts[0].strip() + " "
if len(line_parts) > 1:
@@ -117,7 +117,7 @@ def parse_xml(xml):
item = Definition(word, id, "wn", word_type, definition, [], synonyms, antonyms)
items.append(item)
-
+
return items
def parse_args():
@@ -173,7 +173,7 @@ def parse_args():
word = word.strip()
elif not options.version:
- print "You must specify a word to define"
+ print ("You must specify a word to define")
sys.exit(1)
return word, word_type, word_dict, page_num, options
@@ -214,11 +214,11 @@ def parse_oed(word):
definition = ""
word_type = ""
for part in line.split(" ")[word_len:]:
-
+
#If we've reached a word type, add the current data to the list
if part in types.keys():
#Don't add empty definitions
- if id > 0 and definition is not " " and definition:
+ if id > 0 and definition != " " and definition:
item = Definition(word, id, "oed", word_type, definition, [], [], [])
items.append(item)
definition = ""
@@ -228,14 +228,14 @@ def parse_oed(word):
elif part.isdigit() and prev_part is not None:
#Ignore anything before the first definition
- if part is not "1":
+ if part != "1":
item = Definition(word, id, "oed", word_type, definition, [], [], [])
items.append(item)
definition = ""
id = part
else:
definition += part.strip() + " "
-
+
prev_part = part
#Words with one definition don't have an id
@@ -268,14 +268,14 @@ def get_sql(word, dictionary = "wn"):
elif dictionary == "foldoc" or dictionary == "tech":
dict_id = 2
else:
- print "Invalid dictionary"
+ print ("Invalid dictionary")
sys.exit(1)
con = sqlite3.connect('dictionaries/wordnet.db');
con.row_factory = sqlite3.Row
with con:
-
+
cur = con.cursor()
cur.execute("SELECT * from definitions where word = ? and dictionary_id = ? ORDER BY type_id,sub_id;", [word, dict_id])
@@ -343,7 +343,7 @@ def main():
word, word_type, word_dict, page_num, options = parse_args()
if options.version:
- print VERSION
+ print (VERSION)
sys.exit( 0 )
if word_dict == "oed":
@@ -352,7 +352,7 @@ def main():
xml = get_xml(word, word_dict)
if xml is None:
- print "Error finding definitions for " + word
+ print ("Error finding definitions for " + word)
sys.exit( 1 )
items = parse_xml(xml)
@@ -374,7 +374,7 @@ def main():
items += urban_items
if items is None or len(items) == 0:
- print "No definitions found for "+word
+ print ("No definitions found for "+word)
sys.exit( 1 )
line_length = 0
@@ -392,7 +392,7 @@ def main():
types = ["n", "v", "adj", "adv", "tech", "urban"]
type_id = 0
- all_types = word_type is ""
+ all_types = word_type == ""
#Normally we try and display 1 of each type if no type is specified
#But if the word only has one type of definition, display all of them
@@ -411,7 +411,7 @@ def main():
found_type = False
cur_id = type_id
if item.id < page_num:
- if item.id is not 0:
+ if item.id != 0:
continue
elif item.id == 0 and page_num > 1:
continue
@@ -461,24 +461,24 @@ def main():
if line_length == 0:
#So truncate it
definition = definition[:max_length-3] + "..."
- print definition,
+ print (definition),
else:
num_more += 1
suppress_print = True
else:
- print definition,
+ print (definition),
line_length += len(definition) + 1
- #Once we've printed one word of any given type, move on to the next type
+ #Once we've printed one word of any given type, move on to the next type
if all_types:
type_id += 1
elif all_types and item.word_type is not word_type:
num_more+=1
-
+
if (suppress_print or all_types) and num_more > 0:
- print "(" + str(num_more) + " more)"
+ print ("(" + str(num_more) + " more)")
if __name__ == "__main__":
main()