Ejemplo n.º 1
0
    def get_calls(self):
        table = self.document.xpath('//table/tbody')[0]
        for tr in table.xpath('tr'):
            tds = tr.xpath('td')

            rawdate = tds[0].text_content()
            splitdate = rawdate.split('-')
            month_no = self.months.index(splitdate[1]) + 1
            mydate = date(int(splitdate[2]), month_no, int(splitdate[0]))

            rawtime = tds[1].text_content()
            mytime = time(*[int(x) for x in rawtime.split(":")])

            price = re.sub(u'[^\d\-\.]', '', tds[6].text)
            detail = Detail()
            detail.datetime = datetime.combine(mydate, mytime)
            detail.label = u"%s from %s to %s - %s" % (
                tds[2].text, tds[3].text, tds[4].text, tds[5].text)
            try:
                detail.price = Decimal(price)
            except InvalidOperation:
                detail.price = Decimal(0)  # free calls
            detail.currency = Currency.CUR_EUR

            yield detail
Ejemplo n.º 2
0
 def get_balance(self, subscription):
     if not isinstance(subscription, Subscription):
         subscription = self.get_subscription(subscription)
     balance = Detail()
     balance.price = subscription._balance
     balance.label = u"Balance"
     balance.currency = Currency.CUR_EUR
     return balance
Ejemplo n.º 3
0
 def get_balance(self, subscription):
     if not isinstance(subscription, Subscription):
         subscription = self.get_subscription(subscription)
     balance = Detail()
     balance.price = subscription._balance
     balance.label = u"Balance"
     balance.currency = Currency.CUR_EUR
     return balance
Ejemplo n.º 4
0
 def get_balance(self, subscription):
     if not isinstance(subscription, Subscription):
         subscription = self.get_subscription(subscription)
     balance = Detail()
     balance.id = "%s-balance" % subscription.id
     balance.price = subscription._balance
     balance.label = u"Balance %s" % subscription.id
     balance.currency = u'EUR'
     return balance
Ejemplo n.º 5
0
    def _iter_divs(self, divs, num, inter=False):
        for div in divs:
            detail = Detail()
            detail.label = CleanText('div[@class="titre"]/p')(div)
            detail.id = "-" + detail.label.split(' ')[1].lower()
            if inter:
                detail.label = detail.label + u" (international)"
                detail.id = detail.id + "-inter"
            detail.infos = CleanText('div[@class="conso"]/p')(div)
            detail.price = CleanDecimal('div[@class="horsForfait"]/p/span', default=Decimal(0), replace_dots=True)(div)
            detail.currency = Currency('div[@class="horsForfait"]/p/span')(div)

            self.details[num].append(detail)
Ejemplo n.º 6
0
    def _iter_divs(self, divs, num, inter=False):
        for div in divs:
            detail = Detail()
            detail.label = CleanText('div[@class="titre"]/p')(div)
            detail.id = "-" + detail.label.split(' ')[1].lower()
            if inter:
                detail.label = detail.label + u" (international)"
                detail.id = detail.id + "-inter"
            detail.infos = CleanText('div[@class="conso"]/p')(div)
            detail.price = CleanDecimal('div[@class="horsForfait"]/p/span',
                                        default=Decimal(0),
                                        replace_dots=True)(div)
            detail.currency = Currency('div[@class="horsForfait"]/p/span')(div)

            self.details[num].append(detail)
Ejemplo n.º 7
0
    def _parse_voice(self, div, string, num, inter=False):
        voicediv = div.xpath('div[@class="conso"]')[0]
        voice = Detail()
        voice.id = "-voice"
        voice.label = CleanText('div[@class="titre"]/p')(div)
        if inter:
            voice.label = voice.label + " (international)"
            voice.id = voice.id + "-inter"
        voice.price = CleanDecimal('div[@class="horsForfait"]/p/span', default=Decimal(0), replace_dots=True)(div)
        voice.currency = Currency('div[@class="horsForfait"]/p/span')(div)
        voice1 = CleanText('.//span[@class="actif"][1]')(voicediv)
        voice2 = CleanText('.//span[@class="actif"][2]')(voicediv)
        voice.infos = unicode(string) % (voice1, voice2)

        return voice
Ejemplo n.º 8
0
    def _parse_voice(self, div, string, num, inter=False):
        voicediv = div.xpath('div[@class="conso"]')[0]
        voice = Detail()
        voice.id = "-voice"
        voice.label = CleanText('div[@class="titre"]/p')(div)
        if inter:
            voice.label = voice.label + " (international)"
            voice.id = voice.id + "-inter"
        voice.price = CleanDecimal('div[@class="horsForfait"]/p/span',
                                   default=Decimal(0),
                                   replace_dots=True)(div)
        voice.currency = Currency('div[@class="horsForfait"]/p/span')(div)
        voice1 = CleanText('.//span[@class="actif"][1]')(voicediv)
        voice2 = CleanText('.//span[@class="actif"][2]')(voicediv)
        voice.infos = unicode(string) % (voice1, voice2)

        return voice
Ejemplo n.º 9
0
    def get_calls(self):
        table = self.document.xpath('//table/tbody')[0]
        for tr in table.xpath('tr'):
            tds = tr.xpath('td')

            rawdate = tds[0].text_content()
            splitdate = rawdate.split('-')
            month_no = self.months.index(splitdate[1]) + 1
            mydate = date(int(splitdate[2]), month_no, int(splitdate[0]))

            rawtime = tds[1].text_content()
            mytime = time(*[int(x) for x in rawtime.split(":")])

            price = re.sub(u'[^\d\-\.]', '', tds[6].text)
            detail = Detail()
            detail.datetime = datetime.combine(mydate, mytime)
            detail.label = u"%s from %s to %s - %s" % (tds[2].text, tds[3].text, tds[4].text, tds[5].text)
            try:
                detail.price = Decimal(price)
            except InvalidOperation:
                detail.price = Decimal(0)  # free calls
            detail.currency = 'EUR'

            yield detail