]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
OStatus: fixes for link/id and text extraction gets import of Buzz feeds working.
authorBrion Vibber <brion@pobox.com>
Tue, 23 Feb 2010 21:47:14 +0000 (21:47 +0000)
committerBrion Vibber <brion@pobox.com>
Tue, 23 Feb 2010 21:47:14 +0000 (21:47 +0000)
plugins/OStatus/OStatusPlugin.php
plugins/OStatus/classes/Ostatus_profile.php

index 3a9e77c2a6ca95324ef61dd3b24e4b5ec7ded9d4..724634924d87ea1aee0a32c2ca3620ba5b3802be 100644 (file)
@@ -287,13 +287,19 @@ class OStatusPlugin extends Plugin
     function onStartNoticeSourceLink($notice, &$name, &$url, &$title)
     {
         if ($notice->source == 'ostatus') {
-            $bits = parse_url($notice->uri);
-            $domain = $bits['host'];
-
-            $name = $domain;
-            $url = $notice->uri;
-            $title = sprintf(_m("Sent from %s via OStatus"), $domain);
-            return false;
+            if ($notice->url) {
+                $bits = parse_url($notice->url);
+                $domain = $bits['host'];
+                if (substr($domain, 0, 4) == 'www.') {
+                    $name = substr($domain, 4);
+                } else {
+                    $name = $domain;
+                }
+
+                $url = $notice->url;
+                $title = sprintf(_m("Sent from %s via OStatus"), $domain);
+                return false;
+            }
         }
     }
 
@@ -509,12 +515,8 @@ class OStatusPlugin extends Plugin
         $oprofile = Ostatus_profile::staticGet('group_id', $group->id);
         if ($oprofile) {
             // Drop the PuSH subscription if there are no other subscribers.
+            $oprofile->garbageCollect();
 
-            $members = $group->getMembers(0, 1);
-            if ($members->N == 0) {
-                common_log(LOG_INFO, "Unsubscribing from now-unused group feed $oprofile->feeduri");
-                $oprofile->unsubscribe();
-            }
 
             $member = Profile::staticGet($user->id);
 
index 91b957fa23f591515863ee1d6bf284e6be325346..4998809bc8d802d41c5d4bf9a5448ec11080662a 100644 (file)
@@ -556,17 +556,28 @@ class Ostatus_profile extends Memcached_DataObject
 
         if ($activity->object->link) {
             $sourceUrl = $activity->object->link;
+        } else if ($activity->link) {
+            $sourceUrl = $activity->link;
         } else if (preg_match('!^https?://!', $activity->object->id)) {
             $sourceUrl = $activity->object->id;
         }
 
-        // @fixme sanitize and save HTML content if available
+        // Get (safe!) HTML and text versions of the content
 
-        $content = $activity->object->title;
+        require_once(INSTALLDIR.'/extlib/HTMLPurifier/HTMLPurifier.auto.php');
+
+        $html = $activity->object->content;
+
+        $purifier = new HTMLPurifier();
+
+        $rendered = $purifier->purify($html);
+
+        $content = html_entity_decode(strip_tags($rendered));
 
         $params = array('is_local' => Notice::REMOTE_OMB,
                         'url' => $sourceUrl,
-                        'uri' => $sourceUri);
+                        'uri' => $sourceUri,
+                        'rendered' => $rendered);
 
         $location = $activity->context->location;