示例#1
0
        public static void Main(string[] args)
        {
            var appSettingsCollection = new CouchDbStore <ApplicationSettings>(ApplicationSettings.CouchDbUrl);
            var accountCollection     = new CouchDbStore <Account>(ApplicationSettings.CouchDbUrl);

            var appSettings = appSettingsCollection.GetAsync().Result.FirstOrDefault()?.Value;
            var account     = accountCollection.GetAsync("account-email", "*****@*****.**").Result.FirstOrDefault()?.Value;

            if (appSettings == null || account == null)
            {
                Console.WriteLine("Settings could not be found...");
                return;
            }

            var app = new KungBot(appSettings, account);

            try
            {
                app.Initialize();
                app.Configure();
            }
            catch (Exception e)
            {
                Console.WriteLine($"Configuration failed. \n{e.Message}\n{e.StackTrace}");
            }

            app.RunBotAsync().GetAwaiter().GetResult();
        }
        public void SetupTests()
        {
            var settingsCollection = new CouchDbStore <ApplicationSettings>(ApplicationSettings.CouchDbUrl);
            var settings           = settingsCollection.FindAsync("9c3131ee7b9fb97491e8551211495381").GetAwaiter().GetResult();

            _seClient = new StreamElementsService(settings);
        }
 public void CreateDatabaseAndViews()
 {
     _applicationSettingsCollection = new CouchDbStore <ApplicationSettings>(ApplicationSettings.CouchDbUrl);
     _applicationSettingsCollection.CreateDatabase().GetAwaiter().GetResult();
     _applicationSettingsCollection.CreateDesignDocument().GetAwaiter().GetResult();
     _applicationSettingsCollection.CreateView("applicationsettings").GetAwaiter().GetResult();
 }
        public static void Init(TwitchClient client, TwitchPubSub pubsubClient, ApplicationSettings appSettings, Account account,
                                CouchDbStore <Viewer> viewerCollection, List <Command> settings)
        {
            _client           = client;
            _account          = account;
            _viewerCollection = viewerCollection;
            _commandSettings  = settings;
            _twitchService    = new TwitchService(appSettings);

            _client.OnJoinedChannel               += OnJoinedChannel;
            _client.OnMessageReceived             += OnMessageReceived;
            _client.OnWhisperReceived             += OnWhisperReceived;
            _client.OnNewSubscriber               += OnNewSubscriber;
            _client.OnLog                         += OnLog;
            _client.OnConnectionError             += OnConnectionError;
            _client.OnChatCommandReceived         += OnChatCommandReceived;
            _client.OnUserTimedout                += OnUserTimedOut;
            _client.OnUserBanned                  += ClientOnUserBanned;
            pubsubClient.OnPubSubServiceConnected += TwitchPubSubOnOnPubSubServiceConnected;
            pubsubClient.OnPubSubServiceClosed    += TwitchPubSubOnOnPubSubServiceClosed;
            pubsubClient.OnChannelSubscription    += TwitchPubSubOnOnChannelSubscription;
            pubsubClient.OnFollow                 += TwitchPubSubOnOnFollow;
            pubsubClient.OnEmoteOnly              += TwitchPubSubOnOnEmoteOnly;
            pubsubClient.OnEmoteOnlyOff           += TwitchPubSubOnOnEmoteOnlyOff;

            pubsubClient.ListenToFollows(appSettings?.Keys.Twitch.ChannelId);
            pubsubClient.ListenToSubscriptions(appSettings?.Keys.Twitch.ChannelId);
            pubsubClient.ListenToChatModeratorActions(_account?.TwitchBotSettings.Username, appSettings?.Keys.Twitch.ChannelId);
        }
示例#5
0
 public void CreateDatabaseAndViews()
 {
     _tokenCollection = new CouchDbStore <Token>(ApplicationSettings.CouchDbUrl);
     _tokenCollection.CreateDatabase().GetAwaiter().GetResult();
     _tokenCollection.CreateDesignDocument().GetAwaiter().GetResult();
     _tokenCollection.CreateView("token").GetAwaiter().GetResult();
     _tokenCollection.CreateView("token", "accountid", "doc.accountid").GetAwaiter().GetResult();
 }
示例#6
0
        public void SetupTests()
        {
            //TODO: Put default couchdburl in appsettings and transform during CI/CD
            var settingsCollection = new CouchDbStore <ApplicationSettings>(ApplicationSettings.CouchDbUrl);
            var settings           = settingsCollection.FindAsync("9c3131ee7b9fb97491e8551211495381").GetAwaiter().GetResult();

            _seClient = new StreamElementsService(settings);
        }
示例#7
0
        public void SetUpTests()
        {
            var settingsCollection = new CouchDbStore <ApplicationSettings>(ApplicationSettings.CouchDbUrl);
            var settings           = settingsCollection.FindAsync("9c3131ee7b9fb97491e8551211495381").GetAwaiter().GetResult();

            _vodCollection = new CouchDbStore <Vod>(ApplicationSettings.CouchDbUrl);
            _twitchService = new TwitchService(settings);
        }
示例#8
0
        public void SetupTests()
        {
            var settingsCollection = new CouchDbStore <ApplicationSettings>(ApplicationSettings.CouchDbUrl);
            var settings           = settingsCollection.GetAsync().Result.FirstOrDefault()?.Value;

            _seClient         = new StreamElementsService(settings);
            _viewerCollection = new CouchDbStore <Viewer>(ApplicationSettings.CouchDbUrl);
        }
 public void CreateDatabaseAndViews()
 {
     _accountCollection = new CouchDbStore <Account>(ApplicationSettings.CouchDbUrl);
     _accountCollection.CreateDatabase().GetAwaiter().GetResult();
     _accountCollection.CreateDesignDocument().GetAwaiter().GetResult();
     _accountCollection.CreateView("account").GetAwaiter().GetResult();
     _accountCollection.CreateView("account", "email", "doc.email").GetAwaiter().GetResult();
     _accountCollection.CreateView("account", "username", "doc.username").GetAwaiter().GetResult();
 }
        public BaseApiController(IConfiguration configuration)
        {
            Configuration = configuration;

            var configSettings = Configuration.GetSection("Settings");

            var settingCollection = new CouchDbStore <ApplicationSettings>(configSettings.GetSection("CouchDbUri").Value);

            TokenCollection = new CouchDbStore <Token>(configSettings.GetSection("CouchDbUri").Value);

            _settings = settingCollection.GetAsync().GetAwaiter().GetResult().FirstOrDefault()?.Value;

            GoogleClient = new GoogleService(_settings);
        }
示例#11
0
        public KungBot(TwitchClient client, TwitchPubSub twitchPubSub)
        {
            _client       = client;
            _twitchPubSub = twitchPubSub;

            var appSettingsCollection = new CouchDbStore <ApplicationSettings>(ApplicationSettings.CouchDbUrl);
            var accountCollection     = new CouchDbStore <Account>(ApplicationSettings.CouchDbUrl);

            _appSettings = appSettingsCollection.GetAsync().Result.FirstOrDefault()?.Value;
            _account     = accountCollection.GetAsync().Result.FirstOrDefault()?.Value;

            _viewerCollection = new CouchDbStore <Viewer>(ApplicationSettings.CouchDbUrl);

            var commandCollection = new CouchDbStore <Command>(ApplicationSettings.CouchDbUrl);

            _commandSettings = commandCollection.GetAsync().Result.Select(row => row.Value).ToList();
        }
示例#12
0
        public void Perform(TwitchClient client, TwitchService service, ChatCommand chatCommand, Command command)
        {
            if (!command.IsActive)
            {
                return;
            }

            var _viewerCollection     = new CouchDbStore <Viewer>(ApplicationSettings.CouchDbUrl);
            var _viewerRankCollection = new CouchDbStore <ViewerRank>(ApplicationSettings.CouchDbUrl);

            var dbViewer  = (_viewerCollection.GetAsync("viewer-username", chatCommand.ChatMessage.Username).GetAwaiter().GetResult()).FirstOrDefault()?.Value;
            var viewRanks = _viewerRankCollection.GetAsync().GetAwaiter().GetResult();

            if (dbViewer != null)
            {
                var viewerRank = viewRanks
                                 .LastOrDefault(r => r.Value.ExperienceRequired <= dbViewer.Points)?.Value.RankName;

                client.SendMessage(chatCommand.ChatMessage.Channel, $"{chatCommand.ChatMessage.Username}, Your rank is {viewerRank}! You have {dbViewer.Points} experience! kungraHYPERS");
            }
        }
 public AccountController(IConfiguration configuration) : base(configuration)
 {
     _accountCollection = new CouchDbStore <Account>(ApplicationSettings.CouchDbUrl);
 }
示例#14
0
 public void SetUpTests()
 {
     _viewersCollection = new CouchDbStore <Viewer>(ApplicationSettings.CouchDbUrl);
 }
 public void SetUpTests()
 {
     _accountsCollection   = new CouchDbStore <Account>(ApplicationSettings.CouchDbUrl);
     _viewerRankCollection = new CouchDbStore <ViewerRank>(ApplicationSettings.CouchDbUrl);
 }
        public TwitchCommands()
        {
            var settingsCollection = new CouchDbStore <ApplicationSettings>(ApplicationSettings.CouchDbUrl);

            _settings = settingsCollection.GetAsync().Result.FirstOrDefault()?.Value;
        }
示例#17
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddOptions();
            services.Configure <ApplicationSettings>(Configuration);

            var configSettings     = Configuration.GetSection("Settings");
            var settingsCollection = new CouchDbStore <ApplicationSettings>(configSettings.GetSection("CouchDbUri").Value);

            var settings = settingsCollection.GetAsync().GetAwaiter().GetResult().FirstOrDefault()?.Value;

            services.AddResponseCaching(options =>
            {
                options.UseCaseSensitivePaths = true;
                options.MaximumBodySize       = 1024;
            });

            services.AddApiVersioning(api =>
            {
                api.DefaultApiVersion = new ApiVersion(1, 0);
                api.AssumeDefaultVersionWhenUnspecified = true;
                api.ReportApiVersions = true;
            });

            services.AddAuthentication(options =>
            {
                options.DefaultAuthenticateScheme = "JwtBearer";
                options.DefaultChallengeScheme    = "JwtBearer";
            })
            .AddJwtBearer("JwtBearer", jwtBearerOptions =>
            {
                jwtBearerOptions.TokenValidationParameters = new TokenValidationParameters
                {
                    ValidateIssuerSigningKey = true,
                    IssuerSigningKey         =
                        new SymmetricSecurityKey(Encoding.UTF8.GetBytes(settings?.Keys.JWTSecurityKey)),

                    ValidateIssuer = true,
                    ValidIssuer    = "kungraseri-api",

                    ValidateAudience = true,
                    ValidAudience    = "kungraseri-audience",

                    ValidateLifetime = true,
                    ClockSkew        = TimeSpan.FromMinutes(5)
                };
            });

            services.Configure <IISOptions>("api.kungraseri.ninja", options => { });
            services.AddMvc(options =>
            {
                options.CacheProfiles.Add("Default",
                                          new CacheProfile
                {
                    Duration = 60
                });
                options.CacheProfiles.Add("Never",
                                          new CacheProfile
                {
                    Location = ResponseCacheLocation.None,
                    NoStore  = true
                });
            });

            services.AddWebSocketManager();
        }
 public TwitchController(IConfiguration configuration) : base(configuration)
 {
     _twitchClient  = new TwitchService(_settings);
     _vodCollection = new CouchDbStore <Vod>(Data.Models.ApplicationSettings.CouchDbUrl);
     _googleService = new GoogleService(_settings);
 }
示例#19
0
 public AuthController(IConfiguration configuration) : base(configuration)
 {
     _accountCollection = new CouchDbStore <Account>(ApplicationSettings.CouchDbUrl);
     _cryptoService     = new Crypto(_settings.CookieToken);
 }