פורום מחשבים

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

מחשבים ותוכנות > תוכן מקצועי

  • 170
  • היי שלום

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

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

    קוד:
    // הרשאות גוגל אנשי קשר
    var CONTACTS_SCOPE = 'https://www.googleapis.com/auth/contacts';
     
    // קוד OAuth2
    var contactsService = OAuth2.createService('contacts')
        .setAuthorizationBaseUrl('https://accounts.google.com/o/oauth2/auth')
        .setTokenUrl('https://accounts.google.com/o/oauth2/token')
        .setClientId('?')
        .setClientSecret('?')
        .setCallbackFunction('authCallback')
        .setPropertyStore(PropertiesService.getUserProperties())
        .setScope(CONTACTS_SCOPE);
     
    function authCallback(request) {
        try {
            var authorized = contactsService.handleCallback(request);
            if (authorized) {
                return HtmlService.createHtmlOutput('ההרשאה ניתנה בהצלחה!');
            } else {
                return HtmlService.createHtmlOutput('ההרשאה נדחתה. אנא נסה שוב.');
            }
        } catch (error) {
            Logger.log('Error in authCallback: ' + JSON.stringify(error));
            return HtmlService.createHtmlOutput('שגיאה במהלך ההרשאה. נא לבדוק את קובץ הלוג לקבלת מידע נוסף.');
        }
    }
     
    function authorizeContacts() {
        var authorizationUrl = contactsService.getAuthorizationUrl();
        return HtmlService.createHtmlOutput('<a href="' + authorizationUrl + '" target="_blank">הקלק כאן כדי לאשר את ההרשאה של אנשי קשר</a>.');
    }
     
    // פונקציה לבדיקה האם אדם כבר קיים
    function personExists(customerName) {
        var contacts = ContactsApp.getContactsByName(customerName);
        return contacts.length > 0;
    }
     
    // פונקציה ליצירת איש קשר
    function createContact(customerName, phoneNumbers) {
        // יצירת איש קשר חדש
        var newContact = ContactsApp.createContact(customerName, '', '');
     
        // הוספת מספרי טלפון
        for (var j = 0; j < phoneNumbers.length; j++) {
            newContact.addPhone(ContactsApp.Field.MOBILE_PHONE, phoneNumbers[j]);
        }
     
        Logger.log('נוצר איש קשר חדש: ' + customerName);
    }
     
    // פונקציה למציאת מספרי טלפון בטקסט
    function findPhoneNumbers(text) {
        var phoneNumberMatches = text.match(/\d{10}/g);
        return phoneNumberMatches ? phoneNumberMatches : [];
    }
     
    // הפעלת התהליך
    function processEvents() {
        // קבל את הלוח של המשתמש
        var calendar = CalendarApp.getDefaultCalendar();
     
        // קבל את כל האירועים מהלוח
        var startDate = new Date('2016-03-15T00:00:00Z');  // תאריך התחלה
        var endDate = new Date('2016-12-31T23:59:59Z');    // תאריך סיום
     
        // סינון אירועים לפי טווח תאריכים
        var eventsInRange = calendar.getEvents(startDate, endDate);
     
        // לולאה על כל אירוע בטווח התאריכים
        for (var i = 0; i < eventsInRange.length; i++) {
            var event = eventsInRange[i];
     
            // קבל את כותרת האירוע (שם הלקוח ומספרי הטלפון)
            var eventTitle = event.getTitle();
     
            // חלק את כותרת האירוע לשם הלקוח ומספרי הטלפון
            var eventTitleParts = eventTitle.split(" ");
            var customerName = eventTitleParts.slice(0, 2).join(" "); // שתי המילים הראשונות
            var phoneNumbers = findPhoneNumbers(eventTitle);
            Logger.log('Event Title: ' + eventTitle);
            Logger.log('Customer Name: ' + customerName);
            Logger.log('Phone Numbers: ' + phoneNumbers.join(', '));
     
            // אם יש שם לקוח ולפחות מספר טלפון
            if (customerName && phoneNumbers.length > 0) {
                // בדיקה אם האדם כבר קיים
                var personExists = checkIfPersonExists(customerName);
     
                // יצירת איש קשר
                createContact(customerName, phoneNumbers, personExists);
                Logger.log('Event Title: ' + eventTitle);
                Logger.log('Customer Name: ' + customerName);
                Logger.log('Phone Numbers: ' + phoneNumbers.join(', '));
     
                // השהייה בין קריאות לשירות
                Utilities.sleep(1000);  // 1 שניות
            }
        }
    }
     
    // בדיקה אם האדם כבר קיים
    function checkIfPersonExists(customerName) {
        var contacts = ContactsApp.getContactsByName(customerName);
        return contacts.length > 0;
    }
    0 תגובות
    מחפש בונה אתרים מקצועי או מהדנס תוכנה,
    להקמת אתר בתחום מסוים - בהשראה מהאתר הזה

    תודה רבה
     תגובה אחרונה 

    אולי מעניין אותך גם...

    הצטרפות לניוזלטר

    איזה כיף שהצטרפתם לניוזלטר שלנו!

    מעכשיו, תהיו הראשונים לקבל את כל העדכונים, החדשות, ההפתעות בלעדיות, והתכנים הכי חמים שלנו בפרוג!

    לוח מודעות

    הפרק היומי

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


    תהילים פרק כה

    אלְדָוִד אֵלֶיךָ יי נַפְשִׁי אֶשָּׂא:באֱלֹהַי בְּךָ בָטַחְתִּי אַל אֵבוֹשָׁה אַל יַעַלְצוּ אֹיְבַי לִי:גגַּם כָּל קוֶֹיךָ לֹא יֵבֹשׁוּ יֵבֹשׁוּ הַבּוֹגְדִים רֵיקָם:דדְּרָכֶיךָ יי הוֹדִיעֵנִי אֹרְחוֹתֶיךָ לַמְּדֵנִי:ההַדְרִיכֵנִי בַאֲמִתֶּךָ וְלַמְּדֵנִי כִּי אַתָּה אֱלֹהֵי יִשְׁעִי אוֹתְךָ קִוִּיתִי כָּל הַיּוֹם:וזְכֹר רַחֲמֶיךָ יי וַחֲסָדֶיךָ כִּי מֵעוֹלָם הֵמָּה:זחַטֹּאות נְעוּרַי וּפְשָׁעַי אַל תִּזְכֹּר כְּחַסְדְּךָ זְכָר לִי אַתָּה לְמַעַן טוּבְךָ יי:חטוֹב וְיָשָׁר יי עַל כֵּן יוֹרֶה חַטָּאִים בַּדָּרֶךְ:טיַדְרֵךְ עֲנָוִים בַּמִּשְׁפָּט וִילַמֵּד עֲנָוִים דַּרְכּוֹ:יכָּל אָרְחוֹת יי חֶסֶד וֶאֱמֶת לְנֹצְרֵי בְרִיתוֹ וְעֵדֹתָיו:יאלְמַעַן שִׁמְךָ יי וְסָלַחְתָּ לַעֲוֹנִי כִּי רַב הוּא:יבמִי זֶה הָאִישׁ יְרֵא יי יוֹרֶנּוּ בְּדֶרֶךְ יִבְחָר:יגנַפְשׁוֹ בְּטוֹב תָּלִין וְזַרְעוֹ יִירַשׁ אָרֶץ:ידסוֹד יי לִירֵאָיו וּבְרִיתוֹ לְהוֹדִיעָם:טועֵינַי תָּמִיד אֶל יי כִּי הוּא יוֹצִיא מֵרֶשֶׁת רַגְלָי:טזפְּנֵה אֵלַי וְחָנֵּנִי כִּי יָחִיד וְעָנִי אָנִי:יזצָרוֹת לְבָבִי הִרְחִיבוּ מִמְּצוּקוֹתַי הוֹצִיאֵנִי:יחרְאֵה עָנְיִי וַעֲמָלִי וְשָׂא לְכָל חַטֹּאותָי:יטרְאֵה אוֹיְבַי כִּי רָבּוּ וְשִׂנְאַת חָמָס שְׂנֵאוּנִי:כשָׁמְרָה נַפְשִׁי וְהַצִּילֵנִי אַל אֵבוֹשׁ כִּי חָסִיתִי בָךְ:כאתֹּם וָיֹשֶׁר יִצְּרוּנִי כִּי קִוִּיתִיךָ:כבפְּדֵה אֱלֹהִים אֶת יִשְׂרָאֵל מִכֹּל צָרוֹתָיו:
    נקרא  2  פעמים
    למעלה