https://github.com/treeplate/isd_treeclient
https://github.com/treeplate/isd_treeclient
Last synced: over 1 year ago
JSON representation
- Host: GitHub
- URL: https://github.com/treeplate/isd_treeclient
- Owner: treeplate
- Created: 2021-08-07T19:42:28.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2025-01-23T21:59:15.000Z (over 1 year ago)
- Last Synced: 2025-02-02T11:44:27.112Z (over 1 year ago)
- Language: Dart
- Size: 606 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# isd_treeclient
This app is a client for [ISD](https://interstellar-dynasties.space).
## Server-Client Protocol
See [the official protocol](https://software.hixie.ch/fun/isd/test-2024/servers/src/README.md), as well as the official [system](https://software.hixie.ch/fun/isd/test-2024/servers/src/systems-server/README.md), [dynasty](https://software.hixie.ch/fun/isd/test-2024/servers/src/dynasties-server/README.md), and [login](https://software.hixie.ch/fun/isd/test-2024/servers/src/login-server/README.md) sub-protocols.
## Cookie Storage
This app saves its state between runs. When using package:web, it uses local storage, but when using dart:io, it has to save it to a file. This file is called "cookies.save", and uses its own format, described here.
### Map => .save file
Each entry in the map is separated by a newline followed by a null byte. The entries themselves are encoded as key, colon, null, value.
### .save file => Map
Split the raw file data on newline-null, making a list of raw entries, and then split each entry on colon-null, making a list [key, value]. Now you have a List>, and can map each List to a MapEntry, and then use Map.fromEntries to complete the decoding.
## Tools
https://github.com/treeplate/isd_starnames is a tool for finding stars with specific names.