Example #1
0
        public PaginatorSenderService(EnergizeClient client)
        {
            this.Paginators     = new ConcurrentDictionary <ulong, Paginator <object> >();
            this.MessageSender  = client.MessageSender;
            this.ServiceManager = client.ServiceManager;
            this.Logger         = client.Logger;
            this.Client         = client.DiscordClient;

            Timer timer = new Timer(_ =>
            {
                List <ulong> toRemove = new List <ulong>();
                foreach ((ulong id, Paginator <object> paginator) in this.Paginators)
                {
                    if (paginator.IsExpired)
                    {
                        toRemove.Add(id);
                    }
                }

                foreach (ulong msgId in toRemove)
                {
                    this.Paginators.TryRemove(msgId, out Paginator <object> _);
                }

                if (toRemove.Count > 0)
                {
                    this.Logger.Nice("Paginator", ConsoleColor.Gray, $"Cleared {toRemove.Count} paginator instance{(toRemove.Count == 1 ? string.Empty : "s")}");
                }
            });

            timer.Change(300000, 300000); //5 mins
        }
Example #2
0
 public EventLoggingService(EnergizeClient client)
 {
     this.Client     = client.DiscordClient;
     this.RestClient = client.DiscordRestClient;
     this.Prefix     = client.Prefix;
     this.Log        = client.Logger;
 }
Example #3
0
        public TransmissionService(EnergizeClient client)
        {
            OctovisorConfig config     = Config.Instance.Octovisor;
            OctoConfig      octoConfig = new OctoConfig
            {
                Address     = config.Address,
                Port        = config.Port,
                ProcessName = config.ProcessName,
                Token       = config.Token,
            };

            this.Logger          = client.Logger;
            this.OctoClient      = new OctoClient(octoConfig);
            this.OctoClient.Log += log =>
            {
                if (log.Severity == LogSeverity.Info)
                {
                    this.Logger.Nice("Octo", ConsoleColor.Magenta, log.Content);
                }
            };

            this.Transmitters = new List <BaseTransmitter>
            {
                new WebsiteTransmitter(client, this.OctoClient),
                new WatchdogTransmitter(client, this.OctoClient)
            };
        }
Example #4
0
 public ServiceManager(EnergizeClient client)
 {
     this.Services         = new Dictionary <string, IService>();
     this.ServiceTypes     = Assembly.GetExecutingAssembly().GetTypes().Where(IsService);
     this.Client           = client;
     this.Logger           = client.Logger;
     this.CaughtExceptions = new List <EventHandlerException>();
 }
Example #5
0
 public RestartService(EnergizeClient client)
 {
     this.ChannelIds    = new ConcurrentBag <ulong>();
     this.Logger        = client.Logger;
     this.MessageSender = client.MessageSender;
     this.DiscordClient = client.DiscordClient;
     this.LogPath       = "logs/restart.log";
 }
Example #6
0
 internal WebsiteTransmitter(EnergizeClient client, OctoClient octoClient) : base(client, octoClient)
 {
     this.ServiceManager    = client.ServiceManager;
     this.DiscordClient     = client.DiscordClient;
     this.DiscordRestClient = client.DiscordRestClient;
     this.Prefix            = client.Prefix;
     this.MessageSender     = client.MessageSender;
 }
Example #7
0
 public CommandHandlingService(EnergizeClient client)
 {
     this.Client         = client.DiscordClient;
     this.RestClient     = client.DiscordRestClient;
     this.Logger         = client.Logger;
     this.MessageSender  = client.MessageSender;
     this.ServiceManager = client.ServiceManager;
 }
Example #8
0
        private static IServiceImplementation Instanciate(EnergizeClient client, Type type)
        {
            if (type.GetConstructor(new [] { typeof(EnergizeClient) }) != null)
            {
                return((IServiceImplementation)Activator.CreateInstance(type, client));
            }

            return((IServiceImplementation)Activator.CreateInstance(type));
        }
Example #9
0
        public DatabaseService(EnergizeClient client)
        {
            this.Logger = client.Logger;

            this.Pool = new List <DatabaseContext>();
            for (uint i = 0; i < 10; i++)
            {
                this.Pool.Add(new DatabaseContext(Create(), this.Logger));
            }
        }
Example #10
0
        public MessageUsabilityService(EnergizeClient client)
        {
            this.MessageSender  = client.MessageSender;
            this.ServiceManager = client.ServiceManager;

            this.InviteRegex = new Regex(@"discord(app\.com\/invite|\.gg)\/[A-Za-z0-9]+", RegexOptions.Compiled | RegexOptions.IgnoreCase);
            this.ExtendableMessageProviders = new List <BaseProvider>
            {
                new DiscordMessageProvider(client.DiscordClient, "discordapp", @"https:\/\/discordapp.com\/channels\/([0-9]+)\/([0-9]+)\/([0-9]+)"),
                new RedditPostProvider(client.Logger, "reddit", @"https?:\/\/www\.reddit\.com\/r\/([A-Za-z0-9]+)\/comments\/.{6}\/"),
                new GitHubRepoProvider(client.Logger, "github", @"https?:\/\/github\.com\/([^\/\s]+)\/([^\/\s]+)"),
                new FaArtworkProvider(client.Logger, "furaffinity", @"https?:\/\/www\.furaffinity\.net\/view\/[0-9]+"),
            };
        }
Example #11
0
        public MusicPlayerService(EnergizeClient client)
        {
            this.Players = new ConcurrentDictionary <ulong, IEnergizePlayer>();

            this.DiscordClient  = client.DiscordClient;
            this.Logger         = client.Logger;
            this.MessageSender  = client.MessageSender;
            this.ServiceManager = client.ServiceManager;
            this.LavaClient     = new LavaShardClient();

            this.Rand = new Random();

            this.LavaClient.OnTrackException += this.OnTrackIssue;
            this.LavaClient.OnTrackStuck     += async(ply, track, _) => await this.OnTrackIssue(ply, track);

            this.LavaClient.OnTrackFinished += this.OnTrackFinished;
            this.LavaClient.Log             += async logMsg => this.Logger.Nice("Lavalink", ConsoleColor.Magenta, logMsg.Message);
            this.LavaClient.OnPlayerUpdated += this.OnPlayerUpdated;
            //this.LavaClient.OnSocketClosed += this.OnSocketClosed;
        }
Example #12
0
        public SpotifyHandlerService(EnergizeClient client)
        {
            this.Logger = client.Logger;
            this.Api    = new SpotifyWebAPI
            {
                TokenType    = "Bearer",
                UseAuth      = true,
                UseAutoRetry = true
            };
            this.LavaRest = GetLavaRestClient();
            // TODO: add configuration entry
            this.Config           = Essentials.Config.Instance.Spotify;
            this.SpotifyAuthTimer = new Timer(this.TradeSpotifyToken);

            SpotifyRunConfig spotifyRunConfig = new SpotifyRunConfig(this.LavaRest, this.Api, this.Config, new SpotifyTrackConverter(this.LavaRest, this.Config));

            this.TrackProvider    = new SpotifyTrackProvider(spotifyRunConfig);
            this.SearchProvider   = new SpotifySearchProvider(spotifyRunConfig);
            this.PlaylistProvider = new SpotifyPlaylistProvider(spotifyRunConfig);
            this.AlbumProvider    = new SpotifyAlbumProvider(spotifyRunConfig);
            this.ArtistProvider   = new SpotifyArtistProvider(spotifyRunConfig);
        }
Example #13
0
 public SchedulingService(EnergizeClient client)
 {
     this.Logger      = client.Logger;
     this.JobSceduler = new JobScheduler(client);
 }
Example #14
0
 internal WatchdogTransmitter(EnergizeClient client, OctoClient octoClient) : base(client, octoClient)
 {
     this.ServiceManager = client.ServiceManager;
     this.MessageSender  = client.MessageSender;
     this.DiscordClient  = client.DiscordClient;
 }
 public WebhookSenderService(EnergizeClient client)
 {
     this.Logger     = client.Logger;
     this.HttpClient = new HttpClient();
 }
Example #16
0
 public JobScheduler(EnergizeClient client)
 {
     this.Logger         = client.Logger;
     this.ServiceManager = client.ServiceManager;
     this.DiscordClient  = client.DiscordClient;
 }
Example #17
0
 public VoteSenderService(EnergizeClient client)
 {
     this.Logger        = client.Logger;
     this.MessageSender = client.MessageSender;
     this.Votes         = new ConcurrentDictionary <ulong, Vote>();
 }
Example #18
0
 public FamingService(EnergizeClient client)
 {
     this.ServiceManager = client.ServiceManager;
     this.MessageSender  = client.MessageSender;
     this.Logger         = client.Logger;
 }
Example #19
0
 public MusicPlayerUsabilityService(EnergizeClient client)
 {
     this.Logger         = client.Logger;
     this.ServiceManager = client.ServiceManager;
     this.MessageSender  = client.MessageSender;
 }
Example #20
0
 internal BaseTransmitter(EnergizeClient client, OctoClient octoClient)
 {
     this.Client = octoClient;
     this.Logger = client.Logger;
 }