Because I do not know English, the documents are now in Hebrew. With the help of God in teaching English, I'll translate that.
לתכנת מערכות מתקדמות ב'ימות-המשיח' בקלות באמצעות מודול API.
npm i yemot-router
התקשורת עם המשתמש, נעשית דרך האובייקט Call
.
מחלקת הראוטר מקבלת כפרמטר פונקציית קולבק (CallBack), שהפרמטר שלה הוא אובייקט הCall
.
עם המתודות של האובייקט הזה, ניתן להפעיל ולהפנות את המשתמש.
4.0.0
בגרסה 4.0.0 שינוי משמעותי:במקום לבדוק בכל פעם את המאפיין hangup
,
כעת בעת ניתוק, פשוט תיזרק שגיאה.
ניתן לתפוס אותה להתנהגות מותאמת אישית (ראה דוגמה בקובץ exemple.js/.
),
או להתעלם, לעצירה של הסקריפט.
./exemple.js
מתודה לשאילת שאלה את המשתמש, וקבלת התשובה מתי שתגיע, ע"י הבטחה (Promise).
הפרמטר הראשון, הוא השאלה שהמשתמש ישמע. מערך של אובייקטים, שכל אחד מהם הוא קובץ או הקראה, שתושמע למשתמש.
טקסט שיוקרא למשתמש:
let massage = [{ type: "text", data: "היי, תקיש 10" }];
let massage = [{ type: "text", data: "היי, תקיש 10" }];
let massage = [{ type: "file", data: "000" }];
let massage = [{ type: "number", data: "512" }];
let massage = [{ type: "digits", data: "077313770" }];
let massage = [{ type: "speech", data: "000" }];
let massage = [{ type: "alpha", data: "abc@gmail.com" }];
הפרמטר הזה קובע, האם לקבל תשובה, ע"י הקשה, זיהוי דיבור, או הקלטה.
האפשרויות:
tap
= הקשה
stt
= זיהוי דיבור
record
= הקלטה
בפרמטר הזה, ניתן להעביר אפשרויות נוספות, כגון סך הקשות מינימלי, מקסימלי, וכו'.
let options = {
/* שם הערך בימות
ברירת מחדל, נקבע אוטומטית,
val_1, val_2 ... */
val_name: "val_x",
/* האם לבקש את הערך שוב אם קיים. */
re_enter_if_exists: false,
/* כמות ההקשות המקסימלית */
max: "*",
/* כמות ההקשות המינימלית */
min: 1,
/* שניות להמתנה */
sec_wait: 7,
/* צורת ההשמעה למשתמש את הקשותיו */
/* באם מעוניינים במקלדת שונה ממקלדת ספרות, כגון EmailKeyboard או HebrewKeyboard, יש להכניס כאן את סוג המקלדת
[ראו exemple.js]
האופציות הקיימות:
"Number" | "Digits" | "File" | "TTS" | "Alpha" | "No" | "HebrewKeyboard" |
"EmailKeyboard" | "EnglishKeyboard" | "DigitsKeyboard" | "TeudatZehut" |
"Price" | "Time" | "Phone" | "No"
פירוט על כל אופציה ניתן למצוא בתיעוד מודול API של ימות המשיח, תחת"הערך השישי (הקשה)".
*/
play_ok_mode: "No",
/* האם לחסום הקשה על כוכבית */
block_asterisk: false,
/* האם לחסום הקשה על אפס */
block_zero: false,
/* החלפת תווים*/
replace_char: "",
/* ספרות מותרות להקשה - מערך
[1, 2, 3 ...]
*/
digits_allowed: [],
/* אחרי כמה שניות להשמיע שוב את השאלה */
amount_attempts: "",
/* אם המשתמש לא ענה, האם לשלוח ערך*/
read_none: false,
/* הערך שיישלח באין תשובה */
read_none_var: "",
/* האם לחסום שינוי שפת מקלדת */
block_change_type_lang: false,
}
מתודה להעברת השיחה לשלוחה מסוימת במערכת הנוכחית.
ניתן לכתוב נתיב יחסי לשלוחה הנוכחית או לשלוחה הראשית. פירוט על האופציות ניתן לקרוא כאן.
ניתן להעביר בפרמטר folder את הסטרינג hangup
, וכך לנתק את השיחה.
מתודה פשוטה ללא ארגומנטים להפעלה מחדש של השלוחה הנוכחית. זהה לכתיבה הבאה:
go_to_folder(`/${call.ApiExtension}`);
במתודה זו ניתן להשמיע למשתמש הודעה אחת, או מספר הודעות ברצף.
read
(קבלת נתונים נוספים), יש להעביר לארגומנט השני true
.
באם אחרי השמעת ההודעה מעוניינים שהמאזין ייצא מהשלוחה, ניתן להשאיר את הפרמטר השני ריק.
{ type: string, data: string }
ואם הtype
הוא zmanim
:
{ type: string, data: object }
ראה פירוט נוסף להלן.
הערך type
מקבל סטרינג של סוג ההשמעה.
האפשרויות הקיימות עבור type הן:
file
- השמעת קובץ מתוך המערכת או מהמאגר הגלובליdigits
- השמעת ספרות (לדוגמה 111 המערכת תשמיע "אחת אחת אחת")number
- השמעת מספר (לדוגמה 111 המערכת תשמיע "מאה ואחת עשרה")alpha
- השמעת אותיות (לדוגמה abc המערכת תשמיע "איי בי סי")text
- הקראת טקסטspeech
- הקראת טקסט מתוך קובץ במערכתzmanim
- השמעה שעה לפי משתנהgo_to_folder
- מעבר לשלוחה אחרת (לא ניתן לשרשר הודעות/פקודות נוספות לאחר פקודה זו)system_message
- השמעת הודעת מערכת (מקבל בdata
את מספר ההודעה, עם או בליM
בהתחלה.)music_on_hold
- מוזיקה בהמתנהdate
- השמעת תאריך לועזי (יש לכתוב את התאריך בפורמט dd/mm/yyyy)dateH
- השמעת תאריך עברי (יש לכתוב את התאריך הלועזי בפורמט dd/mm/yyyy)
הערך data
מקבל את תוכן ההודעה להשמעה - עבור השמעת ספרות/אותיות/טקסט, או את נתיב הקובץ/התקיה עבור file/go_to_folder (בהתאמה).
חריג הוא הטייפ zmanim:
עבור השמעת זמנים (כלומר אם הערך של type הוא zmanim
), הערך השני (data
) יהיה אובייקט, ולא סטרינג, במבנה הבא:
{
time: string, // optional, default: "T" (current time)
zone: string,
difference: string // optional, default: "IL/Jerusalem"
}
סוג הזמן שרוצים להשמיע.
ברירת מחדל: "T
" = השעה הנוכחית.
אזור הזמן שעבורו יש לחשב את הזמנים.
ברירת מחדל: IL/Jerusalem
.
ניתן לראות כאן את רשימת אזורי הזמן הקיימים במערכת.
ניתן לראות כאן את רשימת הזמנים האפשריים.
ערך זה משמש להוספה/הסרה מלאכותית של זמן על הזמן שמשמיעים. באם לא יועבר פרמטר זה, יושמע הזמן ללא שינוי.
הערך difference
מכיל קודם את סוג הפעולה - פלוס (+) להוספת זמן, או מינוס (-) להפחתת זמן, ואז את הזמן על פי הצורה הבאה: Y - שנה M - חודש D - יום H - שעה m - דקה S - שניה s - אלפית שניה למשל, עבור 20 דקות אחורה יש להגדיר m20-
, עבור 3 שעות קדימה יש לרשום H3+
. עבור יומיים אחורה יש לרשום D1-
.
לדוגמה, עבור השמעת זמן שקיעת החמה מחר בעיר בני ברק:
let massage = [
{
type: "zmanim",
data: {
time: "sunset",
zone: "IL/Bney_Brak",
difference: "+1D",
},
},
];
מתודה להעברת השיחה למערכת אחרת בימות המשיח ללא עלות יחידות, באמצעות "ראוטינג ימות".
הפונקציה מקבלת ארגומנט יחיד - סטרינג של מספר מערכת בימות להעברת השיחה. ניתן גם לנתב את השיחה ממערכת בשרת הפריווט לשרת הרגיל ולהיפך.
ניתן להשתמש במתודה זו כדי לשלוח סטרינג חופשי לחלוטין, לדוגמה עבור פונקציונליות שעדיין לא נתמכת בספרייה.
באופציה זו יש להעביר את הסטרינג בדיוק כפי שמעוניינים שהשרת של ימות יקבל אותו.