import os
import sys
from datetime import datetime
class SummaryWriter:
"""سكربت لكتابة ملخصات احترافية بأشكال متعددة"""
def __init__(self):
self.output_dir = "summaries"
os.makedirs(self.output_dir, exist_ok=True)
# ============ 1. ملخص كتاب ============
def book_summary(self, title, author, main_ideas, key_quotes,
target_audience, rating=4):
summary = f"""
📚 ملخص كتاب: {title}
{'=' * 50}
✍️ المؤلف: {author}
⭐ التقييم: {rating}/5
🎯 الجمهور المستهدف: {target_audience}
📅 تاريخ الملخص: {datetime.now().strftime('%Y-%m-%d')}
{'─' * 50}
🎯 الفكرة الرئيسية:
{'─' * 50}
{main_ideas['core']}
{'─' * 50}
📌 الأفكار المحورية:
{'─' * 50}
"""
for i, idea in enumerate(main_ideas['key_points'], 1):
summary += f"\n{i}. {idea}\n"
summary += f"""
{'─' * 50}
💡 أقوى الاقتباسات:
{'─' * 50}
"""
for quote in key_quotes:
summary += f'\n❝ {quote} ❞\n'
summary += f"""
{'─' * 50}
✅ خلاصة وتوصية:
{'─' * 50}
{main_ideas['conclusion']}
"""
return summary
# ============ 2. ملخص مقال/محتوى ============
def article_summary(self, title, source, content,
word_limit=300, style="professional"):
words = content.split()
sentences = content.replace('!', '.').replace('?', '.').split('.')
sentences = [s.strip() for s in sentences if len(s.strip()) > 30]
# اختيار الجمل الأهم (بداية ونهاية + جمل مفتاحية)
top_sentences = []
if sentences:
top_sentences.append(sentences[0])
if len(sentences) > 3:
top_sentences.append(sentences[len(sentences)//2])
if len(sentences) > 1:
top_sentences.append(sentences[-1])
summary = f"""
📄 ملخص: {title}
{'=' * 50}
🔗 المصدر: {source}
📊 عدد كلمات الأصل: {len(words)}
✂️ عدد كلمات الملخص: ~{word_limit}
🎨 الأسلوب: {style}
{'=' * 50}
📝 الملخص:
"""
for s in top_sentences:
summary += f"\n• {s.strip()}.\n"
return summary
# ============ 3. ملخص فيديو/يوتيوب ============
def video_summary(self, title, channel, duration,
timestamps, key_takeaways):
summary = f"""
🎬 ملخص فيديو: {title}
{'=' * 50}
📺 القناة: {channel}
⏱️ المدة: {duration}
{'=' * 50}
⏰ المحاور الزمنية:
{'─' * 50}
"""
for ts, desc in timestamps:
summary += f"{ts} → {desc}\n"
summary += f"""
{'─' * 50}
💡 أهم النقاط المستفادة:
{'─' * 50}
"""
for i, point in enumerate(key_takeaways, 1):
summary += f"\n{i}. {point}\n"
return summary
# ============ 4. ملخص بحث/دراسة ============
def research_summary(self, title, authors, year,
objective, methodology, findings,
conclusion):
summary = f"""
🔬 ملخص بحث علمي
{'=' * 50}
📖 العنوان: {title}
👥 الباحثون: {', '.join(authors)}
📅 السنة: {year}
{'=' * 50}
🎯 الهدف من الدراسة:
{objective}
{'─' * 50}
🔧 المنهجية:
{methodology}
{'─' * 50}
📊 النتائج الرئيسية:
"""
for i, finding in enumerate(findings, 1):
summary += f"\n{i}. {finding}\n"
summary += f"""
{'─' * 50}
🏁 الخلاصة:
{conclusion}
"""
return summary
# ============ 5. ملخص سريع (TL;DR) ============
def quick_tldr(self, content, num_points=5):
sentences = [s.strip() for s in content.split('.') if len(s.strip()) > 40]
summary = f"""
⚡ ملخص سريع (TL;DR)
{'=' * 50}
"""
for i, s in enumerate(sentences[:num_points], 1):
summary += f"\n{i}. {s}.\n"
return summary
# ============ حفظ الملخص ============
def save(self, text, filename):
path = os.path.join(self.output_dir, f"{filename}.txt")
with open(path, 'w', encoding='utf-8') as f:
f.write(text)
print(f"✅ تم حفظ الملخص في: {path}")
return path
# ============ مثال الاستخدام ============
if __name__ == "__main__":
writer = SummaryWriter()
# --- مثال 1: ملخص كتاب ---
book = writer.book_summary(
title="العادات الذرية",
author="جيمس كلير",
main_ideas={
"core": "التغييرات الصغيرة (1%) يومياً تصنع نتائج هائلة على المدى الطويل. النجاح ليس حدثاً، بل نظام.",
"key_points": [
"التغييرات الدقيقة تتراكم عبر الزمن (الاهتمام بالأنظمة لا الأهداف)",
"الهوية أهم من النتائج: ركّز على من تريد أن تصبح",
"قاعدة الـ 2 دقيقة: ابدأ صغيراً جداً لتتغلب على التسويف",
"تصميم البيئة أقوى من الإرادة",
"اربط العادة الجديدة بعادة قديمة (Habit Stacking)"
],
"conclusion": "لا تحاول تغيير كل شيء دفعة واحدة. ابدأ بعادة واحدة صغيرة، اجعلها سهلة وممتعة، وسترى النتائج تتراكم بشكل مذهل خلال شهور."
},
key_quotes=[
"أنت لا ترتقي لمستوى أهدافك، بل تهبط لمستوى أنظمتك",
"كل إجراء تتخذه هو تصويت لنوع الشخص الذي تريد أن تصبح",
"لا تؤجل البدء، بل اجعل البدء سهلاً"
],
target_audience="كل من يريد تحسين حياته أو التخلص من عادات سلبية",
rating=5
)
writer.save(book, "atomic_habits_summary")
print(book)
تعليقات
إرسال تعليق