karakeep-python-api 1.2.3__tar.gz → 1.2.4__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (18) hide show
  1. {karakeep_python_api-1.2.3/karakeep_python_api.egg-info → karakeep_python_api-1.2.4}/PKG-INFO +13 -10
  2. {karakeep_python_api-1.2.3 → karakeep_python_api-1.2.4}/README.md +12 -9
  3. {karakeep_python_api-1.2.3 → karakeep_python_api-1.2.4}/karakeep_python_api/karakeep_api.py +60 -5
  4. {karakeep_python_api-1.2.3 → karakeep_python_api-1.2.4}/karakeep_python_api/openapi_reference.json +172 -5
  5. {karakeep_python_api-1.2.3 → karakeep_python_api-1.2.4/karakeep_python_api.egg-info}/PKG-INFO +13 -10
  6. {karakeep_python_api-1.2.3 → karakeep_python_api-1.2.4}/setup.py +1 -1
  7. {karakeep_python_api-1.2.3 → karakeep_python_api-1.2.4}/LICENSE +0 -0
  8. {karakeep_python_api-1.2.3 → karakeep_python_api-1.2.4}/MANIFEST.in +0 -0
  9. {karakeep_python_api-1.2.3 → karakeep_python_api-1.2.4}/karakeep_python_api/__init__.py +0 -0
  10. {karakeep_python_api-1.2.3 → karakeep_python_api-1.2.4}/karakeep_python_api/__main__.py +0 -0
  11. {karakeep_python_api-1.2.3 → karakeep_python_api-1.2.4}/karakeep_python_api/datatypes.py +0 -0
  12. {karakeep_python_api-1.2.3 → karakeep_python_api-1.2.4}/karakeep_python_api.egg-info/SOURCES.txt +0 -0
  13. {karakeep_python_api-1.2.3 → karakeep_python_api-1.2.4}/karakeep_python_api.egg-info/dependency_links.txt +0 -0
  14. {karakeep_python_api-1.2.3 → karakeep_python_api-1.2.4}/karakeep_python_api.egg-info/entry_points.txt +0 -0
  15. {karakeep_python_api-1.2.3 → karakeep_python_api-1.2.4}/karakeep_python_api.egg-info/requires.txt +0 -0
  16. {karakeep_python_api-1.2.3 → karakeep_python_api-1.2.4}/karakeep_python_api.egg-info/top_level.txt +0 -0
  17. {karakeep_python_api-1.2.3 → karakeep_python_api-1.2.4}/setup.cfg +0 -0
  18. {karakeep_python_api-1.2.3 → karakeep_python_api-1.2.4}/tests/test_karakeep_api.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: karakeep_python_api
3
- Version: 1.2.3
3
+ Version: 1.2.4
4
4
  Summary: Community python client for the Karakeep API.
5
5
  Home-page: https://github.com/thiswillbeyourgithub/karakeep_python_api/
6
6
  License: GPLv3
@@ -116,6 +116,7 @@ Methods or CLI commands marked with ❌ should be used with caution as their beh
116
116
  | `get_a_single_asset` | ✅ | ❌ | Tested in PDF asset lifecycle test. |
117
117
  | `get_current_user_info` | ✅ | ❌ | Pytest: Tested indirectly during client init. CLI not directly tested. |
118
118
  | `get_current_user_stats` | ✅ | ✅ | |
119
+ | `update_user` | ❌ | ❌ | |
119
120
 
120
121
  ## Installation
121
122
 
@@ -248,15 +249,17 @@ Community Scripts are a bunch of scripts made to solve specific issues. They are
248
249
 
249
250
  They can be found in the [./community_scripts](https://github.com/thiswillbeyourgithub/karakeep_python_api/tree/main/community_scripts) folder. Don't hesitate to submit yours, the contribution guidelines are in the community_scripts directory README.md file.
250
251
 
251
- | Community Script | Description | Documentation |
252
- |----------------|--------------------------------------------------------------------------------------------------------------|---------------|
253
- | **Karakeep-Time-Tagger** | Automatically adds time-to-read tags (`0-5m`, `5-10m`, etc.) to bookmarks based on content length analysis. Includes systemd service and timer files for automated periodic execution. | [`Link`](https://github.com/thiswillbeyourgithub/karakeep_python_api/tree/main/community_scripts/karakeep-time-tagger) |
254
- | **Karakeep-List-To-Tag** | Converts a Karakeep list into tags by adding a specified tag to all bookmarks within that list. | [`Link`](https://github.com/thiswillbeyourgithub/karakeep_python_api/tree/main/community_scripts/karakeep-list-to-tag) |
255
- | **Omnivore2Karakeep-Highlights** | Imports highlights from Omnivore export data to Karakeep, with intelligent position detection and bookmark matching. Supports dry-run mode for testing. | [`Link`](https://github.com/thiswillbeyourgithub/karakeep_python_api/tree/main/community_scripts/omnivore2karakeep-highlights) |
256
- | **Omnivore2Karakeep-Archived** | (Should not be needed anymore) Fixes the archived status of bookmarks imported from Omnivore by reading export data and updating Karakeep accordingly. | [`Link`](https://github.com/thiswillbeyourgithub/karakeep_python_api/tree/main/community_scripts/omnivore2karakeep-archived) |
257
- | **pocket2karakeep-archived** by [@youenchene](https://github.com/youenchene) | (Should not be needed anymore) Fixes the archived status of bookmarks imported from Pocket by reading export data and updating Karakeep accordingly. | [`Link`](https://github.com/thiswillbeyourgithub/karakeep_python_api/tree/main/community_scripts/pocket2karakeep-archived) |
258
- | **Karakeep-Archive-Before-Date** by [@youenchene](https://github.com/youenchene) | Allow you to archive all not archived post before a given date | [`Link`](https://github.com/thiswillbeyourgithub/karakeep_python_api/tree/main/community_scripts/karakeep-archive-before-date) |
259
- | **Freshrss-To-Karakeep** | Syncs some links from Freshrss to Karakeep | [`Link`](https://github.com/thiswillbeyourgithub/freshrss_to_karakeep) |
252
+ | Community Script | Description |
253
+ |----------------|--------------------------------------------------------------------------------------------------------------|
254
+ | [Karakeep-Time-Tagger](https://github.com/thiswillbeyourgithub/karakeep_python_api/tree/main/community_scripts/karakeep-time-tagger) | Automatically adds time-to-read tags (`0-5m`, `5-10m`, etc.) to bookmarks based on content length analysis. Includes systemd service and timer files for automated periodic execution. |
255
+ | [Karakeep-List-To-Tag](https://github.com/thiswillbeyourgithub/karakeep_python_api/tree/main/community_scripts/karakeep-list-to-tag) | Converts a Karakeep list into tags by adding a specified tag to all bookmarks within that list. |
256
+ | [Omnivore2Karakeep-Highlights](https://github.com/thiswillbeyourgithub/karakeep_python_api/tree/main/community_scripts/omnivore2karakeep-highlights) | Imports highlights from Omnivore export data to Karakeep, with intelligent position detection and bookmark matching. Supports dry-run mode for testing. |
257
+ | [Omnivore2Karakeep-Archived](https://github.com/thiswillbeyourgithub/karakeep_python_api/tree/main/community_scripts/omnivore2karakeep-archived) | (Should not be needed anymore) Fixes the archived status of bookmarks imported from Omnivore by reading export data and updating Karakeep accordingly. |
258
+ | [pocket2karakeep-archived](https://github.com/thiswillbeyourgithub/karakeep_python_api/tree/main/community_scripts/pocket2karakeep-archived) by [@youenchene](https://github.com/youenchene) | (Should not be needed anymore) Fixes the archived status of bookmarks imported from Pocket by reading export data and updating Karakeep accordingly. |
259
+ | [Karakeep-Archive-Before-Date](https://github.com/thiswillbeyourgithub/karakeep_python_api/tree/main/community_scripts/karakeep-archive-before-date) by [@youenchene](https://github.com/youenchene) | Allow you to archive all not archived post before a given date |
260
+ | [Freshrss-To-Karakeep](https://github.com/thiswillbeyourgithub/freshrss_to_karakeep) | Syncs some links from Freshrss to Karakeep |
261
+ | [Karanki (WIP)](https://github.com/thiswillbeyourgithub/Karanki) | Bidirectional sync between anki notes and highlights |
262
+ | [Karakeep-remove-ai-tags](https://github.com/thiswillbeyourgithub/karakeep_python_api/tree/main/community_scripts/karakeep-remove-ai-tags) by [@youenchene](https://github.com/youenchene) | Remove all tags attached by AI and not human attached |
260
263
 
261
264
  ## Development
262
265
 
@@ -81,6 +81,7 @@ Methods or CLI commands marked with ❌ should be used with caution as their beh
81
81
  | `get_a_single_asset` | ✅ | ❌ | Tested in PDF asset lifecycle test. |
82
82
  | `get_current_user_info` | ✅ | ❌ | Pytest: Tested indirectly during client init. CLI not directly tested. |
83
83
  | `get_current_user_stats` | ✅ | ✅ | |
84
+ | `update_user` | ❌ | ❌ | |
84
85
 
85
86
  ## Installation
86
87
 
@@ -213,15 +214,17 @@ Community Scripts are a bunch of scripts made to solve specific issues. They are
213
214
 
214
215
  They can be found in the [./community_scripts](https://github.com/thiswillbeyourgithub/karakeep_python_api/tree/main/community_scripts) folder. Don't hesitate to submit yours, the contribution guidelines are in the community_scripts directory README.md file.
215
216
 
216
- | Community Script | Description | Documentation |
217
- |----------------|--------------------------------------------------------------------------------------------------------------|---------------|
218
- | **Karakeep-Time-Tagger** | Automatically adds time-to-read tags (`0-5m`, `5-10m`, etc.) to bookmarks based on content length analysis. Includes systemd service and timer files for automated periodic execution. | [`Link`](https://github.com/thiswillbeyourgithub/karakeep_python_api/tree/main/community_scripts/karakeep-time-tagger) |
219
- | **Karakeep-List-To-Tag** | Converts a Karakeep list into tags by adding a specified tag to all bookmarks within that list. | [`Link`](https://github.com/thiswillbeyourgithub/karakeep_python_api/tree/main/community_scripts/karakeep-list-to-tag) |
220
- | **Omnivore2Karakeep-Highlights** | Imports highlights from Omnivore export data to Karakeep, with intelligent position detection and bookmark matching. Supports dry-run mode for testing. | [`Link`](https://github.com/thiswillbeyourgithub/karakeep_python_api/tree/main/community_scripts/omnivore2karakeep-highlights) |
221
- | **Omnivore2Karakeep-Archived** | (Should not be needed anymore) Fixes the archived status of bookmarks imported from Omnivore by reading export data and updating Karakeep accordingly. | [`Link`](https://github.com/thiswillbeyourgithub/karakeep_python_api/tree/main/community_scripts/omnivore2karakeep-archived) |
222
- | **pocket2karakeep-archived** by [@youenchene](https://github.com/youenchene) | (Should not be needed anymore) Fixes the archived status of bookmarks imported from Pocket by reading export data and updating Karakeep accordingly. | [`Link`](https://github.com/thiswillbeyourgithub/karakeep_python_api/tree/main/community_scripts/pocket2karakeep-archived) |
223
- | **Karakeep-Archive-Before-Date** by [@youenchene](https://github.com/youenchene) | Allow you to archive all not archived post before a given date | [`Link`](https://github.com/thiswillbeyourgithub/karakeep_python_api/tree/main/community_scripts/karakeep-archive-before-date) |
224
- | **Freshrss-To-Karakeep** | Syncs some links from Freshrss to Karakeep | [`Link`](https://github.com/thiswillbeyourgithub/freshrss_to_karakeep) |
217
+ | Community Script | Description |
218
+ |----------------|--------------------------------------------------------------------------------------------------------------|
219
+ | [Karakeep-Time-Tagger](https://github.com/thiswillbeyourgithub/karakeep_python_api/tree/main/community_scripts/karakeep-time-tagger) | Automatically adds time-to-read tags (`0-5m`, `5-10m`, etc.) to bookmarks based on content length analysis. Includes systemd service and timer files for automated periodic execution. |
220
+ | [Karakeep-List-To-Tag](https://github.com/thiswillbeyourgithub/karakeep_python_api/tree/main/community_scripts/karakeep-list-to-tag) | Converts a Karakeep list into tags by adding a specified tag to all bookmarks within that list. |
221
+ | [Omnivore2Karakeep-Highlights](https://github.com/thiswillbeyourgithub/karakeep_python_api/tree/main/community_scripts/omnivore2karakeep-highlights) | Imports highlights from Omnivore export data to Karakeep, with intelligent position detection and bookmark matching. Supports dry-run mode for testing. |
222
+ | [Omnivore2Karakeep-Archived](https://github.com/thiswillbeyourgithub/karakeep_python_api/tree/main/community_scripts/omnivore2karakeep-archived) | (Should not be needed anymore) Fixes the archived status of bookmarks imported from Omnivore by reading export data and updating Karakeep accordingly. |
223
+ | [pocket2karakeep-archived](https://github.com/thiswillbeyourgithub/karakeep_python_api/tree/main/community_scripts/pocket2karakeep-archived) by [@youenchene](https://github.com/youenchene) | (Should not be needed anymore) Fixes the archived status of bookmarks imported from Pocket by reading export data and updating Karakeep accordingly. |
224
+ | [Karakeep-Archive-Before-Date](https://github.com/thiswillbeyourgithub/karakeep_python_api/tree/main/community_scripts/karakeep-archive-before-date) by [@youenchene](https://github.com/youenchene) | Allow you to archive all not archived post before a given date |
225
+ | [Freshrss-To-Karakeep](https://github.com/thiswillbeyourgithub/freshrss_to_karakeep) | Syncs some links from Freshrss to Karakeep |
226
+ | [Karanki (WIP)](https://github.com/thiswillbeyourgithub/Karanki) | Bidirectional sync between anki notes and highlights |
227
+ | [Karakeep-remove-ai-tags](https://github.com/thiswillbeyourgithub/karakeep_python_api/tree/main/community_scripts/karakeep-remove-ai-tags) by [@youenchene](https://github.com/youenchene) | Remove all tags attached by AI and not human attached |
225
228
 
226
229
  ## Development
227
230
 
@@ -85,7 +85,7 @@ class KarakeepAPI:
85
85
  """
86
86
 
87
87
  # Version reflects the client library version, updated by bumpver
88
- VERSION: str = "1.2.3"
88
+ VERSION: str = "1.2.4"
89
89
 
90
90
  def __init__(
91
91
  self,
@@ -757,6 +757,7 @@ class KarakeepAPI:
757
757
  note: Optional[str] = None,
758
758
  summary: Optional[str] = None,
759
759
  createdAt: Optional[str] = None, # ISO 8601 format string
760
+ crawlPriority: Optional[Literal["low", "normal"]] = None,
760
761
  # Link specific
761
762
  url: Optional[str] = None,
762
763
  precrawledArchiveId: Optional[str] = None,
@@ -781,6 +782,7 @@ class KarakeepAPI:
781
782
  note: Optional note content for the bookmark.
782
783
  summary: Optional summary content for the bookmark.
783
784
  createdAt: Optional creation timestamp override (ISO 8601 format string).
785
+ crawlPriority: Optional either 'low' or 'normal'.
784
786
 
785
787
  --- Link Type Specific ---
786
788
  url: The URL for the link bookmark. Required if type='link'.
@@ -821,6 +823,8 @@ class KarakeepAPI:
821
823
  request_body["summary"] = summary
822
824
  if createdAt is not None:
823
825
  request_body["createdAt"] = createdAt
826
+ if crawlPriority is not None:
827
+ request_body["crawlPriority"] = crawlPriority
824
828
 
825
829
  # Add type-specific fields and perform validation
826
830
  if type == "link":
@@ -1361,7 +1365,7 @@ class KarakeepAPI:
1361
1365
  Create a new list (manual or smart). Corresponds to POST /lists.
1362
1366
 
1363
1367
  Args:
1364
- name: The name of the list (required, max 40 characters).
1368
+ name: The name of the list (required, max 100 characters).
1365
1369
  icon: The icon for the list (required).
1366
1370
  description: Optional description for the list (max 100 characters).
1367
1371
  parent_id: Optional parent list ID for nested lists.
@@ -1470,8 +1474,8 @@ class KarakeepAPI:
1470
1474
 
1471
1475
  Args:
1472
1476
  list_id: The ID (string) of the list to update.
1473
- name: Optional new name for the list (1-40 characters).
1474
- description: Optional new description for the list (0-100 characters, can be None to clear).
1477
+ name: Optional new name for the list (1-100 characters).
1478
+ description: Optional new description for the list (0-500 characters, can be None to clear).
1475
1479
  icon: Optional new icon for the list.
1476
1480
  parent_id: Optional new parent list ID (can be None to remove parent relationship).
1477
1481
  query: Optional new query string for smart lists (minimum 1 character).
@@ -1966,7 +1970,7 @@ class KarakeepAPI:
1966
1970
  Get information about the current authenticated user. Corresponds to GET /users/me.
1967
1971
 
1968
1972
  Returns:
1969
- dict: A dictionary containing user information ('id', 'name', 'email').
1973
+ dict: A dictionary containing user information ('id', 'name', 'email', 'localUser').
1970
1974
  Validation is not performed on this response type by default.
1971
1975
 
1972
1976
  Raises:
@@ -1992,6 +1996,57 @@ class KarakeepAPI:
1992
1996
  # No Pydantic validation applied here as the spec defines a simple dict response
1993
1997
  return response_data
1994
1998
 
1999
+ @optional_typecheck
2000
+ def update_user(
2001
+ self,
2002
+ user_id: str,
2003
+ role: Optional[Literal["user", "admin"]] = None,
2004
+ bookmark_quota: Optional[int] = None,
2005
+ storage_quota: Optional[int] = None,
2006
+ browser_crawling_enabled: Optional[bool] = None,
2007
+ ) -> Dict[str, Any]:
2008
+ """
2009
+ Update a user's role, bookmark quota, or storage quota. Admin access required.
2010
+ Corresponds to PUT /admin/users/{userId}.
2011
+
2012
+ Args:
2013
+ user_id: The ID of the user to update.
2014
+ role: Optional new role for the user ("user", "admin").
2015
+ bookmark_quota: Optional new bookmark quota (minimum 0, can be None for unlimited).
2016
+ storage_quota: Optional new storage quota in bytes (minimum 0, can be None for unlimited).
2017
+ browser_crawling_enabled: Optional boolean to enable/disable browser crawling for the user.
2018
+
2019
+ Returns:
2020
+ dict: A dictionary containing success status.
2021
+ Example: `{"success": True}`
2022
+ Validation is not performed on this response type by default.
2023
+
2024
+ Raises:
2025
+ ValueError: If no fields are provided to update.
2026
+ APIError: If the API request fails (e.g., 400 bad request, 401 unauthorized, 403 forbidden, 404 user not found).
2027
+ """
2028
+ # Construct update_data from provided arguments, excluding None values
2029
+ update_data = {}
2030
+ if role is not None:
2031
+ update_data["role"] = role
2032
+ if bookmark_quota is not None:
2033
+ update_data["bookmarkQuota"] = bookmark_quota
2034
+ if storage_quota is not None:
2035
+ update_data["storageQuota"] = storage_quota
2036
+ if browser_crawling_enabled is not None:
2037
+ update_data["browserCrawlingEnabled"] = browser_crawling_enabled
2038
+
2039
+ # Ensure at least one field is being updated
2040
+ if not update_data:
2041
+ raise ValueError("At least one field must be provided to update.")
2042
+
2043
+ endpoint = f"admin/users/{user_id}"
2044
+ response_data = self._call("PUT", endpoint, data=update_data)
2045
+
2046
+ # Response schema is a simple dict with success field, return as dict
2047
+ # No Pydantic validation applied here as the spec defines a simple dict response
2048
+ return response_data
2049
+
1995
2050
  @optional_typecheck
1996
2051
  def upload_a_new_asset(
1997
2052
  self, file: str
@@ -686,6 +686,13 @@
686
686
  "createdAt": {
687
687
  "type": "string",
688
688
  "nullable": true
689
+ },
690
+ "crawlPriority": {
691
+ "type": "string",
692
+ "enum": [
693
+ "low",
694
+ "normal"
695
+ ]
689
696
  }
690
697
  }
691
698
  },
@@ -1806,12 +1813,12 @@
1806
1813
  "name": {
1807
1814
  "type": "string",
1808
1815
  "minLength": 1,
1809
- "maxLength": 40
1816
+ "maxLength": 100
1810
1817
  },
1811
1818
  "description": {
1812
1819
  "type": "string",
1813
1820
  "minLength": 0,
1814
- "maxLength": 100
1821
+ "maxLength": 500
1815
1822
  },
1816
1823
  "icon": {
1817
1824
  "type": "string"
@@ -1999,13 +2006,13 @@
1999
2006
  "name": {
2000
2007
  "type": "string",
2001
2008
  "minLength": 1,
2002
- "maxLength": 40
2009
+ "maxLength": 100
2003
2010
  },
2004
2011
  "description": {
2005
2012
  "type": "string",
2006
2013
  "nullable": true,
2007
2014
  "minLength": 0,
2008
- "maxLength": 100
2015
+ "maxLength": 500
2009
2016
  },
2010
2017
  "icon": {
2011
2018
  "type": "string"
@@ -2996,10 +3003,14 @@
2996
3003
  "email": {
2997
3004
  "type": "string",
2998
3005
  "nullable": true
3006
+ },
3007
+ "localUser": {
3008
+ "type": "boolean"
2999
3009
  }
3000
3010
  },
3001
3011
  "required": [
3002
- "id"
3012
+ "id",
3013
+ "localUser"
3003
3014
  ]
3004
3015
  }
3005
3016
  }
@@ -3274,6 +3285,162 @@
3274
3285
  }
3275
3286
  }
3276
3287
  }
3288
+ },
3289
+ "/admin/users/{userId}": {
3290
+ "put": {
3291
+ "description": "Update a user's role, bookmark quota, or storage quota. Admin access required.",
3292
+ "summary": "Update user",
3293
+ "tags": [
3294
+ "Admin"
3295
+ ],
3296
+ "security": [
3297
+ {
3298
+ "bearerAuth": []
3299
+ }
3300
+ ],
3301
+ "parameters": [
3302
+ {
3303
+ "schema": {
3304
+ "type": "string",
3305
+ "description": "The ID of the user to update",
3306
+ "example": "user_123"
3307
+ },
3308
+ "required": true,
3309
+ "name": "userId",
3310
+ "in": "path"
3311
+ }
3312
+ ],
3313
+ "requestBody": {
3314
+ "content": {
3315
+ "application/json": {
3316
+ "schema": {
3317
+ "type": "object",
3318
+ "properties": {
3319
+ "role": {
3320
+ "type": "string",
3321
+ "enum": [
3322
+ "user",
3323
+ "admin"
3324
+ ]
3325
+ },
3326
+ "bookmarkQuota": {
3327
+ "type": "integer",
3328
+ "nullable": true,
3329
+ "minimum": 0
3330
+ },
3331
+ "storageQuota": {
3332
+ "type": "integer",
3333
+ "nullable": true,
3334
+ "minimum": 0
3335
+ },
3336
+ "browserCrawlingEnabled": {
3337
+ "type": "boolean",
3338
+ "nullable": true
3339
+ }
3340
+ },
3341
+ "description": "User update data",
3342
+ "example": {
3343
+ "role": "admin",
3344
+ "bookmarkQuota": 1000,
3345
+ "storageQuota": 5000000000
3346
+ }
3347
+ }
3348
+ }
3349
+ }
3350
+ },
3351
+ "responses": {
3352
+ "200": {
3353
+ "description": "User updated successfully",
3354
+ "content": {
3355
+ "application/json": {
3356
+ "schema": {
3357
+ "type": "object",
3358
+ "properties": {
3359
+ "success": {
3360
+ "type": "boolean"
3361
+ }
3362
+ },
3363
+ "required": [
3364
+ "success"
3365
+ ]
3366
+ }
3367
+ }
3368
+ }
3369
+ },
3370
+ "400": {
3371
+ "description": "Bad request - Invalid input data or cannot update own user",
3372
+ "content": {
3373
+ "application/json": {
3374
+ "schema": {
3375
+ "type": "object",
3376
+ "properties": {
3377
+ "error": {
3378
+ "type": "string"
3379
+ }
3380
+ },
3381
+ "required": [
3382
+ "error"
3383
+ ]
3384
+ }
3385
+ }
3386
+ }
3387
+ },
3388
+ "401": {
3389
+ "description": "Unauthorized - Authentication required",
3390
+ "content": {
3391
+ "application/json": {
3392
+ "schema": {
3393
+ "type": "object",
3394
+ "properties": {
3395
+ "error": {
3396
+ "type": "string"
3397
+ }
3398
+ },
3399
+ "required": [
3400
+ "error"
3401
+ ]
3402
+ }
3403
+ }
3404
+ }
3405
+ },
3406
+ "403": {
3407
+ "description": "Forbidden - Admin access required",
3408
+ "content": {
3409
+ "application/json": {
3410
+ "schema": {
3411
+ "type": "object",
3412
+ "properties": {
3413
+ "error": {
3414
+ "type": "string"
3415
+ }
3416
+ },
3417
+ "required": [
3418
+ "error"
3419
+ ]
3420
+ }
3421
+ }
3422
+ }
3423
+ },
3424
+ "404": {
3425
+ "description": "User not found",
3426
+ "content": {
3427
+ "application/json": {
3428
+ "schema": {
3429
+ "type": "object",
3430
+ "properties": {
3431
+ "error": {
3432
+ "type": "string"
3433
+ }
3434
+ },
3435
+ "required": [
3436
+ "error"
3437
+ ]
3438
+ }
3439
+ }
3440
+ }
3441
+ }
3442
+ }
3443
+ }
3277
3444
  }
3278
3445
  }
3279
3446
  }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: karakeep_python_api
3
- Version: 1.2.3
3
+ Version: 1.2.4
4
4
  Summary: Community python client for the Karakeep API.
5
5
  Home-page: https://github.com/thiswillbeyourgithub/karakeep_python_api/
6
6
  License: GPLv3
@@ -116,6 +116,7 @@ Methods or CLI commands marked with ❌ should be used with caution as their beh
116
116
  | `get_a_single_asset` | ✅ | ❌ | Tested in PDF asset lifecycle test. |
117
117
  | `get_current_user_info` | ✅ | ❌ | Pytest: Tested indirectly during client init. CLI not directly tested. |
118
118
  | `get_current_user_stats` | ✅ | ✅ | |
119
+ | `update_user` | ❌ | ❌ | |
119
120
 
120
121
  ## Installation
121
122
 
@@ -248,15 +249,17 @@ Community Scripts are a bunch of scripts made to solve specific issues. They are
248
249
 
249
250
  They can be found in the [./community_scripts](https://github.com/thiswillbeyourgithub/karakeep_python_api/tree/main/community_scripts) folder. Don't hesitate to submit yours, the contribution guidelines are in the community_scripts directory README.md file.
250
251
 
251
- | Community Script | Description | Documentation |
252
- |----------------|--------------------------------------------------------------------------------------------------------------|---------------|
253
- | **Karakeep-Time-Tagger** | Automatically adds time-to-read tags (`0-5m`, `5-10m`, etc.) to bookmarks based on content length analysis. Includes systemd service and timer files for automated periodic execution. | [`Link`](https://github.com/thiswillbeyourgithub/karakeep_python_api/tree/main/community_scripts/karakeep-time-tagger) |
254
- | **Karakeep-List-To-Tag** | Converts a Karakeep list into tags by adding a specified tag to all bookmarks within that list. | [`Link`](https://github.com/thiswillbeyourgithub/karakeep_python_api/tree/main/community_scripts/karakeep-list-to-tag) |
255
- | **Omnivore2Karakeep-Highlights** | Imports highlights from Omnivore export data to Karakeep, with intelligent position detection and bookmark matching. Supports dry-run mode for testing. | [`Link`](https://github.com/thiswillbeyourgithub/karakeep_python_api/tree/main/community_scripts/omnivore2karakeep-highlights) |
256
- | **Omnivore2Karakeep-Archived** | (Should not be needed anymore) Fixes the archived status of bookmarks imported from Omnivore by reading export data and updating Karakeep accordingly. | [`Link`](https://github.com/thiswillbeyourgithub/karakeep_python_api/tree/main/community_scripts/omnivore2karakeep-archived) |
257
- | **pocket2karakeep-archived** by [@youenchene](https://github.com/youenchene) | (Should not be needed anymore) Fixes the archived status of bookmarks imported from Pocket by reading export data and updating Karakeep accordingly. | [`Link`](https://github.com/thiswillbeyourgithub/karakeep_python_api/tree/main/community_scripts/pocket2karakeep-archived) |
258
- | **Karakeep-Archive-Before-Date** by [@youenchene](https://github.com/youenchene) | Allow you to archive all not archived post before a given date | [`Link`](https://github.com/thiswillbeyourgithub/karakeep_python_api/tree/main/community_scripts/karakeep-archive-before-date) |
259
- | **Freshrss-To-Karakeep** | Syncs some links from Freshrss to Karakeep | [`Link`](https://github.com/thiswillbeyourgithub/freshrss_to_karakeep) |
252
+ | Community Script | Description |
253
+ |----------------|--------------------------------------------------------------------------------------------------------------|
254
+ | [Karakeep-Time-Tagger](https://github.com/thiswillbeyourgithub/karakeep_python_api/tree/main/community_scripts/karakeep-time-tagger) | Automatically adds time-to-read tags (`0-5m`, `5-10m`, etc.) to bookmarks based on content length analysis. Includes systemd service and timer files for automated periodic execution. |
255
+ | [Karakeep-List-To-Tag](https://github.com/thiswillbeyourgithub/karakeep_python_api/tree/main/community_scripts/karakeep-list-to-tag) | Converts a Karakeep list into tags by adding a specified tag to all bookmarks within that list. |
256
+ | [Omnivore2Karakeep-Highlights](https://github.com/thiswillbeyourgithub/karakeep_python_api/tree/main/community_scripts/omnivore2karakeep-highlights) | Imports highlights from Omnivore export data to Karakeep, with intelligent position detection and bookmark matching. Supports dry-run mode for testing. |
257
+ | [Omnivore2Karakeep-Archived](https://github.com/thiswillbeyourgithub/karakeep_python_api/tree/main/community_scripts/omnivore2karakeep-archived) | (Should not be needed anymore) Fixes the archived status of bookmarks imported from Omnivore by reading export data and updating Karakeep accordingly. |
258
+ | [pocket2karakeep-archived](https://github.com/thiswillbeyourgithub/karakeep_python_api/tree/main/community_scripts/pocket2karakeep-archived) by [@youenchene](https://github.com/youenchene) | (Should not be needed anymore) Fixes the archived status of bookmarks imported from Pocket by reading export data and updating Karakeep accordingly. |
259
+ | [Karakeep-Archive-Before-Date](https://github.com/thiswillbeyourgithub/karakeep_python_api/tree/main/community_scripts/karakeep-archive-before-date) by [@youenchene](https://github.com/youenchene) | Allow you to archive all not archived post before a given date |
260
+ | [Freshrss-To-Karakeep](https://github.com/thiswillbeyourgithub/freshrss_to_karakeep) | Syncs some links from Freshrss to Karakeep |
261
+ | [Karanki (WIP)](https://github.com/thiswillbeyourgithub/Karanki) | Bidirectional sync between anki notes and highlights |
262
+ | [Karakeep-remove-ai-tags](https://github.com/thiswillbeyourgithub/karakeep_python_api/tree/main/community_scripts/karakeep-remove-ai-tags) by [@youenchene](https://github.com/youenchene) | Remove all tags attached by AI and not human attached |
260
263
 
261
264
  ## Development
262
265
 
@@ -7,7 +7,7 @@ with open("README.md", "r") as readme:
7
7
 
8
8
  setup(
9
9
  name="karakeep_python_api",
10
- version="1.2.3",
10
+ version="1.2.4",
11
11
  description="Community python client for the Karakeep API.", # Simplified description
12
12
  long_description=long_description,
13
13
  long_description_content_type="text/markdown",