SurfGO-engine / init_db.py
AnesKAM's picture
Update init_db.py
8dcc379 verified
import sys
import os
# إضافة المجلد الحالي إلى المسار
sys.path.append(os.path.dirname(os.path.abspath(__file__)))
try:
from crawler import fetch_news_from_aljazeera
from indexer import create_database, save_news_to_db, save_sample_images
except ImportError as e:
print(f"⚠️ خطأ في الاستيراد: {e}")
# تعريف دوال بديلة في حالة الخطأ
def fetch_news_from_aljazeera():
return []
def create_database():
import sqlite3
conn = sqlite3.connect('news_database.db')
cursor = conn.cursor()
cursor.execute('''CREATE TABLE IF NOT EXISTS news (id TEXT PRIMARY KEY, title TEXT, link TEXT, summary TEXT, source TEXT, date TEXT, search_terms TEXT)''')
conn.commit()
conn.close()
def save_news_to_db(news_list):
pass
def save_sample_images():
pass
def initialize():
print("🔄 جاري تهيئة قاعدة البيانات...")
create_database()
print("🔄 جلب آخر الأخبار...")
news_list = fetch_news_from_aljazeera()
if news_list:
saved = save_news_to_db(news_list)
print(f"✅ تم حفظ {saved} خبر")
else:
print("⚠️ لم يتم جلب أخبار، سيتم استخدام بيانات تجريبية")
# إضافة خبر تجريبي يدويًا
import sqlite3
import hashlib
from datetime import datetime
conn = sqlite3.connect('news_database.db')
cursor = conn.cursor()
sample = {
'title': 'محرك بحث جديد - مرحباً بك!',
'link': 'https://huggingface.co/spaces',
'summary': 'هذا محرك بحث تجريبي للأخبار والصور والفيديوهات',
'source': 'Hugging Face',
'date': datetime.now().strftime('%Y-%m-%d %H:%M:%S')
}
news_id = hashlib.md5(sample['link'].encode()).hexdigest()
search_terms = ' '.join([sample['title'], sample['summary'], sample['source']]).lower()
cursor.execute('''
INSERT OR REPLACE INTO news
(id, title, link, summary, source, date, search_terms)
VALUES (?, ?, ?, ?, ?, ?, ?)
''', (news_id, sample['title'], sample['link'], sample['summary'],
sample['source'], sample['date'], search_terms))
conn.commit()
conn.close()
print("✅ تم إضافة خبر تجريبي")
print("🔄 إضافة صور تجريبية...")
save_sample_images()
print("✅ اكتمل التهيئة بنجاح!")
if __name__ == '__main__':
initialize()