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 from streamlit_extras.colored_header import colored_header 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 # for key in st.session_state.keys(): # del st.session_state[key] # st.markdown(st.session_state) # 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: st.markdown('### Select initials to browse.') 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)") # st.markdown(st.session_state) all_word_button = {} # for key in all_word_button: # if all_word_button[key]: # st.session_state.click_word = key # switch_page("dictionary (search)") for k in st.session_state.keys(): if st.session_state[k]: if 'button_' in k: st.session_state.click_word = k.split('button_')[-1] # st.markdown(k) switch_page("dictionary (search)") # all_condition = False word_buttons = None for k in buttons: if buttons[k]: # for _k in buttons: # if _k != k: # st.session_state[_k] = False word_buttons = [] if k == '0-9': # st.title(k) colored_header( label=k, description="", color_name="violet-70", ) file_names = ['num_dict.pkl'] elif k == 'Others': # st.title(k) colored_header( label=k, description="", color_name="violet-70", ) file_names = ['other_dict.pkl'] elif ord(k[0]) in list(range(97, 123)) + list(range(65, 91)): # st.title(chr(ord(k))) colored_header( label=chr(ord(k)), description="", color_name="violet-70", ) 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 = 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)) all_word_button[key] = st.button(f'{key}', key=f'button_{key}') # all_word_button[key] = button(f'{key}', key=key) # 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)