diff --git a/CHANGELOG.md b/CHANGELOG.md index 1a4d4d82..8068bde6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,12 +2,16 @@ All notable changes to this project will be documented in this file. -## [0.11.0 - 2024-0x-xx] +## [0.11.0 - 2024-02-17] ### Added - Files: `lock` and `unlock` methods, lock file information to `FsNode`. #227 +### Fixed + +- NextcloudApp: `MachineTranslation` provider registration - added optional `actionDetectLang` param. #229 + ## [0.10.0 - 2024-02-14] ### Added diff --git a/nc_py_api/ex_app/providers/translations.py b/nc_py_api/ex_app/providers/translations.py index b8d11522..5b3b798f 100644 --- a/nc_py_api/ex_app/providers/translations.py +++ b/nc_py_api/ex_app/providers/translations.py @@ -42,6 +42,11 @@ def action_handler(self) -> str: """Relative ExApp url which will be called by Nextcloud.""" return self._raw_data["action_handler"] + @property + def action_handler_detect_lang(self) -> str: + """Relative ExApp url which will be called by Nextcloud to detect language.""" + return self._raw_data.get("action_detect_lang", "") + def __repr__(self): return f"<{self.__class__.__name__} name={self.name}, handler={self.action_handler}>" @@ -59,6 +64,7 @@ def register( callback_url: str, from_languages: dict[str, str], to_languages: dict[str, str], + detect_lang_callback_url: str = "", ) -> None: """Registers or edit the Translations provider.""" require_capabilities("app_api", self._session.capabilities) @@ -68,6 +74,7 @@ def register( "fromLanguages": from_languages, "toLanguages": to_languages, "actionHandler": callback_url, + "actionDetectLang": detect_lang_callback_url, } self._session.ocs("POST", f"{self._session.ae_url}/{_EP_SUFFIX}", json=params) @@ -114,6 +121,7 @@ async def register( callback_url: str, from_languages: dict[str, str], to_languages: dict[str, str], + detect_lang_callback_url: str = "", ) -> None: """Registers or edit the Translations provider.""" require_capabilities("app_api", await self._session.capabilities) @@ -123,6 +131,7 @@ async def register( "fromLanguages": from_languages, "toLanguages": to_languages, "actionHandler": callback_url, + "actionDetectLang": detect_lang_callback_url, } await self._session.ocs("POST", f"{self._session.ae_url}/{_EP_SUFFIX}", json=params) diff --git a/tests/actual_tests/translation_provider_test.py b/tests/actual_tests/translation_provider_test.py index 4693d921..85cdba07 100644 --- a/tests/actual_tests/translation_provider_test.py +++ b/tests/actual_tests/translation_provider_test.py @@ -21,12 +21,14 @@ def test_translation_provider(nc_app): assert result.action_handler == "some_url" assert result.from_languages == FROM_LANG1 assert result.to_languages == TO_LANG1 + assert result.action_handler_detect_lang == "" nc_app.providers.translations.register( "test_id2", "Test #2 Prov", "some_url2", {"pl_PL": "Polish"}, {"tr_TR": "Turkish"}, + "/detect_lang", ) result2 = nc_app.providers.translations.get_entry("test_id2") assert result2.name == "test_id2" @@ -34,6 +36,7 @@ def test_translation_provider(nc_app): assert result2.action_handler == "some_url2" assert result2.from_languages == {"pl_PL": "Polish"} assert result2.to_languages == {"tr_TR": "Turkish"} + assert result2.action_handler_detect_lang == "detect_lang" nc_app.providers.translations.register( "test_id", "Renamed", @@ -72,12 +75,14 @@ async def test_translation_async(anc_app): assert result.action_handler == "some_url" assert result.from_languages == FROM_LANG1 assert result.to_languages == TO_LANG1 + assert result.action_handler_detect_lang == "" await anc_app.providers.translations.register( "test_id2", "Test #2 Prov", "some_url2", {"pl_PL": "Polish"}, {"tr_TR": "Turkish"}, + "/detect_lang", ) result2 = await anc_app.providers.translations.get_entry("test_id2") assert result2.name == "test_id2" @@ -85,6 +90,7 @@ async def test_translation_async(anc_app): assert result2.action_handler == "some_url2" assert result2.from_languages == {"pl_PL": "Polish"} assert result2.to_languages == {"tr_TR": "Turkish"} + assert result2.action_handler_detect_lang == "detect_lang" await anc_app.providers.translations.register( "test_id", "Renamed",