30 lines
860 B
Python
30 lines
860 B
Python
import os
|
|
import re
|
|
|
|
import json5
|
|
|
|
|
|
def replace_upload_fname(text, upload_fname_list):
|
|
for full_input_fname in upload_fname_list:
|
|
if full_input_fname not in text and os.path.basename(full_input_fname) in text:
|
|
text = text.replace(os.path.basename(full_input_fname), full_input_fname)
|
|
return text
|
|
|
|
|
|
def extract_code(text):
|
|
# Match triple backtick blocks first
|
|
triple_match = re.search(r'```[^\n]*\n(.+?)```', text, re.DOTALL)
|
|
# Match single backtick blocks second
|
|
single_match = re.search(r'`([^`]*)`', text, re.DOTALL)
|
|
if triple_match:
|
|
text = triple_match.group(1)
|
|
elif single_match:
|
|
text = single_match.group(1)
|
|
else:
|
|
try:
|
|
text = json5.loads(text)['code']
|
|
except Exception:
|
|
pass
|
|
# If no code blocks found, return original text
|
|
return text
|