Surn commited on
Commit
a5c35d5
·
1 Parent(s): 950b0bb

update storage to 0.1.5

Browse files
Files changed (1) hide show
  1. wrdler/game_storage.py +25 -5
wrdler/game_storage.py CHANGED
@@ -12,7 +12,7 @@ Wrdler Specifications:
12
  - No word overlaps
13
  - 2 free letter guesses at game start
14
  """
15
- __version__ = "0.1.4"
16
 
17
  import json
18
  import tempfile
@@ -66,7 +66,10 @@ def serialize_game_settings(
66
  spacer: int = 0,
67
  may_overlap: bool = False,
68
  wordlist_source: Optional[str] = None,
69
- challenge_id: Optional[str] = None
 
 
 
70
  ) -> Dict[str, Any]:
71
  """
72
  Serialize game settings into a JSON-compatible dictionary.
@@ -90,6 +93,9 @@ def serialize_game_settings(
90
  may_overlap: Whether words can overlap (always False in Wrdler)
91
  wordlist_source: Source file name (e.g., "classic.txt")
92
  challenge_id: Optional challenge ID (generated if not provided)
 
 
 
93
 
94
  Returns:
95
  dict: Serialized game settings with users array
@@ -132,12 +138,17 @@ def serialize_game_settings(
132
  },
133
  "users": [user_result],
134
  "created_at": datetime.now(timezone.utc).isoformat(),
135
- "version": __version__
 
 
136
  }
137
 
138
  if wordlist_source:
139
  settings["wordlist_source"] = wordlist_source
140
 
 
 
 
141
  return settings
142
 
143
 
@@ -267,7 +278,10 @@ def save_game_to_hf(
267
  spacer: int = 0,
268
  may_overlap: bool = False,
269
  repo_id: Optional[str] = None,
270
- wordlist_source: Optional[str] = None
 
 
 
271
  ) -> Tuple[str, Optional[str], Optional[str]]:
272
  """
273
  Save game settings to HuggingFace repository and generate shareable URL.
@@ -297,6 +311,9 @@ def save_game_to_hf(
297
  may_overlap: Whether words can overlap (always False in Wrdler)
298
  repo_id: HF repository ID (uses HF_REPO_ID from env if None)
299
  wordlist_source: Source wordlist file name (e.g., "classic.txt")
 
 
 
300
 
301
  Returns:
302
  tuple: (challenge_id, full_url, sid) where:
@@ -335,7 +352,10 @@ def save_game_to_hf(
335
  spacer=spacer,
336
  may_overlap=may_overlap,
337
  challenge_id=challenge_id,
338
- wordlist_source=wordlist_source
 
 
 
339
  )
340
 
341
  logger.debug(f"🆔 Generated Challenge ID: {challenge_id}")
 
12
  - No word overlaps
13
  - 2 free letter guesses at game start
14
  """
15
+ __version__ = "0.1.5"
16
 
17
  import json
18
  import tempfile
 
66
  spacer: int = 0,
67
  may_overlap: bool = False,
68
  wordlist_source: Optional[str] = None,
69
+ challenge_id: Optional[str] = None,
70
+ game_title: Optional[str] = None,
71
+ show_incorrect_guesses: bool = True,
72
+ enable_free_letters: bool = True
73
  ) -> Dict[str, Any]:
74
  """
75
  Serialize game settings into a JSON-compatible dictionary.
 
93
  may_overlap: Whether words can overlap (always False in Wrdler)
94
  wordlist_source: Source file name (e.g., "classic.txt")
95
  challenge_id: Optional challenge ID (generated if not provided)
96
+ game_title: Game title (e.g., "Wrdler Gradio AI")
97
+ show_incorrect_guesses: Whether to show incorrect guesses
98
+ enable_free_letters: Whether free letters feature is enabled
99
 
100
  Returns:
101
  dict: Serialized game settings with users array
 
138
  },
139
  "users": [user_result],
140
  "created_at": datetime.now(timezone.utc).isoformat(),
141
+ "version": __version__,
142
+ "show_incorrect_guesses": show_incorrect_guesses,
143
+ "enable_free_letters": enable_free_letters
144
  }
145
 
146
  if wordlist_source:
147
  settings["wordlist_source"] = wordlist_source
148
 
149
+ if game_title:
150
+ settings["game_title"] = game_title
151
+
152
  return settings
153
 
154
 
 
278
  spacer: int = 0,
279
  may_overlap: bool = False,
280
  repo_id: Optional[str] = None,
281
+ wordlist_source: Optional[str] = None,
282
+ game_title: Optional[str] = None,
283
+ show_incorrect_guesses: bool = True,
284
+ enable_free_letters: bool = True
285
  ) -> Tuple[str, Optional[str], Optional[str]]:
286
  """
287
  Save game settings to HuggingFace repository and generate shareable URL.
 
311
  may_overlap: Whether words can overlap (always False in Wrdler)
312
  repo_id: HF repository ID (uses HF_REPO_ID from env if None)
313
  wordlist_source: Source wordlist file name (e.g., "classic.txt")
314
+ game_title: Game title (e.g., "Wrdler Gradio AI")
315
+ show_incorrect_guesses: Whether to show incorrect guesses
316
+ enable_free_letters: Whether free letters feature is enabled
317
 
318
  Returns:
319
  tuple: (challenge_id, full_url, sid) where:
 
352
  spacer=spacer,
353
  may_overlap=may_overlap,
354
  challenge_id=challenge_id,
355
+ wordlist_source=wordlist_source,
356
+ game_title=game_title,
357
+ show_incorrect_guesses=show_incorrect_guesses,
358
+ enable_free_letters=enable_free_letters
359
  )
360
 
361
  logger.debug(f"🆔 Generated Challenge ID: {challenge_id}")