feat: Optimize AI Video prompt generator to output ultra-concise, structured NotebookLM & video briefs
This commit is contained in:
@@ -600,25 +600,47 @@ class CurriculumStudio
|
|||||||
|
|
||||||
function copyAiVideoPrompt() {
|
function copyAiVideoPrompt() {
|
||||||
const md = document.getElementById('lesson_markdown_editor').value;
|
const md = document.getElementById('lesson_markdown_editor').value;
|
||||||
const title = document.getElementById('current_lesson_title_display').textContent;
|
const title = document.getElementById('current_lesson_title_display').textContent || 'الدرس';
|
||||||
if (!md || md.trim() === '') {
|
if (!md || md.trim() === '') {
|
||||||
alert('يرجى اختيار درس أولاً.');
|
alert('يرجى اختيار درس أولاً.');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const prompt = `أنت معلم خبير في المنهاج الأردني. بناءً على محتوى الدرس التالي:
|
|
||||||
عنوان الدرس: ${title}
|
|
||||||
|
|
||||||
المحتوى التعليمي والتطبيقات:
|
// Extract concise essentials from markdown
|
||||||
${md}
|
const lines = md.split('\n');
|
||||||
|
const ideas = [];
|
||||||
|
const examples = [];
|
||||||
|
let ideaCount = 0;
|
||||||
|
|
||||||
المطلوب:
|
for (const line of lines) {
|
||||||
1. توليد سيناريو شرح فيديو تفاعلي شيق وممتع للدرس (مدته 3-5 دقائق).
|
const tr = line.trim();
|
||||||
2. شرح فكرة الدرس والمفاهيم الأساسية، والخطوات الجبرية للأمثلة بالتفصيل.
|
if ((tr.startsWith('- **فكرة الدرس') || tr.startsWith('### البند') || tr.startsWith('## ') || tr.startsWith('### 1.')) && ideaCount < 4) {
|
||||||
3. التنبيه على الأخطاء الشائعة وحل مسألة اليوم أو مهارات التفكير العليا.`;
|
ideas.push(tr.replace(/^#+\s*/, '').replace(/^\-\s*/, ''));
|
||||||
|
ideaCount++;
|
||||||
|
} else if (tr.includes('$$') && examples.length < 2) {
|
||||||
|
examples.push(tr);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const prompt = `أنت معلم خبير في المنهاج الأردني. صمّم سيناريو شرح فيديو تفاعلي ممتع ومختصر (3-4 دقائق) لمنصة NotebookLM / الفيديو الذكي.
|
||||||
|
|
||||||
|
📌 عنوان الدرس: ${title}
|
||||||
|
|
||||||
|
🎯 الأفكار والمحاور الرئيسة:
|
||||||
|
${ideas.length > 0 ? ideas.map(i => '- ' + i).join('\n') : '- المفاهيم الأساسية وطرق الحل النموذجية للدرس.'}
|
||||||
|
|
||||||
|
📐 أمثلة ونماذج تطبيقية:
|
||||||
|
${examples.length > 0 ? examples.join('\n') : '> تطبيق القوانين وخطوات الحل الرياضية خطوة بخطوة.'}
|
||||||
|
|
||||||
|
🎬 الهيكل الزمني المطلوب للشرح (3-4 دقائق):
|
||||||
|
1. [0:00 - 0:30] المدخل التفاعلي: ربط فكرة الدرس بالحياة اليومية ولماذا لا تكفي الطرق السابقة.
|
||||||
|
2. [0:30 - 2:15] الشرح الجوهري: تبسيط طرق الحل والقوانين بخطوات واضحة ومباشرة.
|
||||||
|
3. [2:15 - 3:15] الفخ الشائع (Common Mistake): التنبيه على خطأ يقع فيه معظم الطلاب وكيفية تجنبه.
|
||||||
|
4. [3:15 - 3:45] مسألة التحدي والختام: سؤال ذكي لاختبار الفهم مع نصيحة للتفوق.`;
|
||||||
|
|
||||||
if (navigator.clipboard && window.isSecureContext) {
|
if (navigator.clipboard && window.isSecureContext) {
|
||||||
navigator.clipboard.writeText(prompt).then(() => {
|
navigator.clipboard.writeText(prompt).then(() => {
|
||||||
alert('🎬 تم نسخ برومبت توليد الفيديو بنجاح! يمكنك الآن لصقه في NotebookLM أو منصة توليد الفيديو الذكية.');
|
alert('🎬 تم نسخ برومبت الفيديو المختصر والمُحكَم لـ NotebookLM بنجاح!');
|
||||||
}).catch(err => {
|
}).catch(err => {
|
||||||
copyViaTextarea(prompt);
|
copyViaTextarea(prompt);
|
||||||
});
|
});
|
||||||
@@ -634,7 +656,7 @@ ${md}
|
|||||||
t.select();
|
t.select();
|
||||||
document.execCommand('copy');
|
document.execCommand('copy');
|
||||||
document.body.removeChild(t);
|
document.body.removeChild(t);
|
||||||
alert('🎬 تم نسخ برومبت توليد الفيديو بنجاح!');
|
alert('🎬 تم نسخ برومبت الفيديو المختصر والمُحكَم لـ NotebookLM بنجاح!');
|
||||||
}
|
}
|
||||||
|
|
||||||
// Real PDF Upload
|
// Real PDF Upload
|
||||||
|
|||||||
Reference in New Issue
Block a user