package com.vaguehope.onosendai.provider.twitter; import java.util.regex.Matcher; import java.util.regex.Pattern; import android.net.Uri; import com.vaguehope.onosendai.model.Tweet; import com.vaguehope.onosendai.util.StringHelper; public final class TwitterUrls { private static final String TWEET_URL_TEMPLATE = "https://twitter.com/%s/status/%s"; private static final String HASHTAG_URL_TEMPLATE = "https://twitter.com/search?q=%s"; private static final Pattern TWEET_URL_PATTERN = Pattern.compile("^https?://(?:mobile\\.)?twitter.com/([^/]+)/status/([0-9]+)[^/]*$"); private TwitterUrls () { throw new AssertionError(); } public static String tweet (final Tweet tweet) { return String.format(TWEET_URL_TEMPLATE, StringHelper.firstLine(tweet.getUsername()), tweet.getSid()); } public static String hashtag (final String hashtag) { return String.format(HASHTAG_URL_TEMPLATE, Uri.encode(hashtag)); } public static String readTweetSidFromUrl (final String url) { final Matcher m = TWEET_URL_PATTERN.matcher(url); if (m.matches()) return m.group(2); return null; } }