<?php
-/* To-Do
-https://developers.google.com/+/plugins/snippet/
-
-<meta itemprop="name" content="Toller Titel">
-<meta itemprop="description" content="Eine tolle Beschreibung">
-<meta itemprop="image" content="http://maple.libertreeproject.org/images/tree-icon.png">
-
-<body itemscope itemtype="http://schema.org/Product">
- <h1 itemprop="name">Shiny Trinket</h1>
- <img itemprop="image" src="{image-url}" />
- <p itemprop="description">Shiny trinkets are shiny.</p>
-</body>
+/**
+ * @file mod/parse_url.php
+ *
+ * @todo https://developers.google.com/+/plugins/snippet/
+ *
+ * @verbatim
+ * <meta itemprop="name" content="Toller Titel">
+ * <meta itemprop="description" content="Eine tolle Beschreibung">
+ * <meta itemprop="image" content="http://maple.libertreeproject.org/images/tree-icon.png">
+ *
+ * <body itemscope itemtype="http://schema.org/Product">
+ * <h1 itemprop="name">Shiny Trinket</h1>
+ * <img itemprop="image" src="{image-url}" />
+ * <p itemprop="description">Shiny trinkets are shiny.</p>
+ * </body>
+ * @endverbatim
*/
if(!function_exists('deletenode')) {
return($complete);
}
+function parseurl_getsiteinfo_cached($url, $no_guessing = false, $do_oembed = true) {
+
+ $data = Cache::get("parse_url:".$no_guessing.":".$do_oembed.":".$url);
+ if (!is_null($data)) {
+ $data = unserialize($data);
+ return $data;
+ }
+
+ $data = parseurl_getsiteinfo($url, $no_guessing, $do_oembed);
+
+ Cache::set("parse_url:".$no_guessing.":".$do_oembed.":".$url,serialize($data), CACHE_DAY);
+
+ return $data;
+}
+
function parseurl_getsiteinfo($url, $no_guessing = false, $do_oembed = true, $count = 1) {
require_once("include/network.php");
return($siteinfo);
}
+ // if the file is too large then exit
+ if ($curl_info["download_content_length"] > 1000000)
+ return($siteinfo);
+
+ // if it isn't a HTML file then exit
+ if (($curl_info["content_type"] != "") AND !strstr(strtolower($curl_info["content_type"]),"html"))
+ return($siteinfo);
+
if ($do_oembed) {
require_once("include/oembed.php");
if ($oembed_data->type != "error")
$siteinfo["type"] = $oembed_data->type;
- }
- // if the file is too large then exit
- if ($curl_info["download_content_length"] > 1000000)
- return($siteinfo);
-
- // if it isn't a HTML file then exit
- if (($curl_info["content_type"] != "") AND !strstr(strtolower($curl_info["content_type"]),"html"))
- return($siteinfo);
+ if (($oembed_data->type == "link") AND ($siteinfo["type"] != "photo")) {
+ if (isset($oembed_data->title))
+ $siteinfo["title"] = $oembed_data->title;
+ if (isset($oembed_data->description))
+ $siteinfo["text"] = trim($oembed_data->description);
+ if (isset($oembed_data->thumbnail_url))
+ $siteinfo["image"] = $oembed_data->thumbnail_url;
+ }
+ }
$stamp1 = microtime(true);
if (isset($keywords)) {
$siteinfo["keywords"] = array();
foreach ($keywords as $keyword)
- $siteinfo["keywords"][] = trim($keyword);
+ if (!in_array(trim($keyword), $siteinfo["keywords"]))
+ $siteinfo["keywords"][] = trim($keyword);
}
//$list = $xpath->query("head/meta[@property]");
}
}
- if (isset($oembed_data) AND ($oembed_data->type == "link") AND ($siteinfo["type"] != "photo")) {
- if (isset($oembed_data->title) AND (trim($oembed_data->title) != ""))
- $siteinfo["title"] = $oembed_data->title;
- if (isset($oembed_data->description) AND (trim($oembed_data->description) != ""))
- $siteinfo["text"] = trim($oembed_data->description);
- if (isset($oembed_data->thumbnail_url) AND (trim($oembed_data->thumbnail_url) != ""))
- $siteinfo["image"] = $oembed_data->thumbnail_url;
- }
-
if ((@$siteinfo["image"] == "") AND !$no_guessing) {
$list = $xpath->query("//img[@src]");
foreach ($list as $node) {