test_flask_space / admin_messages.py
Dooratre's picture
Update admin_messages.py
157f160 verified
import re
import json
from msg import fetch_json_from_github, update_user_json_file, fetch_authenticity_token_and_commit_oid
def extract_admin_message(ai_response):
"""
Extract admin message from AI response and return both the admin message
and the cleaned response (without admin tags).
"""
admin_pattern = r'<order>(.*?)</order>'
admin_messages = re.findall(admin_pattern, ai_response, re.DOTALL)
# Clean the response by removing admin tags and their content
cleaned_response = re.sub(admin_pattern, '', ai_response)
if admin_messages:
return admin_messages[0].strip(), cleaned_response.strip()
else:
return None, ai_response
def save_admin_message(page_id, message, sender_id, full_name):
"""
Save admin message to the GitHub JSON file with date and time.
"""
try:
# Import datetime module for timestamp
from datetime import datetime
# Get current date and time in ISO format
timestamp = datetime.now().isoformat()
# Fetch current JSON data
github_response = fetch_json_from_github()
if not github_response["success"]:
print(f"Error fetching JSON data: {github_response['message']}")
return False
# Get the current data
data = github_response["data"]
# Initialize the page_id entry if it doesn't exist
if page_id not in data:
data[page_id] = []
# Add the new message with sender_id, full_name, and timestamp
new_message = {
"message": message,
"sender_id": sender_id,
"full_name": full_name if full_name else "Unknown User",
"timestamp": timestamp
}
data[page_id].append(new_message)
# Convert the updated data to JSON string WITHOUT indentation or line breaks
# Use ensure_ascii=False to properly handle Arabic and other non-ASCII characters
new_content = json.dumps(data, separators=(',', ':'), ensure_ascii=False)
# Get authentication tokens for GitHub
authenticity_token, commit_oid = fetch_authenticity_token_and_commit_oid()
if not authenticity_token or not commit_oid:
print("Failed to get GitHub authentication tokens")
return False
# Update the file on GitHub
update_result = update_user_json_file(authenticity_token, commit_oid, new_content)
if update_result["success"]:
print(f"Admin message saved successfully with timestamp: {timestamp}")
return True
else:
print(f"Error saving admin message: {update_result['message']}")
return False
except Exception as e:
print(f"Error saving admin message: {str(e)}")
return False