Skip to content

Commit c8731e1

Browse files
authored
TranslationProvider: added detect_lang_callback_url param (#229)
Signed-off-by: Alexander Piskun <[email protected]>
1 parent 35ff268 commit c8731e1

File tree

3 files changed

+20
-1
lines changed

3 files changed

+20
-1
lines changed

CHANGELOG.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,16 @@
22

33
All notable changes to this project will be documented in this file.
44

5-
## [0.11.0 - 2024-0x-xx]
5+
## [0.11.0 - 2024-02-17]
66

77
### Added
88

99
- Files: `lock` and `unlock` methods, lock file information to `FsNode`. #227
1010

11+
### Fixed
12+
13+
- NextcloudApp: `MachineTranslation` provider registration - added optional `actionDetectLang` param. #229
14+
1115
## [0.10.0 - 2024-02-14]
1216

1317
### Added

nc_py_api/ex_app/providers/translations.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,11 @@ def action_handler(self) -> str:
4242
"""Relative ExApp url which will be called by Nextcloud."""
4343
return self._raw_data["action_handler"]
4444

45+
@property
46+
def action_handler_detect_lang(self) -> str:
47+
"""Relative ExApp url which will be called by Nextcloud to detect language."""
48+
return self._raw_data.get("action_detect_lang", "")
49+
4550
def __repr__(self):
4651
return f"<{self.__class__.__name__} name={self.name}, handler={self.action_handler}>"
4752

@@ -59,6 +64,7 @@ def register(
5964
callback_url: str,
6065
from_languages: dict[str, str],
6166
to_languages: dict[str, str],
67+
detect_lang_callback_url: str = "",
6268
) -> None:
6369
"""Registers or edit the Translations provider."""
6470
require_capabilities("app_api", self._session.capabilities)
@@ -68,6 +74,7 @@ def register(
6874
"fromLanguages": from_languages,
6975
"toLanguages": to_languages,
7076
"actionHandler": callback_url,
77+
"actionDetectLang": detect_lang_callback_url,
7178
}
7279
self._session.ocs("POST", f"{self._session.ae_url}/{_EP_SUFFIX}", json=params)
7380

@@ -114,6 +121,7 @@ async def register(
114121
callback_url: str,
115122
from_languages: dict[str, str],
116123
to_languages: dict[str, str],
124+
detect_lang_callback_url: str = "",
117125
) -> None:
118126
"""Registers or edit the Translations provider."""
119127
require_capabilities("app_api", await self._session.capabilities)
@@ -123,6 +131,7 @@ async def register(
123131
"fromLanguages": from_languages,
124132
"toLanguages": to_languages,
125133
"actionHandler": callback_url,
134+
"actionDetectLang": detect_lang_callback_url,
126135
}
127136
await self._session.ocs("POST", f"{self._session.ae_url}/{_EP_SUFFIX}", json=params)
128137

tests/actual_tests/translation_provider_test.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,19 +21,22 @@ def test_translation_provider(nc_app):
2121
assert result.action_handler == "some_url"
2222
assert result.from_languages == FROM_LANG1
2323
assert result.to_languages == TO_LANG1
24+
assert result.action_handler_detect_lang == ""
2425
nc_app.providers.translations.register(
2526
"test_id2",
2627
"Test #2 Prov",
2728
"some_url2",
2829
{"pl_PL": "Polish"},
2930
{"tr_TR": "Turkish"},
31+
"/detect_lang",
3032
)
3133
result2 = nc_app.providers.translations.get_entry("test_id2")
3234
assert result2.name == "test_id2"
3335
assert result2.display_name == "Test #2 Prov"
3436
assert result2.action_handler == "some_url2"
3537
assert result2.from_languages == {"pl_PL": "Polish"}
3638
assert result2.to_languages == {"tr_TR": "Turkish"}
39+
assert result2.action_handler_detect_lang == "detect_lang"
3740
nc_app.providers.translations.register(
3841
"test_id",
3942
"Renamed",
@@ -72,19 +75,22 @@ async def test_translation_async(anc_app):
7275
assert result.action_handler == "some_url"
7376
assert result.from_languages == FROM_LANG1
7477
assert result.to_languages == TO_LANG1
78+
assert result.action_handler_detect_lang == ""
7579
await anc_app.providers.translations.register(
7680
"test_id2",
7781
"Test #2 Prov",
7882
"some_url2",
7983
{"pl_PL": "Polish"},
8084
{"tr_TR": "Turkish"},
85+
"/detect_lang",
8186
)
8287
result2 = await anc_app.providers.translations.get_entry("test_id2")
8388
assert result2.name == "test_id2"
8489
assert result2.display_name == "Test #2 Prov"
8590
assert result2.action_handler == "some_url2"
8691
assert result2.from_languages == {"pl_PL": "Polish"}
8792
assert result2.to_languages == {"tr_TR": "Turkish"}
93+
assert result2.action_handler_detect_lang == "detect_lang"
8894
await anc_app.providers.translations.register(
8995
"test_id",
9096
"Renamed",

0 commit comments

Comments
 (0)