import streamlit as st
import os
import json
from PIL import Image


# Directory to store scores
score_dir = "scores"
os.makedirs(score_dir, exist_ok=True)

# Function to generate a unique key for each button
def generate_key(label, header, idx):
    return f"{header}_{label}_{idx}"

# Function to increment score and save it
def update_score(key, increment=1):
    score_file = os.path.join(score_dir, f"{key}.json")
    if os.path.exists(score_file):
        with open(score_file, "r") as file:
            score_data = json.load(file)
    else:
        score_data = {"clicks": 0, "score": 0}
    
    score_data["clicks"] += 1
    score_data["score"] += increment
    
    with open(score_file, "w") as file:
        json.dump(score_data, file)
    
    return score_data["score"]

# Function to load score
def load_score(key):
    score_file = os.path.join(score_dir, f"{key}.json")
    if os.path.exists(score_file):
        with open(score_file, "r") as file:
            score_data = json.load(file)
        return score_data["score"]
    return 0

# Display headers and buttons with scores
def display_buttons_with_scores():
    headers = ["Inputs", "Outputs", "Health", "Learning", "AI", "Writing"]
    buttons = [
        ["📝 Text", "📖 Read", "📷 Photo", "đŸ–ŧī¸ View", "🎙ī¸ Record", "🎧 Listen", "đŸŽĨ Video", "📹 Capture"],
        ["đŸ’Ŧ Chat", "✍ī¸ Write", "🎨 Art", "🌄 Create", "đŸŽĩ Music", "đŸŽļ Compose", "đŸ“ŧ Watch", "đŸŋ Movies"],
        ["💉 Vaccinate", "đŸŠē Diagnose", "đŸĨ Hospital", "🚑 Emergency", "💊 Meds", "🩹 Bandage", "đŸ§Ŧ DNA", "đŸ”Ŧ Research", "🌡ī¸ Temperature", "🍏 Nutrition"],
        ["📚 Study", "🧠 Brain", "👩‍🎓 Graduate", "📐 Measure", "🔍 Search", "📊 Analyze", "📋 Plan", "🖋ī¸ Write", "👨‍đŸĢ Teach", "🧩 Puzzle"],
        ["🤖 Robot", "👾 Game", "đŸ’ģ Code", "🧮 Calculate", "📡 Connect", "🔋 Power", "🕹ī¸ Play", "đŸ–Ĩī¸ Display", "🧑‍đŸ’ģ Develop", "👨‍đŸ”Ŧ Experiment"],
        ["✍ī¸ Author", "📝 Note", "🖊ī¸ Pen", "🖋ī¸ Sign", "📚 Library", "🔖 Bookmark", "📓 Journal", "✒ī¸ Ink", "📜 Scroll"]
    ]

    cols = st.columns(len(headers))
    for idx, (col, header, buttons_list) in enumerate(zip(cols, headers, buttons)):
        with col:
            st.markdown(f"### {header}")
            for button_idx, button_label in enumerate(buttons_list, start=1):
                key = generate_key(button_label, header, button_idx)
                score = load_score(key)
                if st.button(f"{button_label} {score}", key=key):
                    new_score = update_score(key)
                    # Reload the page to reflect the updated score
                    st.experimental_rerun()

# Main application logic
if __name__ == "__main__":
    st.markdown('# Remixable!')
    display_buttons_with_scores()

    # Additional content and functionality can go here






col1, col2, col3 = st.columns(3)

with col1:
    st.markdown('''### Inputs''')
    st.button("📝 Text")
    st.button("📖 Read")
    st.button("📷 Photo")
    st.button("đŸ–ŧī¸ View")
    st.button("🎙ī¸ Record")
    st.button("🎧 Listen")
    st.button("đŸŽĨ Video")
    st.button("📹 Capture")

with col2:
    st.markdown('''### Outputs''')
    st.button("đŸ’Ŧ Chat")
    st.button("✍ī¸ Write")
    st.button("🎨 Art")
    st.button("🌄 Create")
    st.button("đŸŽĩ Music")
    st.button("đŸŽļ Compose")
    st.button("đŸ“ŧ Watch")
    st.button("đŸŋ Movies")

with col3:
    st.markdown('''### Health''')
    st.button("💉 Vaccinate")
    st.button("đŸŠē Diagnose")
    st.button("đŸĨ Hospital")
    st.button("🚑 Emergency")
    st.button("💊 Meds")
    st.button("🩹 Bandage")
    st.button("đŸ§Ŧ DNA")
    st.button("đŸ”Ŧ Research")
    st.button("🌡ī¸ Temperature")
    st.button("🍏 Nutrition")

col4, col5, col6 = st.columns(3)

with col4:
    st.markdown('''### Learning''')
    st.button("📚 Study")
    st.button("🧠 Brain")
    st.button("👩‍🎓 Graduate")
    st.button("📐 Measure")
    st.button("🔍 Search")
    st.button("📊 Analyze")
    st.button("📋 Plan")
    st.button("🖋ī¸ Write")
    st.button("👨‍đŸĢ Teach")
    st.button("🧩 Puzzle")

with col5:
    st.markdown('''### AI''')
    st.button("🤖 Robot")
    st.button("👾 Game")
    st.button("đŸ’ģ Code")
    st.button("🧮 Calculate")
    st.button("📡 Connect")
    st.button("🔋 Power")
    st.button("🕹ī¸ Play")
    st.button("đŸ–Ĩī¸ Display")
    st.button("🧑‍đŸ’ģ Develop")
    st.button("👨‍đŸ”Ŧ Experiment")

with col6:
    st.markdown('''### Writing''')
    st.button("✍ī¸ Author")
    st.button("📝 Note")
    st.button("🖊ī¸ Pen")
    st.button("🖋ī¸ Sign")
    st.button("📚 Library")
    st.button("🔖 Bookmark")
    st.button("📓 Journal")
    st.button("✒ī¸ Ink")
    st.button("📜 Scroll")

def display_images_and_wikipedia_summaries():
    st.title('Gallery with Related Stories')
    image_files = [f for f in os.listdir('.') if f.endswith('.png')]
    if not image_files:
        st.write("No PNG images found in the current directory.")
        return
    for image_file in image_files:
        image = Image.open(image_file)
        st.image(image, caption=image_file, use_column_width='always')
        keyword = image_file.split('.')[0]  # Assumes keyword is the file name without extension
        
        wikipedia_summary = fetch_wikipedia_summary(keyword)
        st.write(wikipedia_summary)

display_images_and_wikipedia_summaries()

st.markdown('# Three Dragons 🐉🌍 Mythical Dragons Around the World by Aaron Wacker')
dragons = {
    '#Fafnir #Norse': '- **Story**: Fafnir originally a dwarf, transformed into a fierce dragon due to his greed for the treasure he guarded. He was later slain by the hero Sigurd. - **Significance**: deadly sin of greed and the corrupting power of wealth.',
    '#Quetzalcoatl #Aztec': '- **Story**: Quetzalcoatl, the Feathered Serpent, is not a dragon in the traditional sense but shares many similarities. He was a deity representing wind, air, and learning. - **Significance**: creator god and a symbol of death and rebirth.',
    '#Tiamat #Mesopotamian': '- **Story**: Tiamat, primordial goddess of ocean, turned into a dragon-like creature in a battle against her children who threatened her authority. - **Significance**: chaos of primordial creation and is often associated with the forces of nature.'
}
for dragon, story in dragons.items():
    st.subheader(dragon)
    st.markdown(f"- {story}")
st.markdown('''
https://github.com/AaronCWacker/ThreeDragons
![image/png](https://cdn-uploads.huggingface.co/production/uploads/620630b603825909dcbeba35/vkNh6XnEtGSj8mXea1W6p.png)
![image/png](https://cdn-uploads.huggingface.co/production/uploads/620630b603825909dcbeba35/Kr_nqtaglHE_aiFxWH9zF.png)
![image/png](https://cdn-uploads.huggingface.co/production/uploads/620630b603825909dcbeba35/WLRKWqB6dKlMH6saVV9cX.png)
![image/png](https://cdn-uploads.huggingface.co/production/uploads/620630b603825909dcbeba35/Lyazf6FuX4nH__4illVki.png)
![image/png](https://cdn-uploads.huggingface.co/production/uploads/620630b603825909dcbeba35/ZemsxlT3b5idB0W5IjL1o.png)
''')