57 lines
No EOL
1.7 KiB
TypeScript
57 lines
No EOL
1.7 KiB
TypeScript
import z from "zod";
|
|
import { aiController } from "./ai";
|
|
import { dateController } from "./date";
|
|
import { googleDriveController } from "./googleDrive";
|
|
|
|
const VideoInfoSchema = z.looseObject({
|
|
id: z.string(),
|
|
title: z.string(),
|
|
starts_at: z.string(),
|
|
ends_at: z.string(),
|
|
access_permission: z.string(),
|
|
host: z.object({
|
|
login_id: z.string(),
|
|
user_name: z.string(),
|
|
}),
|
|
speech_recognition: z.object({
|
|
raw: z.string(),
|
|
})
|
|
});
|
|
|
|
type VideoInfo = z.infer<typeof VideoInfoSchema>;
|
|
|
|
export const MiiTelWebhookSchema = z.object({
|
|
video: VideoInfoSchema,
|
|
});
|
|
|
|
// export type MiiTelWebhook = z.infer<typeof MiiTelWebhookSchema>;
|
|
|
|
export const processRequest = async(videoInfo: VideoInfo) => {
|
|
const videoId = videoInfo.id;
|
|
const title = videoInfo.title;
|
|
const startsAt = videoInfo.starts_at;
|
|
const endsAt = videoInfo.ends_at;
|
|
const accessPermission = videoInfo.access_permission;
|
|
|
|
const host_id = videoInfo.host.login_id;
|
|
const host_name = videoInfo.host.user_name;
|
|
|
|
const speechRecognition = videoInfo.speech_recognition.raw;
|
|
|
|
console.log(startsAt);
|
|
const jstStartsAt = dateController.convertToJst(startsAt);
|
|
const jstEndsAt = dateController.convertToJst(endsAt);
|
|
|
|
googleDriveController.checkConnection();
|
|
// console.log(dateController.getFormattedDate(startsAtJst, "yyyy/MM/dd hh:mm:ss"));
|
|
// console.log(endsAt);
|
|
// console.log("Processing video:", host_id, host_name, title);
|
|
if(accessPermission !== "EVERYONE" || !title.includes("様") || title.includes("社内")) return;
|
|
|
|
|
|
|
|
// Save Request Log to Google Drive
|
|
// const minute = await aiController.generateMinutes(speechRecognition);
|
|
// console.log(minute);
|
|
|
|
}; |