summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xdict51
1 files changed, 51 insertions, 0 deletions
diff --git a/dict b/dict
new file mode 100755
index 0000000..aca3fbf
--- /dev/null
+++ b/dict
@@ -0,0 +1,51 @@
+#!/bin/python
+
+import requests
+import random
+import os
+import sys # Import for potential error handling
+
+# Customizable word list path
+WORD_LIST_PATH = "~/.local/share/vocab/words.txt"
+
+def get_random_word_from_urban_dictionary():
+ """Retrieves a random word and definition from Urban Dictionary API."""
+ url = "http://api.urbandictionary.com/v0/random"
+
+ try:
+ response = requests.get(url, timeout=2)
+ response.raise_for_status() # Raise an exception if request failed
+
+ data = response.json()
+ word = data['list'][0]['word']
+ definition = data['list'][0]['definition']
+ return word, definition
+
+ except requests.exceptions.RequestException:
+ return None, None
+
+def get_random_word_from_local_file():
+ """Retrieves a random word from the local word list."""
+ try:
+ # Expand '~' for the home directory in the path
+ word_list_path = os.path.expanduser(WORD_LIST_PATH)
+
+ with open(word_list_path, 'r') as file:
+ words = file.readlines()
+ # Choose a random word (assuming words are separated by newlines)
+ return words[random.randint(0, len(words) - 1)].strip()
+
+ except (FileNotFoundError, PermissionError) as e:
+ print(f"Error reading local word list: {e}")
+ return None
+
+if __name__ == "__main__":
+ word, definition = get_random_word_from_urban_dictionary()
+
+ if not word: # Check if word retrieval failed
+ word = get_random_word_from_local_file()
+
+ if word:
+ os.system(f"cowsay '{word} -> {definition if definition else ''}'")
+ else:
+ print("Could not get a word from either source.")