Skip to content

Commit 6bb7c58

Browse files
committed
Merge branch 'Bardaky-dev' into dev
2 parents 2bbfea0 + 56ca0d2 commit 6bb7c58

File tree

14 files changed

+224
-0
lines changed

14 files changed

+224
-0
lines changed
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
using System;
2+
using System.Text;
3+
using System.Threading.Tasks;
4+
using Fritz.StreamLib.Core;
5+
using Microsoft.Extensions.Configuration;
6+
7+
8+
namespace Fritz.Chatbot.Commands
9+
{
10+
public class AttentionCommand : IBasicCommand
11+
{
12+
private readonly IConfiguration Configuration;
13+
14+
public AttentionCommand(IAttentionClient client, IConfiguration configuration)
15+
{
16+
this.Configuration = configuration;
17+
this.Client = client;
18+
}
19+
20+
protected IAttentionClient Client { get; }
21+
22+
public string Trigger => "attention";
23+
24+
public string Description => "Play audio queue to divert attention to chat";
25+
26+
public TimeSpan? Cooldown => TimeSpan.Parse(Configuration["FritzBot:AttentionCommand:Cooldown"]);
27+
28+
public async Task Execute(IChatService chatService, string userName, ReadOnlyMemory<char> rhs)
29+
{
30+
await this.Client.AlertFritz();
31+
32+
var attentionText = Configuration["FritzBot:AttentionCommand:TemplateText"];
33+
34+
var sb = new StringBuilder();
35+
sb.AppendFormat(attentionText, userName);
36+
37+
await chatService.SendMessageAsync(attentionText);
38+
}
39+
}
40+
}

Fritz.Chatbot/Fritz.Chatbot.csproj

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
<PackageReference Include="Microsoft.Extensions.Http" Version="2.1.1" />
1515
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="2.1.1" />
1616
<PackageReference Include="Microsoft.Extensions.Logging" Version="2.1.1" />
17+
<PackageReference Include="NetCoreAudio" Version="1.4.0" />
1718
<PackageReference Include="Newtonsoft.Json" Version="12.0.1" />
1819
</ItemGroup>
1920

@@ -22,6 +23,9 @@
2223
</ItemGroup>
2324

2425
<ItemGroup>
26+
<None Update="hey_listen.wav">
27+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
28+
</None>
2529
<None Update="SkeetQuotes.txt">
2630
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
2731
</None>
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Text;
4+
using System.Threading.Tasks;
5+
6+
namespace Fritz.StreamLib.Core
7+
{
8+
public interface IAttentionClient
9+
{
10+
Task AlertFritz();
11+
}
12+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Linq;
4+
using System.Threading.Tasks;
5+
using Microsoft.AspNetCore.Mvc;
6+
7+
namespace Fritz.StreamTools.Controllers
8+
{
9+
public class AttentionController : Controller
10+
{
11+
public IActionResult Index()
12+
{
13+
return View();
14+
}
15+
16+
public IActionResult TestClient()
17+
{
18+
return View();
19+
}
20+
}
21+
}

Fritz.StreamTools/Fritz.StreamTools.csproj

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@
1111
<EmbeddedResource Remove="ClientApp\**" />
1212
<None Remove="ClientApp\**" />
1313
</ItemGroup>
14+
<ItemGroup>
15+
<Content Remove="wwwroot\hey_listen.wav" />
16+
</ItemGroup>
1417
<ItemGroup>
1518
<PackageReference Include="BuildBundlerMinifier" Version="2.8.391" />
1619
<PackageReference Include="Bundgaard.MixerLib" Version="1.2.65" />
@@ -24,6 +27,9 @@
2427
<PackageReference Include="System.Memory" Version="4.5.1" />
2528
</ItemGroup>
2629
<ItemGroup>
30+
<None Include="wwwroot\contents\hey_listen.wav">
31+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
32+
</None>
2733
<None Include="wwwroot\js\GoalConfiguration\GoalConfiguration.js" />
2834
<None Include="wwwroot\js\GoalConfiguration\GoogleFonts.js" />
2935
<None Include="wwwroot\js\GoalConfiguration\Preview.js" />
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
using Fritz.StreamLib.Core;
2+
using Microsoft.AspNetCore.SignalR;
3+
using System;
4+
using System.Collections.Generic;
5+
using System.Linq;
6+
using System.Threading.Tasks;
7+
8+
namespace Fritz.StreamTools.Hubs
9+
{
10+
public interface IAttentionHubClient
11+
{
12+
13+
// Cheer 100 parithon 12/18/2018
14+
// Cheer 500 pharewings 12/18/2018
15+
Task AlertFritz();
16+
Task ClientConnected(string connectionId);
17+
}
18+
19+
public class AttentionHub : Hub<IAttentionHubClient>, IAttentionClient
20+
{
21+
public override Task OnConnectedAsync()
22+
{
23+
return this.Clients.Others.ClientConnected(this.Context.ConnectionId);
24+
}
25+
26+
public Task AlertFritz()
27+
{
28+
return this.Clients.Others.AlertFritz();
29+
}
30+
}
31+
}

Fritz.StreamTools/Startup.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ public void Configure(IApplicationBuilder app, Microsoft.Extensions.Hosting.IHos
5555
{
5656
configure.MapHub<FollowerHub>("/followerstream");
5757
configure.MapHub<GithubyMcGithubFace>("/github");
58+
configure.MapHub<AttentionHub>("/attentionhub");
5859
});
5960

6061
app.UseMvc(routes =>

Fritz.StreamTools/StartupServices/ConfigureServices.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,8 @@ public static void Execute(
3838
services.AddSingleton<IConfigureOptions<SignalrTagHelperOptions>, ConfigureSignalrTagHelperOptions>();
3939
services.AddSingleton<SignalrTagHelperOptions>(cfg => cfg.GetService<IOptions<SignalrTagHelperOptions>>().Value);
4040

41+
services.AddSingleton<IAttentionClient, AttentionHub>();
42+
4143
services.AddSingleton<IHostedService, FritzBot>();
4244
services.AddSingleton(new GitHubClient(new ProductHeaderValue("Fritz.StreamTools")));
4345
FritzBot.RegisterCommands(services);
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
@{
2+
Layout = null;
3+
}
4+
5+
<!DOCTYPE html>
6+
7+
<html>
8+
<head>
9+
<title>Attention</title>
10+
</head>
11+
<body>
12+
<script src="~/lib/signalr/signalr-client.js"></script>
13+
<script src="~/js/attentionhub.js"></script>
14+
<script>
15+
var audio = new Audio('@Url.Content(@"~/contents/hey_listen.wav")');
16+
17+
var hub = new AttentionHub();
18+
hub.onAlertFritz = () => {
19+
alertFritz();
20+
}
21+
22+
function alertFritz() {
23+
audio.play();
24+
}
25+
26+
(function () {
27+
hub.start();
28+
})();
29+
30+
</script>
31+
</body>
32+
</html>
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
2+
@{
3+
ViewData["Title"] = "Test Client";
4+
}
5+
6+
<h2>Test Client</h2>
7+
8+
<a class="btn btn-primary" href="javascript:alertFritz();">Send Alert</a>
9+
10+
@section scripts {
11+
<script src="~/lib/signalr/signalr-client.js"></script>
12+
<script src="~/js/attentionhub.js"></script>
13+
<script type="text/javascript">
14+
var attentionHub = new AttentionHub();
15+
16+
(function () {
17+
attentionHub.start();
18+
})();
19+
20+
function alertFritz() {
21+
attentionHub.sendTest();
22+
}
23+
</script>
24+
}

0 commit comments

Comments
 (0)