#2010 - Revise item::find_by_path to search for jpg-converted items.

- added extra $var_subdir argument to item::find_by_path.
- changed item::find_by_path to use $var_subdir to detect if we should look for a jpg-converted item or not (e.g. movie thumbs)
- moved the album thumb detection to item::find_by_path to ensure it knows to look for an exact album match.
- added more sanity checks to item::find_by_path (now has fewer false positive possibilities).

- updated file_proxy to remove the need to guess different movie files.
- updated File_Proxy_Controller - new sanity checks catch previously undetected bug.
- added additional unit tests for item::find_by_path.
This commit is contained in:
shadlaws
2013-02-26 18:39:59 +01:00
parent 81011785aa
commit 251e9d5c8f
4 changed files with 220 additions and 42 deletions
+2 -18
View File
@@ -66,24 +66,8 @@ class File_Proxy_Controller extends Controller {
throw $e;
}
// If the last element is .album.jpg, pop that off since it's not a real item
$path = preg_replace("|/.album.jpg$|", "", $path);
$item = item::find_by_path($path);
if (!$item->loaded()) {
// We didn't turn it up. If we're looking for a .jpg then it's it's possible that we're
// requesting the thumbnail for a movie. In that case, the movie file would
// have been converted to a .jpg. So try some alternate types:
if (preg_match('/.jpg$/', $path)) {
foreach (legal_file::get_movie_extensions() as $ext) {
$movie_path = preg_replace('/.jpg$/', ".$ext", $path);
$item = item::find_by_path($movie_path);
if ($item->loaded()) {
break;
}
}
}
}
// Get the item model using the path and type (which corresponds to a var subdir)
$item = item::find_by_path($path, $type);
if (!$item->loaded()) {
$e = new Kohana_404_Exception();