def getCreateModifyArguments(self): arguments = { "meet:meetingkey": self.getWebExKey(), "meet:agenda": escape( self._bookingParams["meetingDescription"].replace("\n","") ), "meet:confName": escape( self._bookingParams["meetingTitle"] ), "meet:hostWebExID": self._bookingParams["webExUser"], "meet:startDate": makeTime( self.getAdjustedStartDate('UTC') ), "meet:duration": self._duration, "meet:meetingPassword": self.getAccessPassword(), } return arguments
def getCreateModifyArguments(self): arguments = { "meet:meetingkey": self.getWebExKey(), "meet:agenda": escape(self._bookingParams["meetingDescription"].replace("\n", "")), "meet:confName": escape(self._bookingParams["meetingTitle"]), "meet:hostWebExID": self._bookingParams["webExUser"], "meet:startDate": makeTime(self.getAdjustedStartDate('UTC')), "meet:duration": self._duration, "meet:meetingPassword": self.getAccessPassword(), } return arguments
def assignAttributes(self, response_xml): verboseKeyNames = { "meet:meetingkey": "WebEx Meeting ID", "meet:agenda": _("Meeting description"), "meet:confName": _("Title"), "meet:hostWebExID": _("WebEx host account"), "meet:startDate": _("Start time"), "meet:duration": _("Duration"), "meet:meetingPassword": _("Meeting password"), } dom = xml.dom.minidom.parseString( response_xml ) oldArguments = self.getCreateModifyArguments() changesFromWebEx = self._bookingChangesHistory latestChanges = [] start_date = makeTime( self.getAdjustedStartDate('UTC') ).strftime( "%m/%d/%Y %H:%M:%S" ) time_discrepancy = False for key in oldArguments: if not verboseKeyNames.has_key( key ): continue if key == "meet:startDate" or key == "meet:duration": if key == "meet:startDate": if dom.getElementsByTagName( key )[0].firstChild.toxml('utf-8') != start_date: time_discrepancy = True if key == "meet:duration": if dom.getElementsByTagName( key )[0].firstChild.toxml('utf-8') != str(self._duration): time_discrepancy = True user_msg = _("Updated booking duration from ") + str(self._duration) + _(" minutes to ") + str( dom.getElementsByTagName( key )[0].firstChild.toxml('utf-8') + _(" minutes")) self._duration = int( dom.getElementsByTagName( key )[0].firstChild.toxml('utf-8') ) continue try: if unescape(dom.getElementsByTagName( key )[0].firstChild.toxml('utf-8')) != unescape(str(oldArguments[key])) and key in verboseKeyNames: changesFromWebEx.append(verboseKeyNames[key] + ": " + dom.getElementsByTagName( key )[0].firstChild.toxml('utf-8')) latestChanges.append(verboseKeyNames[key] + ": " + dom.getElementsByTagName( key )[0].firstChild.toxml('utf-8')) if key == "meet:confName": self._bookingParams["meetingTitle"] = unescape(dom.getElementsByTagName( key )[0].firstChild.toxml('utf-8')) elif key == "meet:agenda": self._bookingParams["meetingDescription"] = unescape(dom.getElementsByTagName( key )[0].firstChild.toxml('utf-8')) except: Logger.get('WebEx').info( "caught exception on: " + key ) pass self._phoneNum = dom.getElementsByTagName( "serv:tollFreeNum" )[0].firstChild.toxml('utf-8') self._phoneNumToll = dom.getElementsByTagName( "serv:tollNum" )[0].firstChild.toxml('utf-8') # We calculate the time from WebEx first assuming it is in UTC. # If not, we then apply the offset to keep it simple calc_time = naive2local( datetime( *strptime( dom.getElementsByTagName( "meet:startDate" )[0].firstChild.toxml('utf-8'), "%m/%d/%Y %H:%M:%S" )[0:7]), 'UTC' ) tz_id = dom.getElementsByTagName( "meet:timeZoneID" )[0].firstChild.toxml('utf-8') # If the specified time zone is not UTC, contact WebEx # and find the offset from UTC we must account for if tz_id != 20: time_offset_mins = self.getWebExTimeZoneToUTC( tz_id, calc_time.strftime("%m/%d/%Y %H:%M:%S")) WE_time = calc_time + timedelta( minutes= -1*int( time_offset_mins ) ) #Now that we have the REAL time, figure out if there REALLY is a time difference if time_discrepancy == True: if self._startDate != getAdjustedDate(WE_time, tz=self._conf.getTimezone()): self._startDate = getAdjustedDate(WE_time, tz=self._conf.getTimezone()) changesFromWebEx.append(_("Updated start time to match WebEx entry")) latestChanges.append(_("Updated start time to match WebEx entry")) if self._endDate != getAdjustedDate(WE_time, tz=self._conf.getTimezone()) + timedelta( minutes=int( self._duration ) ): self._endDate = getAdjustedDate(WE_time, tz=self._conf.getTimezone()) + timedelta( minutes=int( self._duration ) ) changesFromWebEx.append(_("Updated end time to match WebEx entry")) latestChanges.append(_("Updated start time to match WebEx entry")) self.checkCanStart() self._bookingChangesHistory = changesFromWebEx self._latestChanges = latestChanges
def assignAttributes(self, response_xml): verboseKeyNames = { "meet:meetingkey": "WebEx Meeting ID", "meet:agenda": _("Meeting description"), "meet:confName": _("Title"), "meet:hostWebExID": _("WebEx host account"), "meet:startDate": _("Start time"), "meet:duration": _("Duration"), "meet:meetingPassword": _("Meeting password"), } dom = xml.dom.minidom.parseString(response_xml) oldArguments = self.getCreateModifyArguments() changesFromWebEx = self._bookingChangesHistory latestChanges = [] start_date = makeTime( self.getAdjustedStartDate('UTC')).strftime("%m/%d/%Y %H:%M:%S") time_discrepancy = False for key in oldArguments: if not verboseKeyNames.has_key(key): continue if key == "meet:startDate" or key == "meet:duration": if key == "meet:startDate": if dom.getElementsByTagName(key)[0].firstChild.toxml( 'utf-8') != start_date: time_discrepancy = True if key == "meet:duration": if dom.getElementsByTagName(key)[0].firstChild.toxml( 'utf-8') != str(self._duration): time_discrepancy = True user_msg = _("Updated booking duration from ") + str( self._duration) + _(" minutes to ") + str( dom.getElementsByTagName(key) [0].firstChild.toxml('utf-8') + _(" minutes")) self._duration = int( dom.getElementsByTagName(key)[0].firstChild.toxml( 'utf-8')) continue try: if unescape( dom.getElementsByTagName(key) [0].firstChild.toxml('utf-8')) != unescape( str(oldArguments[key])) and key in verboseKeyNames: changesFromWebEx.append(verboseKeyNames[key] + ": " + dom.getElementsByTagName(key) [0].firstChild.toxml('utf-8')) latestChanges.append(verboseKeyNames[key] + ": " + dom.getElementsByTagName( key)[0].firstChild.toxml('utf-8')) if key == "meet:confName": self._bookingParams["meetingTitle"] = unescape( dom.getElementsByTagName(key)[0].firstChild.toxml( 'utf-8')) elif key == "meet:agenda": self._bookingParams["meetingDescription"] = unescape( dom.getElementsByTagName(key)[0].firstChild.toxml( 'utf-8')) except: Logger.get('WebEx').info("caught exception on: " + key) pass self._phoneNum = dom.getElementsByTagName( "serv:tollFreeNum")[0].firstChild.toxml('utf-8') self._phoneNumToll = dom.getElementsByTagName( "serv:tollNum")[0].firstChild.toxml('utf-8') # We calculate the time from WebEx first assuming it is in UTC. # If not, we then apply the offset to keep it simple calc_time = naive2local( datetime(*strptime( dom.getElementsByTagName("meet:startDate")[0].firstChild.toxml( 'utf-8'), "%m/%d/%Y %H:%M:%S")[0:7]), 'UTC') tz_id = dom.getElementsByTagName( "meet:timeZoneID")[0].firstChild.toxml('utf-8') # If the specified time zone is not UTC, contact WebEx # and find the offset from UTC we must account for if tz_id != 20: time_offset_mins = self.getWebExTimeZoneToUTC( tz_id, calc_time.strftime("%m/%d/%Y %H:%M:%S")) WE_time = calc_time + timedelta(minutes=-1 * int(time_offset_mins)) #Now that we have the REAL time, figure out if there REALLY is a time difference if time_discrepancy == True: if self._startDate != getAdjustedDate( WE_time, tz=self._conf.getTimezone()): self._startDate = getAdjustedDate( WE_time, tz=self._conf.getTimezone()) changesFromWebEx.append( _("Updated start time to match WebEx entry")) latestChanges.append( _("Updated start time to match WebEx entry")) if self._endDate != getAdjustedDate( WE_time, tz=self._conf.getTimezone()) + timedelta( minutes=int(self._duration)): self._endDate = getAdjustedDate( WE_time, tz=self._conf.getTimezone()) + timedelta( minutes=int(self._duration)) changesFromWebEx.append( _("Updated end time to match WebEx entry")) latestChanges.append( _("Updated start time to match WebEx entry")) self.checkCanStart() self._bookingChangesHistory = changesFromWebEx self._latestChanges = latestChanges