예제 #1
0
    def __process_online_data(self, page, data=None):
        html = ''
        if page in self.online_pages:
            if MOCKDATA:
                self.__print_debug('Using MOCK Data for page ' + page)
                html = MockData.getpage(page)
            else:
                post_data = None
                if data is not None:
                    post_data = urllib.parse.urlencode(data).encode('utf-8')

                response = self.opener.open(
                    self.portal_url + '/' + self.online_pages[page], post_data)
                html = response.read().decode('utf-8')
                if page != 'login' and self.login_detect_regex.search(html):
                    #self.__notify_message('notification','Cookie expired, relogin for page' + page)
                    if self.login():
                        self.__print_debug(
                            'Recursive restart processing online data')
                        html = self.__process_online_data(page, data)

        return html
예제 #2
0
    def __parse_account_data(self, html):
        self.application_data['mobile_number'] = self.regex_phonenumber.search(
            html).group('phonenumber')
        self.application_data['mobile_plan'] = self.regex_mobile_plan.search(
            html).group('mobileplan')
        self.application_data['extra_costs'] = self.regex_extra_costs.search(
            html).group('extra_costs')

        sms_usage = self.regex_sms_usage.search(html)
        if sms_usage:
            self.application_data['sms_usage']['total'] = int(
                sms_usage.group('totalsms'))
            self.application_data['sms_usage']['used'] = int(
                float(self.application_data['sms_usage']['total']) *
                (float(sms_usage.group('usedsms')) / 100))

            # Mock data
            if MOCKDATA:
                self.application_data['sms_usage']['used'] = MockData.random(
                    self.application_data['sms_usage']['total'])

            self.application_data['sms_usage']['free'] = int(
                self.application_data['sms_usage']['total']) - int(
                    self.application_data['sms_usage']['used'])

        call_usage = self.regex_call_usage.search(html)
        if call_usage:
            self.application_data['call_usage']['total'] = int(
                call_usage.group('totalcall'))
            self.application_data['call_usage']['used'] = int(
                float(self.application_data['call_usage']['total']) *
                (float(call_usage.group('usedcall')) / 100))

            # Mock data
            if MOCKDATA:
                self.application_data['call_usage']['used'] = MockData.random(
                    self.application_data['sms_usage']['total'])

            self.application_data['call_usage']['free'] = int(
                self.application_data['call_usage']['total']) - int(
                    self.application_data['call_usage']['used'])

        data_usage = self.regex_data_usage.search(html)
        if data_usage:
            self.application_data['data_usage']['total'] = int(
                float(data_usage.group('totaldata')) *
                self.__data_unit_factor(data_usage.group('dataunit')))
            self.application_data['data_usage']['used'] = int(
                float(self.application_data['data_usage']['total']) *
                (float(data_usage.group('useddata')) / 100))

            # Mock data
            if MOCKDATA:
                self.application_data['data_usage']['used'] = MockData.random(
                    self.application_data['data_usage']['total'])

            self.application_data['data_usage']['free'] = int(
                self.application_data['data_usage']['total']) - int(
                    self.application_data['data_usage']['used'])

        now = date.today()
        self.application_data['days_usage']['total'] = self.__days_in_month(
            now)
        self.application_data['days_usage']['used'] = now.day
        self.application_data['days_usage']['free'] = int(
            self.application_data['days_usage']['total']) - int(
                self.application_data['days_usage']['used'])