package chatty.gui; import chatty.Helper; import chatty.util.StringUtil; import java.awt.Component; import java.util.Collection; import java.util.Iterator; import java.util.List; import javax.swing.JOptionPane; /** * Helper class to build and open Twitch related URLs. * * @author tduva */ public class TwitchUrl { public static void removeInvalidStreams(Collection<String> streams) { Iterator<String> it = streams.iterator(); while (it.hasNext()) { if (!Helper.validateChannel(it.next())) { it.remove(); } } } public static void openTwitchProfile(String nick, Component parent) { if (nick == null) { JOptionPane.showMessageDialog(parent, "Unable to open Twitch Profile URL (Not on a channel)", "Info", JOptionPane.INFORMATION_MESSAGE); } else { String url = makeTwitchProfileUrl(nick); UrlOpener.openUrlPrompt(parent, url); } } public static void openTwitchStream(String nick, Component parent) { openTwitchStream(nick, false, parent); } public static void openTwitchStream(String nick, boolean popout, Component parent) { if (nick == null) { JOptionPane.showMessageDialog(parent, "Unable to open Twitch Stream URL (Not on a channel)", "Info", JOptionPane.INFORMATION_MESSAGE); } else { String url = makeTwitchStreamUrl(nick, popout); UrlOpener.openUrlPrompt(parent, url); } } public static String makeTwitchProfileUrl(String channel) { return "http://twitch.tv/" + channel.toLowerCase() + "/profile"; } public static String makeTwitchStreamUrl(String channel, boolean popout) { String url = "http://twitch.tv/" + channel.toLowerCase() + ""; if (popout) { url += "/popout"; } return url; } public static String makeTwitchPlayerUrl(String channel) { return "http://player.twitch.tv/?channel="+channel.toLowerCase(); } public static String makeTwitchTurboUrl() { return "http://twitch.tv/turbo"; } public static String makeFFZUrl() { return "http://frankerfacez.com"; } public static String makeFFZUrl(int id) { return "http://www.frankerfacez.com/emoticons/"+id; } public static String makeFFZUrl(String user) { return "http://www.frankerfacez.com/emoticons/user/"+user.toLowerCase(); } public static String makeBttvUrl() { return "http://www.nightdev.com/betterttv/"; } public static String makeTwitchemotesUrl(int id) { return "https://twitchemotes.com/emote/"+id; } public static final String MULTITWITCH = "http://multitwitch.tv/"; public static final String SPEEDRUNTV = "http://speedrun.tv/"; public static final String KADGAR = "http://kadgar.net/live/"; public static void openMultitwitch(List<String> streams, Component parent, String type) { if (streams == null || streams.isEmpty()) { return; } UrlOpener.openUrlPrompt(parent, makeMultitwitchUrl(streams, type)); } public static String makeMultitwitchUrl(List<String> streams, String type) { String streamsText = StringUtil.join(streams, "/"); String url = type+streamsText; return url; } public static String makeSrlRaceLink(String id) { return "http://speedrunslive.com/race/?id="+id; } public static String makeSrtRaceLink(String id) { return "http://speedrun.tv/?race="+id; } public static String makeSrlIrcLink(String id) { return "irc://irc.speedrunslive.com/srl-"+id; } }