コード例 #1
0
        public static async Task HandleAdded(LineNews lineNews)
        {
            // Localize the embed title
            Dictionary <Language, string> localizedTitles = Localizer.LocalizeToAllLanguagesWithFormat("line_news.title", Nintendo.SmashUltimate.Bcat.Container.LanguageOrder, lineNews.Id);

            // Localize the embed description
            // Dictionary<Language, string> localizedDescriptions = Localizer.LocalizeToAllLanguages("line_news.more_info", $"https://smash.oatmealdome.me/line_news/{lineNews.Id}/{pair.Key.GetCode()}/");

            // Create localized Embeds
            LocalizedEmbedBuilder localizedEmbedBuilder = new LocalizedEmbedBuilder(Nintendo.SmashUltimate.Bcat.Container.LanguageOrder)
                                                          .WithTitle(localizedTitles)
                                                          //.WithDescription(localizedDescriptions)
                                                          .AddField("line_news.start_time", Localizer.LocalizeDateTimeToAllLanguages(lineNews.StartDateTime))
                                                          .AddField("line_news.end_time", Localizer.LocalizeDateTimeToAllLanguages(lineNews.EndDateTime));

            // Add every OneLine
            foreach (OneLine oneLine in lineNews.OneLines)
            {
                localizedEmbedBuilder.AddField(Localizer.LocalizeToAllLanguagesWithFormat("line_news.line_title", oneLine.Id), oneLine.Text);
            }

            // Create localized Embeds
            Dictionary <Language, Embed> localizedEmbeds = localizedEmbedBuilder.Build();

            // Send the notifications
            await DiscordBot.SendNotificationAsync("**[Line News]**", localizedEmbeds);
        }
コード例 #2
0
 /// <summary>
 /// Przenosi do strony wybranej wiadomości
 /// </summary>
 /// <param name="obj">Wybrana wiadomość</param>
 private void OpenWebsite(object obj)
 {
     if (LineNews.Any())
     {
         if (string.IsNullOrEmpty(LineNews[SelectedIndexListBoxNews].UrlNews) == false)
         {
             System.Diagnostics.Process.Start(LineNews[SelectedIndexListBoxNews].UrlNews);
         }
     }
 }
コード例 #3
0
        public static void HandleAdded(LineNews lineNews)
        {
            // Get the tweet header
            string tweetHeader = Localizer.Localize("twitter.line_news.header", Language.EnglishUS);

            // Get the tweet content
            string tweetContent = $"\"{lineNews.OneLines[0].Text[Language.EnglishUS]}\" and more...";

            // Get the tweet URL component
            string tweetUrl = string.Format(Localizer.Localize("twitter.line_news.url", Language.EnglishUS), $"https://smash.oatmealdome.me/line_news/{lineNews.Id}/en-US/");

            // Send the tweet
            TwitterManager.GetAccount("SSBUBot").Tweet(tweetHeader, tweetContent, tweetUrl);
        }
コード例 #4
0
        public async Task Execute(string id = null, string languageString = null)
        {
            // Get the language
            Language language = DiscordUtil.GetDefaultLanguage(Context.Guild, languageString);

            // Check for no ID
            if (id == null)
            {
                await ListCommand.ListContainers(FileType.LineNews, language, Context);

                return;
            }

            // Get the PopUpNews with this ID
            LineNews lineNews = ContainerCache.GetLineNewsWithId(id);

            // Check if this exists
            if (lineNews == null)
            {
                throw new LocalizedException("line_news.not_found");
            }

            // Localize the title
            string titleKey       = "line_news.title";
            string localizedTitle = string.Format(Localizer.Localize(titleKey, language), lineNews.Id);

            // Localize the description
            string descriptionKey       = "line_news.description";
            string localizedDescription = string.Format(Localizer.Localize(descriptionKey, language), $"https://smash.oatmealdome.me/line_news/{lineNews.Id}/{language.GetCode()}/");

            // Localize the line field name
            string lineFieldNameKey       = "line_news.line_title";
            string localizedLineFieldName = Localizer.Localize(lineFieldNameKey, language);

            // Construct the Embed
            EmbedBuilder embedBuilder = new EmbedBuilder()
                                        .WithTitle(localizedTitle)
                                        //.WithDescription(localizedDescription)
                                        .AddField(Localizer.Localize("line_news.start_time", language), Localizer.LocalizeDateTime(lineNews.StartDateTime, language), true)
                                        .AddField(Localizer.Localize("line_news.end_time", language), Localizer.LocalizeDateTime(lineNews.EndDateTime, language), true);

            // Add every OneLine
            foreach (OneLine oneLine in lineNews.OneLines)
            {
                embedBuilder.AddField(string.Format(localizedLineFieldName, oneLine.Id), oneLine.Text[language]);
            }

            await Context.Channel.SendMessageAsync(embed : embedBuilder.Build());
        }
コード例 #5
0
        /// <summary>
        /// Wywołuje funkcje usuwania wiadomości z bazy danych i usuwa ją z wyświetlanej listy
        /// </summary>
        /// <param name="obj"> id wiadomości do usunięcia</param>
        private void Delete(object obj)
        {
            RSSrepo rssRepo = new RSSrepo();
            string  id      = (string)obj;

            rssRepo.DeleteSelectedArticle(ArchiveListCategories, id);
            if (LineNews.Count != 0)
            {
                LineNews.Remove(LineNews.First(n => n.Id == id));
                if (SelectedIndexListBoxNews < 0)
                {
                    SelectedIndexListBoxNews = 0;
                }
            }
        }