awacke1 commited on
Commit
52cbf87
·
verified ·
1 Parent(s): 4b8785f

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +28 -7
app.py CHANGED
@@ -170,19 +170,40 @@ def generate_world_save_filename(username="User", world_name="World"):
170
  return f"{WORLD_STATE_FILE_MD_PREFIX}{clean_world}_by_{clean_user}_{timestamp}_{rand_hash}.md"
171
 
172
  def parse_world_filename(filename):
 
173
  basename = os.path.basename(filename)
 
174
  if basename.startswith(WORLD_STATE_FILE_MD_PREFIX) and basename.endswith(".md"):
175
- core = basename[len(WORLD_STATE_FILE_MD_PREFIX):-3]; parts = core.split('_')
 
 
176
  if len(parts) >= 5 and parts[-3] == "by":
177
- timestamp_str = parts[-2]; username = parts[-4]; world_name = " ".join(parts[:-4]); dt_obj = None
178
- try: dt_obj = pytz.utc.localize(datetime.strptime(timestamp_str, '%Y%m%d_%H%M%S'))
179
- except Exception: dt_obj = None
 
 
 
 
 
 
 
180
  return {"name": world_name or "Untitled", "user": username, "timestamp": timestamp_str, "dt": dt_obj, "filename": filename}
181
- # Fallback
182
- dt_fallback = None; try: mtime = os.path.getmtime(filename); dt_fallback = datetime.fromtimestamp(mtime, tz=pytz.utc)
183
- except Exception: pass
 
 
 
 
 
 
 
 
 
184
  return {"name": basename.replace('.md','').replace(WORLD_STATE_FILE_MD_PREFIX, ''), "user": "Unknown", "timestamp": "Unknown", "dt": dt_fallback, "filename": filename}
185
 
 
186
 
187
  def save_world_state_to_md(target_filename_base):
188
  """Saves the current cached world state to a specific MD file."""
 
170
  return f"{WORLD_STATE_FILE_MD_PREFIX}{clean_world}_by_{clean_user}_{timestamp}_{rand_hash}.md"
171
 
172
  def parse_world_filename(filename):
173
+ """Extracts info from filename if possible, otherwise returns defaults."""
174
  basename = os.path.basename(filename)
175
+ # Check prefix and suffix
176
  if basename.startswith(WORLD_STATE_FILE_MD_PREFIX) and basename.endswith(".md"):
177
+ core_name = basename[len(WORLD_STATE_FILE_MD_PREFIX):-3]
178
+ parts = core_name.split('_')
179
+ # Check if structure matches Name_by_User_Timestamp_Hash
180
  if len(parts) >= 5 and parts[-3] == "by":
181
+ timestamp_str = parts[-2]
182
+ username = parts[-4]
183
+ world_name = " ".join(parts[:-4]) # Join potential name parts
184
+ dt_obj = None
185
+ try: # Try parsing timestamp
186
+ dt_obj = datetime.strptime(timestamp_str, '%Y%m%d_%H%M%S')
187
+ dt_obj = pytz.utc.localize(dt_obj) # Assume UTC
188
+ except (ValueError, pytz.exceptions.AmbiguousTimeError, pytz.exceptions.NonExistentTimeError):
189
+ dt_obj = None # Parsing failed
190
+ # Return result if standard format parsed okay
191
  return {"name": world_name or "Untitled", "user": username, "timestamp": timestamp_str, "dt": dt_obj, "filename": filename}
192
+
193
+ # Fallback for unknown format or if parsing above failed
194
+ # print(f"Using fallback parsing for filename: {basename}") # Debug log
195
+ dt_fallback = None # Initialize on its own line
196
+ try: # Start try block on its own line
197
+ # Indented block under try
198
+ mtime = os.path.getmtime(filename)
199
+ dt_fallback = datetime.fromtimestamp(mtime, tz=pytz.utc)
200
+ except Exception: # Except aligned with try
201
+ # Indented block under except
202
+ pass # Ignore errors getting mtime
203
+ # Return statement aligned with the function's fallback logic scope
204
  return {"name": basename.replace('.md','').replace(WORLD_STATE_FILE_MD_PREFIX, ''), "user": "Unknown", "timestamp": "Unknown", "dt": dt_fallback, "filename": filename}
205
 
206
+
207
 
208
  def save_world_state_to_md(target_filename_base):
209
  """Saves the current cached world state to a specific MD file."""