OSDN Git Service

dd0d97d0449e42d3b6a41e2aa259d1fe8d6d031d
[embrj/master.git] / ajax / timeline_format.php
1 <?php\r
2         function format_retweet($status, $retweetByMe = false){\r
3                 $retweeter = $status->user;\r
4                 $rt_status = $status->retweeted_status;\r
5                 $status_owner = $rt_status->user;\r
6                 $date = formatDate($status->created_at);\r
7                 $text = formatText($rt_status->text);\r
8                 $html = '<li>\r
9                         <span class="status_author">'.initShortcutMenu($status_owner).'\r
10                         <a href="user.php?id='.$status_owner->screen_name.'" target="_blank"><img src="'.getAvatar($status_owner->profile_image_url).'" title="'.$status_owner->screen_name.'" /></a>\r
11                         </span>\r
12                         <span class="status_body">\r
13                         <span title="Retweets from people you follow appear in your timeline." class="big-retweet-icon"></span>\r
14                         <span class="status_id">'.$status->id.'</span>\r
15                         <span class="status_word">\r
16                         <a class="user_name" href="user.php?id='.$status_owner->screen_name.'">'.$status_owner->screen_name.'</a><span class="tweet">&nbsp;'.$text.'</span></span>';\r
17                 $html .= recoverShortens($text);\r
18                 $html .= '<span class="actions">\r
19                         <a class="replie_btn" title="Reply" href="a_reply.php?id='.$rt_status->id.'">Reply</a>\r
20                         <a class="rt_btn" title="Retweet" href="a_rt.php?id='.$rt_status->id.'">Retweet</a>';\r
21                 if($retweetByMe != true){\r
22                         $html .= '<a class="retw_btn" title="New Retweet" href="javascript:void(0);">New Retweet</a>';\r
23                 }\r
24                 $html .= '<a class="favor_btn" title="Favorite" href="a_favor.php?id='.$rt_status->id.'">Favorite</a>\r
25                                         <a class="trans_btn" title="Translate" href="javascript:void(0);">Translate</a>';\r
26                 if($retweetByMe == true){\r
27                         $html .= '<a class="delete_btn" title="Delete" href="javascript:void(0)"><span class="rt_id" style="display: none;">'.$status->id.'</span></a>';\r
28                 }\r
29                 $html .='</span>\r
30                         <span class="status_info"><span class="source">Retweeted by <a href="user.php?id='.$retweeter->screen_name.'">'.$retweeter->screen_name.'</a> from '.$status->source.'</span>\r
31                         <span class="date"><a href="status.php?id='.$rt_status->id.'" title="'.date('Y-m-d H:i:s', strtotime($status->created_at)).'" target="_blank">'.$date.'</a></span>\r
32                         </span>\r
33                         </span>\r
34                         </li>';\r
35                 return $html;\r
36         }\r
37 \r
38         function format_retweet_of_me($status){\r
39                 $status_owner = $status->user;\r
40                 $date = formatDate($status->created_at);\r
41                 $text = formatText($status->text);\r
42                 $html = '<li>\r
43                         <span class="status_author">\r
44                         <a href="user.php?id='.$status_owner->screen_name.'" target="_blank"><img src="'.getAvatar($status_owner->profile_image_url).'" title="'.$status_owner->screen_name.'" /></a>\r
45                         </span>\r
46                         <span class="status_body">\r
47                         <span title="Retweets from people you follow appear in your timeline." class="big-retweet-icon"></span>\r
48                         <span class="status_id">'.$status->id.'</span>\r
49                         <span class="status_word">\r
50                         <a class="user_name" href="user.php?id='.$status_owner->screen_name.'">'.$status_owner->screen_name.'</a><span class="tweet">&nbsp;'.$text.'</span></span>';\r
51                 $html .= recoverShortens($text);\r
52                 $html .= '<span class="actions">\r
53                         <a class="replie_btn" title="Reply" href="a_reply.php?id='.$status->id.'">Reply</a>\r
54                         <a class="rt_btn" title="Retweet" href="a_rt.php?id='.$status->id.'">Retweet</a>\r
55                         <a class="favor_btn" title="Favorite" href="a_favor.php?id='.$status->id.'">Favorite</a>\r
56                         <a class="trans_btn" title="Translate" href="javascript:void(0);">Translate</a>\r
57                         <a class="delete_btn" title="Delete" href="a_del.php?id='.$status->id.'&t=s">Delete</a>\r
58                         </span>\r
59                         <span class="status_info">from '.$status->source.'\r
60                         <span class="date"><a href="status.php?id='.$status->id.'" title="'.date('Y-m-d H:i:s', strtotime($status->created_at)).'" target="_blank">'.$date.'</a></span>\r
61                         </span>\r
62                         </span>\r
63                         </li>';\r
64                 return $html;\r
65         }\r
66 \r
67         function getRetweeters($id, $count = 20){\r
68                 $t = getTwitter();\r
69                 $retweeters = $t->getRetweeters($id);\r
70                 $html = '<span class="vcard">';\r
71                 foreach($retweeters as $retweeter){\r
72                         $user = $retweeter->user;\r
73                         $html .= '<a class="url" title="'.$user->name.'" rel="contact" href="../user.php?id='.$user->screen_name.'">\r
74                                 <img class="photo fn" width="24" height="24" src="'.getAvatar($user->profile_image_url).'" alt="'.$user->name.'" />\r
75                                 </a>';\r
76                 }\r
77                 $html .= "</span>";\r
78                 return $html;\r
79         }\r
80 \r
81         // $updateStatus 标识是否为发推, 是则应用指定 css\r
82         function format_timeline($status, $screen_name, $updateStatus = false){\r
83                 $user = $status->user;\r
84                 $date = formatDate($status->created_at);\r
85                 $text = formatText($status->text);\r
86 \r
87                 if(preg_match('/^\@'.getTwitter()->username.'/i', $text) == 1){\r
88                         $output = "<li class=\"reply\">";\r
89                 }elseif($updateStatus == true){\r
90                         $output = "<li class=\"mine\">";\r
91                 }else{\r
92                         $output = "<li>";\r
93                 }\r
94 \r
95                 $output .= "<span class=\"status_author\">".initShortcutMenu($user)."\r
96                         <a href=\"user.php?id=$user->screen_name\" target=\"_blank\"><img src=\"".getAvatar($user->profile_image_url)."\" title=\"$user->screen_name\" /></a>\r
97                         </span>\r
98                         <span class=\"status_body\">\r
99                         <span class=\"status_id\">$status->id </span>\r
100                         <span class=\"status_word\"><a class=\"user_name\" href=\"user.php?id=$user->screen_name\">$user->screen_name</a><span class=\"tweet\"> $text </span></span>";\r
101                 $output .= recoverShortens($text);\r
102                 $output .= "<span class=\"actions\">\r
103                         <a class=\"replie_btn\" title=\"Reply\" href=\"a_reply.php?id=$status->id\">回复</a>\r
104                         <a class=\"rt_btn\" title=\"Retweet\" href=\"a_rt.php?id=$status->id\">回推</a>";\r
105                 if($user->screen_name != $screen_name){\r
106                         $output .= "<a class=\"retw_btn\" title=\"New Retweet\" href=\"javascript:void(0);\">New Retweet</a>";\r
107                 }\r
108                 $output .= "<a class=\"favor_btn\" title=\"Favorite\" href=\"a_favor.php?id=$status->id\">Favorite</a>\r
109                                         <a class=\"trans_btn\" title=\"Translate\" href=\"javascript:void(0);\">Translate</a>";\r
110                 if ($user->screen_name == $screen_name) $output .= "<a class=\"delete_btn\" title=\"Delete\" href=\"a_del.php?id=$status->id&t=s\">Delete</a>";\r
111                 $output .= "</span><span class=\"status_info\">";\r
112                 if ($status->in_reply_to_status_id) $output .= "<span class=\"in_reply_to\"> <a class=\"ajax_reply\" href=\"ajax/status.php?id=$status->in_reply_to_status_id&uid=$user->id \">in reply to $status->in_reply_to_screen_name</a>&nbsp;</span>";\r
113                 $output .= "<span class=\"source\">from $status->source</span>\r
114                         <span class=\"date\"><a href=\"status.php?id=$status->id\" title=\"".date('Y-m-d H:i:s', strtotime($status->created_at))."\" target=\"_blank\">$date</a></span>\r
115                         </span>\r
116                         </span>\r
117                         </li>";\r
118                 return $output;\r
119         }\r
120 \r
121         /* ---------- Sorting timeline ---------- */\r
122         function cmp($a, $b)\r
123         {\r
124                 $a_date = strtotime($a->created_at);\r
125                 $b_date = strtotime($b->created_at);\r
126                 if ($a_date == $b_date) {\r
127                         return 0;\r
128                 }\r
129                 return ($a_date > $b_date) ? -1 : 1;\r
130         }\r
131 \r
132         function sort_timeline($timeline, $retweet){\r
133                 $status = array_merge($timeline, $retweet);\r
134                 usort($status, "cmp");\r
135                 return $status;\r
136         }\r
137 \r
138         /* ---------- Restore shortened urls ---------- */\r
139         function initShortcutMenu($user = false){\r
140                 return '';\r
141                 if(!$user && !isset($user->screen_name)){\r
142                         return '';\r
143                 }\r
144 \r
145                 $username = getEncryptCookie('twitese_name');\r
146                 if($user->screen_name == $username){\r
147                         return '';\r
148                 }\r
149                 $relationship = getRelationship($user->screen_name, $username);\r
150 \r
151                 $mention = $dm = $unfollow = $follow = $block = $spam = '';\r
152                 $mention = '<li class="rm_mention"><a href="javascript:void(0);"><i></i>Mention <span>'.$user->screen_name.'</a></li>';\r
153                 if($relationship == 1){\r
154                         $dm = '<li class="rm_dm"><a href="javascript:void(0);"><i></i>Direct message <span>'.$user->screen_name.'</span></a></li>';\r
155                 }\r
156                 if($relationship == 1 || $relationship == 2){\r
157                         $unfollow = '<li class="rm_unfollow"><a href="javascript:void(0);"><i></i>Unfollow <span>'.$user->screen_name.'</span></a></li>';\r
158                 }\r
159                 if($relationship == 3 || $relationship == 4 || $relationship == 9){\r
160                         $follow = '<li class="rm_follow"><a href="javascript:void(0);"><i></i>Follow <span>'.$user->screen_name.'</span></a></li>';\r
161                 }\r
162                 if($relationship == 4){\r
163                         $block = '<li class="rm_unblock"><a href="javascript:void(0);"><i></i>Unblock <span>'.$user->screen_name.'</span></a></li>';\r
164                 }else{\r
165                         $block = '<li class="rm_block"><a href="javascript:void(0);"><i></i>Block <span>'.$user->screen_name.'</span></a></li>';\r
166                 }\r
167                 $spam = '<li class="rm_spam"><a href="javascript:void(0);"><i></i>Report <span>'.$user->screen_name.'</span> for spam</a></li>';\r
168                 $html = '<ul class="right_menu round">'.$mention.$dm.$unfollow.$follow.$block.$spam.'</ul>';\r
169                 return $html;\r
170         }\r
171 \r
172 ?>