القائمة الرئيسية

الصفحات

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)
انت الان في اول مقال

تعليقات