From: riqo Date: Mon, 8 Feb 2021 15:43:29 +0000 (-0600) Subject: add login, register, and auth X-Git-Tag: v0.9~99 X-Git-Url: https://andrewgundersen.net/repos?a=commitdiff_plain;h=29f6b759f8c197a3cb7014b4ff94657f4631a4dd;p=mime-chat add login, register, and auth --- diff --git a/src/background/audio.ts b/src/background/audio.ts new file mode 100644 index 0000000..3ce3d89 --- /dev/null +++ b/src/background/audio.ts @@ -0,0 +1,49 @@ +const portAudio = require('naudiodon'); + +let audioInput: string[] = []; + +function processAudio(audioInput: Array): Buffer { + let audio = ''; + audioInput.forEach(chunk => audio += chunk); + return Buffer.from(audio, "base64"); +} + + +const updateRecorder = async (Event: any, record: boolean): void => { + if (record) { + ia.resume(); + } else { + ia.pause(); + const audio = processAudio(audioInput); + // emmit ws event with audio + // sendAudio(audio); + audioInput = []; + } +} + + +let ia = new portAudio.AudioIO({ + inOptions: { + channelCount: 1, + sampleFormat: 16, + sampleRate: 16000, + deviceId: -1, + closeOnError: false, + } +}); +ia.setEncoding('base64'); +ia.start(); +ia.pause(); +ia.on('error', (e: Error) => { + console.log('Error recording audio', + e); +}); +ia.on('data', (chunk: string) => { + audioInput.push(chunk); +}); + +export function useIA() { + return { + ia, + processAudio + } +} diff --git a/src/background/run.ts b/src/background/run.ts index 767db2a..49ccaca 100644 --- a/src/background/run.ts +++ b/src/background/run.ts @@ -1,6 +1,5 @@ import { createWindow } from './createWindow'; -import { Recorder } from './recorder'; -import { ipcMain, BrowserWindow } from "electron"; +import { ipcMain } from "electron"; import WebSocket from 'ws'; import { windowEmitter } from './windowEmitter'; const portAudio = require('naudiodon'); @@ -12,6 +11,27 @@ export function main(): void { let audioInput: string[] = []; + const authUser = (event: any, arg: any) => { + let reply; + reply = { + id: "2", + email: "hernandeze@xavier.edu", + firstName: "Enrique", + lastName: "Hernandez", + access_token: "test-token" + } + if (arg === ['undefined']) { + reply = new Error('AUTH-FAILED'); + } + event.reply('auth-user-reply', reply) + } + ipcMain.on('auth-user', authUser); + + const authLogin = (event: any, arg: any) => { + console.log(arg) + event.reply('auth-login-reply', true) + } + // create main window. const win = createWindow({ width: 350, height: 525, resizable: false }); @@ -44,19 +64,16 @@ export function main(): void { ia.resume(); } else { ia.pause(); - const audio = processAudio(); + const audio = processAudio(audioInput); sendAudio(audio); audioInput = []; } } - function processAudio(): Buffer { + function processAudio(audioInput: Array): Buffer { let audio = ''; - audioInput.forEach(s => { - audio += s; - }); - const buffer = Buffer.from(audio, "base64"); - return buffer; + audioInput.forEach(chunk => audio += chunk); + return Buffer.from(audio, "base64"); } const windowMount = (): void => { @@ -64,13 +81,16 @@ export function main(): void { // ipc event handlers ipcMain.on('update-recorder', updateRecorder); ipcMain.on('send-message', sendMessage); + ipcMain.on('auth-login', authLogin); } const windowDismount = (): void => { windowEmitter.emit('window-active', false); // TODO: Gracefully close socket connection - ipcMain.removeListener('update-recorder', updateRecorder); - ipcMain.removeListener('send-message', sendMessage); + ipcMain.removeAllListeners('update-recorder'); + ipcMain.removeAllListeners('send-message'); + ipcMain.removeAllListeners('auth-login'); + ipcMain.removeAllListeners('auth-user'); } // socket handlers @@ -92,12 +112,11 @@ export function main(): void { }); ia.setEncoding('base64'); ia.start(); + ia.pause(); ia.on('error', (e: Error) => { - console.log('error recording audio', + e); + console.log('Error recording audio', + e); }); - ia.pause(); ia.on('data', (chunk: string) => { audioInput.push(chunk); - console.log('Got %d characters of string data:', chunk.length); }); } diff --git a/src/background/user.ts b/src/background/user.ts new file mode 100644 index 0000000..1258257 --- /dev/null +++ b/src/background/user.ts @@ -0,0 +1,22 @@ + +const authUser = (event: any, arg: any) => { + let reply; + reply = { + id: "2", + email: "hernandeze@xavier.edu", + firstName: "Enrique", + lastName: "Hernandez", + access_token: "test-token" + } + if (arg === ['undefined']) { + reply = new Error('AUTH-FAILED'); + } + event.reply('auth-user-reply', reply) +} + +ipcMain.on('auth-user', authUser); + +const authLogin = (event: any, arg: any) => { + console.log(arg) + event.reply('auth-login-reply', true) +} diff --git a/src/components/home/messageBubble/index.vue b/src/components/home/messageBubble/index.vue index cd9ecd1..03041b1 100644 --- a/src/components/home/messageBubble/index.vue +++ b/src/components/home/messageBubble/index.vue @@ -31,7 +31,7 @@ import useComputedBubble from "./bubbleDetails/computed"; import useBubbleDrawer from "./bubbleDetails/drawer"; // text wrap composition -import useTextWrap from "@/composables/textWrap"; +import useTextWrap from "@/modules/textWrap"; import { defineComponent, onMounted, ref, reactive } from "vue"; export default defineComponent({ diff --git a/src/components/home/messageVisualizer/index.vue b/src/components/home/messageVisualizer/index.vue index 36db2cc..897285d 100644 --- a/src/components/home/messageVisualizer/index.vue +++ b/src/components/home/messageVisualizer/index.vue @@ -28,15 +28,12 @@ + + diff --git a/src/views/register.vue b/src/views/register.vue index e69de29..7fed6b6 100644 --- a/src/views/register.vue +++ b/src/views/register.vue @@ -0,0 +1,71 @@ + + +