Jelajahi Sumber

punoted storage search

raylu 4 minggu lalu
induk
melakukan
c5584c0957
1 mengubah file dengan 38 tambahan dan 0 penghapusan
  1. 38 0
      punoted/storage.py

+ 38 - 0
punoted/storage.py

@@ -0,0 +1,38 @@
+from __future__ import annotations
+import sys
+import typing
+
+import httpx
+
+from config import config
+
+def main():
+	items = frozenset(i.upper() for i in sys.argv[1:])
+	users: typing.Sequence[UserStore] = httpx.get('https://api.punoted.net/v1/storages/',
+			headers={'X-Data-Token': config.punoted_api_key}).raise_for_status().json()
+
+	for user in users:
+		print(user['Username'])
+		for storage in user['Storages']:
+			for item in storage['StorageItems']:
+				if item['MaterialTicker'] in items:
+					name = storage['Name']
+					if name == 'null':
+						name = storage['Location']
+					print(f'\t{name}: {item["MaterialAmount"]}')
+
+class UserStore(typing.TypedDict):
+	Username: str
+	Storages: typing.Sequence[Storage]
+
+class Storage(typing.TypedDict):
+	Name: str
+	Location: str
+	StorageItems: typing.Sequence[StorageItem]
+
+class StorageItem(typing.TypedDict):
+	MaterialTicker: str
+	MaterialAmount: int
+
+if __name__ == '__main__':
+	main()