Browse Source

punoted/contracts

raylu 1 tuần trước cách đây
mục cha
commit
7eb55cb555
1 tập tin đã thay đổi với 37 bổ sung0 xóa
  1. 37 0
      punoted/contracts.py

+ 37 - 0
punoted/contracts.py

@@ -0,0 +1,37 @@
+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()