nc-py-api 0.22.0__tar.gz → 0.23.0__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 (54) hide show
  1. {nc_py_api-0.22.0 → nc_py_api-0.23.0}/CHANGELOG.md +16 -0
  2. {nc_py_api-0.22.0 → nc_py_api-0.23.0}/PKG-INFO +1 -1
  3. {nc_py_api-0.22.0 → nc_py_api-0.23.0}/nc_py_api/_version.py +1 -1
  4. {nc_py_api-0.22.0 → nc_py_api-0.23.0}/nc_py_api/ex_app/providers/task_processing.py +34 -0
  5. {nc_py_api-0.22.0 → nc_py_api-0.23.0}/nc_py_api/talk_bot.py +6 -0
  6. {nc_py_api-0.22.0 → nc_py_api-0.23.0}/.gitignore +0 -0
  7. {nc_py_api-0.22.0 → nc_py_api-0.23.0}/AUTHORS +0 -0
  8. {nc_py_api-0.22.0 → nc_py_api-0.23.0}/LICENSE.txt +0 -0
  9. {nc_py_api-0.22.0 → nc_py_api-0.23.0}/README.md +0 -0
  10. {nc_py_api-0.22.0 → nc_py_api-0.23.0}/nc_py_api/__init__.py +0 -0
  11. {nc_py_api-0.22.0 → nc_py_api-0.23.0}/nc_py_api/_deffered_error.py +0 -0
  12. {nc_py_api-0.22.0 → nc_py_api-0.23.0}/nc_py_api/_exceptions.py +0 -0
  13. {nc_py_api-0.22.0 → nc_py_api-0.23.0}/nc_py_api/_misc.py +0 -0
  14. {nc_py_api-0.22.0 → nc_py_api-0.23.0}/nc_py_api/_preferences.py +0 -0
  15. {nc_py_api-0.22.0 → nc_py_api-0.23.0}/nc_py_api/_preferences_ex.py +0 -0
  16. {nc_py_api-0.22.0 → nc_py_api-0.23.0}/nc_py_api/_session.py +0 -0
  17. {nc_py_api-0.22.0 → nc_py_api-0.23.0}/nc_py_api/_talk_api.py +0 -0
  18. {nc_py_api-0.22.0 → nc_py_api-0.23.0}/nc_py_api/_theming.py +0 -0
  19. {nc_py_api-0.22.0 → nc_py_api-0.23.0}/nc_py_api/activity.py +0 -0
  20. {nc_py_api-0.22.0 → nc_py_api-0.23.0}/nc_py_api/apps.py +0 -0
  21. {nc_py_api-0.22.0 → nc_py_api-0.23.0}/nc_py_api/calendar_api.py +0 -0
  22. {nc_py_api-0.22.0 → nc_py_api-0.23.0}/nc_py_api/ex_app/__init__.py +0 -0
  23. {nc_py_api-0.22.0 → nc_py_api-0.23.0}/nc_py_api/ex_app/defs.py +0 -0
  24. {nc_py_api-0.22.0 → nc_py_api-0.23.0}/nc_py_api/ex_app/integration_fastapi.py +0 -0
  25. {nc_py_api-0.22.0 → nc_py_api-0.23.0}/nc_py_api/ex_app/logger.py +0 -0
  26. {nc_py_api-0.22.0 → nc_py_api-0.23.0}/nc_py_api/ex_app/misc.py +0 -0
  27. {nc_py_api-0.22.0 → nc_py_api-0.23.0}/nc_py_api/ex_app/occ_commands.py +0 -0
  28. {nc_py_api-0.22.0 → nc_py_api-0.23.0}/nc_py_api/ex_app/persist_transformers_cache.py +0 -0
  29. {nc_py_api-0.22.0 → nc_py_api-0.23.0}/nc_py_api/ex_app/providers/__init__.py +0 -0
  30. {nc_py_api-0.22.0 → nc_py_api-0.23.0}/nc_py_api/ex_app/providers/providers.py +0 -0
  31. {nc_py_api-0.22.0 → nc_py_api-0.23.0}/nc_py_api/ex_app/ui/__init__.py +0 -0
  32. {nc_py_api-0.22.0 → nc_py_api-0.23.0}/nc_py_api/ex_app/ui/files_actions.py +0 -0
  33. {nc_py_api-0.22.0 → nc_py_api-0.23.0}/nc_py_api/ex_app/ui/resources.py +0 -0
  34. {nc_py_api-0.22.0 → nc_py_api-0.23.0}/nc_py_api/ex_app/ui/settings.py +0 -0
  35. {nc_py_api-0.22.0 → nc_py_api-0.23.0}/nc_py_api/ex_app/ui/top_menu.py +0 -0
  36. {nc_py_api-0.22.0 → nc_py_api-0.23.0}/nc_py_api/ex_app/ui/ui.py +0 -0
  37. {nc_py_api-0.22.0 → nc_py_api-0.23.0}/nc_py_api/ex_app/uvicorn_fastapi.py +0 -0
  38. {nc_py_api-0.22.0 → nc_py_api-0.23.0}/nc_py_api/files/__init__.py +0 -0
  39. {nc_py_api-0.22.0 → nc_py_api-0.23.0}/nc_py_api/files/_files.py +0 -0
  40. {nc_py_api-0.22.0 → nc_py_api-0.23.0}/nc_py_api/files/files.py +0 -0
  41. {nc_py_api-0.22.0 → nc_py_api-0.23.0}/nc_py_api/files/files_async.py +0 -0
  42. {nc_py_api-0.22.0 → nc_py_api-0.23.0}/nc_py_api/files/sharing.py +0 -0
  43. {nc_py_api-0.22.0 → nc_py_api-0.23.0}/nc_py_api/loginflow_v2.py +0 -0
  44. {nc_py_api-0.22.0 → nc_py_api-0.23.0}/nc_py_api/nextcloud.py +0 -0
  45. {nc_py_api-0.22.0 → nc_py_api-0.23.0}/nc_py_api/notes.py +0 -0
  46. {nc_py_api-0.22.0 → nc_py_api-0.23.0}/nc_py_api/notifications.py +0 -0
  47. {nc_py_api-0.22.0 → nc_py_api-0.23.0}/nc_py_api/options.py +0 -0
  48. {nc_py_api-0.22.0 → nc_py_api-0.23.0}/nc_py_api/talk.py +0 -0
  49. {nc_py_api-0.22.0 → nc_py_api-0.23.0}/nc_py_api/user_status.py +0 -0
  50. {nc_py_api-0.22.0 → nc_py_api-0.23.0}/nc_py_api/users.py +0 -0
  51. {nc_py_api-0.22.0 → nc_py_api-0.23.0}/nc_py_api/users_groups.py +0 -0
  52. {nc_py_api-0.22.0 → nc_py_api-0.23.0}/nc_py_api/weather_status.py +0 -0
  53. {nc_py_api-0.22.0 → nc_py_api-0.23.0}/nc_py_api/webhooks.py +0 -0
  54. {nc_py_api-0.22.0 → nc_py_api-0.23.0}/pyproject.toml +0 -0
@@ -2,6 +2,22 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file.
4
4
 
5
+ ## [0.23.0 - 2025-11-25]
6
+
7
+ ### Added
8
+
9
+ - TaskProcessing: Add next_task_batch endpoint (#383)
10
+
11
+ ### Fixed
12
+
13
+ - handle bot join messages properly to get conversation id and name (#385)
14
+
15
+ ## [0.22.0 - 2025-10-24]
16
+
17
+ ### Added
18
+
19
+ - TaskProcessing: Add trigger_handler to set_handlers() (#382)
20
+
5
21
  ## [0.21.1 - 2025-08-27]
6
22
 
7
23
  ### Changed
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nc-py-api
3
- Version: 0.22.0
3
+ Version: 0.23.0
4
4
  Summary: Nextcloud Python Framework
5
5
  Project-URL: Changelog, https://github.com/cloud-py-api/nc_py_api/blob/main/CHANGELOG.md
6
6
  Project-URL: Documentation, https://cloud-py-api.github.io/nc_py_api/
@@ -1,3 +1,3 @@
1
1
  """Version of nc_py_api."""
2
2
 
3
- __version__ = "0.22.0"
3
+ __version__ = "0.23.0"
@@ -142,6 +142,23 @@ class _TaskProcessingProviderAPI:
142
142
  return r
143
143
  return {}
144
144
 
145
+ def next_task_batch(
146
+ self, provider_ids: list[str], task_types: list[str], number_of_tasks: int
147
+ ) -> dict[str, typing.Any]:
148
+ """Get the next n task processing tasks from Nextcloud.
149
+
150
+ Available starting with Nextcloud 33
151
+ Returns: {tasks: [{task: Task, provider: string}], has_more: bool}
152
+ """
153
+ with contextlib.suppress(NextcloudException):
154
+ if r := self._session.ocs(
155
+ "GET",
156
+ "/ocs/v2.php/taskprocessing/tasks_provider/next_batch",
157
+ json={"providerIds": provider_ids, "taskTypeIds": task_types, "numberOfTasks": number_of_tasks},
158
+ ):
159
+ return r
160
+ return {"tasks": [], "has_more": False}
161
+
145
162
  def set_progress(self, task_id: int, progress: float) -> dict[str, typing.Any]:
146
163
  """Report new progress value of the task to Nextcloud. Progress should be in range from 0.0 to 100.0."""
147
164
  with contextlib.suppress(NextcloudException):
@@ -220,6 +237,23 @@ class _AsyncTaskProcessingProviderAPI:
220
237
  return r
221
238
  return {}
222
239
 
240
+ async def next_task_batch(
241
+ self, provider_ids: list[str], task_types: list[str], number_of_tasks: int
242
+ ) -> dict[str, typing.Any]:
243
+ """Get the next n task processing tasks from Nextcloud.
244
+
245
+ Available starting with Nextcloud 33
246
+ Returns: {tasks: [{task: Task, provider: string}], has_more: bool}
247
+ """
248
+ with contextlib.suppress(NextcloudException):
249
+ if r := await self._session.ocs(
250
+ "GET",
251
+ "/ocs/v2.php/taskprocessing/tasks_provider/next_batch",
252
+ json={"providerIds": provider_ids, "taskTypeIds": task_types, "numberOfTasks": number_of_tasks},
253
+ ):
254
+ return r
255
+ return {"tasks": [], "has_more": False}
256
+
223
257
  async def set_progress(self, task_id: int, progress: float) -> dict[str, typing.Any]:
224
258
  """Report new progress value of the task to Nextcloud. Progress should be in range from 0.0 to 100.0."""
225
259
  with contextlib.suppress(NextcloudException):
@@ -76,11 +76,17 @@ class TalkBotMessage:
76
76
 
77
77
  It can be used to react or reply to the given message.
78
78
  """
79
+ # bot join
80
+ if self.message_type == "Join":
81
+ return self._raw_data["object"]["id"]
79
82
  return self._raw_data["target"]["id"]
80
83
 
81
84
  @property
82
85
  def conversation_name(self) -> str:
83
86
  """The name of the conversation in which the message was posted."""
87
+ # bot join
88
+ if self.message_type == "Join":
89
+ return self._raw_data["object"]["name"]
84
90
  return self._raw_data["target"]["name"]
85
91
 
86
92
  def __repr__(self):
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes