mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-02-14 21:27:20 +00:00
feat(core): some enhancements to recording (#11287)
- Added a check to verify if AI is enabled before attempting to transcribe meeting recordings - Improved error handling for empty recordings - Fixed the recording timeout logic to ensure it only stops the correct recording session
This commit is contained in:
@@ -12,7 +12,7 @@ import { Text } from '@blocksuite/affine/store';
|
||||
import type { BlobEngine } from '@blocksuite/affine/sync';
|
||||
import type { FrameworkProvider } from '@toeverything/infra';
|
||||
|
||||
import { getCurrentWorkspace } from './utils';
|
||||
import { getCurrentWorkspace, isAiEnabled } from './utils';
|
||||
|
||||
const logger = new DebugLogger('electron-renderer:recording');
|
||||
|
||||
@@ -44,6 +44,7 @@ export function setupRecordingEvents(frameworkProvider: FrameworkProvider) {
|
||||
frameworkProvider.get(EditorSettingService);
|
||||
const docsService = workspace.scope.get(DocsService);
|
||||
const editorSetting = editorSettingService.editorSetting;
|
||||
const aiEnabled = isAiEnabled(frameworkProvider);
|
||||
|
||||
const timestamp = i18nTime(status.startTime, {
|
||||
absolute: {
|
||||
@@ -96,7 +97,10 @@ export function setupRecordingEvents(frameworkProvider: FrameworkProvider) {
|
||||
MeetingSettingsService
|
||||
);
|
||||
|
||||
if (!meetingSettingsService.settings.autoTranscription) {
|
||||
if (
|
||||
!meetingSettingsService.settings.autoTranscription ||
|
||||
!aiEnabled
|
||||
) {
|
||||
// auto transcription is disabled,
|
||||
// so we don't need to transcribe the recording by default
|
||||
return;
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
import { ServersService } from '@affine/core/modules/cloud';
|
||||
import { FeatureFlagService } from '@affine/core/modules/feature-flag';
|
||||
import { GlobalContextService } from '@affine/core/modules/global-context';
|
||||
import { WorkspacesService } from '@affine/core/modules/workspace';
|
||||
import type { FrameworkProvider } from '@toeverything/infra';
|
||||
@@ -21,3 +23,23 @@ export function getCurrentWorkspace(frameworkProvider: FrameworkProvider) {
|
||||
[Symbol.dispose]: dispose,
|
||||
};
|
||||
}
|
||||
|
||||
export function getCurrentServerService(frameworkProvider: FrameworkProvider) {
|
||||
const currentServerId = frameworkProvider
|
||||
.get(GlobalContextService)
|
||||
.globalContext.serverId.get();
|
||||
const serversService = frameworkProvider.get(ServersService);
|
||||
const serverRef = currentServerId
|
||||
? serversService.servers$.value.find(
|
||||
server => server.id === currentServerId
|
||||
)
|
||||
: null;
|
||||
return serverRef;
|
||||
}
|
||||
|
||||
export function isAiEnabled(frameworkProvider: FrameworkProvider) {
|
||||
const featureFlagService = frameworkProvider.get(FeatureFlagService);
|
||||
const serverService = getCurrentServerService(frameworkProvider);
|
||||
const aiConfig = serverService?.features$.value.copilot;
|
||||
return featureFlagService.flags.enable_ai.$ && aiConfig;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user