本文整理汇总了Python中weboob.capabilities.bill.Detail.infos方法的典型用法代码示例。如果您正苦于以下问题:Python Detail.infos方法的具体用法?Python Detail.infos怎么用?Python Detail.infos使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类weboob.capabilities.bill.Detail
的用法示例。
在下文中一共展示了Detail.infos方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: iter_payment_details
# 需要导入模块: from weboob.capabilities.bill import Detail [as 别名]
# 或者: from weboob.capabilities.bill.Detail import infos [as 别名]
def iter_payment_details(self, sub):
if sub._id.isdigit():
idx = 0
else:
idx = sub._id.replace('AFFILIE', '')
if len(self.document.xpath('//div[@class="centrepage"]/h2')) > idx or self.document.xpath('//table[@id="DetailPaiement3"]') > idx:
id_str = self.document.xpath('//div[@class="centrepage"]/h2')[idx].text.strip()
m = re.match('.*le (.*) pour un montant de.*', id_str)
if m:
id_str = m.group(1)
id_date = datetime.strptime(id_str, '%d/%m/%Y').date()
id = sub._id + "." + datetime.strftime(id_date, "%Y%m%d")
table = self.document.xpath('//table[@class="tableau"]')[idx].xpath('.//tr')
line = 1
last_date = None
for tr in table:
tds = tr.xpath('.//td')
if len(tds) == 0:
continue
date_str = tds[0].text
det = Detail()
det.id = id + "." + str(line)
det.label = unicode(tds[1].text.strip())
if date_str is None or date_str == '':
det.infos = u''
det.datetime = last_date
else:
det.infos = u'Payé ' + unicode(re.sub('[^\d,-]+', '', tds[2].text)) + u'€ / Base ' + unicode(re.sub('[^\d,-]+', '', tds[3].text)) + u'€ / Taux ' + unicode(re.sub('[^\d,-]+', '', tds[4].text)) + '%'
det.datetime = datetime.strptime(date_str, '%d/%m/%Y').date()
last_date = det.datetime
det.price = Decimal(re.sub('[^\d,-]+', '', tds[5].text).replace(',', '.'))
line = line + 1
yield det
示例2: iter_history
# 需要导入模块: from weboob.capabilities.bill import Detail [as 别名]
# 或者: from weboob.capabilities.bill.Detail import infos [as 别名]
def iter_history(self):
tables = self.doc.xpath('//table[contains(concat(" ", @class, " "), " cTableauTriable ")]')
if len(tables) > 0:
lines = tables[0].xpath('.//tr')
sno = 0
for tr in lines:
list_a = tr.xpath('.//a')
if len(list_a) == 0:
continue
date = tr.xpath('.//td')[0].text.strip()
lot = list_a[0].text.replace('(*)', '').strip()
if lot == 'SNL':
sno = sno + 1
lot = lot + str(sno)
factures = tr.xpath('.//div[@class="cAlignGauche"]/a')
factures_lbl = ''
for a in factures:
factures_lbl = factures_lbl + a.text.replace('(**)', '').strip() + ' '
montant = tr.xpath('.//div[@class="cAlignDroite"]')[0].text.strip()
det = Detail()
det.id = u''+lot
det.label = u''+lot
det.infos = u''+factures_lbl
det.datetime = datetime.strptime(date, "%d/%m/%Y").date()
det.price = Decimal(montant.replace(',', '.'))
yield det
示例3: iter_details
# 需要导入模块: from weboob.capabilities.bill import Detail [as 别名]
# 或者: from weboob.capabilities.bill.Detail import infos [as 别名]
def iter_details(self, sub):
det = Detail()
det.id = sub.id
det.label = sub.label
det.infos = ''
det.price = Decimal('0.0')
yield det
示例4: get_details
# 需要导入模块: from weboob.capabilities.bill import Detail [as 别名]
# 或者: from weboob.capabilities.bill.Detail import infos [as 别名]
def get_details(self, sub):
det = Detail()
det.id = sub.id
det.label = sub.label
det.infos = ''
det.price = Decimal('0.0')
return det
示例5: get_details
# 需要导入模块: from weboob.capabilities.bill import Detail [as 别名]
# 或者: from weboob.capabilities.bill.Detail import infos [as 别名]
def get_details(self, sub):
det = Detail()
det.id = sub.id
det.label = sub.label
det.infos = ""
det.price = Decimal("0.0")
return det
示例6: iter_details
# 需要导入模块: from weboob.capabilities.bill import Detail [as 别名]
# 或者: from weboob.capabilities.bill.Detail import infos [as 别名]
def iter_details(self, sub):
det = Detail()
det.id = sub.id
det.label = sub.label
det.infos = ""
det.price = Decimal("0.0")
yield det
示例7: do_details
# 需要导入模块: from weboob.capabilities.bill import Detail [as 别名]
# 或者: from weboob.capabilities.bill.Detail import infos [as 别名]
def do_details(self, id):
"""
details [ID]
Get details of subscriptions.
If no ID given, display all details of all backends.
"""
l = []
id, backend_name = self.parse_id(id)
if not id:
for subscrib in self.get_object_list('iter_subscription'):
l.append((subscrib.id, subscrib.backend))
else:
l.append((id, backend_name))
for id, backend in l:
names = (backend,) if backend is not None else None
# XXX: should be generated by backend? -Flo
# XXX: no, but you should do it in a specific formatter -romain
# TODO: do it, and use exec_method here. Code is obsolete
mysum = Detail()
mysum.label = u"Sum"
mysum.infos = u"Generated by boobill"
mysum.price = Decimal("0.")
self.start_format()
for detail in self.do('get_details', id, backends=names):
self.format(detail)
mysum.price = detail.price + mysum.price
self.format(mysum)
示例8: iter_details
# 需要导入模块: from weboob.capabilities.bill import Detail [as 别名]
# 或者: from weboob.capabilities.bill.Detail import infos [as 别名]
def iter_details(self, sub):
self.logger.debug('call Browser.iter_details')
det = Detail()
det.id = sub.id
det.label = sub.label
det.infos = ''
det.price = Decimal('0.0')
yield det
示例9: iter_payment_details
# 需要导入模块: from weboob.capabilities.bill import Detail [as 别名]
# 或者: from weboob.capabilities.bill.Detail import infos [as 别名]
def iter_payment_details(self, sub):
if sub._id.isdigit():
idx = 0
else:
idx = sub._id.replace("AFFILIE", "")
if (
len(self.document.xpath('//div[@class="centrepage"]/h3')) > idx
or self.document.xpath('//table[@id="DetailPaiement3"]') > idx
):
id_str = self.document.xpath('//div[@class="centrepage"]/h3')[idx].text.strip()
m = re.match(".*le (.*) pour un montant de.*", id_str)
if m:
id_str = m.group(1)
id_date = datetime.strptime(id_str, "%d/%m/%Y").date()
id = sub._id + "." + datetime.strftime(id_date, "%Y%m%d")
table = self.document.xpath('//table[@id="DetailPaiement3"]')[idx].xpath(".//tr")
line = 1
last_date = None
for tr in table:
tds = tr.xpath(".//td")
if len(tds) == 0:
continue
date_str = tds[0].text
det = Detail()
det.id = id + "." + str(line)
det.label = unicode(tds[1].text.strip())
if date_str is None or date_str == "":
det.infos = u""
det.datetime = last_date
else:
det.infos = (
u"Payé "
+ unicode(re.sub("[^\d,-]+", "", tds[2].text))
+ u"€ / Base "
+ unicode(re.sub("[^\d,-]+", "", tds[3].text))
+ u"€ / Taux "
+ unicode(re.sub("[^\d,-]+", "", tds[4].text))
+ "%"
)
det.datetime = datetime.strptime(date_str, "%d/%m/%Y").date()
last_date = det.datetime
det.price = Decimal(re.sub("[^\d,-]+", "", tds[5].text).replace(",", "."))
line = line + 1
yield det
示例10: _iter_divs
# 需要导入模块: from weboob.capabilities.bill import Detail [as 别名]
# 或者: from weboob.capabilities.bill.Detail import infos [as 别名]
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)
self.details[num].append(detail)
示例11: iter_divs
# 需要导入模块: from weboob.capabilities.bill import Detail [as 别名]
# 或者: from weboob.capabilities.bill.Detail import infos [as 别名]
def iter_divs(self, divs, num, inter=False):
for div in divs:
detail = Detail()
detail.label = unicode(div.find('div[@class="titre"]/p').text_content())
detail.id = "-" + detail.label.split(' ')[1].lower()
if inter:
detail.label = detail.label + u" (international)"
detail.id = detail.id + "-inter"
detail.infos = unicode(div.find('div[@class="conso"]/p').text_content().lstrip())
detail.price = convert_price(div)
self.details[num].append(detail)
示例12: parse_voice
# 需要导入模块: from weboob.capabilities.bill import Detail [as 别名]
# 或者: from weboob.capabilities.bill.Detail import infos [as 别名]
def parse_voice(self, div, string, num, inter=False):
voice = Detail()
voice.id = "-voice"
voice.label = unicode(div.find('div[@class="titre"]/p').text_content())
if inter:
voice.label = voice.label + " (international)"
voice.id = voice.id + "-inter"
voice.price = convert_price(div)
voice1 = div.xpath('div[@class="conso"]/p/span')[0].text
voice2 = div.xpath('div[@class="conso"]/p/span')[1].text
voice.infos = unicode(string) % (voice1, voice2)
return voice
示例13: _parse_voice
# 需要导入模块: from weboob.capabilities.bill import Detail [as 别名]
# 或者: from weboob.capabilities.bill.Detail import infos [as 别名]
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)
voice1 = CleanText('.//span[@class="actif"][1]')(voicediv)
voice2 = CleanText('.//span[@class="actif"][2]')(voicediv)
voice.infos = unicode(string) % (voice1, voice2)
return voice
示例14: get_details
# 需要导入模块: from weboob.capabilities.bill import Detail [as 别名]
# 或者: from weboob.capabilities.bill.Detail import infos [as 别名]
def get_details(self):
txt = self._parse_pdf()
page = txt.split('CONSOMMATION')[2].split('ACTIVITE DETAILLEE')[0]
lines = page.split('\n')
lines = [x for x in lines if len(x) > 0] # Remove empty lines
details = []
detail = None
lines.pop(0) # MENSUELLE
lines.pop(-1) # Line to describes pictures
twolines = False
for line in lines:
if "Votre consommation" in line:
line = line.split(": ", 1)[1]
if twolines:
twolines = False
detail.infos = unicode(line, encoding='utf-8')
elif re.match('[A-Za-z]', line[0]):
# We have a new element, return the other one
if detail is not None:
details.append(detail)
detail = Detail()
split = re.split("(\d)", line, maxsplit=1)
detail.price = Decimal(0)
if len(split) > 2:
detail.infos = unicode(split[1] + split[2], encoding='utf-8')
else:
twolines = True
if '€' in line:
specialprice = split[1] + split[2]
detail.price = Decimal(specialprice.replace('€', ''))
detail.label = unicode(split[0], encoding='utf-8')
elif '€' in line:
detail.price = Decimal(line.replace('€', ''))
else:
detail.infos = unicode(line, encoding='utf-8')
details.append(detail)
return details
示例15: on_loaded
# 需要导入模块: from weboob.capabilities.bill import Detail [as 别名]
# 或者: from weboob.capabilities.bill.Detail import infos [as 别名]
def on_loaded(self):
self.details = []
table = self.document.xpath('//table[@id="reportTable"]')[0]
for tr in table.xpath('tbody/tr'):
detail = Detail()
# Skip global category
if tr.find('td/a') is not None:
continue
if tr.attrib["class"] == "totalAmount":
continue
tds = tr.xpath('td')
detail.label = unicode(tds[0].text.strip())
detail.infos = unicode(tds[1].text.strip())
detail.price = Decimal(tds[2].text.split(' ')[0].replace(',', '.'))
self.details.append(detail)