| 12345678910111213141516171819202122232425262728293031323334353637 |
- import sys
- import httpx
- from config import config
- def main() -> None:
- (username,) = sys.argv[1:]
- (data,) = httpx.get(f'https://api.punoted.net/v1/contracts/?username={username}&limit=200',
- headers={'X-Data-Token': config.punoted_api_key}).raise_for_status().json()
- data['Contracts'].sort(key=lambda c: c['DateEpochMs'])
- for contract in data['Contracts']:
- print(contract['ContractLocalId'], contract['PartnerName'], contract['Name'], contract['Preamble'])
- print(contract['Timestamp'])
- for condition in contract['Conditions']:
- match condition['Type']:
- case 'DELIVERY':
- if condition['Party'] == contract['Party']:
- direction = '→'
- else:
- direction = '←'
- case 'COMEX_PURCHASE_PICKUP':
- if condition['Party'] == contract['Party']:
- direction = '←'
- else:
- direction = '→'
- print('\t', direction, condition['MaterialAmount'], condition['MaterialTicker'])
- case 'PAYMENT':
- print('\t', condition['Amount'], condition['Currency'])
- case 'PROVISION_SHIPMENT' | 'PICKUP_SHIPMENT' | 'DELIVERY_SHIPMENT' | 'REPUTATION' | 'EXPLORATION' | 'REPAIR_SHIP' \
- | 'PROVISION' | 'LOAN_PAYOUT' | 'LOAN_INSTALLMENT':
- pass
- case _:
- raise AssertionError('unhandled condition type ' + condition['Type'])
- if __name__ == '__main__':
- main()
|