本文整理匯總了Python中weboob.capabilities.bank.Transaction.id方法的典型用法代碼示例。如果您正苦於以下問題:Python Transaction.id方法的具體用法?Python Transaction.id怎麽用?Python Transaction.id使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類weboob.capabilities.bank.Transaction
的用法示例。
在下文中一共展示了Transaction.id方法的7個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: get_history
# 需要導入模塊: from weboob.capabilities.bank import Transaction [as 別名]
# 或者: from weboob.capabilities.bank.Transaction import id [as 別名]
def get_history(self, account):
if not account._consultable:
raise NotImplementedError()
offset = 0
next_page = True
while next_page:
r = self.open('/transactionnel/services/applications/operations/get/%(number)s/%(nature)s/00/%(currency)s/%(startDate)s/%(endDate)s/%(offset)s/%(limit)s' %
{'number': account._number,
'nature': account._nature,
'currency': account.currency,
'startDate': '2000-01-01',
'endDate': date.today().strftime('%Y-%m-%d'),
'offset': offset,
'limit': 50
})
next_page = False
offset += 50
for op in r.json()['content']['operations']:
next_page = True
t = Transaction()
t.id = op['id']
t.amount = Decimal(str(op['montant']))
t.date = date.fromtimestamp(op.get('dateDebit', op.get('dateOperation'))/1000)
t.rdate = date.fromtimestamp(op.get('dateOperation', op.get('dateDebit'))/1000)
t.vdate = date.fromtimestamp(op.get('dateValeur', op.get('dateDebit', op.get('dateOperation')))/1000)
if 'categorie' in op:
t.category = op['categorie']
t.label = op['libelle']
t.raw = ' '.join([op['libelle']] + op['details'])
yield t
示例2: get_transactions
# 需要導入模塊: from weboob.capabilities.bank import Transaction [as 別名]
# 或者: from weboob.capabilities.bank.Transaction import id [as 別名]
def get_transactions(self):
table = self.document.findall('//tbody')[0]
for tr in table.xpath('tr'):
textdate = tr.find('td[@class="op_date"]').text_content()
textraw = tr.find('td[@class="op_label"]').text_content().strip()
# The id will be rewrite
op = Transaction(1)
amount = op.clean_amount(tr.find('td[@class="op_amount"]').text_content())
id = hashlib.md5(textdate + textraw.encode('utf-8') + amount.encode('utf-8')).hexdigest()
op.id = id
op.parse(date = date(*reversed([int(x) for x in textdate.split('/')])),
raw = textraw)
# force the use of website category
op.category = unicode(tr.find('td[@class="op_type"]').text)
op.amount = Decimal(amount)
yield op
示例3: get_history
# 需要導入模塊: from weboob.capabilities.bank import Transaction [as 別名]
# 或者: from weboob.capabilities.bank.Transaction import id [as 別名]
def get_history(self, account):
if not account._consultable:
raise NotImplementedError()
offset = 0
next_page = True
seen = set()
while next_page:
r = self.api_open(
"/transactionnel/services/applications/operations/get/%(number)s/%(nature)s/00/%(currency)s/%(startDate)s/%(endDate)s/%(offset)s/%(limit)s"
% {
"number": account._number,
"nature": account._nature,
"currency": account.currency,
"startDate": "2000-01-01",
"endDate": date.today().strftime("%Y-%m-%d"),
"offset": offset,
"limit": 50,
}
)
next_page = False
offset += 50
transactions = []
for op in reversed(r.json()["content"]["operations"]):
next_page = True
t = Transaction()
if op["id"] in seen:
raise ParseError("There are several transactions with the same ID, probably an infinite loop")
t.id = op["id"]
seen.add(t.id)
t.amount = Decimal(str(op["montant"]))
t.date = date.fromtimestamp(op.get("dateDebit", op.get("dateOperation")) / 1000)
t.rdate = date.fromtimestamp(op.get("dateOperation", op.get("dateDebit")) / 1000)
t.vdate = date.fromtimestamp(op.get("dateValeur", op.get("dateDebit", op.get("dateOperation"))) / 1000)
if "categorie" in op:
t.category = op["categorie"]
t.label = op["libelle"]
t.raw = " ".join([op["libelle"]] + op["details"])
transactions.append(t)
# Transactions are unsorted
for t in sorted(transactions, key=lambda t: t.rdate, reverse=True):
yield t
示例4: get_history
# 需要導入模塊: from weboob.capabilities.bank import Transaction [as 別名]
# 或者: from weboob.capabilities.bank.Transaction import id [as 別名]
def get_history(self, account):
if not account._consultable:
raise NotImplementedError()
if account._univers != self.current_univers:
self.move_to_univers(account._univers)
offset = 0
next_page = True
seen = set()
while next_page:
r = self.api_open('/transactionnel/services/applications/operations/get/%(number)s/%(nature)s/00/%(currency)s/%(startDate)s/%(endDate)s/%(offset)s/%(limit)s' %
{'number': account._number,
'nature': account._nature,
'currency': account.currency,
'startDate': '2000-01-01',
'endDate': date.today().strftime('%Y-%m-%d'),
'offset': offset,
'limit': 50
})
next_page = False
offset += 50
transactions = []
for op in reversed(r.json()['content']['operations']):
next_page = True
t = Transaction()
if op['id'] in seen:
raise ParseError('There are several transactions with the same ID, probably an infinite loop')
t.id = op['id']
seen.add(t.id)
t.amount = Decimal(str(op['montant']))
t.date = date.fromtimestamp(op.get('dateDebit', op.get('dateOperation'))/1000)
t.rdate = date.fromtimestamp(op.get('dateOperation', op.get('dateDebit'))/1000)
t.vdate = date.fromtimestamp(op.get('dateValeur', op.get('dateDebit', op.get('dateOperation')))/1000)
if 'categorie' in op:
t.category = op['categorie']
t.label = op['libelle']
t.raw = ' '.join([op['libelle']] + op['details'])
transactions.append(t)
# Transactions are unsorted
for t in sorted(transactions, key=lambda t: t.rdate, reverse=True):
yield t
示例5: iter_history
# 需要導入模塊: from weboob.capabilities.bank import Transaction [as 別名]
# 或者: from weboob.capabilities.bank.Transaction import id [as 別名]
def iter_history(self, account):
# Load i18n for type translation
self.i18np.open(lang1=self.LANG, lang2=self.LANG).load_i18n()
# For now detail for each account is not available. History is global for all accounts and very simplist
data = {'clang': self.LANG,
'ctcc': self.CTCC,
'login': self.username,
'session': self.sessionId}
for trans in self.historyp.open(data=data).get_transactions():
t = Transaction()
t.id = trans["referenceOperationIndividuelle"]
t.date = datetime.strptime(trans["dateHeureSaisie"], "%d/%m/%Y")
t.rdate = datetime.strptime(trans["dateHeureSaisie"], "%d/%m/%Y")
t.type = Transaction.TYPE_DEPOSIT if trans["montantNetEuro"] > 0 else Transaction.TYPE_PAYBACK
t.raw = trans["typeOperation"]
t.label = self.i18n["OPERATION_TYPE_" + trans["casDeGestion"]]
t.amount = Decimal(trans["montantNetEuro"]).quantize(Decimal('.01'))
yield t
示例6: _internal_get_transactions
# 需要導入模塊: from weboob.capabilities.bank import Transaction [as 別名]
# 或者: from weboob.capabilities.bank.Transaction import id [as 別名]
def _internal_get_transactions(self, categories, filter_func):
transactions = self.request('/api/smrt/transactions?limit=1000')
for t in transactions:
if not filter_func(t):
continue
new = Transaction()
new.date = datetime.fromtimestamp(t["createdTS"] / 1000)
new.rdate = datetime.fromtimestamp(t["visibleTS"] / 1000)
new.id = t['id']
new.amount = Decimal(str(t["amount"]))
if "merchantName" in t:
new.raw = new.label = t["merchantName"]
elif "partnerName" in t:
new.raw = CleanText().filter(t["referenceText"]) if "referenceText" in t else CleanText().filter(t["partnerName"])
new.label = t["partnerName"]
else:
new.raw = new.label = ''
if "originalCurrency" in t:
new.original_currency = t["originalCurrency"]
if "originalAmount" in t:
new.original_amount = Decimal(str(t["originalAmount"]))
if t["type"] == 'PT':
new.type = Transaction.TYPE_CARD
elif t["type"] == 'CT':
new.type = Transaction.TYPE_TRANSFER
elif t["type"] == 'WEE':
new.type = Transaction.TYPE_BANK
if t["category"] in categories:
new.category = categories[t["category"]]
yield new
示例7: get_transactions
# 需要導入模塊: from weboob.capabilities.bank import Transaction [as 別名]
# 或者: from weboob.capabilities.bank.Transaction import id [as 別名]
def get_transactions(self, index):
i = 0
for table in self.document.xpath('//table'):
try:
textdate = table.find('.//td[@class="date"]').text_content()
except AttributeError:
continue
# Do not parse transactions already parsed
if i < index:
i += 1
continue
if textdate == 'hier':
textdate = (date.today() - timedelta(days=1)).strftime('%d/%m/%Y')
elif textdate == "aujourd'hui":
textdate = date.today().strftime('%d/%m/%Y')
else:
frenchmonth = textdate.split(' ')[1]
month = self.monthvalue[frenchmonth]
textdate = textdate.replace(' ', '')
textdate = textdate.replace(frenchmonth, '/%s/' %month)
# We use lower for compatibility with old website
textraw = table.find('.//td[@class="lbl"]').text_content().strip().lower()
# The id will be rewrite
op = Transaction(1)
amount = op.clean_amount(table.xpath('.//td[starts-with(@class, "amount")]')[0].text_content())
id = hashlib.md5(textdate.encode('utf-8') + textraw.encode('utf-8')
+ amount.encode('utf-8')).hexdigest()
op.id = id
op.parse(date = date(*reversed([int(x) for x in textdate.split('/')])),
raw = textraw)
category = table.find('.//td[@class="picto"]/span')
category = unicode(category.attrib['class'].split('-')[0].lower())
try:
op.category = self.catvalue[category]
except:
op.category = category
op.amount = Decimal(amount)
yield op