@צדיק-תמים אין בעיה
פשוט לא הצלחתי למצוא תיעוד כלשהו רצוי בפייתון כיצד אני מנהל משא ומתן
מתי ימות יקריאו את ההודעה שלי ומתי רק יאמר שגיאה
למה אני חייב לשלוח & למרות שלא שמתי לב לזה בתעוד
ועוד
ולכן אני לא יודע כיצד להתקדם למשא ומתן
בתאוריה אני מבין מה לעשות
אבל בפועל כציוד זה חסר לי
הודעות שפורסמו על ידי 795501400
-
RE: משא ומתן עם השרת
-
RE: משא ומתן עם השרת
@צדיק-תמים מודל שעון נוכחות
כל הניסויים שעשיתי בערב פסח לא הכילו את המידע לאיזה מערכת חייגו
חוץ מזה שלא ניתן להגדיר משום מה מה זה שעות המשמרת
וכן שגם כניסה וגם יציאה רשומים בלוג ככניסהגם אני בapi מקבל את כל המידע שאפשר אבל קבצי הדוחות לא הכילו את המידע הזה
כך שבניתי את כל המערכת שלי סביב api מלא וכל השאר בשרת
ויש לי בעיה כיצד להחזיר תגובות שאינן הודעת סיכום כלומר נרשמה כניסה -
RE: משא ומתן עם השרת
@עידו באם זה היה תלוי במה שימות עושים (כלומר בהקשת 1 שימות יעשו א ובהקשת 2 שימות יעשו ב לא היה לי בעיה - א. כי אני יודע לקרוא ב. כי אם לא אני GPT + גימיני יודעים לקרוא ואני שלחתי להם את כל התעוד האפשרי על מודל API)
הבעיה מתחילה בזה שהתברר לי שלמרבה הצער אני לא יכול לסמוך על המודל של ימות כלל עקב באגים רבים (עד אי קבלת המספר שאליו התקשרו)
לכן היה עלי לבנות (ואני באמצע עדין) מנגנון שלם על השרת שלי שיהווה את המודל הזההנקודה היא לא האם הקיש 1 או 2
הנקוה היא האם כאשר קיבלתי פרמטר 1 (כלומר כניסה) ולי בשרת רשום שביצע כניסה לפני 10 דקות
עלי להתחיל פתאום שאלה חדשה לגמרי
שלא יש כמה אופציות לתשובה
וכן הלאהולא אין תעוד ברור כיצד עושים זאת
ועדין אני אשמח באם יש למישהו דוגמא בפיתון של שרשור שאלות
זה מאד יעזור לי -
RE: משא ומתן עם השרת
@צדיק-תמים יש לי כרגע המון המון API כתובים ועובדים תקין
גם התקשורת הזאת עובדת
אני מקבל את הנתונים
רק אני לא הצלחתי להבין כיצד לשלוח לו שאלה חדשה אחר כך(עדין לא הבנתי - אבל כרגע אני לא בודק בלייב האם זה כניסה כפולה או יציאה כפולה - זה מטופל בדוח היומי - כך שלהתחיל להקים שרות בשפה שאינני מכיר בשביל הסבר אחד שחסר לי - קצת הרבה בשבילי)
-
RE: משא ומתן עם השרת
@אביי-ורבא הבעיה היא שמה שאני מכיר הוא פייתון
NODE לא זכיתי לדעת
וודאי שלא לשלב את זני אלו בפרוייקט אחדהחלק של שעון הנוכחות זה רק חלק ממערכת שלמה שכתובה בשפת פייתון כך שאינני יכול לשנות אותם לNIDE
-
RE: משא ומתן עם השרת
@CUBASE כיון שמודל שעון נוכחות לא עובד כמו שצריך
אני בונה כזה עצמאי אצלי על השרת
אני מנסה לטפל מה קרה אם הדיווח לא תקין
למשל דיווח נוסף על כניסה או דיווח נוסף על יציאה (כלומר חוסר בדיווח קודם)
כיצד אני בעצם פותח דו שיח נוסף עם השרת אחרי שהוא דיווח לי על יציאה
באופן רגיל אני עונה לו את ההודעה התקבל דיווח בהצלחה
אבל פה אני בעצם רוצה לומר לו יש בעיה
מה לעשות?
א. ב. או ג?
כיצד אני עושה את זה? -
RE: משא ומתן עם השרת
@CUBASE קראתי
אפילו שלחתי לAI שוב ושוב את הדברים
לפי מה שאני מבין משםשרשור פעולות בפעולה מסוג read לא ניתן לשרשר פעולות לביצוע. לאחר ביצוע פעולה אחת המערכת שולחת מיד את הנתון לשרת ולא מבצעת את הפעולה השניה לדוגמה read=f-000=foo,yes,8,4,7,Number,yes,no,*/&read=f-001=bar,yes,8,4,7,Number,yes,no,*/& המערכת תקבל ותשלח רק את הפרמטר foo ולא את הפרמטר bar
וזה בעיה
יש לי את הקלאס הבאdef yemot_api_handler(request): params = {} if request.method == 'POST': params = request.POST elif request.method == 'GET': params = request.GET else: logger.error("Yemot API Handler received unsupported method: %s", request.method) return HttpResponse(status=405) logger.info("Yemot API Handler received params: %s", dict(params.items())) api_call_id = params.get('ApiCallId') api_real_did = params.get('ApiRealDID') api_enter_id = params.get('ApiEnterID') action_code = params.get('action_type') if action_code is None: logger.info("action_type missing, returning 'read' command to Yemot.") read_command = "read=t-לדיווח כניסה הקישו 1, לדיווח יציאה הקישו 2=action_type,,Digits,1,1,Digits,yes,yes" return HttpResponse(read_command, content_type="text/plain; charset=utf-8") if not api_real_did or not api_enter_id: logger.error("Missing required parameters after read: DID=%s, EnterID=%s", api_real_did, api_enter_id) return HttpResponse("id_list_message=t-שגיאה בקבלת נתונים חיוניים", content_type="text/plain; charset=utf-8") try: enrollment_query_kwargs = { 'major__yemot_did': api_real_did, 'enter_id_in_major': api_enter_id, 'is_active_in_major': True, 'major__is_active': True } enrollment = StudentMajorEnrollment.objects.select_related('student', 'major').get(**enrollment_query_kwargs) except StudentMajorEnrollment.DoesNotExist: logger.warning("Enrollment not found using query: %s", enrollment_query_kwargs) return HttpResponse("id_list_message=t-הזיהוי שהוקש אינו קיים או אינו פעיל במערכת כולל זו", content_type="text/plain; charset=utf-8") except StudentMajorEnrollment.MultipleObjectsReturned: logger.error("CRITICAL: Multiple active enrollments found for query: %s", enrollment_query_kwargs) return HttpResponse("id_list_message=t-שגיאה חמורה בנתונים, נא פנה למנהל המערכת", content_type="text/plain; charset=utf-8") except Exception as e: logger.exception("Unexpected error finding enrollment for query: %s", enrollment_query_kwargs) return HttpResponse("id_list_message=t-שגיאה כללית בגישה לנתונים", content_type="text/plain; charset=utf-8") action_type_str = None confirmation_message = "t-הפעולה נכשלה" timestamp = timezone.now() time_str = timezone.localtime(timestamp).strftime("%H:%M") if action_code == '1': action_type_str = "Entry" confirmation_message = f"t-נרשמה כניסה בשעה {time_str}" elif action_code == '2': action_type_str = "Exit" confirmation_message = f"t-נרשמה יציאה בשעה {time_str}" else: logger.warning("Invalid action code '%s' received for enrollment %s", action_code, enrollment.id) confirmation_message = "t-הבחירה שהוקשה שגויה" if action_type_str: try: AttendanceEvent.objects.create( enrollment=enrollment, action_type=action_type_str, timestamp=timestamp, api_call_id=api_call_id ) logger.info("Recorded %s for enrollment %s (Student: %s, Major: %s)", action_type_str, enrollment.id, enrollment.student.name, enrollment.major.name) except Exception as e: logger.exception("DATABASE ERROR: Failed to save AttendanceEvent for enrollment %s", enrollment.id) confirmation_message = "t-אירעה שגיאה פנימית ברישום, נא פנה למנהל" yemot_response_text = f"id_list_message={confirmation_message}" yemot_response_text += "&go_to_folder=hangup" return HttpResponse(yemot_response_text, content_type="text/plain; charset=utf-8")
זה עובד
אבל שאני רוצה לטפל במקרה של כניסה כפולה זה אומר שעלי לשלוח בקשה חדשה לגמרי לשרת
כלומר בחרת כניסה אבל במערכת רשומה כניסה כבר בתאריך X סעה Y מה ברצונך לעשות וכו?
כיצד אני עושה זאת? -
RE: משא ומתן עם השרת
@CUBASE כעת נשלח אלי פרמטר AAA
כעת כיון שהוא מכיל 2 לפי מה שרשום לי אני צריך לשאול שאלה חדשה
אבל אם היה רשום 1
היה פשוט הודעת OK מהשרת כמובן עם נוסח מה חוזר
אני עדין לא מצליח להבין את התעוד כיצד אני עושה זאת -
משא ומתן עם השרת
האם ניתן להגדיר בשלוחה שישלח נתון א
השרת יענה תשובה
ולפי בחירת המשתמש ימשיכו הלאה עוד ועוד?כלומר כיצד אני מגדיר בעצם בקשות לפרמטרים נוספים בהתאם להתקדמות השיחה?
האם לבקש עוד נתונים
האם לשלוח הודעת אישור
וכד' -
אין מענה משרת API
אני הגדרתי בשלוחה שלי את זה
type=api api_url_post=yes api_link=https://*****/get_matrim_online api_000=matrim_id,yes,3,3
הלוג שלי מראה את זה
Folder#1%25Phone#0000000000%25Date#06/03/2025%25Time#14:31:50%25HebrewDate#ו׳ אדר תשפ״ה%25ApiSend#https:///get_matrim_online?ApiCallId^4b24be5f05b2c526ab47038bdef899902f750ae0ApiYFCallId^8339a6e2-da90-4cdb-88f7-315d9e0afe96ApiDID^0733511611ApiRealDID^0000000000ApiPhone^0000000000ApiExtension^1ApiTime^1741264298matrim_id^617ApiHangupExtension^1hangup^yes*%25ApiAnswer#id_list_message^t-עד כה נתרמו על ידי הבחור בירנבוים אליעזר קא 1326 מתוך 0 על ידי 12 תורמים*go_to_folder^/
(שיניתי את הטלפונים ואת השרת)
השרת מראה לי OK וסטטוס 200
ואני רואה שהמערכת מקבלת בחזרה את הטקסט הנכוןלמה היא לא מקריאה אותו?
האם דברים השתנו וחסר לי הגדרות? -
RE: בשלוחה של שרת API איך עושים שאחרי יציאה מהשלוחה המערכת תשכח מההקשה בשלוחה
@amp-Software-0 הוא באמת שואל שוב
אבל כעת הוא חוזר על המספר שהקשתי לאימות -
RE: בשלוחה של שרת API איך עושים שאחרי יציאה מהשלוחה המערכת תשכח מההקשה בשלוחה
@amp-Software-0 זה ההגדרות
title=מצב בחור type=api api_url_post=yes api_link=https://nedarim.sZZZ.ovh/get_matrim_online api_000=matrim_id,yes,5,1,,NO,,,,,,,,,no
מידע נוסף שאתה זקוק לו?
-
שליחת גרשיים
תגובה: התחברות למנוע סליקה כללי - credit_card
האם שייך במודל הבא
credit_card_category_nedarim_plus=כאן יש לרשום את שם הקטגורייה
שישלח קטגוריה כולל גרשיים
לדוגמה משה כהן ש"ג
כרגע נשלח משה כהן שג -
RE: מודל סקר להצבעה טלפונית בזמן אמת למתמודדים בתחרות הקול הבא בקעמפ, איך בקצרה עושים את זה!
@9918 סיכום של מערכת שעובדת
שלוחה ראשית
שאת השלוחה מחליפים לפי השלב כמובןtype=go_to_folder go_to_folder=/1
שלוחה 1 אודישנים
אצלנו מכל שיעור עלו 3 לאודישנים
ורציתי שכל בחור יבחר רק את המתמודדים של הועד שלו להעלות לתחרות עצמה
ויבחר 3 לא פחות ולא יותר
לכן סיננתי עם IDtype=go_to_folder_from_list_all_information record_name=no value_number=3 A=1 B=2 C=3 D=4 E=5 go_to_folder_default=3
ובתוכו יש שלוחות משנה (בדוגמא שלי 1-5) שבהם כתוב כך
כמו שניתן לראות יש להזין 3 נתונים בדוגמא הנ"ל מתוך 12 כמובן שניתן להוריד ולהעלותenter_id=yes enter_id_type=list_all_information type=recording_and_entering_data record_name=no 050-option=2-1-7-Number-AskNo-1,2,3,4,5,6,7,8,9,10,11,12 051-option=2-1-7-Number-AskNo-1,2,3,4,5,6,7,8,9,10,11,12----CheckNoDoubleFromEnter 052-option=2-1-7-Number-AskNo-1,2,3,4,5,6,7,8,9,10,11,12----CheckNoDoubleFromEnter say_approval_number=say_approval_no_number recording_and_entering_data_enter_id_max_approval=1 booking_Folder-1/1=1142
שלוחה 2 היא שלב ראשון בתחרות
בה יש את הסינון הבאtype=go_to_folder_from_list_all_information record_name=no value_number=3 A=1 B=1 C=1 D=1 E=1 go_to_folder_default=3 title=שלב א
כמו שניתן לראות בו כל הבחורים מופנים לשלוחה אחת
כמובן שבעת ההצבעה על הבחור מכל ועד שעולה יש לשנות את הההפניה לשלוחת משנה הרלוונטית (אודישנים 3 מתוך ועד - שלב ראשון 1 מתוך 3 - עולים 5 לשלב הבא)
בשלוחת המשנה רשום כךenter_id=yes enter_id_type=list_all_information type=recording_and_entering_data record_name=no 050-option=2-1-7-Number-AskNo-1,2,3 say_approval_number=say_approval_no_number recording_and_entering_data_enter_id_max_approval=1 booking_Folder-2/1=1065 booking_Folder-1/1=1487
שלוחה 3
כעת הגענו לשלב רבע הגמר בו יש לנו 6 בחורים (5 מהבחורים ואחד מהשופטים)
ואנחנו רוצים להוציא 2 בחורים החוצהtype=go_to_folder_from_list_all_information record_name=no value_number=3 A=1 B=1 C=1 D=1 E=1 go_to_folder_default=3 title=רבע גמר
עם שלוחת משנה אחת בלבד כבר שבה רשום את הקוד הבא
אשר כל בחור בוחר 2 מתוך 6 וה4 בעלי הציון הגבוה ביותר עוברים לשלב הבאenter_id=yes enter_id_type=list_all_information type=recording_and_entering_data record_name=no 050-option=2-1-7-Number-AskNo-1,2,3,4 051-option=2-1-7-Number-AskNo-1,2,3,4----CheckNoDoubleFromEnter say_approval_number=say_approval_no_number recording_and_entering_data_enter_id_max_approval=1 booking_Folder-2/1=1065 title=
שלוחה 4
כעת אנחנו בשלב חצי הגמר עם 4 בחורים על הבמהtype=go_to_folder_from_list_all_information record_name=no value_number=3 A=1 B=1 C=1 D=1 E=1 go_to_folder_default=3 title= חצי גמר
ובשלוחת המשנה רשום כך
enter_id=yes enter_id_type=list_all_information type=recording_and_entering_data record_name=no 050-option=2-1-7-Number-AskNo-1,2,3,4 051-option=2-1-7-Number-AskNo-1,2,3,4----CheckNoDoubleFromEnter say_approval_number=say_approval_no_number recording_and_entering_data_enter_id_max_approval=1 booking_Folder-2/1=1551
שלוחה 5
היא שלוחת הגמר ובה רשום כךtype=go_to_folder_from_list_all_information record_name=no value_number=3 A=1 B=1 C=1 D=1 E=1 go_to_folder_default=3 title=גמר
ובמשנה רשום כך
enter_id=yes enter_id_type=list_all_information type=recording_and_entering_data record_name=no 050-option=2-1-7-Number-AskNo-1,2 say_approval_number=say_approval_no_number recording_and_entering_data_enter_id_max_approval=1 booking_Folder-2/1=1065 booking_Folder-3/1=1507
נ.ב. קובץ ליסט אל אינפורמיישן מורכב מ4 עמודות
תעודת זהות
אישור מעבר וחסימה
ועד
שם -
RE: מודל סקר להצבעה טלפונית בזמן אמת למתמודדים בתחרות הקול הבא בקעמפ, איך בקצרה עושים את זה!
@9918 אמר במודל סקר להצבעה טלפונית בזמן אמת למתמודדים בתחרות הקול הבא בקעמפ, איך בקצרה עושים את זה!:
אני מנהל קעמפ של ישיבה ואני עושה להם תוכנית הקול הבא ואני רוצה לפתוח הצבעה טךפונית שתעבוד בזמן אמת בקו שפתחתי.
אני צריך הסבר בקצרה מה אני צריך להגדיר בהגדרות מתקדמות.האם יצא לך תשובה כל שהיא ברורה מה לעשות?
אני גם באותה שאלה בדיוק מילה במילה -
RE: השמעת שמות הקבצים ברמת מערכת?
@dudu כן
אני יושב מול טבלה שאני מדפיס מראש ע"פ הקבצים שכעת אני יודע מה יש בכל שלוחה
מכין קובץ אחד ומעלה
כל שיוער חדש אני הולך לקובץ הראשי מוסיף שורה חדשה
מאשר ליצור המון קבצים
ולעורך אותם באתר עצמו
זה לא נח
ולהכין מרא לכל תיקיה יצריך אותי להרבה בלאגן
אבל כמו שאמרתי אני ישלח בקשה לפיתוח -
RE: השמעת שמות הקבצים ברמת מערכת?
@dudu אתה מבין מה מדובר
להיכנס לעשרות תיקיות ולכתוב להם קובץ עם פרטים
כל שיעור שאני מעלה דרך FTP להתחיל לזכור להיכנס לשלוחה ולשנות
וכ'
אבל אני אשלח בקשה םיתוח