ג'אווה סקריפט | if שמבצע פעולות על יותר מאובייקט אחד עם שינוי במשתנה בכל אובייקט
-
רקע: כתבתי לעצמי קוד בגוגל סקריפט, שמושך את המיילים מתווית מסוימת בג'ימייל שלי ושולח אותם לתוך קובץ tts ממוספר בשרת של ימות המשיח.
כתבתי את הקטע הזה, כדי לקבל את ההודעות (tag הוא המשתנה המכיל את שם התווית) למשתנים:
let label = GmailApp.getUserLabelByName(tag) let messages = label.getThreads() if (messages.length > 0) { for (let message of messages) { let firstmessage = message.getMessages()[0] let subject = firstmessage.getSubject() let sender = firstmessage.getFrom() let to = firstmessage.getTo() let boddy = firstmessage.getPlainBody()
ובהמשך אני מבצע כמה פעולות על מה שהתקבל, ובסוף שולח את זה לימות המשיח. עכשיו, כדי שכל פעם ייכנס לקובץ חדש הגדרתי שבסוף הרצת הif יישמר ערך המשתנה שמכיל את מס' הקובץ פלוס מס' אחד למעלה.
וכעת לבעיה, מה יקרה כאשר התווית מכילה יותר ממייל אחד? אז הבקשה לימות נשלחת פעמיים, וכך גם העלאת שם הקובץ מבוצעת פעמיים, אבל הבקשה שמכילה את תוכן המייל השני ומעלה, כן נשלחת עם אותו המספר של ההודעה הראשונה, דהיינו העלאת השם של הקובץ מתבצעת רק לאחר השליחה לימות, ניסיתי לשנות את מיקום ביצוע השינוי אבל ללא הצלחה, אני חושב שזה פשוט בעיה במיקום של הקטע בתוך הקוד, אבל אני לא מצליח למצוא את המקום הנכון (או שבכלל לא הבנתי את העיקרון )
זה הקטע של שליחת הבקשות וסוף הifvar response = UrlFetchApp.fetch('https://call2all.co.il/ym/api/UploadTextFile', options); UrlFetchApp.fetch(`https://www.call2all.co.il/ym/api/RunTzintuk?token=${wat5}&phones=tzl:${tzintuk}`) message.removeLabel(label) wat1 += 1; var cell = SpreadsheetApp.getActiveSheet().getRange('xyz!F1'); var value = SpreadsheetApp.newRichTextValue() .setText(wat1) .build(); cell.setRichTextValue(value); } }
(ובלי הערות על fetch השני, אני יודע שבעיקרון אפשר UrlOpen )