Google Apps脚本日历:searchfilter?

时间:2017-05-21 23:45:18

标签: google-apps-script enums google-calendar-api

我正在尝试为Google日历编写Google Apps脚本,该脚本会自动拒绝任何没有说明的邀请。

我正在使用getEvents调用来检索特定窗口中的事件,但我也想过滤它以仅包含状态为INVITED的事件。我写了一些有用的东西,但只有当我用getMyStatus检查我的状态时。无论我如何尝试将CalendarFilter与CalendarApp.GuestStatus.Invited一起使用,我都无法检索传递了该选项的事件。有什么建议吗?

这是我的工作代码。

function processInvites() {
  var calendar = CalendarApp.getCalendarById("mycalendar@google.com");
  var now = new Date();
  var then = new Date(now.getTime() + (1000 * 60 * 60 * 24 * 7));
  var events = [];

  var loopEvents = calendar.getEvents(now, then);

  if(loopEvents.length > 0){
    for(j in loopEvents){
      if(loopEvents[j].getMyStatus() == CalendarApp.GuestStatus.INVITED){
        //if this event has no notes
        if(loopEvents[j].getDescription() == ""){
          loopEvents[j].setMyStatus(CalendarApp.GuestStatus.NO);
        }
      }
    }
  }
};

1 个答案:

答案 0 :(得分:1)

试试这个:

function find($str) {
  $n = preg_match_all("/\](.*?)\[(?=.*\):(.*?):\()/", strrev($str), $matches);
  $result = Array();
  for ($i = 0; $i < $n; $i++) {
    $result[] = [strrev($matches[2][$i]), strrev($matches[1][$i])];
  }
  return $result;
}

$str = "(:xyz:) word word [match1] word word [match2] word [match...] word ...";
print_r(find($str));

# =>
Array
(
    [0] => Array
        (
            [0] => xyz
            [1] => match...
        )

    [1] => Array
        (
            [0] => xyz
            [1] => match2
        )

    [2] => Array
        (
            [0] => xyz
            [1] => match1
        )

)