rate-update ok
This commit is contained in:
parent
ffba5c2a45
commit
38b9847ccc
4 changed files with 129 additions and 13 deletions
|
@ -219,9 +219,51 @@ class OnlineSource(ModelSQL, ModelView):
|
|||
def update_rate(cls, asset):
|
||||
""" read data from inet, write result to rates of asset
|
||||
"""
|
||||
pool = Pool()
|
||||
Rate = pool.get('investment.rate')
|
||||
|
||||
if asset.updtsource is None:
|
||||
return
|
||||
rate_data = cls.read_from_website(asset.updtsource)
|
||||
rate_data = cls.read_from_website(
|
||||
asset.updtsource,
|
||||
isin = asset.isin,
|
||||
nsin = asset.wkn,
|
||||
symbol = asset.secsymb,
|
||||
)
|
||||
|
||||
if len(asset.updtsource.rgxident or '') > 0:
|
||||
# check result - same code?
|
||||
code = rate_data.get('code', None)
|
||||
if code:
|
||||
asset_code = getattr(asset, {
|
||||
'isin': 'isin',
|
||||
'nsin': 'wkn',
|
||||
'symbol': 'secsymb',
|
||||
}[asset.updtsource.rgxidtype])
|
||||
if (asset_code or '').lower() != code.lower():
|
||||
# fail
|
||||
logger.warning(
|
||||
'update_rate: got wrong code "%(wrong)s" - expected "%(exp)s"' % {
|
||||
'exp': asset_code,
|
||||
'wrong': code,
|
||||
})
|
||||
return False
|
||||
|
||||
to_create = {
|
||||
'date': rate_data.get('date', None),
|
||||
'rate': rate_data.get('rate', None),
|
||||
'asset': asset.id,
|
||||
}
|
||||
if (to_create['date'] is not None) and \
|
||||
(to_create['rate'] is not None):
|
||||
# check if exists
|
||||
if Rate.search_count([
|
||||
('asset.id', '=', asset.id),
|
||||
('date', '=', to_create['date']),
|
||||
]) == 0:
|
||||
Rate.create([to_create])
|
||||
return True
|
||||
return False
|
||||
|
||||
def get_regex_result(self, html_text, field_name):
|
||||
""" run regex on html-text, convert result
|
||||
|
@ -256,7 +298,7 @@ class OnlineSource(ModelSQL, ModelView):
|
|||
return result
|
||||
|
||||
@classmethod
|
||||
def read_from_website(cls, updtsource, isin=None, nsin=None, symbol=None, debug=True):
|
||||
def read_from_website(cls, updtsource, isin=None, nsin=None, symbol=None, debug=False):
|
||||
""" read from url, extract values
|
||||
"""
|
||||
result = {}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue