Skip to content

Commit

Permalink
Merge pull request #5561 from MrPetovan/bug/4584-fix-twitter-gif-stil…
Browse files Browse the repository at this point in the history
…l-image

Restore source storing for Twitter conversations
  • Loading branch information
annando committed Aug 5, 2018
2 parents fa46e97 + ea45a78 commit ef1c73f
Show file tree
Hide file tree
Showing 7 changed files with 39 additions and 47 deletions.
19 changes: 0 additions & 19 deletions boot.php
Expand Up @@ -179,25 +179,6 @@
* @}
*/

/**
* @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
Expand Down
3 changes: 2 additions & 1 deletion mod/item.php
Expand Up @@ -25,6 +25,7 @@
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;
Expand Down Expand Up @@ -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)) {
Expand Down
31 changes: 20 additions & 11 deletions src/Model/Conversation.php
Expand Up @@ -2,6 +2,7 @@
/**
* @file src/Model/Conversation
*/

namespace Friendica\Model;

use Friendica\Database\DBA;
Expand All @@ -11,22 +12,28 @@

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
*
* @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'])) {
Expand Down Expand Up @@ -66,11 +73,13 @@ public static function insert($arr) {
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);
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion src/Model/Item.php
Expand Up @@ -1240,7 +1240,7 @@ public static function insert($item, $force_parent = false, $notify = false, $do
$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;
Expand Down
6 changes: 3 additions & 3 deletions src/Protocol/DFRN.php
Expand Up @@ -20,12 +20,12 @@
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;
Expand Down Expand Up @@ -2401,7 +2401,7 @@ private static function processEntry($header, $xpath, $entry, $importer, $xml)

$item = $header;

$item["protocol"] = PROTOCOL_DFRN;
$item["protocol"] = Conversation::PARCEL_DFRN;

$item["source"] = $xml;

Expand Down
9 changes: 5 additions & 4 deletions src/Protocol/Diaspora.php
Expand Up @@ -20,6 +20,7 @@
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;
Expand Down Expand Up @@ -1706,7 +1707,7 @@ private static function receiveComment(array $importer, $sender, $data, $xml)

$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;
Expand Down Expand Up @@ -1968,7 +1969,7 @@ private static function receiveLike(array $importer, $sender, $data)

$datarray = [];

$datarray["protocol"] = PROTOCOL_DIASPORA;
$datarray["protocol"] = Conversation::PARCEL_DIASPORA;

$datarray["uid"] = $importer["uid"];
$datarray["contact-id"] = $author_contact["cid"];
Expand Down Expand Up @@ -2630,7 +2631,7 @@ private static function receiveReshare(array $importer, $data, $xml)
$datarray["verb"] = ACTIVITY_POST;
$datarray["gravity"] = GRAVITY_PARENT;

$datarray["protocol"] = PROTOCOL_DIASPORA;
$datarray["protocol"] = Conversation::PARCEL_DIASPORA;
$datarray["source"] = $xml;

$prefix = share_header(
Expand Down Expand Up @@ -2858,7 +2859,7 @@ private static function receiveStatusMessage(array $importer, $data, $xml)
$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"]);
Expand Down
16 changes: 8 additions & 8 deletions src/Protocol/OStatus.php
Expand Up @@ -370,7 +370,7 @@ private static function process($xml, array $importer, array &$contact = null, &
$doc2->formatOutput = true;
$xml2 = $doc2->saveXML();

$header["protocol"] = PROTOCOL_OSTATUS_SALMON;
$header["protocol"] = Conversation::PARCEL_SALMON;
$header["source"] = $xml2;
} elseif (!$initialize) {
return false;
Expand Down Expand Up @@ -798,7 +798,7 @@ private static function storeConversation($xml, $conversation = '', $conversatio

$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);

Expand Down Expand Up @@ -839,7 +839,7 @@ private static function storeConversation($xml, $conversation = '', $conversatio

$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']]);
Expand All @@ -863,7 +863,7 @@ private static function storeConversation($xml, $conversation = '', $conversatio
*/
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;
Expand All @@ -882,7 +882,7 @@ private static function fetchSelf($self, array &$item)
$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);
Expand All @@ -898,7 +898,7 @@ private static function fetchSelf($self, array &$item)
*/
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;
Expand All @@ -907,7 +907,7 @@ private static function fetchRelated($related, $related_uri, $importer)
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]);
}
Expand Down Expand Up @@ -978,7 +978,7 @@ private static function fetchRelated($related, $related_uri, $importer)

// 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;
Expand Down

0 comments on commit ef1c73f

Please sign in to comment.