diff options
author | Stanley Yip <stanley_yip@brown.edu> | 2020-02-01 14:56:40 -0500 |
---|---|---|
committer | Stanley Yip <stanley_yip@brown.edu> | 2020-02-01 14:56:40 -0500 |
commit | 1705ce46b2dec37dee11513bfbde4f0ae15aaf98 (patch) | |
tree | 90fa1ef0a1d3cabeb2fd47fa06a8fd185b0fd228 /src/server/Websocket/Websocket.ts | |
parent | eb1ce559cefedd3666a57ea00594013fbc3b3692 (diff) | |
parent | 0a5728e57c658188a9cbc881fbceeafed5d99fa7 (diff) |
basic ocr lol
Diffstat (limited to 'src/server/Websocket/Websocket.ts')
-rw-r--r-- | src/server/Websocket/Websocket.ts | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/server/Websocket/Websocket.ts b/src/server/Websocket/Websocket.ts index a2fdc7c89..f485e1dcd 100644 --- a/src/server/Websocket/Websocket.ts +++ b/src/server/Websocket/Websocket.ts @@ -10,6 +10,16 @@ import { GoogleCredentialsLoader } from "../credentials/CredentialsLoader"; import { logPort } from "../ActionUtilities"; import { timeMap } from "../ApiManagers/UserManager"; import { green } from "colors"; +import { Image } from "canvas"; +import { write, createWriteStream } from "fs"; +import { serverPathToFile, Directory } from "../ApiManagers/UploadManager"; +const tesseract = require("node-tesseract-ocr"); +const config = { + lang: "eng", + oem: 1, + psm: 8 +}; +const imageDataUri = require('image-data-uri'); export namespace WebSocket { @@ -51,6 +61,7 @@ export namespace WebSocket { Utils.AddServerHandler(socket, MessageStore.CreateField, CreateField); Utils.AddServerHandlerCallback(socket, MessageStore.YoutubeApiQuery, HandleYoutubeQuery); + Utils.AddServerHandlerCallback(socket, MessageStore.AnalyzeInk, RecognizeImage); Utils.AddServerHandler(socket, MessageStore.UpdateField, diff => UpdateField(socket, diff)); Utils.AddServerHandler(socket, MessageStore.DeleteField, id => DeleteField(socket, id)); Utils.AddServerHandler(socket, MessageStore.DeleteFields, ids => DeleteFields(socket, ids)); @@ -68,6 +79,17 @@ export namespace WebSocket { logPort("websocket", socketPort); } + async function RecognizeImage([query, callback]: [string, (result: any) => any]) { + const path = serverPathToFile(Directory.images, "handwriting.jpg"); + imageDataUri.outputFile(query, path).then((savedName: string) => { + console.log("saved " + savedName); + const remadePath = path.split("\\").join("\\\\"); + tesseract.recognize(remadePath, config) + .then(callback) + .catch(console.log); + }); + } + function HandleYoutubeQuery([query, callback]: [YoutubeQueryInput, (result?: any[]) => void]) { const { ProjectCredentials } = GoogleCredentialsLoader; switch (query.type) { |