npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

yemot-router

v4.4.0

Published

Because I do not know English, the documents are now in Hebrew. With the help of God in teaching English, I'll translate that.

Downloads

41

Readme

yemot-router

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.

התקנה (NodeJS)

npm i yemot-router

שימוש

התקשורת עם המשתמש, נעשית דרך האובייקט Call. מחלקת הראוטר מקבלת כפרמטר פונקציית קולבק (CallBack), שהפרמטר שלה הוא אובייקט הCall. עם המתודות של האובייקט הזה, ניתן להפעיל ולהפנות את המשתמש.

Change log

במקום לבדוק בכל פעם את המאפיין hangup,

כעת בעת ניתוק, פשוט תיזרק שגיאה.

ניתן לתפוס אותה להתנהגות מותאמת אישית (ראה דוגמה בקובץ exemple.js/.),

או להתעלם, לעצירה של הסקריפט.

דוגמא בסיסית

./exemple.js

מתודות אובייקט הCall

read(massage : [], mode : string, options : {}) : Promise

מתודה לשאילת שאלה את המשתמש, וקבלת התשובה מתי שתגיע, ע"י הבטחה (Promise).

הפרמטר massage

הפרמטר הראשון, הוא השאלה שהמשתמש ישמע. מערך של אובייקטים, שכל אחד מהם הוא קובץ או הקראה, שתושמע למשתמש.

טקסט שיוקרא למשתמש:

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: "[email protected]" }];

הפרמטר mode

הפרמטר הזה קובע, האם לקבל תשובה, ע"י הקשה, זיהוי דיבור, או הקלטה.

האפשרויות:

tap = הקשה

stt = זיהוי דיבור

record = הקלטה

הפרמטר options

בפרמטר הזה, ניתן להעביר אפשרויות נוספות, כגון סך הקשות מינימלי, מקסימלי, וכו'.

ערכי ברירת מחדל - הקשה
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,
}
ערכי ברירת מחדל - זיהוי דיבור:
let options = {
  lang: "",

  allow_typing: false,
};
ערכי ברירת מחדל - הקלטה
let options = {
  path: "",

  file_name: "",

  record_ok: true,

  record_hangup: false,

  record_attach: false,

  lenght_min: "",

  lenght_max: "",
};

go_to_folder(folder: string): void

מתודה להעברת השיחה לשלוחה מסוימת במערכת הנוכחית. ניתן לכתוב נתיב יחסי לשלוחה הנוכחית או לשלוחה הראשית. פירוט על האופציות ניתן לקרוא כאן. ניתן להעביר בפרמטר folder את הסטרינג hangup, וכך לנתק את השיחה.

restart_ext()

מתודה פשוטה ללא ארגומנטים להפעלה מחדש של השלוחה הנוכחית. זהה לכתיבה הבאה:

go_to_folder(`/${call.ApiExtension}`);

id_list_message(massages: array, wait_to_more_action: Boolean)

במתודה זו ניתן להשמיע למשתמש הודעה אחת, או מספר הודעות ברצף.



{ type: string, data: string }

ואם הtype הוא zmanim:

{  type: string, data: object }

ראה פירוט נוסף להלן.

הפרמטר type

הערך 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

הערך data מקבל את תוכן ההודעה להשמעה - עבור השמעת ספרות/אותיות/טקסט, או את נתיב הקובץ/התקיה עבור file/go_to_folder (בהתאמה).

חריג הוא הטייפ zmanim:

עבור השמעת זמנים (כלומר אם הערך של type הוא zmanim), הערך השני (data) יהיה אובייקט, ולא סטרינג, במבנה הבא:

{
 time: string, // optional, default: "T" (current time)
 zone: string,
 difference: string // optional, default: "IL/Jerusalem"
}

הערך time:

סוג הזמן שרוצים להשמיע.

ברירת מחדל: "T" = השעה הנוכחית.

הערך zone:

אזור הזמן שעבורו יש לחשב את הזמנים.

ברירת מחדל: IL/Jerusalem.

ניתן לראות כאן את רשימת אזורי הזמן הקיימים במערכת.

ניתן לראות כאן את רשימת הזמנים האפשריים.

הערך difference:

ערך זה משמש להוספה/הסרה מלאכותית של זמן על הזמן שמשמיעים. באם לא יועבר פרמטר זה, יושמע הזמן ללא שינוי.

הערך 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",
    },
  },
];

routing_yemot(phone: string)

מתודה להעברת השיחה למערכת אחרת בימות המשיח ללא עלות יחידות, באמצעות "ראוטינג ימות".

הפונקציה מקבלת ארגומנט יחיד - סטרינג של מספר מערכת בימות להעברת השיחה. ניתן גם לנתב את השיחה ממערכת בשרת הפריווט לשרת הרגיל ולהיפך.

send(data: string)

ניתן להשתמש במתודה זו כדי לשלוח סטרינג חופשי לחלוטין, לדוגמה עבור פונקציונליות שעדיין לא נתמכת בספרייה.

באופציה זו יש להעביר את הסטרינג בדיוק כפי שמעוניינים שהשרת של ימות יקבל אותו.