Rathapoom commited on
Commit
8f804a6
·
verified ·
1 Parent(s): a9ff0bd

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +28 -6
app.py CHANGED
@@ -952,7 +952,15 @@ def generate_dynamic_story_starter(theme_id: str, level: str) -> Dict[str, str]:
952
  'th': starter_th
953
  }
954
 
955
-
 
 
 
 
 
 
 
 
956
 
957
  def get_theme_story_starter(theme_id: str, level: str) -> Dict[str, str]:
958
  """Get a dynamically generated story starter for the selected theme and level."""
@@ -1702,8 +1710,12 @@ def load_progress(uploaded_file):
1702
  st.session_state.story = data['story']
1703
  st.session_state.achievements = data['achievements']
1704
  st.session_state.points = data['points']
1705
- st.session_state.stats = data['stats']
1706
- st.session_state.stats['vocabulary_used'] = set(data['stats']['vocabulary_used'])
 
 
 
 
1707
  st.success("โหลดความก้าวหน้าเรียบร้อย!")
1708
  st.rerun()
1709
  except Exception as e:
@@ -1952,22 +1964,32 @@ with col2:
1952
  )
1953
 
1954
  with col2:
1955
- # บันทึกความก้าวหน้า
1956
  story_data = {
1957
  'level': st.session_state.level,
1958
  'date': datetime.now().isoformat(),
1959
  'story': st.session_state.story,
1960
  'achievements': st.session_state.achievements,
1961
  'points': st.session_state.points,
1962
- 'stats': st.session_state.stats
 
 
 
 
 
1963
  }
 
 
 
 
1964
  st.download_button(
1965
  label="💾 Save",
1966
- data=json.dumps(story_data, indent=2),
1967
  file_name=f"story_progress_{datetime.now().strftime('%Y%m%d')}.json",
1968
  mime="application/json"
1969
  )
1970
 
 
1971
  # Add new CSS for improved layout
1972
  st.markdown("""
1973
  <style>
 
952
  'th': starter_th
953
  }
954
 
955
+ def convert_sets_to_lists(obj):
956
+ """แปลง set เป็น list สำหรับการ serialize เป็น JSON"""
957
+ if isinstance(obj, set):
958
+ return list(obj)
959
+ elif isinstance(obj, dict):
960
+ return {key: convert_sets_to_lists(value) for key, value in obj.items()}
961
+ elif isinstance(obj, list):
962
+ return [convert_sets_to_lists(item) for item in obj]
963
+ return obj
964
 
965
  def get_theme_story_starter(theme_id: str, level: str) -> Dict[str, str]:
966
  """Get a dynamically generated story starter for the selected theme and level."""
 
1710
  st.session_state.story = data['story']
1711
  st.session_state.achievements = data['achievements']
1712
  st.session_state.points = data['points']
1713
+ st.session_state.stats = {
1714
+ 'total_sentences': data['stats']['total_sentences'],
1715
+ 'correct_first_try': data['stats']['correct_first_try'],
1716
+ 'accuracy_rate': data['stats']['accuracy_rate'],
1717
+ 'vocabulary_used': set(data['stats']['vocabulary_used']) # แปลง list กลับเป็น set
1718
+ }
1719
  st.success("โหลดความก้าวหน้าเรียบร้อย!")
1720
  st.rerun()
1721
  except Exception as e:
 
1964
  )
1965
 
1966
  with col2:
1967
+ # บันทึกความก้าวหน้า (แก้ไขส่วนนี้)
1968
  story_data = {
1969
  'level': st.session_state.level,
1970
  'date': datetime.now().isoformat(),
1971
  'story': st.session_state.story,
1972
  'achievements': st.session_state.achievements,
1973
  'points': st.session_state.points,
1974
+ 'stats': {
1975
+ 'total_sentences': st.session_state.stats['total_sentences'],
1976
+ 'correct_first_try': st.session_state.stats['correct_first_try'],
1977
+ 'accuracy_rate': st.session_state.stats['accuracy_rate'],
1978
+ 'vocabulary_used': list(st.session_state.stats['vocabulary_used']) # แปลง set เป็น list
1979
+ }
1980
  }
1981
+
1982
+ # แปลงข้อมูลทั้งหมดที่อาจมี set
1983
+ serializable_data = convert_sets_to_lists(story_data)
1984
+
1985
  st.download_button(
1986
  label="💾 Save",
1987
+ data=json.dumps(serializable_data, indent=2),
1988
  file_name=f"story_progress_{datetime.now().strftime('%Y%m%d')}.json",
1989
  mime="application/json"
1990
  )
1991
 
1992
+
1993
  # Add new CSS for improved layout
1994
  st.markdown("""
1995
  <style>