2014-03-26 27 views
0

我正在嘗試使用Calendar Resources API獲取每個域的日曆資源數量,並且代碼正在返回被認爲是不好的結果。具體來說,代碼堅持所有域都具有相同的日曆計數。 我有兩個功能,要做到這一點,無論是返回相同的(壞)結果:獲取每個域的日曆數量的正確方法是什麼?

def getCalendarCountFor(domain, userMail, password): 
    client = CalendarResourceClient(domain=domain) 
    client.ClientLogin(userMail, password, "test_app") 
    calendar_resources = client.GetResourceFeed() 
    return len(calendar_resources.entry) 

第二個版本:

def GoogleQueryCalendars(dom, admin_id, admin_pwd): 
    today = datetime.datetime.now().strftime("%Y-%m-%d %H:%S") 
    calendarClient = CalendarResourceClient(domain=dom) 
    calendarClient.ClientLogin(email=admin_id, password=admin_pwd, source='TheSource') 
    resourceCount = 0 
     # loop through all the calendar feeds 
    try: 
     moreCalendars =calendarClient.GetResourceFeed() 
    except: 
     print "Exception" 
    calendars = {} 
    while moreCalendars.entry is not None: 
     for i, cal in enumerate(moreCalendars.entry): 
      str = cal.GetResourceCommonName() 
      pseudoDomain = re.sub("[^A-Z\d]", "", re.search("^[^-\s]*", str).group(0)).lower() 
      if pseudoDomain in calendars: 
       calendars[pseudoDomain] +=1 
      else: 
       calendars[pseudoDomain] =1 
      resourceCount +=1 
     try: 
      moreCalendars = calendarClient.GetNext(moreCalendars) 
     except: 
      break 
    return resourceCount 

感謝。

回答

2

這裏是計算日曆資源的方法。

def count_resources(domain, email, password): 
    client = CalendarResourceClient(domain=domain) 
    client.ClientLogin(email=email, 
         password=password, 
         source='TheSource') 

    count = 0 
    uri = client.MakeResourceFeedUri() 
    while uri: 
     feed = client.GetResourceFeed(uri) 
     count += len(feed.entry) 

     next_link = feed.GetNextLink() 
     uri = next_link.href if next_link else None 

    return count 
+0

它對我而言返回相同的結果。 +1,因爲至少現在我們有3種方法來獲得這個計數。 – MadeOfAir

+0

它報告了多少結果? –

相關問題