]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Handle missing URIs and URLs better
authorMikael Nordfeldth <mmn@hethane.se>
Fri, 18 Apr 2014 21:36:01 +0000 (23:36 +0200)
committerMikael Nordfeldth <mmn@hethane.se>
Fri, 18 Apr 2014 21:36:01 +0000 (23:36 +0200)
classes/Notice.php

index 56be89fb125d29679d577809e292c198941b576f..d9bdbc4498a0d90199443908c3fcc2b35572c5a2 100644 (file)
@@ -424,6 +424,16 @@ class Notice extends Managed_DataObject
             $notice->created = common_sql_now();
         }
 
+        if (!$notice->isLocal()) {
+            // Only do these checks for non-local notices. Local notices will generate these values later.
+            if (!common_valid_http_url($url)) {
+                common_debug('Bad notice URL: ['.$url.'] Cannot link back to original!');
+            }
+            if (empty($uri)) {
+                throw new ServerException('No URI for remote notice. Cannot accept that.');
+            }
+        }
+
         $notice->content = $final;
 
         $notice->source = $source;
@@ -600,6 +610,11 @@ class Notice extends Managed_DataObject
                 $changed = true;
             }
 
+            if (empty($url)) {
+                $notice->url = common_local_url('shownotice', array('notice' => $notice->id), null, null, false);
+                $changed = true;
+            }
+
             // If it's not part of a conversation, it's
             // the beginning of a new conversation.