# -*- coding: utf-8 -*-
“””
Autoflow AI Tools – Professional SEO & Growth Engine (v2.0)
Optimized for: autoflowaitools.com
———————————————————-
تنبيه: هذا السكربت يتم تشغيله على جهازك الشخصي (أو Server / Google Colab)
وليس داخل محرر ووردبريس.
“””
import os
import re
import json
import logging
import requests
from datetime import datetime
from typing import Dict, List, Tuple, Optional, Any, Set
from dataclasses import dataclass, field
from enum import Enum
from collections import defaultdict
# ==========================================
# 1. إعدادات التسجيل (Logging System)
# ==========================================
logging.basicConfig(
level=logging.INFO,
format=’%(asctime)s – %(levelname)s – %(message)s’,
handlers=[
logging.FileHandler(‘autoflow_seo.log’, encoding=’utf-8′),
logging.StreamHandler()
]
)
logger = logging.getLogger(__name__)
# ==========================================
# 2. التعريفات وهياكل البيانات (Enums & Classes)
# ==========================================
class PageType(Enum):
MONEY = “money”
COMPARISON = “comparison”
INFORMATIONAL = “informational”
class SearchIntent(Enum):
TRANSACTIONAL = “Transactional”
COMMERCIAL = “Commercial Investigation”
INFORMATIONAL = “Informational”
NAVIGATIONAL = “Navigational”
@dataclass
class PageNode:
url: str
page_type: PageType
intent: SearchIntent
title: str
keyword: str
keywords_ar: List[str] = field(default_factory=list)
outlinks: List[str] = field(default_factory=list)
backlinks: List[str] = field(default_factory=list)
content_score: float = 0.0
last_modified: str = field(default_factory=lambda: datetime.now().isoformat())
@dataclass
class Persona:
name: str
name_ar: str
pain_points: List[str]
pain_points_ar: List[str]
solutions: List[str]
solutions_ar: List[str]
keywords: List[str]
keywords_ar: List[str]
urgency_score: float = 0.0
conversion_rate: float = 0.0
@dataclass
class CompetitorAnalysis:
domain: str
strengths: List[str]
weaknesses: List[str]
opportunity_gap: str
market_share: float = 0.0
seo_score: float = 0.0
# ==========================================
# 3. المحرك الرئيسي (Autoflow SEO Engine)
# ==========================================
class AutoflowSEOEngine:
def __init__(self, domain: str = “autoflowaitools.com”, wp_username: str = “”, wp_app_password: str = “”, debug: bool = False):
self.domain = domain.strip().lower()
self.debug = debug
self.wp_username = wp_username
self.wp_app_password = wp_app_password
self.wp_api_url = f”https://{self.domain}/wp-json/wp/v2″
self.personas: Dict[str, Persona] = {}
self.pages: Dict[str, PageNode] = {}
self.competitors: Dict[str, CompetitorAnalysis] = {}
self.schema_cache: Dict[str, str] = {}
logger.info(f”SEO Engine Initialized for: {self.domain}”)
def add_persona(self, persona: Persona):
“””إضافة شخصية مستهدفة (Buyer Persona)”””
self.personas[persona.name] = persona
logger.info(f”Persona added: {persona.name} ({persona.name_ar})”)
def add_page(self, page: PageNode):
“””إضافة صفحة إلى هيكل الموقع والمحتوى”””
self.pages[page.url] = page
logger.info(f”Page indexed: {page.title} [{page.url}]”)
def generate_json_ld_schema(self, page_url: str) -> str:
“””توليد كود Schema JSON-LD لتوافقيات Google SEO”””
page = self.pages.get(page_url)
if not page:
return “{}”
schema = {
“@context”: “https://schema.org”,
“@type”: “Article” if page.page_type == PageType.INFORMATIONAL else “WebPage”,
“headline”: page.title,
“url”: f”https://{self.domain}{page.url}”,
“keywords”: “, “.join([page.keyword] + page.keywords_ar),
“publisher”: {
“@type”: “Organization”,
“name”: “Autoflow AI Tools”,
“url”: f”https://{self.domain}”
}
}
return json.dumps(schema, ensure_ascii=False, indent=2)
def publish_post_to_wordpress(self, title: str, content: str, excerpt: str = “”, status: str = “publish”) -> Optional[dict]:
“””
إرسال ونشر مقال مباشر إلى موقع ووردبريس عبر WordPress REST API
“””
if not self.wp_username or not self.wp_app_password:
logger.error(“لم يتم إدخال بيانات اعتماد WordPress (WP Username / Application Password).”)
return None
endpoint = f”{self.wp_api_url}/posts”
payload = {
“title”: title,
“content”: content,
“excerpt”: excerpt,
“status”: status # ‘publish’ للنشر المباشر أو ‘draft’ للمسودة
}
try:
response = requests.post(
endpoint,
json=payload,
auth=(self.wp_username, self.wp_app_password),
headers={“Content-Type”: “application/json”}
)
if response.status_code in [200, 201]:
res_data = response.json()
logger.info(f”تم النشر بنجاح على ووردبريس! رابط المقال: {res_data.get(‘link’)}”)
return res_data
else:
logger.error(f”فشل النشر. رمز الاستجابة: {response.status_code} – التفاصيل: {response.text}”)
return None
except Exception as e:
logger.error(f”خطأ أثناء الاتصال بموقع ووردبريس: {str(e)}”)
return None
# ==========================================
# 4. تشغيل مثال عملي (Execution Example)
# ==========================================
if __name__ == “__main__”:
print(“=== بدء تشغيل محرك Autoflow SEO Engine ===”)
# 1. إعداد بيانات الاتصال بموقعك
WP_USER = “Hicham Mansour”
WP_APP_PASS = “XXXX XXXX XXXX XXXX” # احصل عليها من لوحة تحكم ووردبريس
# 2. إنشاء كائن المحرك
engine = AutoflowSEOEngine(
domain=”autoflowaitools.com”,
wp_username=WP_USER,
wp_app_password=WP_APP_PASS
)
# 3. إدخال بيانات العميل المستهدف (Persona)
biz_owner = Persona(
name=”Small Business Owner”,
name_ar=”صاحب مشروع صغير”,
pain_points=[“Manual repetitive tasks”, “High operating costs”],
pain_points_ar=[“المهام اليدوية المكررة”, “ارتفاع التكاليف التشغيلية”],
solutions=[“AI Workflows”, “Automated CRM”],
solutions_ar=[“مسارات عمل الذكاء الاصطناعي”, “أتمتة إدارة العملاء”],
keywords=[“AI tools for small business”, “business automation”],
keywords_ar=[“أدوات الذكاء الاصطناعي للأعمال”, “أتمتة الشركات الصغيرة”]
)
engine.add_persona(biz_owner)
# 4. إضافة صفحة المقال الحالي
current_page = PageNode(
url=”/top-ai-automation-tools-reviewed-for-small-businesses”,
page_type=PageType.INFORMATIONAL,
intent=SearchIntent.INFORMATIONAL,
title=”Top AI Automation Tools Reviewed for Small Businesses”,
keyword=”AI Automation Tools”,
keywords_ar=[“أدوات أتمتة الذكاء الاصطناعي”, “أتمتة الأعمال”]
)
engine.add_page(current_page)
# 5. توليد كود الـ Schema (JSON-LD)
schema_code = engine.generate_json_ld_schema(current_page.url)
print(“\n[+] كود JSON-LD Schema المنشأ بنجاح:”)
print(schema_code)