Skip to content

Commit 404b7fb

Browse files
AlessiaYChenFosol
authored andcommitted
Add Auto Clipper Service
Add DevOps configs Publish tno-core:1.0.30
1 parent 6533086 commit 404b7fb

File tree

98 files changed

+4360
-99
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

98 files changed

+4360
-99
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@ auth/keycloak/config/*.log
1919
/services/net/image/keys
2020
/services/net/image/data
2121

22+
**/[Bb]in/
23+
**/[Oo]bj/
24+
2225
# TLS certificates - managed separately, not in git
2326
openshift/kustomize/.tls-certs/*.crt
2427
openshift/kustomize/.tls-certs/*.key

.vscode/launch.json

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
{
22
"version": "0.2.0",
33
"configurations": [
4-
5-
64
{
75
// Use IntelliSense to find out which attributes exist for C# debugging
86
// Use hover for the description of the existing attributes
@@ -105,6 +103,23 @@
105103
"stopAtEntry": false,
106104
"envFile": "${workspaceFolder}/services/net/transcription/.env"
107105
},
106+
{
107+
// Use IntelliSense to find out which attributes exist for C# debugging
108+
// Use hover for the description of the existing attributes
109+
// For further information visit https://github.com/OmniSharp/omnisharp-vscode/blob/master/debugger-launchjson.md
110+
"name": "Run Auto Clipper Service",
111+
"type": "coreclr",
112+
"request": "launch",
113+
"preLaunchTask": "build-auto-clipper",
114+
// If you have changed target frameworks, make sure to update the program path.
115+
"program": "${workspaceFolder}/services/net/auto-clipper/bin/Debug/net9.0/TNO.Services.AutoClipper.dll",
116+
"args": [],
117+
"cwd": "${workspaceFolder}/services/net/auto-clipper",
118+
// For more information about the 'console' field, see https://aka.ms/VSCode-CS-LaunchJson-Console
119+
"console": "internalConsole",
120+
"stopAtEntry": false,
121+
"envFile": "${workspaceFolder}/services/net/auto-clipper/.env"
122+
},
108123
{
109124
// Use IntelliSense to find out which attributes exist for C# debugging
110125
// Use hover for the description of the existing attributes

.vscode/settings.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
"CHES",
1313
"datalabels",
1414
"formik",
15+
"healthcheck",
1516
"Idir",
1617
"insertable",
1718
"Keycloak",

.vscode/tasks.json

Lines changed: 49 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -29,12 +29,7 @@
2929
"label": "watch",
3030
"command": "dotnet",
3131
"type": "process",
32-
"args": [
33-
"watch",
34-
"run",
35-
"--project",
36-
"${workspaceFolder}/api/net/TNO.API.csproj"
37-
],
32+
"args": ["watch", "run", "--project", "${workspaceFolder}/api/net/TNO.API.csproj"],
3833
"problemMatcher": "$msCompile"
3934
},
4035
{
@@ -213,7 +208,43 @@
213208
"watch",
214209
"run",
215210
"--project",
216-
"${workspaceFolder}/services/net/transcription/TNO.Services.Transcription.csproj"
211+
"${workspaceFolder}/services/net/atranscription/TNO.Services.Transcription.csproj"
212+
],
213+
"problemMatcher": "$msCompile"
214+
},
215+
{
216+
"label": "build-auto-clipper",
217+
"command": "dotnet",
218+
"type": "process",
219+
"args": [
220+
"build",
221+
"${workspaceFolder}/services/net/auto-clipper/TNO.Services.AutoClipper.csproj",
222+
"/property:GenerateFullPaths=true",
223+
"/consoleloggerparameters:NoSummary"
224+
],
225+
"problemMatcher": "$msCompile"
226+
},
227+
{
228+
"label": "publish-auto-clipper",
229+
"command": "dotnet",
230+
"type": "process",
231+
"args": [
232+
"publish",
233+
"${workspaceFolder}/services/net/auto-clipper/TNO.Services.AutoClipper.csproj",
234+
"/property:GenerateFullPaths=true",
235+
"/consoleloggerparameters:NoSummary"
236+
],
237+
"problemMatcher": "$msCompile"
238+
},
239+
{
240+
"label": "watch-auto-clipper",
241+
"command": "dotnet",
242+
"type": "process",
243+
"args": [
244+
"watch",
245+
"run",
246+
"--project",
247+
"${workspaceFolder}/services/net/auto-clipper/TNO.Services.TranAutoClipperscription.csproj"
217248
],
218249
"problemMatcher": "$msCompile"
219250
},
@@ -357,7 +388,7 @@
357388
"watch",
358389
"run",
359390
"--project",
360-
"${workspaceFolder}/tools/elastic/migration/TNO.Elastic.Migration.csproj",
391+
"${workspaceFolder}/tools/elastic/migration/TNO.Elastic.Migration.csproj"
361392
],
362393
"problemMatcher": "$msCompile"
363394
},
@@ -393,7 +424,7 @@
393424
"watch",
394425
"run",
395426
"--project",
396-
"${workspaceFolder}/services/net/notification/TNO.Services.Notification.csproj",
427+
"${workspaceFolder}/services/net/notification/TNO.Services.Notification.csproj"
397428
],
398429
"problemMatcher": "$msCompile"
399430
},
@@ -429,7 +460,7 @@
429460
"watch",
430461
"run",
431462
"--project",
432-
"${workspaceFolder}/services/net/reporting/TNO.Services.Reporting.csproj",
463+
"${workspaceFolder}/services/net/reporting/TNO.Services.Reporting.csproj"
433464
],
434465
"problemMatcher": "$msCompile"
435466
},
@@ -465,7 +496,7 @@
465496
"watch",
466497
"run",
467498
"--project",
468-
"${workspaceFolder}/services/net/scheduler/TNO.Services.Scheduler.csproj",
499+
"${workspaceFolder}/services/net/scheduler/TNO.Services.Scheduler.csproj"
469500
],
470501
"problemMatcher": "$msCompile"
471502
},
@@ -501,7 +532,7 @@
501532
"watch",
502533
"run",
503534
"--project",
504-
"${workspaceFolder}/services/net/folder-collection/TNO.Services.FolderCollection.csproj",
535+
"${workspaceFolder}/services/net/folder-collection/TNO.Services.FolderCollection.csproj"
505536
],
506537
"problemMatcher": "$msCompile"
507538
},
@@ -537,7 +568,7 @@
537568
"watch",
538569
"run",
539570
"--project",
540-
"${workspaceFolder}/services/net/ffmpeg/TNO.Services.FFmpeg.csproj",
571+
"${workspaceFolder}/services/net/ffmpeg/TNO.Services.FFmpeg.csproj"
541572
],
542573
"problemMatcher": "$msCompile"
543574
},
@@ -573,7 +604,7 @@
573604
"watch",
574605
"run",
575606
"--project",
576-
"${workspaceFolder}/services/net/extract-quotes/TNO.Services.ExtractQuotes.csproj",
607+
"${workspaceFolder}/services/net/extract-quotes/TNO.Services.ExtractQuotes.csproj"
577608
],
578609
"problemMatcher": "$msCompile"
579610
},
@@ -609,7 +640,7 @@
609640
"watch",
610641
"run",
611642
"--project",
612-
"${workspaceFolder}/services/net/event-handler/TNO.Services.EventHandler.csproj",
643+
"${workspaceFolder}/services/net/event-handler/TNO.Services.EventHandler.csproj"
613644
],
614645
"problemMatcher": "$msCompile"
615646
},
@@ -645,11 +676,10 @@
645676
"watch",
646677
"run",
647678
"--project",
648-
"${workspaceFolder}/services/net/ches-retry/TNO.Services.ChesRetry.csproj",
679+
"${workspaceFolder}/services/net/ches-retry/TNO.Services.ChesRetry.csproj"
649680
],
650681
"problemMatcher": "$msCompile"
651-
}
652-
,
682+
},
653683
{
654684
"label": "build-elastic-indexer",
655685
"command": "dotnet",
@@ -682,7 +712,7 @@
682712
"watch",
683713
"run",
684714
"--project",
685-
"${workspaceFolder}/tools/indexer/TNO.Tools.ElasticIndexer.csproj",
715+
"${workspaceFolder}/tools/indexer/TNO.Tools.ElasticIndexer.csproj"
686716
],
687717
"problemMatcher": "$msCompile"
688718
}

TNO.sln

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TNO.TemplateEngine", "libs\
7171
EndProject
7272
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TNO.Services.Scheduler", "services\net\scheduler\TNO.Services.Scheduler.csproj", "{A2DD9547-A4AA-4E07-9239-77D689F49C47}"
7373
EndProject
74-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TNO.Services.ContentMigration", "services\net\contentmigration\TNO.Services.ContentMigration.csproj", "{7D0917C1-DFE3-420E-9980-D81947AC405F}"
75-
EndProject
7674
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TNO.Services.FolderCollection", "services\net\folder-collection\TNO.Services.FolderCollection.csproj", "{B559B641-F1F0-41D6-9938-A23EC06542A2}"
7775
EndProject
7876
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TNO.Services.ExtractQuotes", "services\net\extract-quotes\TNO.Services.ExtractQuotes.csproj", "{9BC92B16-7AF9-4B45-BA18-C6A98E2AD87E}"
@@ -85,6 +83,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TNO.Services.EventHandler",
8583
EndProject
8684
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TNO.Services.ChesRetry", "services\net\ches-retry\TNO.Services.ChesRetry.csproj", "{067EA7C3-A816-406B-B36A-09FC05A427A1}"
8785
EndProject
86+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TNO.Services.AutoClipper", "services\net\auto-clipper\TNO.Services.AutoClipper.csproj", "{7B8BF924-36BA-422E-85FD-1C590B092F7B}"
87+
EndProject
8888
Global
8989
GlobalSection(SolutionConfigurationPlatforms) = preSolution
9090
Debug|Any CPU = Debug|Any CPU
@@ -198,10 +198,6 @@ Global
198198
{A2DD9547-A4AA-4E07-9239-77D689F49C47}.Debug|Any CPU.Build.0 = Debug|Any CPU
199199
{A2DD9547-A4AA-4E07-9239-77D689F49C47}.Release|Any CPU.ActiveCfg = Release|Any CPU
200200
{A2DD9547-A4AA-4E07-9239-77D689F49C47}.Release|Any CPU.Build.0 = Release|Any CPU
201-
{7D0917C1-DFE3-420E-9980-D81947AC405F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
202-
{7D0917C1-DFE3-420E-9980-D81947AC405F}.Debug|Any CPU.Build.0 = Debug|Any CPU
203-
{7D0917C1-DFE3-420E-9980-D81947AC405F}.Release|Any CPU.ActiveCfg = Release|Any CPU
204-
{7D0917C1-DFE3-420E-9980-D81947AC405F}.Release|Any CPU.Build.0 = Release|Any CPU
205201
{B559B641-F1F0-41D6-9938-A23EC06542A2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
206202
{B559B641-F1F0-41D6-9938-A23EC06542A2}.Debug|Any CPU.Build.0 = Debug|Any CPU
207203
{B559B641-F1F0-41D6-9938-A23EC06542A2}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -226,6 +222,10 @@ Global
226222
{067EA7C3-A816-406B-B36A-09FC05A427A1}.Debug|Any CPU.Build.0 = Debug|Any CPU
227223
{067EA7C3-A816-406B-B36A-09FC05A427A1}.Release|Any CPU.ActiveCfg = Release|Any CPU
228224
{067EA7C3-A816-406B-B36A-09FC05A427A1}.Release|Any CPU.Build.0 = Release|Any CPU
225+
{7B8BF924-36BA-422E-85FD-1C590B092F7B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
226+
{7B8BF924-36BA-422E-85FD-1C590B092F7B}.Debug|Any CPU.Build.0 = Debug|Any CPU
227+
{7B8BF924-36BA-422E-85FD-1C590B092F7B}.Release|Any CPU.ActiveCfg = Release|Any CPU
228+
{7B8BF924-36BA-422E-85FD-1C590B092F7B}.Release|Any CPU.Build.0 = Release|Any CPU
229229
EndGlobalSection
230230
GlobalSection(NestedProjects) = preSolution
231231
{16EA028B-B4C8-416D-BE54-D73D75483668} = {F627B24A-217D-4BF1-BC77-E1A92DBCD07F}
@@ -258,12 +258,12 @@ Global
258258
{65185F9A-73C0-4C59-8DC4-892616963E43} = {448D6DE6-6887-48EC-A202-18C7EB428ACD}
259259
{CE993EF7-A38F-4563-837B-1194375D459B} = {890D13F9-A1ED-4B00-8E69-A1AB620F31A9}
260260
{A2DD9547-A4AA-4E07-9239-77D689F49C47} = {448D6DE6-6887-48EC-A202-18C7EB428ACD}
261-
{7D0917C1-DFE3-420E-9980-D81947AC405F} = {448D6DE6-6887-48EC-A202-18C7EB428ACD}
262261
{B559B641-F1F0-41D6-9938-A23EC06542A2} = {448D6DE6-6887-48EC-A202-18C7EB428ACD}
263262
{9BC92B16-7AF9-4B45-BA18-C6A98E2AD87E} = {448D6DE6-6887-48EC-A202-18C7EB428ACD}
264263
{E7444ADF-0137-439B-8E20-917CF2FAFA45} = {448D6DE6-6887-48EC-A202-18C7EB428ACD}
265264
{2D455400-0E86-476E-8C42-532D32C10107} = {448D6DE6-6887-48EC-A202-18C7EB428ACD}
266265
{6F1F9B85-B155-4A5A-BB36-10F734F96A12} = {448D6DE6-6887-48EC-A202-18C7EB428ACD}
267266
{067EA7C3-A816-406B-B36A-09FC05A427A1} = {448D6DE6-6887-48EC-A202-18C7EB428ACD}
267+
{7B8BF924-36BA-422E-85FD-1C590B092F7B} = {448D6DE6-6887-48EC-A202-18C7EB428ACD}
268268
EndGlobalSection
269269
EndGlobal

api/net/Areas/Editor/Controllers/WorkOrderController.cs

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,29 @@ public async Task<IActionResult> RequestTranscriptionAsync(long contentId)
147147
return new JsonResult(new WorkOrderMessageModel(workOrder, _serializerOptions));
148148
}
149149

150+
/// <summary>
151+
/// Request an auto clip for the content for the specified 'contentId'.
152+
/// Publish message to kafka to request an auto clip.
153+
/// </summary>
154+
/// <param name="contentId"></param>
155+
/// <returns></returns>
156+
[HttpPost("auto-clip/{contentId}")]
157+
[Produces(MediaTypeNames.Application.Json)]
158+
[ProducesResponseType(typeof(WorkOrderMessageModel), (int)HttpStatusCode.OK)]
159+
[ProducesResponseType(typeof(ErrorResponseModel), (int)HttpStatusCode.BadRequest)]
160+
[SwaggerOperation(Tags = new[] { "WorkOrder" })]
161+
public async Task<IActionResult> RequestAutoClipAsync(long contentId)
162+
{
163+
var workOrder = await _workOrderHelper.RequestAutoClipAsync(contentId, true);
164+
if (workOrder.Status != WorkOrderStatus.Submitted)
165+
return new JsonResult(new WorkOrderMessageModel(workOrder, _serializerOptions))
166+
{
167+
StatusCode = (int)HttpStatusCode.AlreadyReported
168+
};
169+
170+
return new JsonResult(new WorkOrderMessageModel(workOrder, _serializerOptions));
171+
}
172+
150173
/// <summary>
151174
/// Request a Natural Language Processing for the content for the specified 'contentId'.
152175
/// Publish message to kafka to request a NLP.

api/net/Areas/Helpers/IWorkOrderHelper.cs

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,18 @@ public interface IWorkOrderHelper
3434
/// <exception cref="NotAuthorizedException"></exception>
3535
Task<Entities.WorkOrder> RequestTranscriptionAsync(long contentId, bool force = false);
3636

37+
/// <summary>
38+
/// Request a auto clip for the specified 'contentId'.
39+
/// Only allow one active auto clip request.
40+
/// </summary>
41+
/// <param name="contentId"></param>
42+
/// <param name="force">Whether to force a request regardless of the prior requests state</param>
43+
/// <returns></returns>
44+
/// <exception cref="NoContentException"></exception>
45+
/// <exception cref="ConfigurationException"></exception>
46+
/// <exception cref="NotAuthorizedException"></exception>
47+
Task<Entities.WorkOrder> RequestAutoClipAsync(long contentId, bool force = false);
48+
3749
/// <summary>
3850
/// Request a transcript for the specified 'contentId'.
3951
/// Only allow one active transcript request.
@@ -47,6 +59,19 @@ public interface IWorkOrderHelper
4759
/// <exception cref="NotAuthorizedException"></exception>
4860
Task<Entities.WorkOrder> RequestTranscriptionAsync(long contentId, Entities.User requestor, bool force = false);
4961

62+
/// <summary>
63+
/// Request a auto clip for the specified 'contentId'.
64+
/// Only allow one active auto clip request.
65+
/// </summary>
66+
/// <param name="contentId"></param>
67+
/// <param name="requestor"></param>
68+
/// <param name="force">Whether to force a request regardless of the prior requests state</param>
69+
/// <returns></returns>
70+
/// <exception cref="NoContentException"></exception>
71+
/// <exception cref="ConfigurationException"></exception>
72+
/// <exception cref="NotAuthorizedException"></exception>
73+
Task<Entities.WorkOrder> RequestAutoClipAsync(long contentId, Entities.User requestor, bool force = false);
74+
5075
/// <summary>
5176
/// Request a natural language processing for the specified 'contentId'.
5277
/// Only allow one active nlp request.

0 commit comments

Comments
 (0)