]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - classes/Notice.php
Handle missing URIs and URLs better
[quix0rs-gnu-social.git] / 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.