コード例 #1
0
ファイル: spendplan.py プロジェクト: rothlmar/spendplan
def update_exchange_rates():
    exchange_table = datastore.get_table('exchange_rates')
    max_date = max(
        [r.get('date').to_datetime_utc() for r in exchange_table.query()])
    start_date = max_date + datetime.timedelta(1)
    req_fmt_str = "http://openexchangerates.org/api/historical/{}.json?app_id=36646cf83ce04bc1af40246f9015db65"
    req_strs = [
        req_fmt_str.format(
            (start_date + datetime.timedelta(i)).strftime('%Y-%m-%d'))
        for i in range((datetime.datetime.today() - start_date).days)
    ]
    responses = [requests.get(rs) for rs in req_strs]
    json_content = [json.loads(r.content) for r in responses]
    good_content = [{
        'date':
        dropbox.datastore.Date.from_datetime_utc(
            datetime.datetime.fromtimestamp(j['timestamp']) -
            datetime.timedelta(hours=23)),
        'rate':
        j['rates']['GBP']
    } for j in json_content]
    print(good_content)
    for xr in good_content:
        exchange_table.insert(**xr)
    datastore.commit()
コード例 #2
0
ファイル: spendplan.py プロジェクト: rothlmar/spendplan
def add_exchange_rate_date(dates):
    if isinstance(dates, basestring):
        dates = [dates]
    exchange_table = datastore.get_table('exchange_rates')
    req_fmt_str = "http://openexchangerates.org/api/historical/{}.json?app_id=36646cf83ce04bc1af40246f9015db65"
    req_strs = [req_fmt_str.format(date) for date in dates]
    responses = [requests.get(rs) for rs in req_strs]
    json_content = [json.loads(r.content) for r in responses]
    good_content = [{
            'date': dropbox.datastore.Date.from_datetime_utc(datetime.datetime.utcfromtimestamp(j['timestamp'])-datetime.timedelta(hours=23)),
            'rate':j['rates']['GBP']} for j in json_content]
    print(good_content)
    for xr in good_content:
        exchange_table.insert(**xr)
    datastore.commit()
コード例 #3
0
ファイル: spendplan.py プロジェクト: rothlmar/spendplan
def update_exchange_rates():
    exchange_table = datastore.get_table('exchange_rates')
    max_date = max([r.get('date').to_datetime_utc() for r in exchange_table.query()])
    start_date = max_date + datetime.timedelta(1)
    req_fmt_str = "http://openexchangerates.org/api/historical/{}.json?app_id=36646cf83ce04bc1af40246f9015db65"
    req_strs = [req_fmt_str.format((start_date + datetime.timedelta(i)).strftime('%Y-%m-%d')) for i in range((datetime.datetime.today() - start_date).days)]
    responses = [requests.get(rs) for rs in req_strs]
    json_content = [json.loads(r.content) for r in responses]
    good_content = [{
            'date': dropbox.datastore.Date.from_datetime_utc(datetime.datetime.fromtimestamp(j['timestamp'])-datetime.timedelta(hours=23)),
            'rate':j['rates']['GBP']} for j in json_content]
    print(good_content)
    for xr in good_content:
        exchange_table.insert(**xr)
    datastore.commit()
コード例 #4
0
ファイル: spendplan.py プロジェクト: rothlmar/spendplan
def add_exchange_rate_date(dates):
    if isinstance(dates, basestring):
        dates = [dates]
    exchange_table = datastore.get_table('exchange_rates')
    req_fmt_str = "http://openexchangerates.org/api/historical/{}.json?app_id=36646cf83ce04bc1af40246f9015db65"
    req_strs = [req_fmt_str.format(date) for date in dates]
    responses = [requests.get(rs) for rs in req_strs]
    json_content = [json.loads(r.content) for r in responses]
    good_content = [{
        'date':
        dropbox.datastore.Date.from_datetime_utc(
            datetime.datetime.utcfromtimestamp(j['timestamp']) -
            datetime.timedelta(hours=23)),
        'rate':
        j['rates']['GBP']
    } for j in json_content]
    print(good_content)
    for xr in good_content:
        exchange_table.insert(**xr)
    datastore.commit()
コード例 #5
0
ファイル: spendplan.py プロジェクト: rothlmar/spendplan
if access_token == None:
    app_secret = raw_input('Enter the app secret: ')
    flow = dropbox.client.DropboxOAuth2FlowNoRedirect(app_key, app_secret)
    authorize_url = flow.start()
    print(authorize_url)
    code = raw_input("Enter auth code: ").strip()
    access_token, user_id = flow.finish(code)
    print("access token: ", access_token)

client = dropbox.client.DropboxClient(access_token)
print('linked account: {}'.format(client.account_info()['display_name']))
manager = dropbox.datastore.DatastoreManager(client)
datastore = manager.open_default_datastore()

account_table = datastore.get_table('accounts')
transaction_table = datastore.get_table('transactions')


def choose_account():
    all_accounts = list(account_table.query())
    for idx, acct in enumerate(all_accounts):
        fields = acct.get_fields()
        print("{0}: {acctname} ({currency})".format(idx, **fields))
    acct_num = int(raw_input("Which account? "))
    return all_accounts[acct_num].get_id()


#TFCU field_dict: {'Category': 3, 'Date': 1, 'Note': 2, 'credit': 5, 'debit': 4}, start_line: 4, False
#Bank of America: {'Date':0, 'Note':1, 'credit':2, 'debit':2, 'Category':0}, start_line: 8, False
#Barclays: {'Category': 4, 'Date': 1, 'Note': 5, 'credit': 3, 'debit': 3}, start_line: 1, False, '%d/%m/%Y'
コード例 #6
0
ファイル: spendplan.py プロジェクト: rothlmar/spendplan
if access_token == None:
    app_secret = raw_input('Enter the app secret: ')
    flow = dropbox.client.DropboxOAuth2FlowNoRedirect(app_key, app_secret)
    authorize_url = flow.start()
    print(authorize_url)
    code = raw_input("Enter auth code: ").strip()
    access_token, user_id = flow.finish(code)
    print("access token: ", access_token)

client = dropbox.client.DropboxClient(access_token)
print('linked account: {}'.format(client.account_info()['display_name']))
manager = dropbox.datastore.DatastoreManager(client)
datastore = manager.open_default_datastore()

account_table = datastore.get_table('accounts')
transaction_table = datastore.get_table('transactions')

def choose_account():
    all_accounts = list(account_table.query())
    for idx, acct in enumerate(all_accounts):
        fields = acct.get_fields()
        print("{0}: {acctname} ({currency})".format(idx,**fields))
    acct_num = int(raw_input("Which account? "))
    return all_accounts[acct_num].get_id()


#TFCU field_dict: {'Category': 3, 'Date': 1, 'Note': 2, 'credit': 5, 'debit': 4}, start_line: 4, False
#Bank of America: {'Date':0, 'Note':1, 'credit':2, 'debit':2, 'Category':0}, start_line: 8, False
#Barclays: {'Category': 4, 'Date': 1, 'Note': 5, 'credit': 3, 'debit': 3}, start_line: 1, False, '%d/%m/%Y'