aboutsummaryrefslogtreecommitdiffstats
path: root/include/Scrape.php
diff options
context:
space:
mode:
authorMike Macgirvin <mike@macgirvin.com>2010-07-01 16:48:07 -0700
committerMike Macgirvin <mike@macgirvin.com>2010-07-01 16:48:07 -0700
commit6348e70daa113e8b3203de8fbc919d08c90d972e (patch)
tree1bc3dd3bc85fe6136411086785cf6753960e22f9 /include/Scrape.php
downloadvolse-hubzilla-6348e70daa113e8b3203de8fbc919d08c90d972e.tar.gz
volse-hubzilla-6348e70daa113e8b3203de8fbc919d08c90d972e.tar.bz2
volse-hubzilla-6348e70daa113e8b3203de8fbc919d08c90d972e.zip
Initial checkin
Diffstat (limited to 'include/Scrape.php')
-rw-r--r--include/Scrape.php80
1 files changed, 80 insertions, 0 deletions
diff --git a/include/Scrape.php b/include/Scrape.php
new file mode 100644
index 000000000..cc5015165
--- /dev/null
+++ b/include/Scrape.php
@@ -0,0 +1,80 @@
+<?php
+
+require_once('library/HTML5/Parser.php');
+
+if(! function_exists('attribute_contains')) {
+function attribute_contains($attr,$s) {
+ $a = explode(' ', $attr);
+ if(count($a) && in_array($s,$a))
+ return true;
+ return false;
+}}
+
+
+if(! function_exists('scrape_dfrn')) {
+function scrape_dfrn($url) {
+
+ $ret = array();
+ $s = fetch_url($url);
+
+ if(! $s)
+ return $ret;
+
+ $dom = HTML5_Parser::parse($s);
+
+ if(! $dom)
+ return $ret;
+
+ $items = $dom->getElementsByTagName('link');
+
+ // get DFRN link elements
+
+ foreach($items as $item) {
+ $x = $item->getAttribute('rel');
+ if(substr($x,0,5) == "dfrn-")
+ $ret[$x] = $item->getAttribute('href');
+ }
+
+ // Pull out hCard profile elements
+
+ $items = $dom->getElementsByTagName('*');
+ foreach($items as $item) {
+ if(attribute_contains($item->getAttribute('class'), 'vcard')) {
+ $level2 = $item->getElementsByTagName('*');
+ foreach($level2 as $x) {
+ if(attribute_contains($x->getAttribute('class'),'fn'))
+ $ret['fn'] = $x->textContent;
+ if(attribute_contains($x->getAttribute('class'),'photo'))
+ $ret['photo'] = $x->getAttribute('src');
+ if(attribute_contains($x->getAttribute('class'),'key'))
+ $ret['key'] = $x->textContent;
+ }
+ }
+ }
+
+ return $ret;
+}}
+
+
+
+
+
+
+if(! function_exists('validate_dfrn')) {
+function validate_dfrn($a) {
+ $errors = 0;
+ if(! x($a,'key'))
+ $errors ++;
+ if(! x($a,'dfrn-request'))
+ $errors ++;
+ if(! x($a,'dfrn-confirm'))
+ $errors ++;
+ if(! x($a,'dfrn-notify'))
+ $errors ++;
+ if(! x($a,'dfrn-poll'))
+ $errors ++;
+ return $errors;
+}}
+
+
+