add untracked files
This commit is contained in:
67
collectd/usr/local/bin/funds-data
Executable file
67
collectd/usr/local/bin/funds-data
Executable file
@@ -0,0 +1,67 @@
|
||||
#!/usr/bin/env python
|
||||
import os
|
||||
import requests
|
||||
import re
|
||||
import time
|
||||
import datetime
|
||||
import sys
|
||||
import random
|
||||
|
||||
collection = 'funds'
|
||||
interval = 3600
|
||||
funds_behr = {
|
||||
'robeco_one_defensief': 'rg.one.def',
|
||||
'robeco_one_neutraal' : 'rg.one.neut',
|
||||
'robeco_one_offensief': 'rg.one.offe',
|
||||
# 'robeco_plus_gprec' : 'rg.bp.gprec',
|
||||
# 'robeco_plus_glconsc' : 'rg.gl.consc',
|
||||
# 'robeco_plus_uspreme' : 'rg.us.preme',
|
||||
# 'robeco_plus_uslcfe' : 'rg.us.lc.fe'
|
||||
}
|
||||
funds_morningstar = {
|
||||
'robeco_one_defensief': 'F00000OZ3S',
|
||||
'robeco_one_neutraal' : 'F00000OZ3T',
|
||||
'robeco_one_offensief': 'F00000OZ3U',
|
||||
# 'robeco_plus_gprec' : 'F00000QDBK', # BP Global Premium Equities C
|
||||
# 'robeco_plus_glconsc' : 'F00000PNRA', # Global Conservative Equities C EUR
|
||||
# 'robeco_plus_uspreme' : 'F00000OWHQ', # BP US Premium Equities F
|
||||
# 'robeco_plus_uslcfe' : 'F00000QDBI' # BP US Large Cap Equities F EUR
|
||||
}
|
||||
# log = open('/host/var/log/funds.log', 'a')
|
||||
|
||||
def behr_backlog(funds):
|
||||
for fund,code in funds.items():
|
||||
dir = '/var/lib/collectd/rrd/{}/exec-fund-{}'.format(collection, fund)
|
||||
if not os.path.isdir(dir):
|
||||
url = 'http://www.behr.nl/Beurs/Slotkoersen/slotkoersen.php?fd={}'.format(code)
|
||||
# url = 'http://haggis.no-ip.org/funds/{}.html'.format(code)
|
||||
response = requests.get(url)
|
||||
matches = re.findall('(\d+): ([\d\.]+)', response.text)
|
||||
for match in matches:
|
||||
for i in range(23):
|
||||
timestamp = int(time.mktime(datetime.datetime.strptime(match[0], '%y%m%d').replace(hour = i + 1).timetuple()))
|
||||
put_value(fund, match[1], timestamp)
|
||||
sys.stdout.flush()
|
||||
|
||||
def morningstar_ticker(funds):
|
||||
for fund,code in funds.items():
|
||||
url = 'http://www.morningstar.nl/nl/funds/snapshot/snapshot.aspx?id={}'.format(code)
|
||||
response = requests.get(url)
|
||||
matches = re.findall('>EUR[\s]*[^\d]*([\d,]+)', response.text)
|
||||
quote = matches[0].replace(',', '.')
|
||||
# quote = 100 + 50 * (random.random() - 1)
|
||||
put_value(fund, quote)
|
||||
|
||||
def put_value(fund, value, timestamp = 'N'):
|
||||
print('PUTVAL {}/exec-fund-{}/gauge-ticker interval={} {}:{}'.format(collection, fund, interval, timestamp, value))
|
||||
sys.stdout.flush()
|
||||
if timestamp is 'N':
|
||||
timestamp = int(time.time())
|
||||
# log.write('{},{},{}\n'.format(fund, timestamp, int(value)))
|
||||
|
||||
behr_backlog(funds_behr)
|
||||
while True:
|
||||
seconds = os.times()[4]
|
||||
morningstar_ticker(funds_morningstar)
|
||||
elapsed = os.times()[4] - seconds
|
||||
time.sleep(interval - elapsed)
|
||||
Reference in New Issue
Block a user