Spaces:
Running
Running
File size: 2,338 Bytes
ee2309a c8e9ef0 ee2309a c0ab3ed fb96dd8 9fe7e75 120d25d 7cc26a6 c8e9ef0 0fe0771 fb96dd8 177665a 9cb4940 7cc26a6 9cb4940 54922b6 909915c 9cb4940 fb96dd8 c8e9ef0 17afdf5 c8e9ef0 401609b c8e9ef0 7bd6a90 fb96dd8 7bd6a90 fb96dd8 c0ab3ed 134ecd7 c8e9ef0 134ecd7 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
import gradio as gr
import pandas as pd
import requests
import re
import json
english_dict = pd.read_csv("dictionary.txt",
header = None,
sep = ' ',
names = ['word'])
english_dict = english_dict.reset_index(drop = True)
english_dict = english_dict.dropna()
url = 'https://spellbee.org'
def spell_bee_solver(no_centre, centre):
full_set = set(no_centre.lower() + centre.lower())
spell_bee_solver = english_dict[english_dict['word'].str.contains(str(centre.lower()), regex = False)]
final_words = list()
for i in range(0, spell_bee_solver.shape[0]):
words = spell_bee_solver['word'].iloc[i]
words_set = set(words)
if len(words_set - full_set) == 0:
final_words.append(words)
final_word_df = pd.DataFrame(final_words)
final_word_df.columns = ['word']
final_word_df['word_length'] = final_word_df['word'].str.len()
final_word_df = final_word_df[final_word_df['word_length'] > 3]
final_word_df = final_word_df.sort_values('word_length', ascending = False)
return(final_word_df)
def get_spellbee_answers(x):
content = requests.get(url)._content
content = re.sub(".*window.games = ", "", str(content))
content = re.sub("(.*?)\\;.*", "\\1", content)
print(content)
content = json.loads(content)
valid_words = content['data']['dictionary']
final_word_df = pd.DataFrame(valid_words, columns = ['word'])
final_word_df['word_length'] = final_word_df['word'].str.len()
final_word_df = final_word_df[final_word_df['word_length'] > 3]
final_word_df = final_word_df.sort_values('word_length', ascending = False)
return(final_word_df)
with gr.Blocks() as app:
with gr.Row():
no_centre = gr.Textbox(label = 'Letters Outside of Centre')
centre = gr.Textbox(label = 'Centre Letter')
with gr.Row():
solve_button = gr.Button(value = 'Solve')
get_today_answers = gr.Button(value = "Get Today's answers")
with gr.Row():
output_df = gr.DataFrame(headers = ['word', 'word_length'])
solve_button.click(spell_bee_solver, inputs = [no_centre, centre], outputs = [output_df])
get_today_answers.click(get_spellbee_answers, inputs = [no_centre], outputs = [output_df])
app.launch(debug = True, share = False) |