Ejemplo n.º 1
0
        public async Task SearchAsync(CommandContext ctx,
                                      [RemainingText, Description("desc-query")] string query)
        {
            if (string.IsNullOrWhiteSpace(query))
            {
                throw new InvalidCommandUsageException(ctx, "cmd-err-query");
            }

            WikiSearchResponse?res = await WikiService.SearchAsync(query);

            if (res is null || !res.Any())
            {
                await ctx.FailAsync("cmd-err-res-none");

                return;
            }

            await ctx.PaginateAsync(res, (emb, r) => {
                emb.WithTitle(r.Title);
                emb.WithDescription(r.Snippet);
                emb.WithUrl(r.Url);
                emb.WithLocalizedFooter("fmt-powered-by", WikiService.WikipediaIconUrl, "Wikipedia API");
                return(emb);
            }, this.ModuleColor);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Takes the user input and uses the WikiService to look up the term in Wikipedia and post the abstract to the user
        /// </summary>
        /// <param name="context"></param>
        /// <param name="result"></param>
        /// <returns></returns>
        private async Task MessageReceivedAsync(IDialogContext context, IAwaitable <object> result)
        {
            var activity = await result as Activity;

            await context.PostAsync(await WikiService.GetAbstract(activity.Text));

            context.Done(string.Empty);
        }
Ejemplo n.º 3
0
 public WikiModule(UserService userService, WikiService wikiService, MessageService messageService)
 {
     _userService        = userService;
     _wikiService        = wikiService;
     _messageService     = messageService;
     _adminChannelId     = Configuration.GetVariable("Guild.AdminChannelId");
     _botChannelId       = Configuration.GetVariable("Guild.BotCommandsChannelId");
     _scriptingChannelId = Configuration.GetVariable("Guild.ScriptingChannelId");
     _wikiSearchUrl      = Configuration.GetVariable("Urls.Wiki.Seach");
 }
Ejemplo n.º 4
0
        public static async Task <bool> PerformDatabaseInitSteps(this WikiService wiki)
        {
            var actionNeeded = false;

            actionNeeded |= await wiki.EnsureIndexPageExists();

            actionNeeded |= await wiki.EnsurePageIndicesExist();

            return(actionNeeded);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// 用户首页显示的贡献词条数
        /// </summary>
        /// <returns></returns>
        public ActionResult _AllWikisCount()
        {
            long allWikiCount = new WikiService().Gets(TenantTypeIds.Instance().Wiki(), null, true, null, string.Empty, null).TotalRecords;

            if (UserContext.CurrentUser != null)
            {
                ViewData["myEditCount"] = wikiService.GetOwnerPages(TenantTypeIds.Instance().Wiki(), UserContext.CurrentUser.UserId, true, string.Empty, 10, 1).TotalRecords;
            }
            return(View(allWikiCount));
        }
Ejemplo n.º 6
0
 public ActionResult Edit(string id, Wiki wiki)
 {
     try
     {
         WikiService.GetInstance().Update(wiki, id);
         return(RedirectToAction("Management"));
     }
     catch
     {
         return(View());
     }
 }
Ejemplo n.º 7
0
 public ActionResult Create(Wiki wiki)
 {
     try
     {
         WikiService.GetInstance().Add(wiki);
         return(RedirectToAction("Management"));
     }
     catch
     {
         return(View());
     }
 }
Ejemplo n.º 8
0
        private static async Task <bool> EnsureIndexPageExists(this WikiService wiki)
        {
            if (!await wiki.CheckPageExists(slug: "index"))
            {
                var indexPage = new Page(slug: "index", title: "Welcome!");

                await wiki.CreatePageAsync(page : indexPage);

                return(true);
            }

            return(false);
        }
Ejemplo n.º 9
0
        //
        // GET: /Wiki/Details/5

        public ActionResult Details(string title)
        {
            var model = WikiService.GetInstance().Get(title);

            if (model == null)
            {
                return(RedirectToAction("Create"));
            }
            Title = model.Title;
            var wikiEngine = new WikiEngine.WikiEngine();

            model.Body = wikiEngine.Explain(model.Body);
            return(View(model));
        }
Ejemplo n.º 10
0
        public async Task SearchAsync(CommandContext ctx,
                                      [RemainingText, Description("Query.")] string query)
        {
            var res = await WikiService.SearchAsync(query);

            if (res is null || !res.Any())
            {
                await this.InformOfFailureAsync(ctx, "No results...");

                return;
            }

            await ctx.Client.GetInteractivity().SendPaginatedMessageAsync(ctx.Channel, ctx.User, res.Select(r
                                                                                                            => new Page(embed: new DiscordEmbedBuilder
            {
                Title       = r.Title,
                Description = string.IsNullOrWhiteSpace(r.Snippet) ? "No description provided" : r.Snippet,
                Url         = r.Url,
                Color       = this.ModuleColor
            }.WithFooter("Powered by Wikipedia API", WikiService.WikipediaIconUrl))));
        }
Ejemplo n.º 11
0
        public ActionResult Edit(string id)
        {
            var model = WikiService.GetInstance().GetById(id);

            return(View(model));
        }
Ejemplo n.º 12
0
 public ActionResult Delete(string id)
 {
     WikiService.GetInstance().Delete(id);
     return(RedirectToAction("Management"));
 }
Ejemplo n.º 13
0
        public ActionResult Management()
        {
            var model = WikiService.GetInstance().List();

            return(View(model));
        }
Ejemplo n.º 14
0
        void wikiService_GetArticleCompleted(object sender, WikiService.GetArticleCompletedEventArgs e)
        {
            if (e.Error != null)
            {
                Dispatcher.BeginInvoke(() =>
                {
                    ChangeLoadState(false);
                    ShowPopupMessage("Connection error");
                });
            }
            else
            {
                var article = e.Result;
                Dispatcher.BeginInvoke(() =>
                {
                    WikiBrowser.Opacity = 0.0;
                    Model.WikiUrl = article.Url;
                    Model.WikiTitle = article.Title;

                    var wikiStyles = "<meta content=\"text/html; charset=UTF-8\" http-equiv=\"Content-Type\"><style>\n";
                    wikiStyles += "a, a:hover, a:visited { text-decoration: none; color:" + ConvertColorToHex(accentBrush.Color) + "; }\n";
                    wikiStyles += "img { border: 0; }\n";
                    wikiStyles += "body { font-family: Segoe UI Light; margin:0; padding:0; background-color:" + ConvertColorToHex(phoneBackgroundBrush.Color) + "; color:" + ConvertColorToHex(phoneForegroundBrush.Color) + ";}\n";
                    wikiStyles += "</style>";

                    Model.WikiHtml = ConvertExtendedASCII(string.Format("<html><head>{1}</head><body bgcolor=\"" + ConvertColorToHex(phoneBackgroundBrush.Color) + "\"><p>{0}</p></body></html>", article.Body, wikiStyles));
                    WikiBrowser.NavigateToString(Model.WikiHtml);
                    //WikiBrowser.NavigateToString(GetWikiHtml(html));
                    //WikiListBox.UpdateLayout();
                    //WikiListBox.ScrollIntoView(WikiListBox.Items.First());
                    ChangeLoadState(false);
                });
            }
        }
Ejemplo n.º 15
0
 public AppController(WikiService service) => this.wiki = service;
Ejemplo n.º 16
0
 private static async Task <bool> EnsurePageIndicesExist(this WikiService wiki)
 {
     var wikiCollation = new BsonDocument
     {
Ejemplo n.º 17
0
 public IndexModel(WikiService wiki, SteamService steam)
 {
     _wiki  = wiki;
     _steam = steam;
 }
 public ImageController(WikiService wiki)
 {
     _wiki = wiki;
 }