@צדוק-לב תנסה אולי להיעזר בזה
https://notebooklm.google.com/notebook/9da51b96-005e-43c3-89db-bb3f1c9335ac
הודעות שפורסמו על ידי עידו
-
הוספת, התאמת והשמעת נתוני רישום דרך גוגל סקריפט - קבלת נתונים בשילוב הודעות אישיות
ראיתי שהמון אנשים מחפשים לשמור ולהשמיע נתונים דרך גוגל סקריפט וגוגל שיטס, אכתוב כאן את הדרך הנכונה בעיני.
הדרך היא ע"י שלוחת קבלת נתונים ושלוחת השמעה אישית (id_message).
הנה דוגמא למערכת תיווך דירות לחגים, המערכת שומרת פרטי דירה להשכרה, מחפשת דירה להתאמה + הוספת קובץ הודעה אישית ומוחקת מודעות.
שלוחת קבלת נתונים מאפשרת לנו לשנות את הזרימה על פי הקשת המאזין, שזה כלי מאוד טוב בשביל הנושא שלנו, נשתמש בו כך:
קודם כל יוצרים תרשים זרימה של השאלות והניתובים לפי ההקשות, הנה דוגמא חדש.drawio (1).html האתר הזה מאוד נוח למטרה זו.
לפי תרשים הזרימה נבנה את השאלות ונוסיף להם את הפרמטר checkGoTo.
בקובץ RecordingAndEnteringDataCheckGoTo נפרט לפי התיעוד את תהליך הזרימה לפי ההקשות, כמו כאן - RecordingAndEnteringDataCheckGoTo.ini .
נבנה שיטס מתאים, זה לדוגמא, ונצרף אליו 3 סקריפטים:- סקריפט שישים את מה שהמאזין מקיש במקום הנכון (שימו לב, החלק הזה גם הוא קצת מתוחכם, אבל לא אוכל להעלות אותו לכאן... אל דאגה קצת חשיבה זה כל מה שצריך בשביל החלק הזה).
- סקריפט שיבדוק את התאים לפי הנתונים שהוקשו, אם ימצא התאמה יכין מזה קובץ TTS ששמו כמספר הטלפון של המפרסם ויעלה אותו לשלוחת הודעות אישיות.
- סקריפט שמוחק את הפרטים לפי מספר טלפון.
שלוחה 1 תהיה שלוחת רישום, שלוחת קבלת נתונים שנשים בה את הקישור לפריסה של הסקריפט לרישום בתור קישור אליו ישלחו נתוני ההרשמה.
שלוחה 2 תהיה שלוחת מציאת התאמה, שלוחת קבלת נתונים שנשים בה את הקישור לפריסה של הסקריפט למציאת התאמה בתור קישור אליו ישלחו נתוני ההרשמה, מהשלוחה הזאת צריך להגדיר מעבר לשלוחת השמעת נתונים.
שלוחה 3 תהיה שלוחת מחיקה, שלוחת קבלת נתונים שנשים בה את הקישור לפריסה של הסקריפט לרישום בתור קישור אליו ישלח פרטי המתקשר והאם אישר למחוק.בשביל קוים שצריך בהם אפשרות לעדכון הפרטים כגון רישום או מכירה שרוצים לתת למאזין את האפשרות לבטל מוצרים ו/או להוסיף מוצרים נעשה את שלוחת מציאת התאמה הפוך - שלוחת הרישום תיצור קובץ TTS עם ההזמנה או פרטי הרישום בשלוחה המתאימה, ובאותה השלוחה נגדיר שמי שיש לו קובץ להשמעה יעבור לשלוחת עדכון (במקרים מסוימים זה יכול להיות פשוט שוב שלוחת רישום ובמקרים מסוימים יצטרך סקריפט מיוחד לכך) , מי שאין לו קובץ השמעה, ישמע הודעה מתאימה ויעבור לשלוחת רישום.
יש כאן בקו 083130311 שלוחה 6 דוגמא של המערכת הנ"ל בלי השלוחה של השמעות אישיות את מה שהייתם שומעים אם זה היה גירסה מלאה תוכלו לראות בעמוד השני של השיטס הנ"ל. השורות מתאפסות כל כמה דקות כדי שתוכלו לנסות את זה בעצמכם בלי חשש שהמספר שלכם ישאר שם יותר מידי זמן. הוספתי בו נתונים אקראיים לתועלת הציבור.
בקו אמיתי צריך כמובן להשקיע בהקלטות או ניקוד הטקסט להשמעה, ואולי חלוקה אחרת לערים ורחובות (אני לא רואה ענין ברחוב, הרי לא בהכרח מחפשים רחוב, מחפשים בעיקר שכונה), השמעה הערך שהוקש ולא רק המספר (לדוגמא ירושלים ולא 1) אבל בתור דוגמא זה בסדר.
אני לא נכנס לנושא חסימת שרתי גוגל, דברו על זה מספיק.
מקוה שהובנתי (בכל זאת 12 בלילה) ועזרתי.
-
RE: yemot-router2
@שמואל-ש כתב בyemot-router2:
@צדיק-תמים אני משתמש עם pm2 לניהול התהליכים ושם אני מפעיל אותו עם nodemon למעקב אחרי התהליכים
זה קובץ תצורה שאני משתמש בוmodule.exports = { apps: [ { name: "project-3000", script: "nodemon", args: "--watch /***/ --ext js --ignore node_modules ./index.js", env: { NODE_OPTIONS: "--no-deprecation" }, watch: false, log_date_format: "YYYY-MM-DD HH:mm:ss", error_file: "./logs/errors.log", out_file: "./logs/out.log", // log_file: "./logs.log", time: true, } ] };
- חילוק דוחות לכל יום
ואני גם מציין שם על איזה פורט זה רץ כדי שלא אצטרך לחפש מי רץ על כל פורט אלא רק להריץpm2 list
...
אם הPM2 יודע לבדוק שינויים לבד, למה להשתמש בnodemon?
- חילוק דוחות לכל יום
-
RE: yemot-router2
@צדיק-תמים מה זה הdocker compose שאמרת? ולמה קאדי רץ בתוכו אם הוא שרת?
-
RE: yemot-router2
@צדיק-תמים אהה, כמו שאני מבין הוא במקום הopenlitespeed ואפילו במקום האפצ' ונג'ניקס.
איך אתה מנהל כל מה שצריך? שרת אפצ'/נג'ניקס (לא משנה באמת) + קאדי?
-
RE: yemot-router2
@צדיק-תמים תודה.
אם הבנתי אתה מתכוין שכדאי להריץ ככה
node index.js& ?אני מתכוין שבסייבר פאנל (שמריץ שרת OpenLiteSpeed) הוא מתקין את כל מה שקשור למאגר מידע (כולל פתיחת יוזרים, שינוי סיסמאות וכו'), לשרת מייל (שעוד לא הצלחתי להפעיל, האמת), לftp כולל כל ניהול החשבונות בלחיצת כפתור, יוצר אתרים בצורה אוטומטית עם חלוקה ביניהם, הפרדה בין יוזרים ועוד, בקיצור מנהל את כל השרת ואם יש משהו שאני צריך לעשות זה בד"כ GUI נוח.
בcaddy זה לא מורכב כל זה? (שואל, אף פעם לא ניסיתי).
-
RE: yemot-router2
@צדיק-תמים כתב בyemot-router2:
אני ממליץ בחום לעבור ל caddy server, תחביר הרבה יותר קל ופשוט
הוא נשמע טוב, אבל זה לא הרבה התעסקות בשביל פתיחת משתמשים/מאגר מידע/אבטחה?
-
RE: yemot-router2
@צדיק-תמים כתב בyemot-router2:
טיפ נוסף: אם מוסיפים בסוף הפקודה & היא ממשיכה לרוץ גם כשתתנתק מהשרת
הסקריפט ימשיך לרוץ או רק הפקודה שהתחילה?
-
RE: yemot-router2
@צדיק-תמים יש לי שרת שמנוהל על ידי סייבר פאנל, תכלס את כל השינויים אני עושה עם filezila ובשביל להתחבר אני משתמש בputty מנתב לתיקיה ופשוט עושה node index.js.
מחקתי הכל והתחלתי מחדש בפעם השלישית(!) ואז ב"ה עבד.אבל מקוה שגם ימשיך לעבוד אחרי שאתקין PM וnodemon
אני הרי לא מתכוין להשאיר את הputty פתוח כל הזמן... -
RE: פרטים על ריסיילר
@12345 בגדול לא דורשים כלום וגם לא נותנים כלום.
יש לך 50 קוים חינם, כמה אחוזים של הנחה על קוי זהב וכו' שגם ככה אין להם היום.
אפשרות לג'ינגל עסקי במקום זה של ימות המשיח ושהפרטים שלך יהיו באתר ההגדרות (call2all).
אתה מקבל סיסמה לכל קו וסיסמת מאסטר.
חוץ מזה הכל כרגיל.אתה לא חייב שום דקות ושום דבר.
תחפש טוב לדעתי @ivrפון כתב על זה באחד המקומות.
-
RE: yemot-router2
@שמואל-ש עכשיו הוא מתעקש
על זהnode:internal/process/esm_loader:40 internalBinding('errors').triggerUncaughtException( ^ Error [ERR_MODULE_NOT_FOUND]: Cannot find package '/home/node.stamandsefer.co.il/public_html/node_modules/yemot-router2/' imported from /home/node.stamandsefer.co.il/public_html/index.js Did you mean to import yemot-router2/index.cjs? at new NodeError (node:internal/errors:405:5) at legacyMainResolve (node:internal/modules/esm/resolve:218:9) at packageResolve (node:internal/modules/esm/resolve:903:14) at moduleResolve (node:internal/modules/esm/resolve:973:20) at defaultResolve (node:internal/modules/esm/resolve:1206:11) at ModuleLoader.defaultResolve (node:internal/modules/esm/loader:404:12) at ModuleLoader.resolve (node:internal/modules/esm/loader:373:25) at ModuleLoader.getModuleJob (node:internal/modules/esm/loader:250:38) at ModuleWrap.<anonymous> (node:internal/modules/esm/module_job:76:39) at link (node:internal/modules/esm/module_job:75:36) { code: 'ERR_MODULE_NOT_FOUND' } Node.js v18.20.8
-
RE: yemot-router2
אם אני מריץ את זה לוקאלית זה עובד, אבל על השרת לא.
גם לוקאלית א"א להריץ עם פרמטרים
http://localhost:3000/?callId=1111&phone=0534123456
מציג
{"message":"the request is not valid yemot request"} -
RE: yemot-router2
@שמואל-ש כתב בyemot-router2:
@עידו אני מאוד ממליץ לך לדבר על זה עם GPT
לי הוא מאוד מאוד הרבה עזר בנושא הזה
פשוט שאל אותו שיסביר לך על כל הנושא הזה איך זה עובדתודה.
שאלתי אותו, אני כבר יומיים מתחרפן איתו, לא כ"כ הועיל לי... -
RE: yemot-router2
אולי @MGM-IVR לפני שאני מתייאש סופית.
אני מוכן למחוק את כל השרת ולהתקין מחדש אם צריך. -
RE: yemot-router2
טוב אני מרים ידיים... אין לי מושג למה זה מסתבך שרפתי ימים ולילות על הnode.js שמשום מה לא עובד.
-
RE: yemot-router2
@צדיק-תמים כתב בyemot-router2:
@עידו אין לי קישור. בדקתי לך את זה אתמול
טוב אז בדקתי את זה בעצמי, וככל הנראה ככה זה אמור להיראות
RewriteEngine On RewriteRule ^(.*)$ http://127.0.0.1:3000/$1 [P,L,QSA]
אני חייב לציין שהrewrite כלי מגניב.
שווה להכיר.אבל עדיין כשלא עושים :3000 בסוף הוא לא נכנס אליו.
וגם ככה
https://node.stamandsefer.co.il:3000/callId=1111&call.phone=0534123456
אין תגובה