Ejemplo n.º 1
0
        private Task OnDiscordMessage(SocketMessage message)
        {
            ITextChannel sourceChannel = null;

            App.Log(LogLevel.Debug, $"New message on #{message.Channel.Name}");
            foreach (TreeViewModel serverNode in channelsTreeView.Items)
            {
                var match = serverNode.Children
                            .Where(c =>
                                   c.IsChecked.GetValueOrDefault(false) &&
                                   (c.Tag as ITextChannel).Id == message.Channel.Id);

                if (match.Count() > 0)
                {
                    App.Log(LogLevel.Debug, "Channel is tracked - scanning message for image");
                    sourceChannel = match.ElementAt(0).Tag as ITextChannel;
                    break;
                }
            }

            if (sourceChannel != null)
            {
                string?imgUrl = DiscordImagesScanner.GetImageUrlFromMessage(message);
                App.Log(LogLevel.Debug, String.Format("Message does{0} contain image", (imgUrl != null) ? "" : " NOT"));
                if (imgUrl != null)
                {
                    storage.StoreSingleImage(imgUrl, sourceChannel);
                }
            }

            return(Task.CompletedTask);
        }