From a3fa54e67d516ce9be68c05dd31694dc369c8614 Mon Sep 17 00:00:00 2001 From: Alexander Popov Date: Mon, 22 Feb 2021 19:36:51 +0300 Subject: [PATCH] release --- .gitignore | 5 ++-- CHANGELOG.md | 2 ++ LICENSE | 2 +- grab.py | 59 +++++++++++++++++++++++++++++++++++++++++++ randomword_grabber.py | 58 ------------------------------------------ words.json | 4 --- 6 files changed, 64 insertions(+), 66 deletions(-) create mode 100644 CHANGELOG.md create mode 100755 grab.py delete mode 100755 randomword_grabber.py delete mode 100644 words.json diff --git a/.gitignore b/.gitignore index ffb9c8c..6014f5c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,2 @@ -.venv/ -*~ - +venv/ +words.db diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..b765caa --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,2 @@ +# 1.0.0 (2021-02-22) ++ Release version diff --git a/LICENSE b/LICENSE index 9ac059c..ca1c103 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2020 Alexander Popov +Copyright (c) 2021 Alexander Popov Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/grab.py b/grab.py new file mode 100755 index 0000000..d5e7514 --- /dev/null +++ b/grab.py @@ -0,0 +1,59 @@ +#!/usr/bin/env python3 + +from time import sleep +import sqlite3 +import requests +from bs4 import BeautifulSoup + +__author__ = 'Alexander Popov' +__license__ = 'MIT' +__version__ = '1.0.0' +__email__ = 'iiiypuk@fastmail.fm' + + +def parse(): + r = requests.get('https://randomword.com/') + data = r.text + soup = BeautifulSoup(data, 'html.parser') + word = soup.find('div', {'id': 'random_word'}).text + word_definition = soup.find('div', {'id': 'random_word_definition'}).text + + new_word = {'word': word, 'definition': + word_definition.replace(' ', '')} + + return(new_word) + + +if __name__ == '__main__': + # dict for new parsed words + words = {} + + # open datebase + db = sqlite3.connect('./words.db') + cursor = db.cursor() + + # create new table if not exist + try: + cursor.execute('CREATE TABLE words(word text, definition text)') + except sqlite3.OperationalError as e: + print('INFO:', e) + + # start parse words + try: + while(True): + sleep(0.5) + + new_word = parse() + words[new_word['word']] = new_word['definition'] + + print('Parsed', new_word['word']) + + except KeyboardInterrupt: + for word in words: + cursor.execute( + 'INSERT INTO words VALUES ("{word}", "{defin}")' + .format(word=word, defin=words[word])) + + db.commit() + + print('Saved %d words.' % len(words)) diff --git a/randomword_grabber.py b/randomword_grabber.py deleted file mode 100755 index 2446162..0000000 --- a/randomword_grabber.py +++ /dev/null @@ -1,58 +0,0 @@ -#!/usr/bin/env python3 - -from bs4 import BeautifulSoup -import requests -import json -from time import sleep - - -def load_words(): - with open('./words.json', encoding='utf-8') as file: - words = json.load(file, encoding='utf-8') - - return(words) - - -def parse(): - r = requests.get('https://randomword.com/') - data = r.text - soup = BeautifulSoup(data, 'html.parser') - word = soup.find('div', {'id': 'random_word'}).text - word_definition = soup.find('div', {'id': 'random_word_definition'}).text - - new_word = {'word': word, 'definition': - [word_definition.replace(' ', '')]} - - return(new_word) - - -def main(words_data): - while(True): - sleep(0.5) - new_word = parse() - - print(new_word) - - words_data[new_word['word']] = new_word['definition'] - - return(words_data) - -__author__ = 'Alexander Popov' -__license__ = "MIT" -__version__ = "1.0.1" -__email__ = "iiiypuk@fastmail.fm" - -if __name__ == '__main__': - words = {} - - words = load_words() - try: - while(True): - words = main(words) - except KeyboardInterrupt: - with open('./words.json', 'w', encoding='utf-8') as file: - file.write( - json.dumps(words, indent=4, ensure_ascii=False)) - - print('Saved %d words.' % len(words)) - diff --git a/words.json b/words.json deleted file mode 100644 index 852a64d..0000000 --- a/words.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - -} -