import streamlit as st import pandas as pd import folium from streamlit_folium import folium_static import extra_streamlit_components as stx # 🤠 Howdy, partner! Welcome to the Wild West of coding! 🌵 # 🎭 Set the stage for our grand performance st.set_page_config(page_title="Wild Bill vs Buffalo Bill", page_icon="🤠", layout="wide") # 🧠 Initialize our app's memory (it's not whiskey, I promise!) if 'page' not in st.session_state: st.session_state.page = 'home' # 🍪 Cookie Manager: Because even cowboys need snacks def get_manager(): return stx.CookieManager() cookie_manager = get_manager() # Define the stories wild_bill_story = """ # 🔫 Wild Bill Hickok: The Legendary Gunslinger ## 1. 🌟 Early Life - 🍼 Born James Butler Hickok on May 27, 1837, in Homer, Illinois - 🌾 Grew up on a farm, developing skills in shooting and horseback riding - 🏞️ Left home at 18 to become a stagecoach driver on the Santa Fe Trail ## 2. 🦸‍♂️ Rise to Fame - 👮 Became a lawman in Kansas and Nebraska territories - 🎯 Earned reputation as a skilled marksman and gunfighter - 📰 Featured in dime novels, spreading his fame across the country ## 3. 🏙️ Notable Locations - 🌽 Rock Creek Station, Nebraska: Site of the McCanles Massacre (1861) - 🐄 Abilene, Kansas: Served as city marshal (1871) - 🏜️ Cheyenne, Wyoming: Brief stint as sheriff (1876) ## 4. 💀 The Fateful Day: August 2, 1876 - 🃏 Playing poker in Nuttal & Mann's Saloon, Deadwood - 🔫 Shot in the back of the head by Jack McCall - 🖐️ Holding the famous "Dead Man's Hand" - aces and eights """ buffalo_bill_story = """ # 🦬 Buffalo Bill Cody: The Showman of the West ## 1. 🌟 Early Life - 🍼 Born William Frederick Cody on February 26, 1846, in Le Claire, Iowa - 🐎 Began riding horses at a young age - 🚂 Worked as a Pony Express rider at age 14 ## 2. 🏇 Rise to Fame - 🦬 Earned nickname "Buffalo Bill" as a buffalo hunter for the railroad - 🎖️ Served as a scout for the U.S. Army during Indian Wars - 📰 Became famous through dime novels about his exploits ## 3. 🎪 Buffalo Bill's Wild West Show - 🤠 Created the famous traveling show in 1883 - 🌍 Toured across America and Europe - 🏹 Featured Native Americans, cowboys, and sharpshooters ## 4. 🌅 Legacy - 🏙️ Founded the town of Cody, Wyoming - 🏞️ Advocated for conservation of the American West - 🎭 Shaped the world's perception of the American frontier """ # 🏡 Home on the range def home(): st.title("🤠 Wild Bill Hickok vs Buffalo Bill Cody: A Tale of Two Western Legends") st.write("Welcome to our interactive dime novel! Choose a character to explore their story.") # 🔫 Wild Bill's saloon (careful, he's a quick draw!) def wild_bill(): st.title("🔫 Wild Bill Hickok: The Legendary Gunslinger") st.markdown(wild_bill_story) # 🎪 Step right up to Buffalo Bill's Wild West Show! def buffalo_bill(): st.title("🦬 Buffalo Bill Cody: The Showman of the West") st.markdown(buffalo_bill_story) # 🧭 Navigation: Don't get lost in the prairie! chosen_id = stx.tab_bar(data=[ stx.TabBarItemData(id="home", title="Home", description="Start here"), stx.TabBarItemData(id="wild-bill", title="Wild Bill", description="Explore Wild Bill's story"), stx.TabBarItemData(id="buffalo-bill", title="Buffalo Bill", description="Discover Buffalo Bill's adventures"), ], default="home") # 🐎 Giddy up to the chosen page! if st.session_state.page != chosen_id: st.session_state.page = chosen_id st.rerun() # 🕰️ Remember the last saloon... err, page you visited cookie_manager.set("last_page", chosen_id) # 📜 Reveal the secrets of your past (visits) st.sidebar.write(f"Last visited: {cookie_manager.get('last_page')}") # Display the content based on the chosen page if st.session_state.page == 'home': home() elif st.session_state.page == 'wild-bill': wild_bill() elif st.session_state.page == 'buffalo-bill': buffalo_bill() # 👢 Put your boots on, we're going on a story adventure! story_progress = stx.stepper_bar(steps=["Early Life", "Rise to Fame", "Notable Feats", "Legacy"]) st.sidebar.info(f"Story Progress: Phase #{story_progress}") # 🗺️ Map: Because even legends need GPS sometimes st.subheader("🗺️ Journey Through the Wild West") m = folium.Map(location=[41, -100], zoom_start=4) # 📍 Mark the spots where our legends left their boot prints locations = [ ("Homer, IL", 40.0356, -87.9506, "Wild Bill's first rodeo (birthplace)"), ("Rock Creek Station, NE", 40.1116, -97.0564, "Wild Bill's wild time (McCanles Massacre)"), ("Abilene, KS", 38.9172, -97.2137, "Wild Bill's badge-wearing days"), ("Cheyenne, WY", 41.1400, -104.8202, "Wild Bill's brief sheriff showdown"), ("Deadwood, SD", 44.3767, -103.7296, "Wild Bill's last poker game 😢"), ("Le Claire, IA", 41.5978, -90.3485, "Buffalo Bill's first 'Yee-haw!' (birthplace)"), ("North Platte, NE", 41.1239, -100.7654, "Buffalo Bill's home on the range"), ("Cody, WY", 44.5263, -109.0565, "Buffalo Bill's namesake town (no buffaloes were harmed)"), ("Denver, CO", 39.7392, -104.9903, "Buffalo Bill's final bow 🎭") ] # 🎨 Paint the town red... or at least mark it on the map for name, lat, lon, desc in locations: folium.Marker( [lat, lon], popup=f"{name}: {desc}", tooltip=name ).add_to(m) # 🌟 Showcase our masterpiece map folium_static(m) # 📊 Compare our legends (no gunslingers were harmed in the making of this table) st.subheader("📊 Side-by-Side Comparison") comparison_data = { "Aspect": ["Birth Year", "Death Year", "Nickname Origin", "Primary Occupation", "Famous For", "Colorado Connection", "South Dakota Connection"], "Wild Bill Hickok": ["1837", "1876", "Unclear, possibly his wild nose 👃", "Lawman, Gunfighter", "Quick Draw McGraw IRL", "Visited (probably for the beer 🍺)", "Died in Deadwood (worst poker game ever)"], "Buffalo Bill Cody": ["1846", "1917", "Buffalo hunting (not actual buffaloes)", "Showman, Scout", "Wild West Show (wilder than spring break)", "Home in Denver (loved the mountains)", "Performed shows (to rival Deadwood's saloons)"] } # 🎭 Let the comparison show begin! df = pd.DataFrame(comparison_data) st.table(df) # 🌅 Ride off into the sunset with our conclusion st.markdown(""" ## 🌅 Conclusion: Legends of the West Yeehaw! We've corralled the tales of two of the wildest cowboys to ever roam the American frontier! 🤠 - 🔫 **Wild Bill Hickok**: The man, the myth, the mustache! He lived fast, died young, and left a good-looking corpse (with a really bad poker hand). - 🎪 **Buffalo Bill Cody**: The original showman who put the 'wild' in Wild West! He turned frontier life into a circus... literally! These two buckaroos shaped the West faster than a tumbleweed 🌿 rollin' in a tornado! Their legacy is as enduring as the smell of a cowboy's boots after a long cattle drive. 🐄💨 So next time you're sipping sarsaparilla 🥤 in a saloon, tip your hat 🤠 to Wild Bill and Buffalo Bill - the OG influencers of the American West! Remember, in the words of the great philosopher Woody from Toy Story: "There's a snake in my boot!" 🐍👢 (Okay, maybe that's not relevant, but it's still a great quote!) """) # 🎬 That's all, folks! st.sidebar.markdown("---") st.sidebar.markdown("Created with ❤️ and a lot of 🤠 using Streamlit")