require_once('mod/item.php');
require_once('include/items.php');
+ require_once('mod/share.php');
require_once('library/twitteroauth.php');
$connection = new TwitterOAuth($ckey,$csecret,$otoken,$osecret);
$converted = twitter_expand_entities($a, $_REQUEST['body'], $post->retweeted_status, true, $picture);
$_REQUEST['body'] = $converted["body"];
- $_REQUEST['body'] = "[share author='".$post->retweeted_status->user->name.
- "' profile='https://twitter.com/".$post->retweeted_status->user->screen_name.
- "' avatar='".$post->retweeted_status->user->profile_image_url_https.
- "' link='https://twitter.com/".$post->retweeted_status->user->screen_name."/status/".$post->retweeted_status->id_str."']".
- $_REQUEST['body'];
+ if (function_exists("share_header"))
+ $_REQUEST['body'] = share_header($post->retweeted_status->user->name, "https://twitter.com/".$post->retweeted_status->user->screen_name,
+ $post->retweeted_status->user->profile_image_url_https, "",
+ datetime_convert('UTC','UTC',$post->retweeted_status->created_at),
+ "https://twitter.com/".$post->retweeted_status->user->screen_name."/status/".$post->retweeted_status->id_str).
+ $_REQUEST['body'];
+ else
+ $_REQUEST['body'] = "[share author='".$post->retweeted_status->user->name.
+ "' profile='https://twitter.com/".$post->retweeted_status->user->screen_name.
+ "' avatar='".$post->retweeted_status->user->profile_image_url_https.
+ "' posted='".datetime_convert('UTC','UTC',$post->retweeted_status->created_at).
+ "' link='https://twitter.com/".$post->retweeted_status->user->screen_name."/status/".$post->retweeted_status->id_str."']".
+ $_REQUEST['body'];
+
$_REQUEST['body'] .= "[/share]";
} else {
$_REQUEST["body"] = $post->text;
$postarray['body'] = "[share author='".$post->retweeted_status->user->name.
"' profile='https://twitter.com/".$post->retweeted_status->user->screen_name.
"' avatar='".$post->retweeted_status->user->profile_image_url_https.
+ "' posted='".datetime_convert('UTC','UTC',$post->retweeted_status->created_at).
"' link='https://twitter.com/".$post->retweeted_status->user->screen_name."/status/".$post->retweeted_status->id_str."']".
$postarray['body'];
$postarray['body'] .= "[/share]";
}
}
+function twitter_fetchparentposts($a, $uid, $post, $connection, $self, $own_id) {
+ logger("twitter_fetchparentposts: Fetching for user ".$uid." and post ".$post->id_str, LOGGER_DEBUG);
+
+ $posts = array();
+
+ while ($post->in_reply_to_status_id_str != "") {
+ $parameters = array("trim_user" => false, "id" => $post->in_reply_to_status_id_str);
+
+ $post = $connection->get('statuses/show', $parameters);
+
+ if (!count($post)) {
+ logger("twitter_fetchparentposts: Can't fetch post ".$parameters->id, LOGGER_DEBUG);
+ break;
+ }
+
+ $r = q("SELECT * FROM `item` WHERE `uri` = '%s' AND `uid` = %d LIMIT 1",
+ dbesc("twitter::".$post->id_str),
+ intval($uid)
+ );
+
+ if (count($r))
+ break;
+
+ $posts[] = $post;
+ }
+
+ logger("twitter_fetchparentposts: Fetching ".count($posts)." parents", LOGGER_DEBUG);
+
+ $posts = array_reverse($posts);
+
+ if (count($posts)) {
+ foreach ($posts as $post) {
+ $postarray = twitter_createpost($a, $uid, $post, $self, false, false);
+
+ if (trim($postarray['body']) == "")
+ continue;
+
+ $item = item_store($postarray);
+ $postarray["id"] = $item;
+
+ logger('twitter_fetchparentpost: User '.$self["nick"].' posted parent timeline item '.$item);
+
+ if ($item != 0)
+ twitter_checknotification($a, $uid, $own_id, $item, $postarray);
+ }
+ }
+}
+
function twitter_fetchhometimeline($a, $uid) {
$ckey = get_config('twitter', 'consumerkey');
$csecret = get_config('twitter', 'consumersecret');
$otoken = get_pconfig($uid, 'twitter', 'oauthtoken');
$osecret = get_pconfig($uid, 'twitter', 'oauthsecret');
$create_user = get_pconfig($uid, 'twitter', 'create_user');
+ $mirror_posts = get_pconfig($uid, 'twitter', 'mirror_posts');
logger("twitter_fetchhometimeline: Fetching for user ".$uid, LOGGER_DEBUG);
+ $application_name = get_config('twitter', 'application_name');
+
+ if ($application_name == "")
+ $application_name = $a->get_hostname();
+
require_once('library/twitteroauth.php');
require_once('include/items.php');
if ($first_time)
continue;
+ if (stristr($post->source, $application_name) && $post->user->screen_name == $own_id) {
+ logger("twitter_fetchhometimeline: Skip previously sended post", LOGGER_DEBUG);
+ continue;
+ }
+
+ if ($mirror_posts && $post->user->screen_name == $own_id && $post->in_reply_to_status_id_str == "") {
+ logger("twitter_fetchhometimeline: Skip post that will be mirrored", LOGGER_DEBUG);
+ continue;
+ }
+
+ if ($post->in_reply_to_status_id_str != "")
+ twitter_fetchparentposts($a, $uid, $post, $connection, $self, $own_id);
+
$postarray = twitter_createpost($a, $uid, $post, $self, $create_user, true);
if (trim($postarray['body']) == "")
continue;
$item = item_store($postarray);
+ $postarray["id"] = $item;
logger('twitter_fetchhometimeline: User '.$self["nick"].' posted home timeline item '.$item);
if ($first_time)
continue;
+ if ($post->in_reply_to_status_id_str != "")
+ twitter_fetchparentposts($a, $uid, $post, $connection, $self, $own_id);
+
$postarray = twitter_createpost($a, $uid, $post, $self, false, false);
if (trim($postarray['body']) == "")
continue;
$item = item_store($postarray);
+ $postarray["id"] = $item;
if (!isset($postarray["parent"]) OR ($postarray["parent"] == 0))
$postarray["parent"] = $item;