summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorMarcel Klehr <mklehr@gmx.net>2023-04-12 16:52:11 +0200
committerMarcel Klehr <mklehr@gmx.net>2023-04-12 16:52:11 +0200
commitef7ce88cee47ec7d05c43e55c166f8488667dc5d (patch)
treee1e41af7d7b7a179297a3937c2d234b1193fc7bd /lib
parent1833d932ef39bb77f59cee17f194fef7d768a67c (diff)
downloadnextcloud-server-ef7ce88cee47ec7d05c43e55c166f8488667dc5d.tar.gz
nextcloud-server-ef7ce88cee47ec7d05c43e55c166f8488667dc5d.zip
ISpeechToTextProvider#transcribeFile: Pass \OCP\Files\File instead of path
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
Diffstat (limited to 'lib')
-rw-r--r--lib/private/SpeechToText/SpeechToTextManager.php24
-rw-r--r--lib/public/SpeechToText/ISpeechToTextManager.php2
-rw-r--r--lib/public/SpeechToText/ISpeechToTextProvider.php3
3 files changed, 23 insertions, 6 deletions
diff --git a/lib/private/SpeechToText/SpeechToTextManager.php b/lib/private/SpeechToText/SpeechToTextManager.php
index 2e1733d0e36..7b50fa385c9 100644
--- a/lib/private/SpeechToText/SpeechToTextManager.php
+++ b/lib/private/SpeechToText/SpeechToTextManager.php
@@ -31,6 +31,9 @@ namespace OC\SpeechToText;
use InvalidArgumentException;
use OC\AppFramework\Bootstrap\Coordinator;
use OCP\BackgroundJob\IJobList;
+use OCP\Files\File;
+use OCP\Files\IRootFolder;
+use OCP\Files\NotFoundException;
use OCP\IServerContainer;
use OCP\PreConditionNotMetException;
use OCP\SpeechToText\ISpeechToTextManager;
@@ -49,6 +52,7 @@ class SpeechToTextManager implements ISpeechToTextManager {
private Coordinator $coordinator,
private LoggerInterface $logger,
private IJobList $jobList,
+ private IRootFolder $rootFolder,
) {
}
@@ -90,6 +94,14 @@ class SpeechToTextManager implements ISpeechToTextManager {
if (!$this->hasProviders()) {
throw new PreConditionNotMetException('No SpeechToText providers have been registered');
}
+ try {
+ $node = $this->rootFolder->get($path);
+ } catch (NotFoundException $e) {
+ throw new InvalidArgumentException('File does not exist: ' . $path);
+ }
+ if (!($node instanceof File)) {
+ throw new InvalidArgumentException('Path does not resolve to a file');
+ }
$this->jobList->add(TranscriptionJob::class, [ 'path' => $path, 'context' => $context]);
}
@@ -99,10 +111,14 @@ class SpeechToTextManager implements ISpeechToTextManager {
throw new PreConditionNotMetException('No SpeechToText providers have been registered');
}
- if (!file_exists($path)) {
- throw new InvalidArgumentException('File does not exist');
+ try {
+ $node = $this->rootFolder->get($path);
+ if (!($node instanceof File)) {
+ throw new InvalidArgumentException('Path does not resolve to a file');
+ }
+ return $provider->transcribeFile($node);
+ } catch (NotFoundException $e) {
+ throw new InvalidArgumentException('File does not exist: ' . $path);
}
-
- return $provider->transcribeFile($path);
}
}
diff --git a/lib/public/SpeechToText/ISpeechToTextManager.php b/lib/public/SpeechToText/ISpeechToTextManager.php
index 297be43e6db..7bcd60bce8c 100644
--- a/lib/public/SpeechToText/ISpeechToTextManager.php
+++ b/lib/public/SpeechToText/ISpeechToTextManager.php
@@ -43,7 +43,7 @@ interface ISpeechToTextManager {
* Will schedule a transcription process in the background. The result will become available
* with the \OCP\SpeechToText\Events\TranscriptionFinishedEvent
* You should add context information to the context array to re-identify the transcription result as
- * as belonging to your transcription request.
+ * belonging to your transcription request.
*
* @since 27.0.0
* @throws PreConditionNotMetException If no provider was registered but this method was still called
diff --git a/lib/public/SpeechToText/ISpeechToTextProvider.php b/lib/public/SpeechToText/ISpeechToTextProvider.php
index 3d739408bf5..c23b75c115e 100644
--- a/lib/public/SpeechToText/ISpeechToTextProvider.php
+++ b/lib/public/SpeechToText/ISpeechToTextProvider.php
@@ -26,6 +26,7 @@ declare(strict_types=1);
namespace OCP\SpeechToText;
+use OCP\Files\File;
use RuntimeException;
/**
@@ -41,5 +42,5 @@ interface ISpeechToTextProvider {
* @since 27.0.0
* @throws RuntimeException If the text could not be transcribed
*/
- public function transcribeFile(string $path): string;
+ public function transcribeFile(File $file): string;
}