]> git.mxchange.org Git - friendica.git/commitdiff
Merge pull request #5561 from MrPetovan/bug/4584-fix-twitter-gif-still-image
authorMichael Vogel <icarus@dabo.de>
Sun, 5 Aug 2018 12:00:19 +0000 (14:00 +0200)
committerGitHub <noreply@github.com>
Sun, 5 Aug 2018 12:00:19 +0000 (14:00 +0200)
Restore source storing for Twitter conversations

boot.php
mod/item.php
src/Model/Conversation.php
src/Model/Item.php
src/Protocol/DFRN.php
src/Protocol/Diaspora.php
src/Protocol/OStatus.php

index b8149684c3bd8ae202be56dd7fb3fab416614475..d5ada81354e5701d8ab583e9dd13ffb206e11aac 100644 (file)
--- a/boot.php
+++ b/boot.php
@@ -179,25 +179,6 @@ define('CP_USERS_AND_GLOBAL',       2);
  * @}
  */
 
-/**
- * @name Protocols
- * @deprecated since version 3.6
- * @see Conversation
- *
- * Different protocols that we are storing
- * @{
- */
-define('PROTOCOL_UNKNOWN'        , Conversation::PROTOCOL_UNKNOWN);
-define('PROTOCOL_DFRN'           , Conversation::PROTOCOL_DFRN);
-define('PROTOCOL_DIASPORA'       , Conversation::PROTOCOL_DIASPORA);
-define('PROTOCOL_OSTATUS_SALMON' , Conversation::PROTOCOL_OSTATUS_SALMON);
-define('PROTOCOL_OSTATUS_FEED'   , Conversation::PROTOCOL_OSTATUS_FEED);    // Deprecated
-define('PROTOCOL_GS_CONVERSATION', Conversation::PROTOCOL_GS_CONVERSATION); // Deprecated
-define('PROTOCOL_SPLITTED_CONV'  , Conversation::PROTOCOL_SPLITTED_CONV);
-/**
- * @}
- */
-
 /**
  * @name Network constants
  * @deprecated since version 3.6
index ca0e5e19047536a86bbb63cd58ddb193d9df96eb..0f2ef536d8e7b4323f4fa651f7b76b41f74dd9bc 100644 (file)
@@ -25,6 +25,7 @@ use Friendica\Core\System;
 use Friendica\Core\Worker;
 use Friendica\Database\DBA;
 use Friendica\Model\Contact;
+use Friendica\Model\Conversation;
 use Friendica\Model\Item;
 use Friendica\Protocol\Diaspora;
 use Friendica\Protocol\Email;
@@ -643,7 +644,7 @@ function item_post(App $a) {
        $datarray['api_source'] = $api_source;
 
        // This field is for storing the raw conversation data
-       $datarray['protocol'] = PROTOCOL_DFRN;
+       $datarray['protocol'] = Conversation::PARCEL_DFRN;
 
        $conversation = DBA::selectFirst('conversation', ['conversation-uri', 'conversation-href'], ['item-uri' => $datarray['parent-uri']]);
        if (DBA::isResult($conversation)) {
index 98db86188f89c5872b578324f5d3d351a5d2108f..cb32c0f20eafa6043d714a88b913bdb07154497c 100644 (file)
@@ -2,6 +2,7 @@
 /**
  * @file src/Model/Conversation
  */
+
 namespace Friendica\Model;
 
 use Friendica\Database\DBA;
@@ -11,13 +12,17 @@ require_once "include/dba.php";
 
 class Conversation
 {
-       const PROTOCOL_UNKNOWN         = 0;
-       const PROTOCOL_DFRN            = 1;
-       const PROTOCOL_DIASPORA        = 2;
-       const PROTOCOL_OSTATUS_SALMON  = 3;
-       const PROTOCOL_OSTATUS_FEED    = 4; // Deprecated
-       const PROTOCOL_GS_CONVERSATION = 5; // Deprecated
-       const PROTOCOL_SPLITTED_CONV   = 6;
+       /*
+        * These constants represent the parcel format used to transport a conversation independently of the message protocol.
+        * It currently is stored in the "protocol" field for legacy reasons.
+        */
+       const PARCEL_UNKNOWN            = 0;
+       const PARCEL_DFRN               = 1;
+       const PARCEL_DIASPORA           = 2;
+       const PARCEL_SALMON             = 3;
+       const PARCEL_FEED               = 4; // Deprecated
+       const PARCEL_SPLIT_CONVERSATION = 6;
+       const PARCEL_TWITTER            = 67;
 
        /**
         * @brief Store the conversation data
@@ -25,8 +30,10 @@ class Conversation
         * @param array $arr Item array with conversation data
         * @return array Item array with removed conversation data
         */
-       public static function insert($arr) {
-               if (in_array(defaults($arr, 'network', NETWORK_PHANTOM), [NETWORK_DFRN, NETWORK_DIASPORA, NETWORK_OSTATUS]) && !empty($arr['uri'])) {
+       public static function insert(array $arr)
+       {
+               if (in_array(defaults($arr, 'network', NETWORK_PHANTOM),
+                               [NETWORK_DFRN, NETWORK_DIASPORA, NETWORK_OSTATUS, NETWORK_TWITTER]) && !empty($arr['uri'])) {
                        $conversation = ['item-uri' => $arr['uri'], 'received' => DateTimeFormat::utcNow()];
 
                        if (isset($arr['parent-uri']) && ($arr['parent-uri'] != $arr['uri'])) {
@@ -66,11 +73,13 @@ class Conversation
                                        unset($conversation['source']);
                                }
                                if (!DBA::update('conversation', $conversation, ['item-uri' => $conversation['item-uri']], $old_conv)) {
-                                       logger('Conversation: update for '.$conversation['item-uri'].' from '.$old_conv['protocol'].' to '.$conversation['protocol'].' failed', LOGGER_DEBUG);
+                                       logger('Conversation: update for ' . $conversation['item-uri'] . ' from ' . $old_conv['protocol'] . ' to ' . $conversation['protocol'] . ' failed',
+                                               LOGGER_DEBUG);
                                }
                        } else {
                                if (!DBA::insert('conversation', $conversation, true)) {
-                                       logger('Conversation: insert for '.$conversation['item-uri'].' (protocol '.$conversation['protocol'].') failed', LOGGER_DEBUG);
+                                       logger('Conversation: insert for ' . $conversation['item-uri'] . ' (protocol ' . $conversation['protocol'] . ') failed',
+                                               LOGGER_DEBUG);
                                }
                        }
                }
index 84c51a2bf0d4e8bdce3f9f2e68b892181703617b..d082d02c1b1143afec3426480b80aec529948f72 100644 (file)
@@ -1240,7 +1240,7 @@ class Item extends BaseObject
                        $item['wall'] = 1;
                        $item['origin'] = 1;
                        $item['network'] = NETWORK_DFRN;
-                       $item['protocol'] = PROTOCOL_DFRN;
+                       $item['protocol'] = Conversation::PARCEL_DFRN;
 
                        if (is_int($notify)) {
                                $priority = $notify;
index 1a2e8c56954006b88f7c46704e1f97a827bc493a..296949ddcdb4a1e72799ca744afd83c3a08a0398 100644 (file)
@@ -20,12 +20,12 @@ use Friendica\Core\L10n;
 use Friendica\Core\System;
 use Friendica\Database\DBA;
 use Friendica\Model\Contact;
+use Friendica\Model\Conversation;
 use Friendica\Model\Event;
 use Friendica\Model\GContact;
-use Friendica\Model\Group;
 use Friendica\Model\Item;
-use Friendica\Model\Profile;
 use Friendica\Model\PermissionSet;
+use Friendica\Model\Profile;
 use Friendica\Model\User;
 use Friendica\Object\Image;
 use Friendica\Util\Crypto;
@@ -2401,7 +2401,7 @@ class DFRN
 
                $item = $header;
 
-               $item["protocol"] = PROTOCOL_DFRN;
+               $item["protocol"] = Conversation::PARCEL_DFRN;
 
                $item["source"] = $xml;
 
index 83afa61888b4bf6ebd8bba94a8e30fc30a380c4c..5036aa357b7fc999d02ada9fb2ff26b972d3bf00 100644 (file)
@@ -20,6 +20,7 @@ use Friendica\Core\System;
 use Friendica\Core\Worker;
 use Friendica\Database\DBA;
 use Friendica\Model\Contact;
+use Friendica\Model\Conversation;
 use Friendica\Model\GContact;
 use Friendica\Model\Group;
 use Friendica\Model\Item;
@@ -1706,7 +1707,7 @@ class Diaspora
 
                $datarray["object-type"] = ACTIVITY_OBJ_COMMENT;
 
-               $datarray["protocol"] = PROTOCOL_DIASPORA;
+               $datarray["protocol"] = Conversation::PARCEL_DIASPORA;
                $datarray["source"] = $xml;
 
                $datarray["changed"] = $datarray["created"] = $datarray["edited"] = $created_at;
@@ -1968,7 +1969,7 @@ class Diaspora
 
                $datarray = [];
 
-               $datarray["protocol"] = PROTOCOL_DIASPORA;
+               $datarray["protocol"] = Conversation::PARCEL_DIASPORA;
 
                $datarray["uid"] = $importer["uid"];
                $datarray["contact-id"] = $author_contact["cid"];
@@ -2630,7 +2631,7 @@ class Diaspora
                $datarray["verb"] = ACTIVITY_POST;
                $datarray["gravity"] = GRAVITY_PARENT;
 
-               $datarray["protocol"] = PROTOCOL_DIASPORA;
+               $datarray["protocol"] = Conversation::PARCEL_DIASPORA;
                $datarray["source"] = $xml;
 
                $prefix = share_header(
@@ -2858,7 +2859,7 @@ class Diaspora
                $datarray["verb"] = ACTIVITY_POST;
                $datarray["gravity"] = GRAVITY_PARENT;
 
-               $datarray["protocol"] = PROTOCOL_DIASPORA;
+               $datarray["protocol"] = Conversation::PARCEL_DIASPORA;
                $datarray["source"] = $xml;
 
                $datarray["body"] = self::replacePeopleGuid($body, $contact["url"]);
index 9b3af22904faa81511fdf002df60e6d816816d0d..bab85515bcd99290644af5d95d2aa88717153404 100644 (file)
@@ -370,7 +370,7 @@ class OStatus
                        $doc2->formatOutput = true;
                        $xml2 = $doc2->saveXML();
 
-                       $header["protocol"] = PROTOCOL_OSTATUS_SALMON;
+                       $header["protocol"] = Conversation::PARCEL_SALMON;
                        $header["source"] = $xml2;
                } elseif (!$initialize) {
                        return false;
@@ -798,7 +798,7 @@ class OStatus
 
                        $conv_data = [];
 
-                       $conv_data['protocol'] = PROTOCOL_SPLITTED_CONV;
+                       $conv_data['protocol'] = Conversation::PARCEL_SPLIT_CONVERSATION;
                        $conv_data['network'] = NETWORK_OSTATUS;
                        $conv_data['uri'] = XML::getFirstNodeValue($xpath, 'atom:id/text()', $entry);
 
@@ -839,7 +839,7 @@ class OStatus
 
                        $conv_data['source'] = $doc2->saveXML();
 
-                       $condition = ['item-uri' => $conv_data['uri'],'protocol' => PROTOCOL_OSTATUS_FEED];
+                       $condition = ['item-uri' => $conv_data['uri'],'protocol' => Conversation::PARCEL_FEED];
                        if (DBA::exists('conversation', $condition)) {
                                logger('Delete deprecated entry for URI '.$conv_data['uri'], LOGGER_DEBUG);
                                DBA::delete('conversation', ['item-uri' => $conv_data['uri']]);
@@ -863,7 +863,7 @@ class OStatus
         */
        private static function fetchSelf($self, array &$item)
        {
-               $condition = ['`item-uri` = ? AND `protocol` IN (?, ?)', $self, PROTOCOL_DFRN, PROTOCOL_OSTATUS_SALMON];
+               $condition = ['`item-uri` = ? AND `protocol` IN (?, ?)', $self, Conversation::PARCEL_DFRN, Conversation::PARCEL_SALMON];
                if (DBA::exists('conversation', $condition)) {
                        logger('Conversation '.$item['uri'].' is already stored.', LOGGER_DEBUG);
                        return;
@@ -882,7 +882,7 @@ class OStatus
                $doc->formatOutput = true;
                $xml = $doc->saveXML();
 
-               $item["protocol"] = PROTOCOL_OSTATUS_SALMON;
+               $item["protocol"] = Conversation::PARCEL_SALMON;
                $item["source"] = $xml;
 
                logger('Conversation '.$item['uri'].' is now fetched.', LOGGER_DEBUG);
@@ -898,7 +898,7 @@ class OStatus
         */
        private static function fetchRelated($related, $related_uri, $importer)
        {
-               $condition = ['`item-uri` = ? AND `protocol` IN (?, ?)', $related_uri, PROTOCOL_DFRN, PROTOCOL_OSTATUS_SALMON];
+               $condition = ['`item-uri` = ? AND `protocol` IN (?, ?)', $related_uri, Conversation::PARCEL_DFRN, Conversation::PARCEL_SALMON];
                $conversation = DBA::selectFirst('conversation', ['source', 'protocol'], $condition);
                if (DBA::isResult($conversation)) {
                        $stored = true;
@@ -907,7 +907,7 @@ class OStatus
                                logger('Got valid cached XML for URI '.$related_uri, LOGGER_DEBUG);
                                return;
                        }
-                       if ($conversation['protocol'] == PROTOCOL_OSTATUS_SALMON) {
+                       if ($conversation['protocol'] == Conversation::PARCEL_SALMON) {
                                logger('Delete invalid cached XML for URI '.$related_uri, LOGGER_DEBUG);
                                DBA::delete('conversation', ['item-uri' => $related_uri]);
                        }
@@ -978,7 +978,7 @@ class OStatus
 
                // Finally we take the data that we fetched from "ostatus:conversation"
                if ($xml == '') {
-                       $condition = ['item-uri' => $related_uri, 'protocol' => PROTOCOL_SPLITTED_CONV];
+                       $condition = ['item-uri' => $related_uri, 'protocol' => Conversation::PARCEL_SPLIT_CONVERSATION];
                        $conversation = DBA::selectFirst('conversation', ['source'], $condition);
                        if (DBA::isResult($conversation)) {
                                $stored = true;