Skip to content

Instantly share code, notes, and snippets.

@shellexy
Created April 15, 2012 08:14
Show Gist options
  • Save shellexy/2390882 to your computer and use it in GitHub Desktop.
Save shellexy/2390882 to your computer and use it in GitHub Desktop.
让 dabr 展开 t.co 短链
diff --git a/dabr/common/twitter.php b/dabr/common/twitter.php
--- a/dabr/common/twitter.php
+++ b/dabr/common/twitter.php
@@ -154,7 +154,7 @@ function long_url($shortURL)
function friendship_exists($user_a) {
- $request = API_URL.'friendships/show.json?target_screen_name=' . $user_a;
+ $request = API_URL.'friendships/show.json?include_entities=true&target_screen_name=' . $user_a;
$following = twitter_process($request);
if ($following->relationship->target->following == 1) {
@@ -166,7 +166,7 @@ function friendship_exists($user_a) {
function friendship($user_a)
{
- $request = API_URL.'friendships/show.json?target_screen_name=' . $user_a;
+ $request = API_URL.'friendships/show.json?include_entities=true&target_screen_name=' . $user_a;
return twitter_process($request);
}
@@ -485,8 +485,16 @@ class Dabr_Autolink extends Twitter_Auto
}
}
-function twitter_parse_tags($input)
+function twitter_parse_tags($input, $entities = false)
{
+ //Expanded t.co links to find thumbnails etc
+ if($entities) {
+ foreach($entities->urls as $urls) {
+ if($urls->expanded_url != "") {
+ $input = str_replace($urls->url, $urls->expanded_url, $input);
+ }
+ }
+ }
$urls = Twitter_Extractor::extractURLS($input);
@@ -666,7 +674,7 @@ function twitter_delete_page($query) {
$id = (string) $query[1];
if (is_numeric($id)) {
- $request = API_URL."statuses/destroy/{$id}.json?page=".intval($_GET['page']);
+ $request = API_URL."statuses/destroy/{$id}.json?include_entities=true&page=".intval($_GET['page']);
$tl = twitter_process($request, true);
twitter_refresh('user/'.user_current_username());
}
@@ -698,9 +706,9 @@ function twitter_block_page($query) {
$user = $query[1];
if ($user) {
if($query[0] == 'block'){
- $request = API_URL."blocks/create/create.json?screen_name={$user}";
+ $request = API_URL."blocks/create/create.json?include_entities=true&screen_name={$user}";
} else {
- $request = API_URL."blocks/destroy/destroy.json?screen_name={$user}";
+ $request = API_URL."blocks/destroy/destroy.json?include_entities=true&screen_name={$user}";
}
twitter_process($request, true);
twitter_refresh("user/{$user}");
@@ -824,7 +832,7 @@ function twitter_retweet($query) {
}
function twitter_replies_page() {
- $request = API_URL.'statuses/mentions.json?count=30&page='.intval($_GET['page']);
+ $request = API_URL.'statuses/mentions.json?include_entities=true&count=30&page='.intval($_GET['page']);
$tl = twitter_process($request);
$tl = twitter_standard_timeline($tl, 'replies');
$content = theme('status_form');
@@ -833,7 +841,7 @@ function twitter_replies_page() {
}
function twitter_retweets_page() {
- $request = API_URL.'statuses/retweets_of_me.json?page='.intval($_GET['page']);
+ $request = API_URL.'statuses/retweets_of_me.json?include_entities=true&page='.intval($_GET['page']);
$tl = twitter_process($request);
$tl = twitter_standard_timeline($tl, 'retweets');
$content = theme('status_form');
@@ -865,7 +873,7 @@ function twitter_directs_page($query) {
twitter_refresh('directs/sent');
case 'sent':
- $request = API_URL.'direct_messages/sent.json?page='.intval($_GET['page']);
+ $request = API_URL.'direct_messages/sent.json?include_entities=true&page='.intval($_GET['page']);
$tl = twitter_standard_timeline(twitter_process($request), 'directs_sent');
$content = theme_directs_menu();
$content .= theme('timeline', $tl);
@@ -873,7 +881,7 @@ function twitter_directs_page($query) {
case 'inbox':
default:
- $request = API_URL.'direct_messages.json?page='.intval($_GET['page']);
+ $request = API_URL.'direct_messages.json?include_entities=true&page='.intval($_GET['page']);
$tl = twitter_standard_timeline(twitter_process($request), 'directs_inbox');
$content = theme_directs_menu();
$content .= theme('timeline', $tl);
@@ -925,7 +933,7 @@ function twitter_search_page() {
function twitter_search($search_query) {
$page = (int) $_GET['page'];
if ($page == 0) $page = 1;
- $request = 'http://search.twitter.com/search.json?result_type=recent&q=' . urlencode($search_query).'&page='.$page;
+ $request = 'http://search.twitter.com/search.json?include_entities=true&result_type=recent&q=' . urlencode($search_query).'&page='.$page;
$tl = twitter_process($request);
$tl = twitter_standard_timeline($tl->results, 'search');
return $tl;
@@ -962,7 +970,7 @@ function twitter_user_page($query)
// If the user has at least one tweet
if (isset($user->status)) {
// Fetch the timeline early, so we can try find the tweet they're replying to
- $request = API_URL."statuses/user_timeline.json?count=30&screen_name={$screen_name}&include_rts=true&page=".intval($_GET['page']);
+ $request = API_URL."statuses/user_timeline.json?include_entities=true&count=30&screen_name={$screen_name}&include_rts=true&page=".intval($_GET['page']);
$tl = twitter_process($request);
$tl = twitter_standard_timeline($tl, 'user');
}
@@ -1002,7 +1010,7 @@ function twitter_favourites_page($query)
user_ensure_authenticated();
$screen_name = user_current_username();
}
- $request = API_URL."favorites/{$screen_name}.json?page=".intval($_GET['page']);
+ $request = API_URL."favorites/{$screen_name}.json?include_entities=true&page=".intval($_GET['page']);
$tl = twitter_process($request);
$tl = twitter_standard_timeline($tl, 'favourites');
$content = theme('status_form');
@@ -1024,8 +1032,8 @@ function twitter_mark_favourite_page($qu
function twitter_home_page() {
user_ensure_authenticated();
- //$request = API_URL.'statuses/home_timeline.json?count=20&include_rts=true&page='.intval($_GET['page']);
- $request = API_URL.'statuses/home_timeline.json?count=30&include_rts=true';
+ //$request = API_URL.'statuses/home_timeline.json?include_entities=true&count=20&include_rts=true&page='.intval($_GET['page']);
+ $request = API_URL.'statuses/home_timeline.json?include_entities=true&count=30&include_rts=true';
if ($_GET['max_id'])
{
@@ -1067,7 +1075,7 @@ function theme_status($status) {
if($status->id_str) $status->id = $status->id_str;
$time_since = theme('status_time_link', $status);
- $parsed = twitter_parse_tags($status->text);
+ $parsed = twitter_parse_tags($status->text, $status->entities);
$avatar = theme('avatar', $status->user->profile_image_url);
$out = theme('status_form', "@{$status->user->screen_name} ");
@@ -1378,7 +1386,7 @@ function preg_match_one($pattern, $subje
function twitter_user_info($username = null) {
if (!$username)
$username = user_current_username();
- $request = API_URL."users/show.json?screen_name=$username";
+ $request = API_URL."users/show.json?include_entities=true&screen_name=$username";
$user = twitter_process($request);
return $user;
}
@@ -1420,7 +1428,7 @@ function theme_timeline($feed)
{
$date = $status->created_at;
}
- $text = twitter_parse_tags($status->text);
+ $text = twitter_parse_tags($status->text, $status->entities);
$link = theme('status_time_link', $status, !$status->is_direct);
$actions = theme('action_icons', $status);
$avatar = theme('avatar', $status->from->profile_image_url);
@@ -1552,7 +1560,7 @@ function theme_no_tweets() {
function theme_search_results($feed) {
$rows = array();
foreach ($feed->results as $status) {
- $text = twitter_parse_tags($status->text);
+ $text = twitter_parse_tags($status->text, $status->entities);
$link = theme('status_time_link', $status);
$actions = theme('action_icons', $status);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment