Spaces:
Sleeping
Sleeping
File size: 1,600 Bytes
b787616 d9b4271 14f90e3 ea3872d b787616 82e5d3a b787616 0b21467 b787616 50e3646 d9b4271 b787616 8ceea03 b787616 ea3872d 14f90e3 50e3646 8ceea03 50e3646 b787616 0ff4e79 ea3872d 0ff4e79 ea3872d 8ceea03 82e5d3a 14f90e3 d9b4271 |
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 |
import streamlit as st
import pandas as pd
import streamlit_common.footer
import streamlit_common.lib as lib
mslist_path = "output/middleschool.csv"
number_shown_results = 20
st.set_page_config(
page_title="Middle School | Card Search",
page_icon="🃏",
layout="wide",
)
st.write(
"""
# Middle School Card Search
Enter any English or Japanese text to find all Middle School legal card titles which include it.
"""
)
mslist_df = pd.read_csv(mslist_path)
mslist_df.fillna("", inplace=True)
st.write(mslist_df.shape[0], "cards are legal")
name_input = st.text_input(f"Search by card name").strip()
exact_match = lib.get_legal_cardnames(name_input, mslist_df)
results_en_df = mslist_df[
mslist_df["name"].str.contains(name_input.lower(), case=False)
]
results_ja_df = mslist_df[
mslist_df["name_ja"].str.contains(name_input.lower(), case=False)
]
results_df = results_en_df.merge(results_ja_df, how="outer")
if name_input:
if exact_match[0]:
cardname = exact_match[1]
if exact_match[2] is not None:
cardname = f"{cardname} / {exact_match[2]}"
st.write(
f"✅ [{cardname}]({lib.compose_scryfall_url(exact_match[1])}) is an exact match"
)
st.write(results_df.shape[0], f'cards found by "{name_input}"')
if results_df.shape[0] > number_shown_results:
st.write(f"Top {number_shown_results} results:")
results_df["link"] = results_df["name"].apply(lib.compose_scryfall_url)
results_df[:number_shown_results].transpose().apply(lib.row_to_link)
streamlit_common.footer.write_footer()
|