Created
April 15, 2012 08:14
-
-
Save shellexy/2390882 to your computer and use it in GitHub Desktop.
让 dabr 展开 t.co 短链
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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