diff --git a/package.json b/package.json index 34bde56cd..1d20fa367 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "calckey", - "version": "12.119.0-calc.5.1", + "version": "12.119.0-calc.6", "codename": "aqua", "repository": { "type": "git", diff --git a/packages/backend/package.json b/packages/backend/package.json index 4bf486fd4..33a5a503e 100644 --- a/packages/backend/package.json +++ b/packages/backend/package.json @@ -110,6 +110,7 @@ "summaly": "2.7.0", "syslog-pro": "1.0.0", "systeminformation": "5.12.11", + "tesseract.js": "^3.0.3", "tinycolor2": "1.4.2", "tmp": "0.2.1", "ts-loader": "9.4.1", diff --git a/packages/backend/src/server/api/endpoints.ts b/packages/backend/src/server/api/endpoints.ts index 08dfa44a1..263bf7c51 100644 --- a/packages/backend/src/server/api/endpoints.ts +++ b/packages/backend/src/server/api/endpoints.ts @@ -113,6 +113,7 @@ import * as ep___drive from './endpoints/drive.js'; import * as ep___drive_files from './endpoints/drive/files.js'; import * as ep___drive_files_attachedNotes from './endpoints/drive/files/attached-notes.js'; import * as ep___drive_files_checkExistence from './endpoints/drive/files/check-existence.js'; +import * as ep___drive_files_captionImage from './endpoints/drive/files/caption-image.js'; import * as ep___drive_files_create from './endpoints/drive/files/create.js'; import * as ep___drive_files_delete from './endpoints/drive/files/delete.js'; import * as ep___drive_files_findByHash from './endpoints/drive/files/find-by-hash.js'; @@ -434,6 +435,7 @@ const eps = [ ['drive', ep___drive], ['drive/files', ep___drive_files], ['drive/files/attached-notes', ep___drive_files_attachedNotes], + ['drive/files/caption-image', ep___drive_files_captionImage], ['drive/files/check-existence', ep___drive_files_checkExistence], ['drive/files/create', ep___drive_files_create], ['drive/files/delete', ep___drive_files_delete], diff --git a/packages/backend/src/server/api/endpoints/drive/files/caption-image.ts b/packages/backend/src/server/api/endpoints/drive/files/caption-image.ts new file mode 100644 index 000000000..81455a501 --- /dev/null +++ b/packages/backend/src/server/api/endpoints/drive/files/caption-image.ts @@ -0,0 +1,41 @@ +import define from '../../../define.js'; +import { createWorker } from 'tesseract.js'; + +export const meta = { + tags: ['drive'], + + requireCredential: true, + + kind: 'read:drive', + + description: 'Return caption of image', + + res: { + type: 'string', + optional: false, nullable: false, + }, +} as const; + +export const paramDef = { + type: 'object', + properties: { + url: { type: 'string' }, + }, + required: ['url'], +} as const; + +// eslint-disable-next-line import/no-default-export +export default define(meta, paramDef, async (ps) => { + + const worker = createWorker({ + logger: m => console.log(m) + }); + + await worker.load(); + await worker.loadLanguage('eng'); + await worker.initialize('eng'); + const { data: { text } } = await worker.recognize(ps.url); + await worker.terminate(); + + return text; +}); diff --git a/packages/client/package.json b/packages/client/package.json index 59eac4d25..380f64cfb 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -48,7 +48,6 @@ "stringz": "2.1.0", "swiper": "^8.4.4", "syuilo-password-strength": "0.0.1", - "tesseract.js": "^3.0.3", "textarea-caret": "3.1.0", "three": "0.144.0", "throttle-debounce": "5.0.0", diff --git a/packages/client/src/components/MkMediaCaption.vue b/packages/client/src/components/MkMediaCaption.vue index 1e41f4dfa..430d4503d 100644 --- a/packages/client/src/components/MkMediaCaption.vue +++ b/packages/client/src/components/MkMediaCaption.vue @@ -11,9 +11,9 @@
- {{ $ts.ok }} - - {{ $ts.cancel }} + {{ i18n.ts.ok }} + {{ i18n.ts.caption }} + {{ i18n.ts.cancel }}
@@ -33,7 +33,8 @@