|
|
|
@ -69,35 +69,64 @@ public class Response {
|
|
|
|
|
private int status; // tracker indexing status, see status defs below
|
|
|
|
|
private final boolean fromCache;
|
|
|
|
|
|
|
|
|
|
// doctype calculation
|
|
|
|
|
/**
|
|
|
|
|
* doctype calculation by file extension
|
|
|
|
|
* TODO: this must be enhanced with a more generic way of configuration
|
|
|
|
|
* @param ext
|
|
|
|
|
* @return a character denoting the file type
|
|
|
|
|
*/
|
|
|
|
|
public static char docTypeExt(final String ext) {
|
|
|
|
|
if (ext == null) return DT_UNKNOWN;
|
|
|
|
|
if (ext.equals("gif")) return DT_IMAGE;
|
|
|
|
|
if (ext.equals("ico")) return DT_IMAGE;
|
|
|
|
|
if (ext.equals("bmp")) return DT_IMAGE;
|
|
|
|
|
if (ext.equals("jpg")) return DT_IMAGE;
|
|
|
|
|
if (ext.equals("jpeg")) return DT_IMAGE;
|
|
|
|
|
if (ext.equals("png")) return DT_IMAGE;
|
|
|
|
|
if (ext.equals("tif")) return DT_IMAGE;
|
|
|
|
|
if (ext.equals("tiff")) return DT_IMAGE;
|
|
|
|
|
if (ext.equals("htm")) return DT_HTML;
|
|
|
|
|
if (ext.equals("html")) return DT_HTML;
|
|
|
|
|
if (ext.equals("txt")) return DT_TEXT;
|
|
|
|
|
if (ext.equals("doc")) return DT_DOC;
|
|
|
|
|
if (ext.equals("rtf")) return DT_DOC;
|
|
|
|
|
if (ext.equals("pdf")) return DT_PDFPS;
|
|
|
|
|
if (ext.equals("ps")) return DT_PDFPS;
|
|
|
|
|
if (ext.equals("mp3")) return DT_AUDIO;
|
|
|
|
|
if (ext.equals("aac")) return DT_AUDIO;
|
|
|
|
|
if (ext.equals("m4a")) return DT_AUDIO;
|
|
|
|
|
if (ext.equals("ogg")) return DT_AUDIO;
|
|
|
|
|
if (ext.equals("wav")) return DT_AUDIO;
|
|
|
|
|
if (ext.equals("wma")) return DT_AUDIO;
|
|
|
|
|
if (ext.equals("avi")) return DT_MOVIE;
|
|
|
|
|
if (ext.equals("mov")) return DT_MOVIE;
|
|
|
|
|
if (ext.equals("qt")) return DT_MOVIE;
|
|
|
|
|
if (ext.equals("mpg")) return DT_MOVIE;
|
|
|
|
|
if (ext.equals("mp4")) return DT_MOVIE;
|
|
|
|
|
if (ext.equals("m4v")) return DT_MOVIE;
|
|
|
|
|
if (ext.equals("mkv")) return DT_MOVIE;
|
|
|
|
|
if (ext.equals("md5")) return DT_SHARE;
|
|
|
|
|
if (ext.equals("mpeg")) return DT_MOVIE;
|
|
|
|
|
if (ext.equals("asf")) return DT_FLASH;
|
|
|
|
|
return DT_UNKNOWN;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* doctype calculation based on file extensions; this is the url wrapper
|
|
|
|
|
* @param url
|
|
|
|
|
* @return a character denoting the file type
|
|
|
|
|
*/
|
|
|
|
|
public static char docType(final MultiProtocolURL url) {
|
|
|
|
|
String ext = MultiProtocolURL.getFileExtension(url.getFileName());
|
|
|
|
|
if (ext == null) return DT_UNKNOWN;
|
|
|
|
|
if (ext.equals(".gif")) return DT_IMAGE;
|
|
|
|
|
if (ext.equals(".ico")) return DT_IMAGE;
|
|
|
|
|
if (ext.equals(".bmp")) return DT_IMAGE;
|
|
|
|
|
if (ext.equals(".jpg")) return DT_IMAGE;
|
|
|
|
|
if (ext.equals(".jpeg")) return DT_IMAGE;
|
|
|
|
|
if (ext.equals(".png")) return DT_IMAGE;
|
|
|
|
|
if (ext.equals(".tif")) return DT_IMAGE;
|
|
|
|
|
if (ext.equals(".tiff")) return DT_IMAGE;
|
|
|
|
|
if (ext.equals(".htm")) return DT_HTML;
|
|
|
|
|
if (ext.equals(".html")) return DT_HTML;
|
|
|
|
|
if (ext.equals(".txt")) return DT_TEXT;
|
|
|
|
|
if (ext.equals(".doc")) return DT_DOC;
|
|
|
|
|
if (ext.equals(".rtf")) return DT_DOC;
|
|
|
|
|
if (ext.equals(".pdf")) return DT_PDFPS;
|
|
|
|
|
if (ext.equals(".ps")) return DT_PDFPS;
|
|
|
|
|
if (ext.equals(".avi")) return DT_MOVIE;
|
|
|
|
|
if (ext.equals(".mov")) return DT_MOVIE;
|
|
|
|
|
if (ext.equals(".qt")) return DT_MOVIE;
|
|
|
|
|
if (ext.equals(".mpg")) return DT_MOVIE;
|
|
|
|
|
if (ext.equals(".md5")) return DT_SHARE;
|
|
|
|
|
if (ext.equals(".mpeg")) return DT_MOVIE;
|
|
|
|
|
if (ext.equals(".asf")) return DT_FLASH;
|
|
|
|
|
return DT_UNKNOWN;
|
|
|
|
|
return docTypeExt(ext);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* doctype calculation based on the mime type
|
|
|
|
|
* @param mime
|
|
|
|
|
* @return a character denoting the file type
|
|
|
|
|
*/
|
|
|
|
|
public static char docType(final String mime) {
|
|
|
|
|
// serverLog.logFinest("PLASMA", "docType mime=" + mime);
|
|
|
|
|
char doctype = DT_UNKNOWN;
|
|
|
|
@ -120,6 +149,12 @@ public class Response {
|
|
|
|
|
return doctype;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* reverse mime type calculation; this is just a heuristic
|
|
|
|
|
* @param ext
|
|
|
|
|
* @param doctype
|
|
|
|
|
* @return a mime type string
|
|
|
|
|
*/
|
|
|
|
|
public static String[] doctype2mime(String ext, char doctype) {
|
|
|
|
|
if (doctype == DT_PDFPS) return new String[]{"application/pdf"};
|
|
|
|
|
if (doctype == DT_HTML) return new String[]{"text/html"};
|
|
|
|
|