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'(.*?)' 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