Update app.py
Browse files
app.py
CHANGED
@@ -132,14 +132,22 @@ st.markdown("""
|
|
132 |
|
133 |
# Initialize session state variables
|
134 |
def init_session_state():
|
|
|
135 |
if 'story' not in st.session_state:
|
136 |
st.session_state.story = []
|
137 |
if 'feedback' not in st.session_state:
|
138 |
st.session_state.feedback = None
|
139 |
-
if 'corrections' not in st.session_state:
|
140 |
-
st.session_state.corrections = {} # เก็บประวัติการแก้ไข
|
141 |
if 'level' not in st.session_state:
|
142 |
st.session_state.level = 'Beginner'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
143 |
if 'points' not in st.session_state:
|
144 |
st.session_state.points = {
|
145 |
'total': 0,
|
@@ -155,14 +163,12 @@ def init_session_state():
|
|
155 |
'accuracy_rate': 0.0,
|
156 |
'vocabulary_used': set()
|
157 |
}
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
if '
|
163 |
-
st.session_state.
|
164 |
-
if 'should_reset' not in st.session_state:
|
165 |
-
st.session_state.should_reset = False
|
166 |
|
167 |
init_session_state()
|
168 |
|
@@ -545,7 +551,7 @@ def show_achievements():
|
|
545 |
""", unsafe_allow_html=True)
|
546 |
|
547 |
# แสดงสถิติ
|
548 |
-
st.markdown("
|
549 |
col1, col2 = st.columns(2)
|
550 |
with col1:
|
551 |
st.metric("ประโยคที่เขียนทั้งหมด", st.session_state.stats['total_sentences'])
|
@@ -554,13 +560,13 @@ def show_achievements():
|
|
554 |
st.metric("ความแม่นยำ", f"{st.session_state.stats['accuracy_rate']:.1f}%")
|
555 |
st.metric("คำศัพท์ที่ใช้", len(st.session_state.stats['vocabulary_used']))
|
556 |
|
557 |
-
# แสดง Achievements
|
558 |
st.markdown("### 🏆 ความสำเร็จ")
|
559 |
-
|
560 |
-
|
561 |
-
st.success(f"
|
562 |
-
|
563 |
-
|
564 |
|
565 |
def update_achievements(text: str):
|
566 |
"""Update user achievements based on their writing."""
|
@@ -664,7 +670,7 @@ def create_story_pdf():
|
|
664 |
elements.append(Paragraph(text, style))
|
665 |
|
666 |
# เพิ่ม achievements ที่ได้รับ
|
667 |
-
if st.session_state.achievements:
|
668 |
elements.append(Spacer(1, 20))
|
669 |
elements.append(Paragraph("Achievements Earned", styles['Heading2']))
|
670 |
for achievement in st.session_state.achievements:
|
|
|
132 |
|
133 |
# Initialize session state variables
|
134 |
def init_session_state():
|
135 |
+
"""Initialize all session state variables"""
|
136 |
if 'story' not in st.session_state:
|
137 |
st.session_state.story = []
|
138 |
if 'feedback' not in st.session_state:
|
139 |
st.session_state.feedback = None
|
|
|
|
|
140 |
if 'level' not in st.session_state:
|
141 |
st.session_state.level = 'Beginner'
|
142 |
+
if 'unique_words' not in st.session_state:
|
143 |
+
st.session_state.unique_words = set()
|
144 |
+
if 'total_words' not in st.session_state:
|
145 |
+
st.session_state.total_words = 0
|
146 |
+
if 'should_reset' not in st.session_state:
|
147 |
+
st.session_state.should_reset = False
|
148 |
+
if 'user_input' not in st.session_state:
|
149 |
+
st.session_state.user_input = ""
|
150 |
+
# เพิ่ม points และ stats
|
151 |
if 'points' not in st.session_state:
|
152 |
st.session_state.points = {
|
153 |
'total': 0,
|
|
|
163 |
'accuracy_rate': 0.0,
|
164 |
'vocabulary_used': set()
|
165 |
}
|
166 |
+
# เพิ่ม achievements
|
167 |
+
if 'achievements' not in st.session_state:
|
168 |
+
st.session_state.achievements = []
|
169 |
+
# เพิ่มชื่อผู้เล่น (optional)
|
170 |
+
if 'player_name' not in st.session_state:
|
171 |
+
st.session_state.player_name = "Young Writer"
|
|
|
|
|
172 |
|
173 |
init_session_state()
|
174 |
|
|
|
551 |
""", unsafe_allow_html=True)
|
552 |
|
553 |
# แสดงสถิติ
|
554 |
+
st.markdown("### 📊 สถิติการเขียน")
|
555 |
col1, col2 = st.columns(2)
|
556 |
with col1:
|
557 |
st.metric("ประโยคที่เขียนทั้งหมด", st.session_state.stats['total_sentences'])
|
|
|
560 |
st.metric("ความแม่นยำ", f"{st.session_state.stats['accuracy_rate']:.1f}%")
|
561 |
st.metric("คำศัพท์ที่ใช้", len(st.session_state.stats['vocabulary_used']))
|
562 |
|
563 |
+
# แสดง Achievements ที่มี
|
564 |
st.markdown("### 🏆 ความสำเร็จ")
|
565 |
+
if st.session_state.achievements:
|
566 |
+
for achievement in st.session_state.achievements:
|
567 |
+
st.success(f"🏆 {achievement}")
|
568 |
+
else:
|
569 |
+
st.info("ยังไม่มีความสำเร็จ - เขียนต่อไปเพื่อปลดล็อกรางวัล!")
|
570 |
|
571 |
def update_achievements(text: str):
|
572 |
"""Update user achievements based on their writing."""
|
|
|
670 |
elements.append(Paragraph(text, style))
|
671 |
|
672 |
# เพิ่ม achievements ที่ได้รับ
|
673 |
+
if hasattr(st.session_state, 'achievements') and st.session_state.achievements:
|
674 |
elements.append(Spacer(1, 20))
|
675 |
elements.append(Paragraph("Achievements Earned", styles['Heading2']))
|
676 |
for achievement in st.session_state.achievements:
|