16 Commits
Author SHA1 Message Date
orrisroot a2bc9bb642 feat: build access level labels from their bits and project names
Labels came from a fixed table matched by subset, so Storage (no bits)
matched any level the table lacked, and a level was named after the first
entry it contained: the server's Brain/MINDS 2.0 folders (0x10000) showed
as Storage and 0x10104 as CBS or PW Open.

Labels are now composed from the bits. Projects (bit 16 and up) take the
names the server reports to their members through users/current/, and
otherwise Project<n>; restrict slot 1 is CBS and any other Restrict<n>.
A level with no meaning is shown as Unknown (0x...). chacl reads keys
built the same way, refuses public and storage before any request, and
lists the user's projects with their keys when given an invalid level.
2026-11-13 16:53:25 +09:00
orrisroot 36cad6db52 refactor: extract MdrsClient service layer for library portability
To improve the tool's portability as a Python library, the core logic
has been decoupled from the CLI interface. This allows developers to
programmatically interact with MDRS without relying on CLI-specific
argument parsing or local file-based caches.

- Introduce `MdrsClient` service layer to handle core operations.
- Abstract authentication state using `CacheInterface` and `InMemoryCache`.
- Migrate all CLI commands to utilize `MdrsClient` for execution.
- Separate `Doi` data model from API responses and move to `models/doi.py`.
- Update `README.md` to include Python API usage examples.
- Bump package version to 1.3.17.
2026-07-02 13:07:18 +09:00
pw-serizawa 95f22ea5f9 fix for file.list api pagination 2025-06-26 17:13:06 +09:00
orrisroot a281a97b3e show folder size. 2023-12-18 16:59:53 +09:00
orrisroot f10b42a1f2 updated auth token handling using new users api. 2023-12-07 14:46:57 +09:00
orrisroot ac34a26b02 follow-up recent specification changes about foldeer access level. 2023-10-04 12:49:13 +09:00
orrisroot 08d8a0626a fixed type errors when pylance type checking mode is strict. 2023-07-19 21:47:47 +09:00
orrisroot 23025bd679 migrate obsoleted function parse_obj_as to TypeAdapter().validate_python(). 2023-07-19 14:43:16 +09:00
orrisroot b569c20b6e support case insensitive and normalized file and folder names. 2023-07-19 13:46:23 +09:00
orrisroot 1ffafd25ba sort laboratory list by name and hide numeric id. 2023-06-04 18:53:21 +09:00
orrisroot 9d62d3fb6a follow changes to auth api on 2023-05-22. 2023-05-22 13:48:38 +09:00
orrisroot b028c86b20 implemented to change folder access level chacl command. 2023-05-11 17:00:14 +09:00
orrisroot dd0b0ba68f optimize class dependencies. 2023-05-10 14:46:08 +09:00
orrisroot 35defa39a6 introduce mutex to avoid multiple token refresh when using threads. 2023-05-09 19:30:07 +09:00
orrisroot e7197673fc implemented mutiple download feature. 2023-05-09 14:38:13 +09:00
orrisroot 819c4a6a07 first commit 2023-05-01 20:00:32 +09:00