Esempio n. 1
0
        public async Task <bool> SaveDefaultOptionSetAsync(AbstractSubredditOptionSet defaultSet, bool overrideIfExists = false)
        {
            SubredditConfig = new SubredditConfig()
            {
                Version = 1,
                Options = new SubredditOptionSet(),
            };
            // TODO: check permissions
            if (overrideIfExists || !await PageExistsAsync())
            {
                await RedditSubreddit.GetWiki.EditPageAsync(pageName, JsonConvert.SerializeObject(SubredditConfig, Formatting.Indented), null, "creating new BotTerminator config");

                await RedditSubreddit.GetWiki.SetPageSettingsAsync(pageName, true, WikiPageSettings.WikiPagePermissionLevel.Mods);

                return(true);
            }
            else
            {
                return(false);
            }
        }
Esempio n. 2
0
        internal async Task <IReadOnlyCollection <Models.Group> > GetBannedGroupsAsync(AbstractSubredditOptionSet options)
        {
            if (UserLookup is CacheableBackedBotDatabase cacheable)
            {
                if (cacheable.IsStale)
                {
                    IncrementStatisticIfExists("requestRate");
                }
            }
            IReadOnlyCollection <String> actioned = options.ActionedUserTypes.ToHashSet();

            return(actioned.Count == 0 ? await UserLookup.GetDefaultBannedGroupsAsync() : (await UserLookup.GetAllGroupsAsync()).Values.Where(group => actioned.Contains(group.Name)).ToArray());
        }