Esempio n. 1
0
 public DiscordClientConfiguration(
     IApiClient apiClient, IGateway gateway, IExtendedCacheClient cache)
 {
     ApiClient   = apiClient;
     Gateway     = gateway;
     CacheClient = cache;
 }
Esempio n. 2
0
 public BlackjackService(
     IExtendedCacheClient cache,
     ITransactionService transactionService)
 {
     this.repository         = new BlackjackRepository(cache);
     this.transactionService = transactionService;
 }
Esempio n. 3
0
 public ScheduleWorker(
     string taskName, ISchedulerService parent, IExtendedCacheClient cacheClient)
 {
     this.taskName    = taskName;
     this.cacheClient = cacheClient;
     this.parent      = parent;
 }
Esempio n. 4
0
        public static async Task SyncAvatarAsync(IDiscordUser user, IExtendedCacheClient cache, MikiDbContext context)
        {
            PutObjectRequest request = new PutObjectRequest();

            request.BucketName  = "miki-cdn";
            request.Key         = $"avatars/{user.Id}.png";
            request.ContentType = "image/png";
            request.CannedACL   = new S3CannedACL("public-read");

            string avatarUrl = user.GetAvatarUrl();

            using (var client = new Rest.RestClient(avatarUrl, true))
            {
                request.InputStream = await client.GetStreamAsync();
            }

            var response = await Global.CdnClient.PutObjectAsync(request);

            if (response.HttpStatusCode != System.Net.HttpStatusCode.OK)
            {
                throw new AvatarSyncException();
            }

            await MikiApp.Instance.GetService <BunnyCDNClient>()
            .PurgeCacheAsync($"https://mikido.b-cdn.net/avatars/{user.Id}.png");

            User u = await User.GetAsync(context, user.Id, user.Username);

            await cache.HashUpsertAsync("avtr:sync", user.Id.ToString(), 1);

            u.AvatarUrl = u.Id.ToString();
            await context.SaveChangesAsync();
        }
Esempio n. 5
0
 public ScriptStorage(IExtendedCacheClient cache, long guildId, int keyLimit, int valueLimit)
 {
     this.cache      = cache;
     this.guildId    = guildId;
     this.keyLimit   = keyLimit;
     this.valueLimit = valueLimit;
     values          = new ConcurrentDictionary <string, IScriptValue>();
     updatedKeys     = new List <string>();
 }
        /// <summary>
        /// Default caching strategy for Miki.Discord
        /// </summary>
        /// <param name="cache">Cache provider</param>
        public DefaultCacheHandler(IExtendedCacheClient cache, IApiClient apiClient)
        {
            this.cache = cache;

            Channels = new DiscordChannelCacheRepository(cache, apiClient);
            Guilds   = new DiscordGuildCacheRepository(cache, apiClient);
            Members  = new DiscordMemberCacheRepository(cache, apiClient);
            Roles    = new DiscordRoleCacheRepository(cache, apiClient);
            Users    = new DiscordUserCacheRepository(cache, apiClient);
        }
Esempio n. 7
0
 public LotteryService(
     IExtendedCacheClient cache, 
     ISchedulerService scheduler, 
     ITransactionService transactions, 
     LotteryEventHandler eventHandler)
 {
     this.transactions = transactions;
     this.scheduler = scheduler.CreateWorker(
         lotterySchedulerKey, eventHandler.HandleLotteryAsync);
     this.entrySet = cache.CreateHashSet<LotteryEntry>(eventHandler.LotteryObjectsKey);
 }
Esempio n. 8
0
        public DiscordClient(IApiClient apiClient, IGateway gateway, IExtendedCacheClient cacheClient)
        {
            ApiClient    = apiClient;
            Gateway      = gateway;
            cacheHandler = new DefaultCacheHandler(cacheClient, apiClient);

            Events = new DiscordEventHandler(this, cacheHandler);
            Events.SubscribeTo(Gateway);

            eventCacheHandler = new EventCacheHandler(gateway, cacheHandler);
        }
Esempio n. 9
0
        public SchedulerService(MikiApp app, IExtendedCacheClient cacheClient, ISentryClient sentryClient)
        {
            if (app == null)
            {
                throw new ArgumentNullException(nameof(app));
            }

            this.app          = app;
            this.cacheClient  = cacheClient;
            this.sentryClient = sentryClient;
            taskCallbacks     = new Dictionary <string, Func <IContext, string, Task> >();
            cancellationToken = new CancellationTokenSource();
            workerTask        = RunWorkerAsync(cancellationToken.Token).ConfigureAwait(false);
        }
Esempio n. 10
0
 public BlackjackService(IExtendedCacheClient cache)
 {
     _cache = cache;
 }
Esempio n. 11
0
 public TestCache(IExtendedCacheClient cacheClient)
     : base(cacheClient)
 {
 }
Esempio n. 12
0
 public CustomCommandsService(IExtendedCacheClient cache, IUnitOfWork unitOfWork, IUserService userService)
 {
     this.cache       = cache;
     this.unitOfWork  = unitOfWork;
     this.userService = userService;
 }
 public DiscordUserCacheRepository(IExtendedCacheClient cacheClient, IApiClient apiClient)
     : base(cacheClient)
 {
     this.cacheClient = cacheClient;
     this.apiClient   = apiClient;
 }
Esempio n. 14
0
 public BlackjackRepository(IExtendedCacheClient cache)
 {
     this.cache = cache;
 }
Esempio n. 15
0
 protected BaseCacheRepository(IExtendedCacheClient cacheClient)
 {
     this.cacheClient = cacheClient;
 }
Esempio n. 16
0
 public HashSet(IExtendedCacheClient cacheClient, string key)
 {
     _cacheClient = cacheClient;
     _key         = key;
 }
Esempio n. 17
0
 /// <summary>
 /// Creates an hash set struct for your cache client, exposing values in a more user-friendly way.
 /// </summary>
 /// <typeparam name="T">Type of value you want to store.</typeparam>
 /// <param name="cacheClient">The cache client reference created.</param>
 /// <param name="key">The key at which the hash set will be stored in the cache.</param>
 public static IHashSet <T> CreateHashSet <T>(this IExtendedCacheClient cacheClient, string key)
 {
     return(new HashSet <T>(cacheClient, key));
 }
Esempio n. 18
0
 public ScheduleWorkerGroup(
     string taskName, ISchedulerService parent, IExtendedCacheClient cacheClient)
     : base(taskName, parent, cacheClient)
 {
 }