diff --git a/src/models/PhraseModel.php b/src/models/PhraseModel.php
index f5513c3ec..a4aa1973e 100755
--- a/src/models/PhraseModel.php
+++ b/src/models/PhraseModel.php
@@ -1283,7 +1283,7 @@ class PhraseModel extends ParallelModel
}
L\orderCallback($pages[0], $pages[0], "OUT_SCORE");
}
- usort($pages, C\NS_LIB ."orderCallback");
+ usort($pages, C\NS_LIB . "orderCallback");
if ($use_proximity) {
for ($i = 0; $i < $result_count; $i++) {
$pages[$i][self::SCORE] = $pages[$i]["OUT_SCORE"];
@@ -1307,7 +1307,7 @@ class PhraseModel extends ParallelModel
$pages = array_slice($pages, $limit - $start_slice, $num);
$i = 0;
foreach ($pages as $p) {
- $pages[$i][self::SCORE] = number_format($p[self::SCORE],4);
+ $pages[$i][self::SCORE] = number_format($p[self::SCORE], 4);
$pages[$i][self::DOC_RANK] = number_format(
$p[self::DOC_RANK], 4);
$pages[$i][self::RELEVANCE] = number_format(
@@ -1553,6 +1553,7 @@ class PhraseModel extends ParallelModel
/* insert lookup values back into pages, do deduplication
Handle robot meta tags present on page
*/
+ $base_dir = C\APP_DIR . "/resources";
foreach ($pages as $page) {
$key = $page[self::KEY];
if (isset($summaries[$key]) &&
@@ -1563,13 +1564,47 @@ class PhraseModel extends ParallelModel
$seen_hashes[] = $summaries[$key][self::HASH];
}
$pre_page = array_merge($page, $summary);
+ $add_page = false;
if (isset($pre_page[self::ROBOT_METAS])) {
if (!in_array("NOINDEX", $pre_page[self::ROBOT_METAS])
&&
!in_array("NONE", $pre_page[self::ROBOT_METAS])) {
- $out_pages[] = $pre_page;
+ $add_page = true;
}
} else {
+ $add_page = true;
+ }
+ if ($add_page) {
+ if (!empty($pre_page[self::IMAGE_LINK])) {
+ $image_link = $pre_page[self::IMAGE_LINK];
+ $link_scheme = substr($image_link, 0, 7);
+ if ($link_scheme == "feed://") {
+ $image_link_parts = explode("/", $image_link);
+ if (!empty($image_link_parts[3])) {
+ list(, , $sf, $image_hash) = $image_link_parts;
+ }
+ } else { //old style image link
+ if(preg_match("/sf\=([^\&]+)/", $image_link,
+ $sf_match) && preg_match("/n\=([^\&]+)/",
+ $image_link, $n_match)) {
+ $sf = $sf_match[1];
+ $image_hash = $n_match[1];
+ }
+ }
+ if (!empty($sf) && !empty($image_hash)) {
+ $folder = L\crawlHash(
+ 'group' . C\PUBLIC_GROUP_ID . C\AUTH_KEY);
+ $prefix = substr($folder, 0, 3);
+ $image_path = "$base_dir/$prefix/t$folder/".
+ "$sf/$image_hash.jpg";
+ if (file_exists($image_path)) {
+ $pre_page[self::IMAGE_LINK] =
+ 'data:image/jpeg;base64,'.
+ base64_encode($this->fileGetContents(
+ $image_path));
+ }
+ }
+ }
$out_pages[] = $pre_page;
}
}
diff --git a/src/views/helpers/FeedsHelper.php b/src/views/helpers/FeedsHelper.php
index a2b17b1aa..f8128eb0b 100644
--- a/src/views/helpers/FeedsHelper.php
+++ b/src/views/helpers/FeedsHelper.php
@@ -153,8 +153,12 @@ class FeedsHelper extends Helper implements CrawlConstants
$image_string = "";
$sf = "";
$image_hash = "";
- if (isset($page[self::IMAGE_LINK]) && $page[self::IMAGE_LINK] != "") {
- if (substr($page[self::IMAGE_LINK], 0, 7) == "feed://") {
+ if (!empty($page[self::IMAGE_LINK])) {
+ $link_scheme = substr($page[self::IMAGE_LINK], 0, 7);
+ if ($link_scheme == "data:im") {
+ $image_string = "<img class='float-same' ".
+ "src='{$page[self::IMAGE_LINK]}' alt='' />";
+ } else if ($link_scheme == "feed://") {
$image_link_parts = explode("/", $page[self::IMAGE_LINK]);
if (!empty($image_link_parts[3])) {
list(, , $sf, $image_hash) = $image_link_parts;
diff --git a/src/views/helpers/ImagesHelper.php b/src/views/helpers/ImagesHelper.php
index a5e64e3eb..61f55b8f0 100644
--- a/src/views/helpers/ImagesHelper.php
+++ b/src/views/helpers/ImagesHelper.php
@@ -75,9 +75,9 @@ class ImagesHelper extends Helper implements CrawlConstants
if (C\CACHE_LINK && (!isset($page[self::ROBOT_METAS]) ||
!(in_array("NOARCHIVE", $page[self::ROBOT_METAS]) ||
in_array("NONE", $page[self::ROBOT_METAS])))) {
- $link = $query."&a=cache&arg=".
- urlencode($page[self::URL]).
- "&its=".$page[self::CRAWL_TIME];
+ $link = $query."&a=cache&arg=" .
+ urlencode($page[self::URL]) .
+ "&its=" . $page[self::CRAWL_TIME];
} else {
$link = htmlentities($page[self::URL]);
}