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 }
public EventLoggingService(EnergizeClient client) { this.Client = client.DiscordClient; this.RestClient = client.DiscordRestClient; this.Prefix = client.Prefix; this.Log = client.Logger; }
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) }; }
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>(); }
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"; }
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; }
public CommandHandlingService(EnergizeClient client) { this.Client = client.DiscordClient; this.RestClient = client.DiscordRestClient; this.Logger = client.Logger; this.MessageSender = client.MessageSender; this.ServiceManager = client.ServiceManager; }
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)); }
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)); } }
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]+"), }; }
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; }
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); }
public SchedulingService(EnergizeClient client) { this.Logger = client.Logger; this.JobSceduler = new JobScheduler(client); }
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(); }
public JobScheduler(EnergizeClient client) { this.Logger = client.Logger; this.ServiceManager = client.ServiceManager; this.DiscordClient = client.DiscordClient; }
public VoteSenderService(EnergizeClient client) { this.Logger = client.Logger; this.MessageSender = client.MessageSender; this.Votes = new ConcurrentDictionary <ulong, Vote>(); }
public FamingService(EnergizeClient client) { this.ServiceManager = client.ServiceManager; this.MessageSender = client.MessageSender; this.Logger = client.Logger; }
public MusicPlayerUsabilityService(EnergizeClient client) { this.Logger = client.Logger; this.ServiceManager = client.ServiceManager; this.MessageSender = client.MessageSender; }
internal BaseTransmitter(EnergizeClient client, OctoClient octoClient) { this.Client = octoClient; this.Logger = client.Logger; }