Esempio n. 1
0
        public async Task DumpHelp(ICommand command)
        {
            var result  = new StringBuilder();
            var preface = new StringBuilder("<div class=\"row\"><div class=\"col-lg-12 section-heading\" style=\"margin-bottom: 0px\">\n<h3><img class=\"feature-icon-big\" src=\"img/compass.png\"/>Quick navigation</h3>\n");
            int counter = 0;

            foreach (var module in _frameworkReflector.Modules.Where(x => !x.Hidden))
            {
                var anchor      = WebsiteWalker.GetModuleWebAnchor(module.Name);
                var description = ConvertToHtml(ReplacePlaceholders(module.Description));
                preface.AppendLine($"<p class=\"text-muted\"><a href=\"#{anchor}\"><img class=\"feature-icon-small\" src=\"img/modules/{module.Name}.png\"/>{module.Name}</a> – {description}</p>");

                result.AppendLine($"<div class=\"row\"><div class=\"col-lg-12\"><a class=\"anchor\" id=\"{anchor}\"></a><h3><img class=\"feature-icon-big\" src=\"img/modules/{module.Name}.png\"/>{module.Name}</h3>");
                result.AppendLine($"<p class=\"text-muted\">{description}</p>");

                foreach (var handledCommand in module.Commands.Where(x => !x.Flags.HasFlag(CommandFlags.Hidden) && !x.Flags.HasFlag(CommandFlags.OwnerOnly)))
                {
                    counter++;

                    if (handledCommand.PrimaryUsage.InvokeUsage == "calendar create")
                    {
                        result.AppendLine("</br><p class=\"text-muted\">Calendars are automatically updated messages which display parts of the schedule.</p>");
                    }
                    else if (handledCommand.PrimaryUsage.InvokeUsage == "roles group add")
                    {
                        result.AppendLine("</br><p class=\"text-muted\">Use groups to limit the number of roles a user may have.</p>");
                    }
                    else if (handledCommand.PrimaryUsage.InvokeUsage == "event add")
                    {
                        result.AppendLine("</br><p class=\"text-muted\">Events are the content of your schedule.</p>");
                    }

                    result.AppendLine($"<p data-target=\"#usage{counter}\" data-toggle=\"collapse\" class=\"paramlistitem\">" +
                                      $"<i class=\"fa fa-angle-right\" style=\"margin-right: 3px;\"></i><span class=\"paramlistcode\">{handledCommand.PrimaryUsage.InvokeUsage}</span> – {handledCommand.Description} " +
                                      "</p>");

                    var usage = BuildWebUsageString(handledCommand, _botOptions.Value.DefaultCommandPrefix);
                    if (string.IsNullOrEmpty(usage))
                    {
                        continue;
                    }

                    result.AppendLine($"<div id=\"usage{counter}\" class=\"collapse usage\">");
                    result.Append(usage);
                    result.AppendLine("</div>");
                }

                result.AppendLine("<br/></div></div>");
            }

            preface.AppendLine("</div></div>");
            preface.AppendLine("<hr/>");
            preface.Append(result);
            using (var stream = new MemoryStream(Encoding.Unicode.GetBytes(preface.ToString())))
            {
                await command.Message.Channel.SendFileAsync(stream, "output.html");
            }
        }
Esempio n. 2
0
 public LastFmModule(
     ILastFmSettingsService settings,
     IFrameworkReflector frameworkReflector,
     WebsiteWalker websiteWalker,
     IOptions <IntegrationOptions> integrationOptions,
     HelpBuilder helpBuilder)
 {
     _settings           = settings;
     _frameworkReflector = frameworkReflector;
     _websiteWalker      = websiteWalker;
     _integrationOptions = integrationOptions;
     _helpBuilder        = helpBuilder;
 }
Esempio n. 3
0
 public SpotifyModule(
     ISpotifyAccountsService accountsService,
     ICommunicator communicator,
     IOptions <IntegrationOptions> integrationOptions,
     IFrameworkReflector frameworkReflector,
     WebsiteWalker websiteWalker,
     HelpBuilder helpBuilder)
 {
     _accountsService    = accountsService;
     _communicator       = communicator;
     _integrationOptions = integrationOptions;
     _frameworkReflector = frameworkReflector;
     _websiteWalker      = websiteWalker;
     _helpBuilder        = helpBuilder;
 }
Esempio n. 4
0
        public RolesModule(
            BaseSocketClient client,
            ICommunicator communicator,
            ISettingsService settings,
            ILogger <RolesModule> logger,
            WebsiteWalker websiteWalker)
        {
            _client        = client;
            _communicator  = communicator;
            _settings      = settings;
            _logger        = logger;
            _websiteWalker = websiteWalker;

            _client.MessageReceived += HandleMessageReceived;
            _client.UserJoined      += HandleUserJoined;
            _client.UserLeft        += HandleUserLeft;
        }
Esempio n. 5
0
        public BotModule(
            BaseSocketClient client,
            ICommunicator communicator,
            ISettingsService settings,
            IFrameworkReflector frameworkReflector,
            WebsiteWalker websiteWalker,
            IOptions <WebOptions> webOptions,
            IOptions <BotOptions> botOptions,
            HelpBuilder helpBuilder)
        {
            _client             = client;
            _communicator       = communicator;
            _settings           = settings;
            _frameworkReflector = frameworkReflector;
            _websiteWalker      = websiteWalker;
            _webOptions         = webOptions;
            _botOptions         = botOptions;
            _helpBuilder        = helpBuilder;

            _client.MessageReceived += HandleMessageReceived;
        }
Esempio n. 6
0
 public string GetModuleWebLink(string name) =>
 DiscordHelpers.SanitiseMarkdownUri(_websiteWalker.ReferenceUrl + "#" + WebsiteWalker.GetModuleWebAnchor(name));
Esempio n. 7
0
 public HelpBuilder(WebsiteWalker websiteWalker, IOptions <WebOptions> webOptions)
 {
     _websiteWalker = websiteWalker;
     _webOptions    = webOptions;
 }