コード例 #1
0
        public static async Task <BroadcastMessage> BuildTestPublishedMessage(SocketUser user, ulong guildId, ulong channelId)
        {
            var servers = BotFiles.GetConfiguredServers();
            var server  = servers.FirstOrDefault(x => x.Id == guildId);

            if (server == null)
            {
                return(null);
            }

            string url = "http://" + (server.UseYouTubeGamingPublished ? "gaming" : "www") + ".youtube.com/watch?v=B7wkzmZ4GBw";

            EmbedBuilder       embed  = new EmbedBuilder();
            EmbedAuthorBuilder author = new EmbedAuthorBuilder();
            EmbedFooterBuilder footer = new EmbedFooterBuilder();


            if (server.PublishedMessage == null)
            {
                server.PublishedMessage = "%CHANNEL% just published a new video.";
            }

            Color red = new Color(179, 18, 23);

            author.IconUrl    = user.GetAvatarUrl() + "?_=" + Guid.NewGuid().ToString().Replace("-", "");
            author.Name       = Program.client.CurrentUser.Username;
            author.Url        = url;
            footer.Text       = "[" + Constants.YouTube + "] - " + DateTime.UtcNow.AddHours(server.TimeZoneOffset);
            footer.IconUrl    = "http://couchbot.io/img/ytg.jpg";
            embed.Author      = author;
            embed.Color       = red;
            embed.Description = server.PublishedMessage.Replace("%CHANNEL%", "Test Channel").Replace("%TITLE%", "Test Title").Replace("%URL%", url);

            embed.Title        = "Test Channel published a new video!";
            embed.ThumbnailUrl = "http://couchbot.io/img/bot/vader.jpg" + "?_=" + Guid.NewGuid().ToString().Replace("-", "");
            embed.ImageUrl     = server.AllowThumbnails ? "http://couchbot.io/img/bot/test_thumbnail.jpg" + "?_=" + Guid.NewGuid().ToString().Replace("-", "") : "";
            embed.Footer       = footer;

            var role = await DiscordHelper.GetRoleByGuildAndId(server.Id, server.MentionRole);

            var roleName = "";

            if (role == null)
            {
                server.MentionRole = 0;
            }

            if (server.MentionRole == 0)
            {
                roleName = "@everyone";
            }
            else if (server.MentionRole == 1)
            {
                roleName = "@here";
            }
            else
            {
                roleName = role.Mention;
            }

            var message = (server.AllowEveryone ? roleName + " " : "");

            if (server.UseTextAnnouncements)
            {
                if (!server.AllowThumbnails)
                {
                    url = "<" + url + ">";
                }

                message += "**[Test]** " + server.PublishedMessage.Replace("%CHANNEL%", "Test Channel").Replace("%TITLE%", "Test Title").Replace("%URL%", url);
            }

            var broadcastMessage = new BroadcastMessage()
            {
                GuildId   = server.Id,
                ChannelId = channelId,
                UserId    = "0",
                Message   = message,
                Platform  = "Test",
                Embed     = (!server.UseTextAnnouncements ? embed.Build() : null)
            };

            return(broadcastMessage);
        }
コード例 #2
0
        public static async Task <BroadcastMessage> BuildMessage(string channel,
                                                                 string gameName, string title, string url, string avatarUrl, string thumbnailUrl, string platform,
                                                                 string channelId, DiscordServer server, ulong discordChannelId, string teamName)
        {
            EmbedBuilder       embed  = new EmbedBuilder();
            EmbedAuthorBuilder author = new EmbedAuthorBuilder();
            EmbedFooterBuilder footer = new EmbedFooterBuilder();

            if (server.LiveMessage == null)
            {
                server.LiveMessage = "%CHANNEL% just went live with %GAME% - %TITLE% - %URL%";
            }

            author.IconUrl = Program.client.CurrentUser.GetAvatarUrl() + "?_=" + Guid.NewGuid().ToString().Replace("-", "");
            author.Name    = Program.client.CurrentUser.Username;
            author.Url     = url;
            footer.Text    = "[" + platform + "] - " + DateTime.UtcNow.AddHours(server.TimeZoneOffset);
            embed.Author   = author;

            if (platform.Equals(Constants.Mixer))
            {
                embed.Color        = Constants.Blue;
                embed.ThumbnailUrl = avatarUrl != null ?
                                     avatarUrl + "?_=" + Guid.NewGuid().ToString().Replace("-", "") :
                                     "https://mixer.com/_latest/assets/images/main/avatars/default.jpg";
                footer.IconUrl = "http://couchbot.io/img/beam.jpg";
            }
            else if (platform.Equals(Constants.YouTubeGaming))
            {
                embed.Color        = Constants.Red;
                embed.ThumbnailUrl = avatarUrl + "?_=" + Guid.NewGuid().ToString().Replace("-", "");
                footer.IconUrl     = "http://couchbot.io/img/ytg.jpg";
            }
            else if (platform.Equals(Constants.Twitch))
            {
                embed.Color        = Constants.Purple;
                embed.ThumbnailUrl = avatarUrl != null ?
                                     avatarUrl + "?_=" + Guid.NewGuid().ToString().Replace("-", "") :
                                     "https://static-cdn.jtvnw.net/jtv_user_pictures/xarth/404_user_70x70.png";
                footer.IconUrl = "http://couchbot.io/img/twitch.jpg";
            }
            else if (platform.Equals(Constants.Smashcast))
            {
                embed.Color        = Constants.Green;
                embed.ThumbnailUrl = avatarUrl + "?_=" + Guid.NewGuid().ToString().Replace("-", "");
                footer.IconUrl     = "http://couchbot.io/img/smashcast.png";
            }

            embed.Description = server.LiveMessage
                                .Replace("%CHANNEL%", channel)
                                .Replace("%GAME%", gameName)
                                .Replace("%TITLE%", title)
                                .Replace("%URL%", url);
            embed.Title    = channel + (string.IsNullOrEmpty(teamName) ? "" : " from the team '" + teamName + "'") + " has gone live!";
            embed.ImageUrl = server.AllowThumbnails ? thumbnailUrl + "?_=" + Guid.NewGuid().ToString().Replace("-", "") : "";
            embed.Footer   = footer;

            var role = await DiscordHelper.GetRoleByGuildAndId(server.Id, server.MentionRole);

            var roleName = "";

            if (role == null)
            {
                server.MentionRole = 0;
            }

            if (server.MentionRole == 0)
            {
                roleName = "@everyone";
            }
            else if (server.MentionRole == 1)
            {
                roleName = "@here";
            }
            else
            {
                roleName = role.Mention;
            }

            var message = (server.AllowEveryone ? roleName + " " : "");

            if (server.UseTextAnnouncements)
            {
                if (!server.AllowThumbnails)
                {
                    url = "<" + url + ">";
                }

                message += "**[" + platform + "]** " + server.LiveMessage.Replace("%CHANNEL%", channel).Replace("%GAME%", gameName).Replace("%TITLE%", title).Replace("%URL%", url);
            }

            var broadcastMessage = new BroadcastMessage()
            {
                GuildId       = server.Id,
                ChannelId     = discordChannelId,
                UserId        = channelId,
                Message       = message,
                Platform      = platform,
                Embed         = (!server.UseTextAnnouncements ? embed.Build() : null),
                DeleteOffline = server.DeleteWhenOffline
            };

            return(broadcastMessage);
        }
コード例 #3
0
        public static async Task <BroadcastMessage> BuildTestMessage(SocketUser user, ulong guildId, ulong channelId, string platform)
        {
            var servers = BotFiles.GetConfiguredServers();
            var server  = servers.FirstOrDefault(x => x.Id == guildId);

            if (server == null)
            {
                return(null);
            }

            string gameName = "a game";;
            string url      = "http://couchbot.io";

            EmbedBuilder       embed  = new EmbedBuilder();
            EmbedAuthorBuilder author = new EmbedAuthorBuilder();
            EmbedFooterBuilder footer = new EmbedFooterBuilder();

            if (server.LiveMessage == null)
            {
                server.LiveMessage = "%CHANNEL% just went live with %GAME% - %TITLE% - %URL%";
            }

            Color color = new Color(76, 144, 243);

            if (platform.Equals(Constants.Twitch))
            {
                color          = new Color(100, 65, 164);
                footer.Text    = "[" + Constants.Twitch + "] - " + DateTime.UtcNow.AddHours(server.TimeZoneOffset);
                footer.IconUrl = "http://couchbot.io/img/twitch.jpg";
            }
            else if (platform.Equals(Constants.YouTube) || platform.Equals(Constants.YouTubeGaming))
            {
                color          = new Color(179, 18, 23);
                footer.Text    = "[" + Constants.YouTubeGaming + "] - " + DateTime.UtcNow.AddHours(server.TimeZoneOffset);
                footer.IconUrl = "http://couchbot.io/img/ytg.jpg";
            }
            else if (platform.Equals(Constants.Smashcast))
            {
                color          = new Color(153, 204, 0);
                footer.Text    = "[" + Constants.Smashcast + "] - " + DateTime.UtcNow.AddHours(server.TimeZoneOffset);
                footer.IconUrl = "http://couchbot.io/img/smashcast.png";
            }
            else if (platform.Equals(Constants.Mixer))
            {
                color          = new Color(76, 144, 243);
                footer.Text    = "[" + Constants.Mixer + "] - " + DateTime.UtcNow.AddHours(server.TimeZoneOffset);
                footer.IconUrl = "http://couchbot.io/img/beam.jpg";
            }

            author.IconUrl     = (user.GetAvatarUrl() != null ? user.GetAvatarUrl() : "http://couchbot.io/img/bot/discord.png") + "?_=" + Guid.NewGuid().ToString().Replace("-", "");
            author.Name        = Program.client.CurrentUser.Username;
            author.Url         = url;
            embed.Author       = author;
            embed.Color        = color;
            embed.Description  = server.LiveMessage.Replace("%CHANNEL%", "Test Channel").Replace("%GAME%", gameName).Replace("%TITLE%", "Test Title").Replace("%URL%", url);
            embed.Title        = "Test Channel has gone live!";
            embed.ThumbnailUrl = "http://couchbot.io/img/bot/vader.jpg" + "?_=" + Guid.NewGuid().ToString().Replace("-", "");
            embed.ImageUrl     = server.AllowThumbnails ? "http://couchbot.io/img/bot/test_thumbnail.jpg" + "?_=" + Guid.NewGuid().ToString().Replace("-", "") : "";
            embed.Footer       = footer;

            var role = await DiscordHelper.GetRoleByGuildAndId(server.Id, server.MentionRole);

            var roleName = "";

            if (role == null && server.MentionRole != 1)
            {
                server.MentionRole = 0;
            }

            if (server.MentionRole == 0)
            {
                roleName = "@everyone";
            }
            else if (server.MentionRole == 1)
            {
                roleName = "@here";
            }
            else
            {
                roleName = role.Mention;
            }

            var message = (server.AllowEveryone ? roleName + " " : "");

            if (server.UseTextAnnouncements)
            {
                if (!server.AllowThumbnails)
                {
                    url = "<" + url + ">";
                }

                message += "**[Test]** " + server.LiveMessage.Replace("%CHANNEL%", "Test Channel").Replace("%GAME%", gameName).Replace("%TITLE%", "Test Title").Replace("%URL%", url);
            }

            var broadcastMessage = new BroadcastMessage()
            {
                GuildId   = server.Id,
                ChannelId = channelId,
                UserId    = "0",
                Message   = message,
                Platform  = "Test",
                Embed     = (!server.UseTextAnnouncements ? embed.Build() : null)
            };

            return(broadcastMessage);
        }