X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=plugins%2FTwitterBridge%2Ftwitterimport.php;h=143543d8efa8621e3932c9b62074409e614123a5;hb=6a7bf9dbf97a86881181d070894b0586d9d34129;hp=1b2d3953049594c7f242d44b24a18ac407b212a5;hpb=22047f6412811cb340aee6ba49d15257581b5aa9;p=quix0rs-gnu-social.git diff --git a/plugins/TwitterBridge/twitterimport.php b/plugins/TwitterBridge/twitterimport.php index 1b2d395304..143543d8ef 100644 --- a/plugins/TwitterBridge/twitterimport.php +++ b/plugins/TwitterBridge/twitterimport.php @@ -56,14 +56,14 @@ class TwitterImport if (preg_match("/$source/", mb_strtolower($status->source))) { common_debug($this->name() . ' - Skipping import of status ' . - $status->id . ' with source ' . $source); - continue; + twitter_id($status) . ' with source ' . $source); + return null; } // Don't save it if the user is protected // FIXME: save it but treat it as private if ($status->user->protected) { - continue; + return null; } $notice = $this->saveStatus($status); @@ -86,23 +86,24 @@ class TwitterImport return null; } - $statusUri = $this->makeStatusURI($status->user->screen_name, $status->id); + $statusId = twitter_id($status); + $statusUri = $this->makeStatusURI($status->user->screen_name, $statusId); // check to see if we've already imported the status - $n2s = Notice_to_status::staticGet('status_id', $status->id); + $n2s = Notice_to_status::staticGet('status_id', $statusId); if (!empty($n2s)) { common_log( LOG_INFO, $this->name() . - " - Ignoring duplicate import: {$status->id}" + " - Ignoring duplicate import: {$statusId}" ); return Notice::staticGet('id', $n2s->notice_id); } // If it's a retweet, save it as a repeat! if (!empty($status->retweeted_status)) { - common_log(LOG_INFO, "Status {$status->id} is a retweet of {$status->retweeted_status->id}."); + common_log(LOG_INFO, "Status {$statusId} is a retweet of " . twitter_id($status->retweeted_status) . "."); $original = $this->saveStatus($status->retweeted_status); if (empty($original)) { return null; @@ -126,7 +127,7 @@ class TwitterImport 'uri' => $statusUri, 'is_local' => Notice::GATEWAY)); common_log(LOG_INFO, "Saved {$repeat->id} as a repeat of {$original->id}"); - Notice_to_status::saveNew($repeat->id, $status->id); + Notice_to_status::saveNew($repeat->id, $statusId); return $repeat; } } @@ -145,17 +146,18 @@ class TwitterImport $notice->reply_to = null; - if (!empty($status->in_reply_to_status_id)) { - common_log(LOG_INFO, "Status {$status->id} is a reply to status {$status->in_reply_to_status_id}"); - $n2s = Notice_to_status::staticGet('status_id', $status->in_reply_to_status_id); + $replyTo = twitter_id($status, 'in_reply_to_status_id'); + if (!empty($replyTo)) { + common_log(LOG_INFO, "Status {$statusId} is a reply to status {$replyTo}"); + $n2s = Notice_to_status::staticGet('status_id', $replyTo); if (empty($n2s)) { - common_log(LOG_INFO, "Couldn't find local notice for status {$status->in_reply_to_status_id}"); + common_log(LOG_INFO, "Couldn't find local notice for status {$replyTo}"); } else { $reply = Notice::staticGet('id', $n2s->notice_id); if (empty($reply)) { - common_log(LOG_INFO, "Couldn't find local notice for status {$status->in_reply_to_status_id}"); + common_log(LOG_INFO, "Couldn't find local notice for status {$replyTo}"); } else { - common_log(LOG_INFO, "Found local notice {$reply->id} for status {$status->in_reply_to_status_id}"); + common_log(LOG_INFO, "Found local notice {$reply->id} for status {$replyTo}"); $notice->reply_to = $reply->id; $notice->conversation = $reply->conversation; } @@ -165,7 +167,7 @@ class TwitterImport if (empty($notice->conversation)) { $conv = Conversation::create(); $notice->conversation = $conv->id; - common_log(LOG_INFO, "No known conversation for status {$status->id} so making a new one {$conv->id}."); + common_log(LOG_INFO, "No known conversation for status {$statusId} so making a new one {$conv->id}."); } $notice->is_local = Notice::GATEWAY; @@ -186,9 +188,10 @@ class TwitterImport Event::handle('EndNoticeSave', array($notice)); } - Notice_to_status::saveNew($notice->id, $status->id); + Notice_to_status::saveNew($notice->id, $statusId); $this->saveStatusMentions($notice, $status); + $this->saveStatusAttachments($notice, $status); $notice->blowOnInsert(); @@ -542,7 +545,8 @@ class TwitterImport $text = $status->text; if (empty($status->entities)) { - common_log(LOG_WARNING, "No entities data for {$status->id}; trying to fake up links ourselves."); + $statusId = twitter_id($status); + common_log(LOG_WARNING, "No entities data for {$statusId}; trying to fake up links ourselves."); $text = common_replace_urls_callback($text, 'common_linkify'); $text = preg_replace('/(^|\"\;|\'|\(|\[|\{|\s+)#([\pL\pN_\-\.]{1,64})/e', "'\\1#'.TwitterStatusFetcher::tagLink('\\2')", $text); $text = preg_replace('/(^|\s+)@([a-z0-9A-Z_]{1,64})/e', "'\\1@'.TwitterStatusFetcher::atLink('\\2')", $text); @@ -648,4 +652,22 @@ class TwitterImport } } } + + /** + * Record URL links from the notice. Needed to get thumbnail records + * for referenced photo and video posts, etc. + * + * @param Notice $notice + * @param object $status + */ + function saveStatusAttachments($notice, $status) + { + if (common_config('attachments', 'process_links')) { + if (!empty($status->entities) && !empty($status->entities->urls)) { + foreach ($status->entities->urls as $url) { + File::processNew($url->url, $notice->id); + } + } + } + } } \ No newline at end of file