package polly.linkexpander.core.grabbers;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class YouTubeLinkGrabber extends AbstractHttpRequestGrabber {
private final static Pattern LINK_PATTERN = Pattern.compile(
"(https?://www\\.youtube\\.com/watch\\?.*v=\\S+)"); //$NON-NLS-1$
private final static Pattern META_PATTERN = Pattern.compile(
"<meta\\s+name=\"title\"\\s+content=\"([^\"]+)\">"); //$NON-NLS-1$
private static final int REQUEST_URL_GROUP = 1;
private static final int TITLE_GROUP = 1;
@Override
public Pattern getLinkPattern() {
return LINK_PATTERN;
}
@Override
public String processResponseLine(String line) {
Matcher m = META_PATTERN.matcher(line);
if (m.find()) {
return line.substring(m.start(TITLE_GROUP), m.end(TITLE_GROUP));
}
return null;
}
@Override
public String getLink(String input, Matcher matcher) {
String url = input.substring(matcher.start(REQUEST_URL_GROUP),
matcher.end(REQUEST_URL_GROUP));
return url;
}
}