import streamlit as st import pandas as pd # import gdown import os import pickle from streamlit import session_state as _state from PyDictionary import PyDictionary dictionary = PyDictionary() st.set_page_config(layout="wide", page_title="ACl23 Secret Language") from streamlit_extras.switch_page_button import switch_page from streamlit_extras.stateful_button import button # want_to_contribute = st.button("I want to contribute!") # if want_to_contribute: # # switch_page("dictionary (search)") # switch_page("home") # st.title("ACl23 Secret Language") # sidebar st.sidebar.header("📙 Dictionary (Browse)") # title = st.sidebar.text_input(":red[Search secret languages given the following word]", 'Asian') buttons = {} # def call_back(): # for k in buttons: # if buttons[k]: # st.text(k) with st.sidebar: # cols0 = st.columns(8) # for i in range(len(cols0)): # with cols0[i]: # # buttons[chr(65 + i)] = st.button(chr(65 + i)) # buttons[chr(65 + i)] = button(chr(65 + i), key=chr(65 + i)) # cols1 = st.columns(8) # for i in range(len(cols1)): # with cols1[i]: # # buttons[chr(65 + 8 + i)] = st.button(chr(65 + 8 + i)) # buttons[chr(65 + 8 + i)] = button(chr(65 + 8 + i), key=chr(65 + 8 + i)) # cols2 = st.columns(8) # for i in range(len(cols2)): # with cols2[i]: # # buttons[chr(65 + 16 + i)] = st.button(chr(65 + 16 + i)) # buttons[chr(65 + 16 + i)] = button(chr(65 + 16 + i), key=chr(65 + 16 + i)) # cols3 = st.columns(8) # for i in range(2): # with cols3[i]: # # buttons[chr(65 + 24 + i)] = st.button(chr(65 + 24 + i)) # buttons[chr(65 + 24 + i)] = button(chr(65 + 24 + i), key=chr(65 + 24 + i)) # cols4 = st.columns(2) # buttons['0-9'] = cols4[0].button('0-9') # buttons['Others'] = cols4[1].button('Others') select = st.radio( "Select initial to browse.", [chr(i) for i in range(97, 123)] + ['0-9', 'Others'], key="nokeyjustselect", ) if select == '0-9': st.title(select) file_names = ['num_dict.pkl'] elif select == 'Others': st.title(select) file_names = ['other_dict.pkl'] elif ord(select[0]) in list(range(97, 123)) + list(range(65, 91)): st.title(chr(ord(select))) file_names = [f'{ord(select[0]) - 32}_dict.pkl', f'{ord(select[0])}_dict.pkl'] all_data = {} all_key = [] for file_name in file_names: _data = pickle.load(open(f'all_secret_langauge_by_fist/{file_name}', 'rb')) all_data.update(_data) all_key.extend(sorted(list(_data.keys()))) # st.markdown(file_name, unsafe_allow_html=True) # st.markdown(_data.keys(), unsafe_allow_html=True) all_key = sorted(list(set(all_key))) # st.markdown(','.join(all_key)) for key in all_key: # if len(key) and key[0] != '"': # st.markdown(key, unsafe_allow_html=True) # st.change_page("home") # st.markdown(f'{key}', unsafe_allow_html=True) # print(key) # word_buttons.append(st.button(f'{key}', key=key)) _button = st.button(f'{key}', key=key) if _button: st.session_state.click_word = key switch_page("dictionary (search)") # # all_condition = False # word_buttons = None # for k in buttons: # if buttons[k]: # word_buttons = [] # if k == '0-9': # st.title(k) # file_names = ['num_dict.pkl'] # elif k == 'Others': # st.title(k) # file_names = ['other_dict.pkl'] # elif ord(k[0]) in list(range(97, 123)) + list(range(65, 91)): # st.title(chr(ord(k))) # file_names = [f'{ord(k[0]) + 32}_dict.pkl', f'{ord(k[0])}_dict.pkl'] # all_data = {} # all_key = [] # for file_name in file_names: # _data = pickle.load(open(f'all_secret_langauge_by_fist/{file_name}', 'rb')) # all_data.update(_data) # all_key.extend(sorted(list(_data.keys()))) # # st.markdown(file_name, unsafe_allow_html=True) # # st.markdown(_data.keys(), unsafe_allow_html=True) # # all_key = list(set(all_key)) # st.markdown(','.join(all_key)) # for key in all_key: # # if len(key) and key[0] != '"': # # st.markdown(key, unsafe_allow_html=True) # # st.change_page("home") # # st.markdown(f'{key}', unsafe_allow_html=True) # # print(key) # # word_buttons.append(st.button(f'{key}', key=key)) # _button = st.button(f'{key}', key=key) # if _button: # st.session_state.click_word = key # # switch_page("dictionary (search)") # for _button in word_buttons: # if _button: # # st.session_state.click_word = key # # st.markdown('asdfd') # switch_page("home") # with st.expander(key): # st.markdown(':red[Secret Languages:' + ','.join(all_data[key]['secret languages']), unsafe_allow_html=True)