مختبر المحادثة — تدرّبي على الحوار بالإنجليزي 🎧
اضغطي على المحادثة التي طلبتها المعلمة.
اضغطي الميكروفون ثم تكلمي بالإنجليزي
اكتبي كل سطر هكذا: A: Hello! ثم B: Hi, how are you? — أو استخدمي أسماء الشخصيات مباشرة.
لقبول أكثر من إجابة صحيحة للجملة الواحدة، افصلي بينها بعلامة | مثال:
B: I am fine, thanks. | I am good. | Very well, thank you.
سيصبح رابط هذه المحادثة: talk-8my.pages.dev/?unit1
إذا واجهت الطالبات مشكلة في الميكروفون، عطّليه من هنا.
الصقي هنا رابط Web App من Google Apps Script، وستُرسل كل نتيجة إلى الجدول تلقائياً.
function sheet_(name, head){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sh = ss.getSheetByName(name) || ss.insertSheet(name);
if (sh.getLastRow() === 0) sh.appendRow(head);
return sh;
}
function folder_(parent, name){
var it = parent ? parent.getFoldersByName(name) : DriveApp.getFoldersByName(name);
return it.hasNext() ? it.next() : (parent ? parent.createFolder(name) : DriveApp.createFolder(name));
}
function doGet(e){
var out = [];
var sh = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Dialogues");
if (sh) {
var v = sh.getDataRange().getValues();
for (var i = 1; i < v.length; i++) {
if (v[i][1]) { try { out.push(JSON.parse(v[i][1])); } catch (err) {} }
}
}
return ContentService.createTextOutput(JSON.stringify(out))
.setMimeType(ContentService.MimeType.JSON);
}
function doPost(e){
var d = JSON.parse(e.postData.contents);
if (d.type === "dialogue") {
var sd = sheet_("Dialogues", ["Code","JSON","Title"]);
var v = sd.getDataRange().getValues(), row = 0;
for (var i = 1; i < v.length; i++) if (v[i][0] === d.code) row = i + 1;
var data = [d.code, JSON.stringify(d.dialogue), d.dialogue.title];
if (row) sd.getRange(row, 1, 1, 3).setValues([data]); else sd.appendRow(data);
return ContentService.createTextOutput("ok");
}
if (d.type === "deleteDialogue") {
var sx = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Dialogues");
if (sx) {
var w = sx.getDataRange().getValues();
for (var j = w.length - 1; j >= 1; j--) if (w[j][0] === d.code) sx.deleteRow(j + 1);
}
return ContentService.createTextOutput("ok");
}
if (d.type === "audio") {
var root = folder_(null, "Talk Lab Recordings");
var stu = folder_(root, d.cls + " - " + d.first + " " + d.family);
var name = d.title + " " + d.line + " " + d.score + "%.webm";
var file = stu.createFile(
Utilities.newBlob(Utilities.base64Decode(d.data), d.mime || "audio/webm", name));
var sa = sheet_("Recordings", ["Date","Session","First name","Family name","Class",
"Dialogue","Line","Score","Sentence","Link"]);
sa.appendRow([new Date(), d.session, d.first, d.family, d.cls,
d.title, d.line, d.score, d.sentence, file.getUrl()]);
return ContentService.createTextOutput("ok");
}
var sr = sheet_("Results", ["Date","First name","Family name","Class","Dialogue","Code",
"Round 1 %","Round 2 %","Total %","Details"]);
sr.appendRow([new Date(), d.first, d.family, d.cls, d.title, d.code,
d.r1, d.r2, d.total, d.details]);
return ContentService.createTextOutput("ok");
}
الخطوات: افتحي جدول قوقل ← Extensions ← Apps Script ← الصقي الكود ← Deploy ← New deployment ← Web app ← Execute as: Me ، Who has access: Anyone ← انسخي الرابط والصقيه فوق.