diff --git a/Squirrowse.Client/Properties/launchSettings.json b/Squirrowse.Client/Properties/launchSettings.json deleted file mode 100644 index 477a920..0000000 --- a/Squirrowse.Client/Properties/launchSettings.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "profiles": { - "Squirrowse.Client": { - "commandName": "Project", - "environmentVariables": { - "DOTNET_ENVIRONMENT": "Development" - } - } - } -} \ No newline at end of file diff --git a/Squirrowse.Client/Service/ActionDispatcher.cs b/Squirrowse.Client/Service/ActionDispatcher.cs deleted file mode 100644 index 6b4ca5a..0000000 --- a/Squirrowse.Client/Service/ActionDispatcher.cs +++ /dev/null @@ -1,61 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Threading.Tasks; -using Microsoft.AspNetCore.SignalR.Client; -using Microsoft.Extensions.Logging; -using Squirrowse.Core.Models; -using Squirrowse.Core.Services; - -namespace Squirrowse.Client.Service -{ - public class ActionDispatcher : IActionDispatcher - { - private readonly ICameraService camera; - private readonly IConnectionManager connectionManager; - private readonly ILogger logger; - private readonly HubConnection session; - private bool streamOn = false; - public ActionDispatcher(ILogger logger, IConnectionManager connectionManager, - ICameraService camera) - { - this.connectionManager = connectionManager; - this.logger = logger; - this.camera = camera; - session = connectionManager.GetConnection().Result; - session.On("Start", StartStream); - //session.On("StartEnum", StartStreamEnumerable); - session.On("Stop", StopStream); - } - - public Task StopStream() - { - streamOn = false; - return Task.CompletedTask; - } - - public async Task SayHello() - { - await session.SendAsync("AddToGroup", Groups.debug); - } - - public async Task SendStreamAsync(IAsyncEnumerable asb) - { - if(!streamOn)return; - logger.LogInformation($"{nameof(SendStreamAsync)} Start stream"); - - await session.SendAsync("UploadByteStream", asb); - - logger.LogInformation($"{nameof(SendStreamAsync)} End stream"); - } - - - public async Task StartStream() - { - if (streamOn) return; - streamOn = true; - await SendStreamAsync(camera.GetFramesAsyncEnumerator()); - } - - - } -} \ No newline at end of file diff --git a/Squirrowse.Client/Service/Camera.cs b/Squirrowse.Client/Service/Camera.cs deleted file mode 100644 index 54e1946..0000000 --- a/Squirrowse.Client/Service/Camera.cs +++ /dev/null @@ -1,29 +0,0 @@ -using OpenCvSharp; - -namespace Squirrowse.Client.Service -{ - public class Camera : CameraFactory - { - private readonly bool Disposable; - private readonly double Fps; - private readonly int Height; - private readonly int Width; - - public Camera(int height = 480, int width = 640, double fps = 30f) - { - Height = height; - Width = width; - Fps = fps; - } - - public override VideoCapture GetCamera() - { - var cam = new VideoCapture(CaptureDevice.Any) - { - Fps = Fps, FrameHeight = Height, FrameWidth = Width - }; - - return cam; - } - } -} \ No newline at end of file diff --git a/Squirrowse.Client/Service/CameraFactory.cs b/Squirrowse.Client/Service/CameraFactory.cs deleted file mode 100644 index ef686b3..0000000 --- a/Squirrowse.Client/Service/CameraFactory.cs +++ /dev/null @@ -1,9 +0,0 @@ -using OpenCvSharp; - -namespace Squirrowse.Client.Service -{ - public abstract class CameraFactory - { - public abstract VideoCapture GetCamera(); - } -} \ No newline at end of file diff --git a/Squirrowse.Client/Service/CameraService.cs b/Squirrowse.Client/Service/CameraService.cs deleted file mode 100644 index d7b0a93..0000000 --- a/Squirrowse.Client/Service/CameraService.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System.Collections.Generic; -using System.Threading.Tasks; -using OpenCvSharp; -using Squirrowse.Core.Services; - -namespace Squirrowse.Client.Service -{ - public class CameraService : ICameraService - { - private readonly VideoCapture _videoCapture; - - public CameraService(CameraFactory cam) - { - _videoCapture = cam.GetCamera(); - } - - - public async Task GetFrame() - { - var video = _videoCapture.RetrieveMat(); - return video; - } - - public async IAsyncEnumerable GetFramesAsyncEnumerator() - { - while (true) - { - using var fr = await GetFrame(); - yield return fr.ConvertToJpgByte(); - await Task.Delay(1000 / 30); - } - //fr.Dispose(); - } - } -} \ No newline at end of file diff --git a/Squirrowse.Client/Service/IActionDispatcher.cs b/Squirrowse.Client/Service/IActionDispatcher.cs deleted file mode 100644 index cca49fc..0000000 --- a/Squirrowse.Client/Service/IActionDispatcher.cs +++ /dev/null @@ -1,13 +0,0 @@ -using System.Collections.Generic; -using System.Threading.Tasks; - -namespace Squirrowse.Client.Service -{ - public interface IActionDispatcher - { - Task SendStreamAsync(IAsyncEnumerable asb); - Task StartStream(); - Task StopStream(); - Task SayHello(); - } -} \ No newline at end of file diff --git a/Squirrowse.Client/Service/ICameraService.cs b/Squirrowse.Client/Service/ICameraService.cs deleted file mode 100644 index be81176..0000000 --- a/Squirrowse.Client/Service/ICameraService.cs +++ /dev/null @@ -1,12 +0,0 @@ -using System.Collections.Generic; -using System.Threading.Tasks; -using OpenCvSharp; - -namespace Squirrowse.Client.Service -{ - public interface ICameraService - { - Task GetFrame(); - IAsyncEnumerable GetFramesAsyncEnumerator(); - } -} \ No newline at end of file diff --git a/Squirrowse.Client/appsettings.Development.json b/Squirrowse.Client/appsettings.Development.json deleted file mode 100644 index 914088a..0000000 --- a/Squirrowse.Client/appsettings.Development.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "Logging": { - "LogLevel": { - "Default": "Debug", - "System": "Information", - "Microsoft": "Information", - "Microsoft.AspNetCore.SignalR": "Debug", - "Microsoft.AspNetCore.Http.Connections": "Debug" - } - } -} \ No newline at end of file diff --git a/Squirrowse.Client/appsettings.json b/Squirrowse.Client/appsettings.json deleted file mode 100644 index 45fe774..0000000 --- a/Squirrowse.Client/appsettings.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "Logging": { - "LogLevel": { - "Default": "Information", - "Microsoft": "Warning", - "Microsoft.Hosting.Lifetime": "Information" - } - } -} \ No newline at end of file diff --git a/Squirrowse.Core.Tests/ImgExtensionTests.cs b/Squirrowse.Core.Tests/ImgExtensionTests.cs deleted file mode 100644 index 4fe9d7a..0000000 --- a/Squirrowse.Core.Tests/ImgExtensionTests.cs +++ /dev/null @@ -1,34 +0,0 @@ -using FluentAssertions; -using OpenCvSharp; -using Squirrowse.Core.Services; -using Xunit; - -namespace Squirrowse.Core.Tests -{ - public class ImgExtensionTests - { - private readonly Mat sampleMat = new Mat(500, 600, MatType.CV_8UC3); - - [SkippableFact] - public void ByteShouldBeConvertedToMat() - { - // - Skip.If(true, "Cannot use fluent assertion in this kind of test (compare pointer to obj)"); - // - var bytes = sampleMat.ConvertToJpgByte(); - - var reMet = bytes.ConvertByteToMat(); - - reMet.Should().BeEquivalentTo(sampleMat); - } - - [Fact] - public void MatShouldBeConvertedToByteArr() - { - var newByteArr = sampleMat.ConvertToJpgByte(); - - newByteArr.Should().BeOfType(typeof(byte[])); - newByteArr.Should().NotBeNullOrEmpty(); - } - } -} \ No newline at end of file diff --git a/Squirrowse.Core.Tests/Squirrowse.Core.Tests.csproj b/Squirrowse.Core.Tests/Squirrowse.Core.Tests.csproj deleted file mode 100644 index a12cfb3..0000000 --- a/Squirrowse.Core.Tests/Squirrowse.Core.Tests.csproj +++ /dev/null @@ -1,23 +0,0 @@ - - - - netcoreapp3.0 - - false - - - - - - - - - - - - - - - - - diff --git a/Squirrowse.Core/CoreModule.cs b/Squirrowse.Core/CoreModule.cs deleted file mode 100644 index d42bb10..0000000 --- a/Squirrowse.Core/CoreModule.cs +++ /dev/null @@ -1,17 +0,0 @@ -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Logging; -using Squirrowse.Core.Services; - -namespace Squirrowse.Core -{ - public static class CoreModule - { - public static IServiceCollection AddCoreModule(this IServiceCollection services) - { - services.AddSingleton(typeof(ILogger<>), typeof(Logger<>)); - services.AddSingleton(x => - new ConnectionManager("http://localhost", 5000)); - return services; - } - } -} \ No newline at end of file diff --git a/Squirrowse.Core/Models/ConnectionType.cs b/Squirrowse.Core/Models/ConnectionType.cs deleted file mode 100644 index c987233..0000000 --- a/Squirrowse.Core/Models/ConnectionType.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace Squirrowse.Core.Models -{ - public enum ConnectionType - { - Unknown = -1, - Client, - Server, - Root - } -} \ No newline at end of file diff --git a/Squirrowse.Core/Models/Groups.cs b/Squirrowse.Core/Models/Groups.cs deleted file mode 100644 index 4b20976..0000000 --- a/Squirrowse.Core/Models/Groups.cs +++ /dev/null @@ -1,9 +0,0 @@ -namespace Squirrowse.Core.Models -{ - public enum Groups - { - debug = -1, - normal, - superUser - } -} \ No newline at end of file diff --git a/Squirrowse.Core/Models/User.cs b/Squirrowse.Core/Models/User.cs deleted file mode 100644 index e3dc2e3..0000000 --- a/Squirrowse.Core/Models/User.cs +++ /dev/null @@ -1,16 +0,0 @@ -namespace Squirrowse.Core.Models -{ - public class User - { - public User(string connectionId, string agentName, ConnectionType userType) - { - ConnectionId = connectionId; - AgentName = agentName; - UserType = userType; - } - - public string ConnectionId { get; set; } - public string AgentName { get; set; } - public ConnectionType UserType { get; set; } - } -} \ No newline at end of file diff --git a/Squirrowse.Core/Models/VStream.cs b/Squirrowse.Core/Models/VStream.cs deleted file mode 100644 index c8c1378..0000000 --- a/Squirrowse.Core/Models/VStream.cs +++ /dev/null @@ -1,14 +0,0 @@ -using Squirrowse.Core.Models; -using System; - -namespace Squirrowse.Client.Models -{ - public class VStream - { - public User user { get; set; } - public byte[] FrameBytes { get; set; } - public DateTime TimeStamp => DateTime.Now; - public Guid id => Guid.NewGuid(); - public string Issuer { get; set; } - } -} \ No newline at end of file diff --git a/Squirrowse.Core/Services/ConnectionManager.cs b/Squirrowse.Core/Services/ConnectionManager.cs deleted file mode 100644 index 996ac90..0000000 --- a/Squirrowse.Core/Services/ConnectionManager.cs +++ /dev/null @@ -1,51 +0,0 @@ -using System; -using System.Threading.Tasks; -using Microsoft.AspNetCore.SignalR.Client; -using Microsoft.Extensions.DependencyInjection; -using Squirrowse.Core.Models; - -namespace Squirrowse.Core.Services -{ - public class ConnectionManager : IConnectionManager - { - private readonly HubConnection _connection; - private bool Connected; - - public ConnectionManager(string url, int port) - { - _connection = new HubConnectionBuilder() - .WithUrl($"{url}:{port}/StreamHub") - .AddMessagePackProtocol() - .WithAutomaticReconnect() - .Build(); - } - - public async Task GetConnection() - { - return _connection; - } - - public async Task InitConnection(ConnectionType type) - { - if (_connection.State == HubConnectionState.Connected) return; - if (_connection.State == HubConnectionState.Disconnected) await _connection.StartAsync(); - - await RegisterOnHub(type); - Connected = true; - - } - - - public async Task Disconnect() - { - if (_connection.State == HubConnectionState.Disconnected) throw new Exception(); - await _connection.StopAsync(); - Connected = false; - } - - private async Task RegisterOnHub(ConnectionType type) - { - await _connection.SendAsync("AddUser", Environment.UserName, type); - } - } -} \ No newline at end of file diff --git a/Squirrowse.Core/Services/IConnectionManager.cs b/Squirrowse.Core/Services/IConnectionManager.cs deleted file mode 100644 index f8397ee..0000000 --- a/Squirrowse.Core/Services/IConnectionManager.cs +++ /dev/null @@ -1,13 +0,0 @@ -using System.Threading.Tasks; -using Microsoft.AspNetCore.SignalR.Client; -using Squirrowse.Core.Models; - -namespace Squirrowse.Core.Services -{ - public interface IConnectionManager - { - Task GetConnection(); - Task InitConnection(ConnectionType type); - Task Disconnect(); - } -} \ No newline at end of file diff --git a/Squirrowse.Core/Services/ImgExtensions.cs b/Squirrowse.Core/Services/ImgExtensions.cs deleted file mode 100644 index c1c4437..0000000 --- a/Squirrowse.Core/Services/ImgExtensions.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System.Linq; -using OpenCvSharp; - -namespace Squirrowse.Core.Services -{ - public static class ImgExtensions - { - public static byte[] ConvertToJpgByte(this Mat mat) - { - Cv2.ImEncode(".jpg", mat, out var imgbuffer); //no need to dispose - return imgbuffer.Any() ? imgbuffer : new byte[] { }; - } - - public static Mat ConvertByteToMat(this byte[] bytearr) - { - var tempMat = Cv2.ImDecode(bytearr, ImreadModes.Unchanged); //keep as disposable - return tempMat ?? new Mat(); - } - } -} \ No newline at end of file diff --git a/Squirrowse.Service/Dockerfile b/Squirrowse.Service/Dockerfile deleted file mode 100644 index fcba618..0000000 --- a/Squirrowse.Service/Dockerfile +++ /dev/null @@ -1,21 +0,0 @@ -FROM mcr.microsoft.com/dotnet/core/aspnet:3.0-buster-slim AS base -WORKDIR /app -EXPOSE 5000 -EXPOSE 5001 - -FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster AS build -WORKDIR /src -COPY ["Squirrowse.Service/Squirrowse.Service.csproj", "Squirrowse.Service/"] -COPY ["Squirrowse.Core/Squirrowse.Core.csproj", "Squirrowse.Core/"] -RUN dotnet restore "Squirrowse.Service/Squirrowse.Service.csproj" -COPY . . -WORKDIR "/src/Squirrowse.Service" -RUN dotnet build "Squirrowse.Service.csproj" -c Release -o /app/build - -FROM build AS publish -RUN dotnet publish "Squirrowse.Service.csproj" -c Release -o /app/publish - -FROM base AS final -WORKDIR /app -COPY --from=publish /app/publish . -ENTRYPOINT ["dotnet", "Squirrowse.Service.dll"] \ No newline at end of file diff --git a/Squirrowse.Service/Hubs/IStreamHub.cs b/Squirrowse.Service/Hubs/IStreamHub.cs deleted file mode 100644 index d432e47..0000000 --- a/Squirrowse.Service/Hubs/IStreamHub.cs +++ /dev/null @@ -1,19 +0,0 @@ -using System.Collections.Generic; -using System.Threading.Tasks; -using Squirrowse.Core.Models; - -namespace Squirrowse.Service.Hubs -{ - public interface IStreamHub - { - Task AddUser(string username, ConnectionType type); - Task UploadByteStream(IAsyncEnumerable stream); - Task Startstream(string userId); - Task StopStream(string userId); - Task ExecCommandOnAll(string command, object[] act); //gni - Task AddToGroup(Groups group, string user = ""); - Task RemoveFromGroup(Groups group, string user = ""); - Task> GetListOfTypeUser(ConnectionType t); - Task> GetAllUsers(); - } -} \ No newline at end of file diff --git a/Squirrowse.Service/Hubs/IStreamManager.cs b/Squirrowse.Service/Hubs/IStreamManager.cs deleted file mode 100644 index c27054e..0000000 --- a/Squirrowse.Service/Hubs/IStreamManager.cs +++ /dev/null @@ -1,19 +0,0 @@ -using System.Collections.Generic; -using System.Threading.Tasks; -using Squirrowse.Core.Models; - -namespace Squirrowse.Service.Hubs -{ - public interface IStreamManager - { - Task AddUser(string connectionId, string agentName, ConnectionType type); - Task RemoveUserbyConnectionId(string connectionId); - Task RemoveUserByUserName(string agentName); - IEnumerable getServerSideUsers(); - bool CheckUser(string agentName); - IEnumerable getClientSideUsers(); - IEnumerable getAllUsers(); - - Task SaveData(IAsyncEnumerable stream); - } -} \ No newline at end of file diff --git a/Squirrowse.Service/Hubs/StreamHub.cs b/Squirrowse.Service/Hubs/StreamHub.cs deleted file mode 100644 index e0a4bda..0000000 --- a/Squirrowse.Service/Hubs/StreamHub.cs +++ /dev/null @@ -1,143 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Globalization; -using System.Linq; -using System.Threading.Tasks; -using Microsoft.AspNetCore.SignalR; -using Microsoft.Extensions.Logging; -using OpenCvSharp; -using Squirrowse.Core.Models; -using Squirrowse.Core.Services; - -namespace Squirrowse.Service.Hubs -{ - public class StreamHub : Hub, IStreamHub //fujka - { - private readonly ILogger logger; - private readonly IStreamManager manager; - - - public StreamHub(ILogger logger, IStreamManager manager) - { - this.logger = logger; - this.manager = manager; - } - - public async Task AddUser(string UserName, ConnectionType type) - { - await manager.AddUser(Context.ConnectionId, UserName, type); - switch (type) - { - case ConnectionType.Client: - await AddToGroup(Core.Models.Groups.normal); - break; - case ConnectionType.Server: - await AddToGroup(Core.Models.Groups.superUser); - break; - } - - logger.LogInformation($"{nameof(AddUser)}: {UserName} of {type}"); - } - - - public async Task AddToGroup(Groups group, string user = "") - { - var connectionId = string.IsNullOrWhiteSpace(user) ? Context.ConnectionId : user; - await Groups.AddToGroupAsync(connectionId, group.ToString()); - logger.LogInformation($"{nameof(AddToGroup)}: {connectionId} joined to {group}"); - } - - /// - /// USE ONLY FOR DEBUG - /// - /// - /// DESTRUCTION - public async Task ExecCommandOnAll(string command, object[] act) - { - await Clients.All.SendCoreAsync(command, act); - } - - public async Task RemoveFromGroup(Groups group, string user = "") - { - var connectionId = string.IsNullOrWhiteSpace(user) ? Context.ConnectionId : user; - await Groups.RemoveFromGroupAsync(connectionId, group.ToString()); - logger.LogInformation($"{nameof(AddToGroup)}: {connectionId} joined to {group}"); - } - - public async Task Startstream(string clientId) - { - streamOn = true; - //var client = Clients.Client(clientId); - await Clients.Groups(Core.Models.Groups.normal.ToString()).SendAsync("Start"); - // await client.SendAsync("Start"); - } - - - public async Task StopStream(string clientId) - { - streamOn = false; - //var client = Clients.Client(clientId); - // await Clients.Groups(Core.Models.Groups.normal.ToString()).SendAsync("Stop"); - //await client.SendAsync("Stop"); - } - - public static bool streamOn { get; set; } - - public async Task UploadByteStream(IAsyncEnumerable stream) - { - - await foreach (var frame in stream) - { - // var frameStamp = frame.ConvertByteToMat(); - // string timestamp = DateTime.UtcNow.ToString("yyyy-MM-dd HH:mm:ss.fff", - // CultureInfo.InvariantCulture); - // Cv2.PutText(frameStamp, timestamp, new Point(1, 480 / 2), HersheyFonts.HersheySimplex, 0.5f, Scalar.Red); - logger.LogInformation($"{this.GetHashCode()}: send frame"); - - //logger.LogInformation($"Got frame size: {frame.Length} "); - //if (!streamOn) continue; - // logger.LogInformation($"Send frame of size: {frame.Length} to {Core.Models.Groups.superUser.ToString()}"); - var framewithTs = await AddTimestamp(frame); - await Clients.Groups(Core.Models.Groups.superUser.ToString()).SendAsync("RecData",framewithTs ); - logger.LogInformation($"{this.GetHashCode()}: send data"); - //await Task.Delay(100); //leave some delay for debug purpose - await Task.Delay(1000 / 30); - } - } - public async Task StartRecord(string connectionId) - { - - } - public async Task StopRecord(string connectionId) - { - - } - public async Task AddTimestamp(byte[] framebytes) - { - - var frameStamp = framebytes.ConvertByteToMat(); - string timestamp = DateTime.UtcNow.ToString("yyyy-MM-dd HH:mm:ss.fff", - CultureInfo.InvariantCulture); - Cv2.PutText(frameStamp, timestamp, new Point(1, 480 / 2), HersheyFonts.HersheySimplex, 0.5f, Scalar.Red); - return frameStamp.ConvertToJpgByte(); - } - - public async Task> GetListOfTypeUser(ConnectionType t) - { - if (t == ConnectionType.Client) return manager.getClientSideUsers(); - if (t == ConnectionType.Server) return manager.getServerSideUsers(); - return manager.getAllUsers(); - } - - public async Task> GetAllUsers() - { - return manager.getAllUsers(); - } - - public async IAsyncEnumerable GetListOfTypeUserAsync(ConnectionType t) - { - var client = await GetListOfTypeUser(t); - foreach (var va in client) yield return va; - } - } -} \ No newline at end of file diff --git a/Squirrowse.Service/Hubs/StreamManager.cs b/Squirrowse.Service/Hubs/StreamManager.cs deleted file mode 100644 index 43f5747..0000000 --- a/Squirrowse.Service/Hubs/StreamManager.cs +++ /dev/null @@ -1,65 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using OpenCvSharp; -using Squirrowse.Core.Models; -using Squirrowse.Core.Services; - -namespace Squirrowse.Service.Hubs -{ - public class StreamManager : IStreamManager - { - private readonly List _users = new List(); //temporary - public bool StreamOn { get; set; } - public Task AddUser(string connectionId, string userName, ConnectionType type) - { - _users.Add(new User(connectionId, userName, type)); - return Task.CompletedTask; - } - - public Task RemoveUserbyConnectionId(string connectionId) - { - _users.Remove(_users.First(user => user.ConnectionId == connectionId)); - return Task.CompletedTask; - } - - public Task RemoveUserByUserName(string userName) - { - _users.RemoveAll(user => user.AgentName == userName); - return Task.CompletedTask; - } - - public IEnumerable getServerSideUsers() - { - return _users.Where(user => user.UserType == ConnectionType.Server); - } - - - public IEnumerable getClientSideUsers() - { - return _users.Where(user => user.UserType == ConnectionType.Client); - } - - public bool CheckUser(string userName) - { - return _users.Any(user => user.AgentName == userName); - } - - public IEnumerable getAllUsers() - { - // var t = _users; - return _users; - } - - public async Task SaveData(IAsyncEnumerable stream) - { - VideoWriter output = new VideoWriter("m.avi",FourCC.DIVX,30,new Size(640,480)); - - await foreach (var b in stream) - { - output.Write(b.ConvertByteToMat()); - } - } - } -} \ No newline at end of file diff --git a/Squirrowse.Service/Program.cs b/Squirrowse.Service/Program.cs deleted file mode 100644 index 34c05db..0000000 --- a/Squirrowse.Service/Program.cs +++ /dev/null @@ -1,66 +0,0 @@ -using System; -using System.IO; -using Microsoft.AspNetCore.Hosting; -using Microsoft.Extensions.Configuration; -using Microsoft.Extensions.Hosting; -using NLog; -using NLog.Extensions.Logging; -using NLog.Web; - -namespace Squirrowse.Service -{ - public class Program - { - public static IConfigurationRoot Configuration { get; set; } - - public static void Main(string[] args) - { - Configuration = CreateConfigurationBuilder().Build(); - var logger = GetLogger(); - try - { - logger.Debug("Application started"); - CreateHostBuilder(args) - .Build() - .Run(); - } - catch (Exception ex) - { - logger.Error(ex, "Stopped program because of exception when building WebHost"); - throw; - } - finally - { - LogManager.Shutdown(); - } - } - - public static IHostBuilder CreateHostBuilder(string[] args) - { - return Host.CreateDefaultBuilder(args) - .ConfigureWebHostDefaults(webBuilder => - { - webBuilder.UseStartup(); - webBuilder.UseConfiguration(Configuration); - webBuilder.UseNLog(); - }); - } - - private static IConfigurationBuilder CreateConfigurationBuilder() - { - var environment = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT"); - return new ConfigurationBuilder() - .SetBasePath(Directory.GetCurrentDirectory()) - .AddJsonFile("appsettings.json", false, true) - .AddJsonFile($"appsettings.{environment}.json", false, true); - } - - private static ILogger GetLogger() - { - var nlogConfigSection = Configuration.GetSection("NLog"); - LogManager.Configuration = new NLogLoggingConfiguration(nlogConfigSection); - ILogger logger = LogManager.GetCurrentClassLogger(); - return logger; - } - } -} \ No newline at end of file diff --git a/Squirrowse.Service/Properties/launchSettings.json b/Squirrowse.Service/Properties/launchSettings.json deleted file mode 100644 index 67caf15..0000000 --- a/Squirrowse.Service/Properties/launchSettings.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "iisSettings": { - "windowsAuthentication": false, - "anonymousAuthentication": true, - "iisExpress": { - "applicationUrl": "http://localhost:59337", - "sslPort": 44365 - } - }, - "$schema": "http://json.schemastore.org/launchsettings.json", - "profiles": { - "IIS Express": { - "commandName": "IISExpress", - "environmentVariables": { - "ASPNETCORE_ENVIRONMENT": "Development" - } - }, - "Squirrowse.Service": { - "commandName": "Project", - "launchBrowser": false, - "launchUrl": "weatherforecast", - "environmentVariables": { - "ASPNETCORE_ENVIRONMENT": "Development" - }, - "applicationUrl": "https://localhost:5001;http://localhost:5000" - }, - "Docker": { - "commandName": "Docker", - "launchBrowser": true, - "launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}", - "environmentVariables": { - "ASPNETCORE_URLS": "https://+:443;http://+:80", - "ASPNETCORE_HTTPS_PORT": "44366" - }, - "httpPort": 59338, - "useSSL": true, - "sslPort": 44366 - } - } -} \ No newline at end of file diff --git a/Squirrowse.Service/Squirrowse.Service.csproj b/Squirrowse.Service/Squirrowse.Service.csproj deleted file mode 100644 index 7df21da..0000000 --- a/Squirrowse.Service/Squirrowse.Service.csproj +++ /dev/null @@ -1,28 +0,0 @@ - - - - netcoreapp3.0 - 996aee3a-63a2-4e6b-abcd-b0c6a183af8c - Linux - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Squirrowse.Service/Startup.cs b/Squirrowse.Service/Startup.cs deleted file mode 100644 index cdb1e64..0000000 --- a/Squirrowse.Service/Startup.cs +++ /dev/null @@ -1,54 +0,0 @@ -using System.Reflection; -using MediatR; -using Microsoft.AspNetCore.Builder; -using Microsoft.AspNetCore.Hosting; -using Microsoft.Extensions.Configuration; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Hosting; -using Squirrowse.Core; -using Squirrowse.Service.Hubs; - -namespace Squirrowse.Service -{ - public class Startup - { - public Startup(IConfiguration configuration) - { - Configuration = configuration; - } - - public IConfiguration Configuration { get; } - - // This method gets called by the runtime. Use this method to add services to the container. - public void ConfigureServices(IServiceCollection services) - { - services.AddControllers(); - services.AddMediatR(Assembly.GetAssembly(typeof(Startup))); - //services.AddSingleton(); - services.AddSingleton(); - services.AddCoreModule(); - services.AddSignalR() - .AddHubOptions(opt => opt.MaximumReceiveMessageSize = 102400000) //~100mb per frame instead of 32kb default - .AddMessagePackProtocol(); - } - - // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. - public void Configure(IApplicationBuilder app, IWebHostEnvironment env) - { - if (env.IsDevelopment()) app.UseDeveloperExceptionPage(); - - app.UseHttpsRedirection(); - - app.UseRouting(); - - app.UseAuthorization(); - - app.UseEndpoints(endpoints => - { - endpoints.MapControllers(); - endpoints.MapHub($"{nameof(StreamHub)}"); - }); - } - } -} \ No newline at end of file diff --git a/Squirrowse.Service/appsettings.Development.json b/Squirrowse.Service/appsettings.Development.json deleted file mode 100644 index 914088a..0000000 --- a/Squirrowse.Service/appsettings.Development.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "Logging": { - "LogLevel": { - "Default": "Debug", - "System": "Information", - "Microsoft": "Information", - "Microsoft.AspNetCore.SignalR": "Debug", - "Microsoft.AspNetCore.Http.Connections": "Debug" - } - } -} \ No newline at end of file diff --git a/Squirrowse.Service/appsettings.json b/Squirrowse.Service/appsettings.json deleted file mode 100644 index 9626df6..0000000 --- a/Squirrowse.Service/appsettings.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "Logging": { - "LogLevel": { - "Default": "Information", - "Microsoft": "Warning", - "Microsoft.Hosting.Lifetime": "Information", - "Microsoft.AspNetCore.SignalR": "Debug", - "Microsoft.AspNetCore.Http.Connections": "Debug" - } - }, - "NLog": { - "autoreload": true, - "throwConfigExceptions": true, - "variables": { - "logDirectory": "${basedir}/logs" - }, - "targets": { - "FileLogger": { - "type": "AsyncWrapper", - "target": { - "wrappedFile": { - "type": "File", - "fileName": "${logDirectory}/${machinename}.Log.txt", - "layout": "${longdate} ${level}: ${message} ${exception:format=tostring}", - "archiveFileName": "${logDirectory}/archives/${machinename}.Log_{#}.txt", - "archiveDateFormat": "yyyy-MM-dd", - "archiveAboveSize": "5242880", - "archiveEvery": "Day", - "archiveNumbering": "DateAndSequence", - "maxArchiveFiles": "90" - } - } - } - }, - "rules": [ - { - "logger": "*", - "writeTo": "FileLogger" - } - ] - }, - "AllowedHosts": "*" -} \ No newline at end of file diff --git a/Squirrowse.Service/dll/openh264-1.8.0-win64.dll b/Squirrowse.Service/dll/openh264-1.8.0-win64.dll deleted file mode 100644 index 99fb7b2..0000000 Binary files a/Squirrowse.Service/dll/openh264-1.8.0-win64.dll and /dev/null differ diff --git a/Squirrowse.Service/dupa.avi b/Squirrowse.Service/dupa.avi deleted file mode 100644 index 77f70ef..0000000 Binary files a/Squirrowse.Service/dupa.avi and /dev/null differ diff --git a/Squirrowse.Service/dupa.mkv b/Squirrowse.Service/dupa.mkv deleted file mode 100644 index 3a6ce66..0000000 Binary files a/Squirrowse.Service/dupa.mkv and /dev/null differ diff --git a/Squirrowse.Web/Pages/Hub.razor b/Squirrowse.Web/Pages/Hub.razor deleted file mode 100644 index 8e7013d..0000000 --- a/Squirrowse.Web/Pages/Hub.razor +++ /dev/null @@ -1,136 +0,0 @@ -@page "/hub" - -

Hub

- -@using System.Collections -@using Microsoft.AspNetCore.SignalR.Client -@using Squirrowse.Core.Models -@using Squirrowse.Core.Services -@inject IConnectionManager _connection; - -@**@ - -
- @if (agents != null && agents.Any()) -{ - @foreach (var agent in agents) - { -
-
-

- @agent.AgentName -> @agent.UserType.ToString() -

-
- - - - - - -
-
-
- } - } - else - { -
-

No Cams

-
- } -
- -
- -
-@code{ - - private List agents=new List(); - - HubConnection connection; - string imageSource = null; - string CurrentViewCastAgent = null; - - protected override async Task OnInitializedAsync() - { - await _connection.InitConnection(ConnectionType.Server); - connection = await _connection.GetConnection(); - connection.On("RecData", OnStreamDataReceived); - - await foreach (var user in connection.StreamAsync("GetListOfTypeUserAsync", ConnectionType.Client).ConfigureAwait(false)) - { - agents.Add(user); - this.StateHasChanged(); - } - - } - - - bool IsViewingCastOf(string agentName) - { - return agentName == CurrentViewCastAgent; - } - async Task StartRecording(string agent) - { - await connection.SendAsync("StartRecord"); - StateHasChanged(); - } - async Task StopRecording(string agent) - { - await connection.SendAsync("StopRecord"); - StateHasChanged(); - } - - async Task OnStreamDataReceived(byte[] streamData) - { - //await foreach (var t in streamData) - //{ - // var base64 = Convert.ToBase64String(t); - // imageSource = String.Format("data:image/jpg;base64,{0}", base64); - // StateHasChanged(); - //} - - var base64 = Convert.ToBase64String(streamData); - imageSource = String.Format("data:image/jpg;base64,{0}", base64); - StateHasChanged(); - - } - async Task OnStreamDataReceivedEn(byte[] streamData) - { - //await foreach (var t in streamData) - //{ - // var base64 = Convert.ToBase64String(t); - // imageSource = String.Format("data:image/jpg;base64,{0}", base64); - // StateHasChanged(); - //} - - var base64 = Convert.ToBase64String(streamData); - imageSource = String.Format("data:image/jpg;base64,{0}", base64); - StateHasChanged(); - - } - - private async Task OnViewCastClicked(string agentName) - { - CurrentViewCastAgent = agentName; - await connection.InvokeAsync("Startstream", agentName); - StateHasChanged(); - } - - private async Task OnStopViewCastClicked(string agentName) - { - CurrentViewCastAgent = null; - await connection.InvokeAsync("StopStream", agentName); - imageSource = null; - StateHasChanged(); - } - -} diff --git a/squirrowse.web/Data/GaleryService.cs b/squirrowse.web/Data/GaleryService.cs index 8974394..40da9e0 100644 --- a/squirrowse.web/Data/GaleryService.cs +++ b/squirrowse.web/Data/GaleryService.cs @@ -19,7 +19,6 @@ namespace squirrowse.web.Data public async Task> tags() { var tlist = new List(); - // using var db = new LiteDatabase("db.db"); var t = db.GetCollection(); foreach (var frame in t.FindAll().Where(x => x.Objects != null)) @@ -34,7 +33,6 @@ namespace squirrowse.web.Data public async Task>> galeryEntireView() { var tags = await this.tags(); - // using var db = new LiteDatabase("db.db"); var t = db.GetCollection(); var d = new Dictionary>(); @@ -44,17 +42,11 @@ namespace squirrowse.web.Data var t2 = t1.Where(x => x.Objects.Any(y => y.ObjectProperty == tag)); d.Add(tag, t2.ToList()); } - - //var temp = t.Query().Select(x => x.Objects.Where().ToArray(); - - // t.Find(x => x.Objects.Any(y => y.ObjectProperty == tag)).ForEach(x => { d.Add(tag, x); }); - //d.Add(tag,temp); return d; } public async Task>> galerViewbyTag(List tags) { - // using var db = new LiteDatabase("db.db"); var t = db.GetCollection(); var d = new Dictionary>(); @@ -64,11 +56,6 @@ namespace squirrowse.web.Data var t2 = t1.Where(x => x.Objects.Any(y => y.ObjectProperty == tag)); d.Add(tag, t2.ToList()); } - - //var temp = t.Query().Select(x => x.Objects.Where().ToArray(); - - // t.Find(x => x.Objects.Any(y => y.ObjectProperty == tag)).ForEach(x => { d.Add(tag, x); }); - //d.Add(tag,temp); return d; } }