Пример #1
0
        public async Task AddToQueue(ulong guildId, string subRedditName, PostType post, ulong channelId, int amountOfTimes)
        {
            await LazyAddToQueue.WaitAsync();

            try
            {
                var txtChannel = _discord.GetChannel(channelId) as ITextChannel;
                if (txtChannel is null)
                {
                    return; //Channel has been removed.
                }
                var subReddit = await GetSubReddit(subRedditName);

                if (subReddit is null)
                {
                    await txtChannel.SendMessageAsync("The subreddit could not be found.");

                    LazyAddToQueue.Release();
                    return;
                }

                if (subReddit.IsNsfw && !txtChannel.IsNsfw)
                {
                    await txtChannel.SendMessageAsync("This subreddit can only be used in nsfw channels.");

                    LazyAddToQueue.Release();
                    return;
                }

                var sort = await _guildSettingsAppService.GetGuildSettingByKey <Sort>(guildId,
                                                                                      DefaultSettingKeys.Sort);

                IEnumerable <QueueItem> queueItems = new List <QueueItem>();
                for (var i = 0; i < amountOfTimes; i++)
                {
                    queueItems = queueItems.Append(new QueueItem(subReddit.Id, subReddit.Name, channelId, post, Guid.NewGuid(), sort));
                }

                _queueManagerService.AddToQueue(queueItems, guildId);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
            finally
            {
                LazyAddToQueue.Release();
            }
        }
Пример #2
0
 public async Task <TObj> GetGuildSettingByKey <TObj>(ulong guildId, string key)
 {
     return(await _guildSettingsAppService.GetGuildSettingByKey <TObj>(guildId, key));
 }