]> git.mxchange.org Git - friendica.git/commitdiff
Merge pull request #8901 from annando/failed
authorHypolite Petovan <hypolite@mrpetovan.com>
Sun, 19 Jul 2020 16:21:54 +0000 (12:21 -0400)
committerGitHub <noreply@github.com>
Sun, 19 Jul 2020 16:21:54 +0000 (12:21 -0400)
New field in gserver, gcontact and contact for failed connections

include/conversation.php
src/Model/Item.php
src/Worker/SpoolPost.php

index 8507c5ba977919407f46ff50004f373154959b15..8050296a564a652fc82176c0748841e9c35b27c8 100644 (file)
@@ -316,7 +316,7 @@ function conv_get_blocklist()
                return [];
        }
 
-       $str_blocked = DI::pConfig()->get(local_user(), 'system', 'blocked');
+       $str_blocked = str_replace(["\n", "\r"], ",", DI::pConfig()->get(local_user(), 'system', 'blocked'));
        if (empty($str_blocked)) {
                return [];
        }
index 537611dd1b07ce661dfc2a7b21faee51eaf6afce..e31097f53cc48f2d75b02a80e0cedc8f2a60f0fd 100644 (file)
@@ -31,6 +31,7 @@ use Friendica\Core\Session;
 use Friendica\Core\System;
 use Friendica\Core\Worker;
 use Friendica\Database\DBA;
+use Friendica\Database\DBStructure;
 use Friendica\DI;
 use Friendica\Model\Post\Category;
 use Friendica\Protocol\Activity;
@@ -118,8 +119,22 @@ class Item
        const PRIVATE = 1;
        const UNLISTED = 2;
 
+       const TABLES = ['item', 'user-item', 'item-content', 'post-delivery-data', 'diaspora-interaction'];
+
        private static $legacy_mode = null;
 
+       private static function getItemFields()
+       {
+               $definition = DBStructure::definition('', false);
+
+               $postfields = [];
+               foreach (self::TABLES as $table) {
+                       $postfields[$table] = array_keys($definition[$table]['fields']);
+               }
+
+               return $postfields;
+       }
+
        public static function isLegacyMode()
        {
                if (is_null(self::$legacy_mode)) {
@@ -1572,6 +1587,8 @@ class Item
 
        public static function insert($item, $notify = false, $dontcache = false)
        {
+               $structure = self::getItemFields();
+
                $orig_item = $item;
 
                $priority = PRIORITY_HIGH;
@@ -1839,6 +1856,13 @@ class Item
                        Tag::storeFromBody($item['uri-id'], $body);
                }
 
+               // Remove all fields that aren't part of the item table
+               foreach ($item as $field => $value) {
+                       if (!in_array($field, $structure['item'])) {
+                               unset($item[$field]);
+                       }
+               }
+
                $ret = DBA::insert('item', $item);
 
                // When the item was successfully stored we fetch the ID of the item.
index 2026ff7f51edc4da570796b532b97d82ba9718bf..4dac93f67a1240a2d6c0a357fb1008cd74208b8d 100644 (file)
@@ -37,6 +37,7 @@ class SpoolPost {
 
                                        // It is not named like a spool file, so we don't care.
                                        if (substr($file, 0, 5) != "item-") {
+                                               Logger::notice('Spool file does does not start with "item-"', ['file' => $file]);
                                                continue;
                                        }
 
@@ -44,11 +45,13 @@ class SpoolPost {
 
                                        // We don't care about directories either
                                        if (filetype($fullfile) != "file") {
+                                               Logger::notice('Spool file is no file', ['file' => $file]);
                                                continue;
                                        }
 
                                        // We can't read or write the file? So we don't care about it.
                                        if (!is_writable($fullfile) || !is_readable($fullfile)) {
+                                               Logger::notice('Spool file has insufficent permissions', ['file' => $file, 'writable' => is_writable($fullfile), 'readable' => is_readable($fullfile)]);
                                                continue;
                                        }
 
@@ -56,17 +59,19 @@ class SpoolPost {
 
                                        // If it isn't an array then it is no spool file
                                        if (!is_array($arr)) {
+                                               Logger::notice('Spool file is no array', ['file' => $file]);
                                                continue;
                                        }
 
                                        // Skip if it doesn't seem to be an item array
                                        if (!isset($arr['uid']) && !isset($arr['uri']) && !isset($arr['network'])) {
+                                               Logger::notice('Spool file does not contain the needed fields', ['file' => $file]);
                                                continue;
                                        }
 
                                        $result = Item::insert($arr);
 
-                                       Logger::log("Spool file ".$file." stored: ".$result, Logger::DEBUG);
+                                       Logger::notice('Spool file is stored', ['file' => $file, 'result' => $result]);
                                        unlink($fullfile);
                                }
                                closedir($dh);