API: Improved the timeline. Several (disabled) tests with caching of photos.

This commit is contained in:
Michael Vogel 2012-04-11 19:31:01 +02:00
parent fe257a2032
commit c88c2515e4
4 changed files with 42 additions and 8 deletions

View file

@ -1233,8 +1233,17 @@
$in_reply_to_status_id = 0; $in_reply_to_status_id = 0;
} }
// Workaround for ostatus messages where the title is identically to the body
$statusbody = trim(html2plain(bbcode($item['body']), 0));
$statustitle = trim($item['title']);
if (($statustitle != '') and (strpos($statusbody, $statustitle) !== false))
$statustext = trim($statusbody);
else
$statustext = trim($statustitle."\n\n".$statusbody);
$status = array( $status = array(
'text' => trim($item['title']." \n".html2plain(bbcode($item['body']), 0)), 'text' => $statustext,
'truncated' => False, 'truncated' => False,
'created_at'=> api_date($item['created']), 'created_at'=> api_date($item['created']),
'in_reply_to_status_id' => $in_reply_to_status_id, 'in_reply_to_status_id' => $in_reply_to_status_id,
@ -1245,8 +1254,8 @@
'geo' => '', 'geo' => '',
'favorited' => $item['starred'] ? true : false, 'favorited' => $item['starred'] ? true : false,
'user' => $status_user , 'user' => $status_user ,
'statusnet_html' => bbcode($item['body']), 'statusnet_html' => trim(bbcode($item['body'])),
'statusnet_conversation_id' => 0, 'statusnet_conversation_id' => $item['parent'],
); );
// Seesmic doesn't like the following content // Seesmic doesn't like the following content

View file

@ -626,10 +626,6 @@ function conversation(&$a, $items, $mode, $update, $preview = false) {
else else
$profile_avatar = (((strlen($item['author-avatar'])) && $diff_author) ? $item['author-avatar'] : $thumb); $profile_avatar = (((strlen($item['author-avatar'])) && $diff_author) ? $item['author-avatar'] : $thumb);
$like = ((x($alike,$item['id'])) ? format_like($alike[$item['id']],$alike[$item['id'] . '-l'],'like',$item['id']) : ''); $like = ((x($alike,$item['id'])) ? format_like($alike[$item['id']],$alike[$item['id'] . '-l'],'like',$item['id']) : '');
$dislike = ((x($dlike,$item['id'])) ? format_like($dlike[$item['id']],$dlike[$item['id'] . '-l'],'dislike',$item['id']) : ''); $dislike = ((x($dlike,$item['id'])) ? format_like($dlike[$item['id']],$dlike[$item['id'] . '-l'],'dislike',$item['id']) : '');
@ -1089,4 +1085,3 @@ function render_location_google($item) {
} }
return $location; return $location;
} }

View file

@ -4,6 +4,30 @@ require_once('include/security.php');
function photo_init(&$a) { function photo_init(&$a) {
// To-Do:
// - checking with realpath
// - checking permissions
/*
$cache = get_config('system','itemcache');
if (($cache != '') and is_dir($cache)) {
$cachefile = $cache."/".$a->argc."-".$a->argv[1]."-".$a->argv[2]."-".$a->argv[3];
if (file_exists($cachefile)) {
$data = file_get_contents($cachefile);
if(function_exists('header_remove')) {
header_remove('Pragma');
header_remove('pragma');
}
header("Content-type: image/jpeg");
header("Expires: " . gmdate("D, d M Y H:i:s", time() + (3600*24)) . " GMT");
header("Cache-Control: max-age=" . (3600*24));
echo $data;
killme();
// NOTREACHED
}
}*/
switch($a->argc) { switch($a->argc) {
case 4: case 4:
$person = $a->argv[3]; $person = $a->argv[3];
@ -27,6 +51,7 @@ function photo_init(&$a) {
if(isset($type)) { if(isset($type)) {
/** /**
* Profile photos * Profile photos
*/ */
@ -144,6 +169,10 @@ function photo_init(&$a) {
} }
} }
// Writing in cachefile
if ($cachefile != '')
file_put_contents($cachefile, $data);
if(function_exists('header_remove')) { if(function_exists('header_remove')) {
header_remove('Pragma'); header_remove('Pragma');
header_remove('pragma'); header_remove('pragma');

View file

@ -11,6 +11,7 @@
<geo>$status.geo</geo> <geo>$status.geo</geo>
<favorited>$status.favorited</favorited> <favorited>$status.favorited</favorited>
{{ inc api_user_xml.tpl with $user=$status.user }}{{ endinc }} <statusnet:html>$status.statusnet_html</statusnet:html> {{ inc api_user_xml.tpl with $user=$status.user }}{{ endinc }} <statusnet:html>$status.statusnet_html</statusnet:html>
<statusnet:conversation_id>$status.statusnet_conversation_id</statusnet:conversation_id>
<url>$status.url</url> <url>$status.url</url>
<coordinates>$status.coordinates</coordinates> <coordinates>$status.coordinates</coordinates>
<place>$status.place</place> <place>$status.place</place>