package dareka.processor.impl; import java.io.IOException; import java.util.regex.Matcher; import java.util.regex.Pattern; import dareka.common.Logger; import dareka.processor.HttpRequestHeader; import dareka.processor.Processor; import dareka.processor.Resource; public class YourfilehostTitleProcessor implements Processor { private static final String[] SUPPORTED_METHODS = new String[] { "GET" }; /** * YourFileHostの動画URLの正規表現 */ private static final Pattern UH_WMV_PATTERN = Pattern.compile("^http://www\\.yourfilehost\\.com/video-embed.php?.*cid=([0-9a-f]+).*&file=(.+)(\\..+)&family.*$"); public YourfilehostTitleProcessor() { } public String[] getSupportedMethods() { return SUPPORTED_METHODS; } public Pattern getSupportedURLAsPattern() { return UH_WMV_PATTERN; } public String getSupportedURLAsString() { return null; } public Resource onRequest(HttpRequestHeader requestHeader) throws IOException { Matcher m = UH_WMV_PATTERN.matcher(requestHeader.getURI()); if (m.find()) { String id = m.group(1); String title = m.group(2); NicoIdInfoCache.getInstance().put("ufh", id, title); } return Resource.get(Resource.Type.URL, requestHeader.getURI()); } }