| 
									
										
										
										
											2008-07-14 04:09:49 -04:00
										 |  |  | <?php | 
					
						
							|  |  |  | /* | 
					
						
							|  |  |  |  * Laconica - a distributed open-source microblogging tool | 
					
						
							|  |  |  |  * Copyright (C) 2008, Controlez-Vous, Inc. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * This program is free software: you can redistribute it and/or modify | 
					
						
							|  |  |  |  * it under the terms of the GNU Affero General Public License as published by | 
					
						
							|  |  |  |  * the Free Software Foundation, either version 3 of the License, or | 
					
						
							|  |  |  |  * (at your option) any later version. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * This program is distributed in the hope that it will be useful, | 
					
						
							|  |  |  |  * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
					
						
							|  |  |  |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
					
						
							|  |  |  |  * GNU Affero General Public License for more details. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * You should have received a copy of the GNU Affero General Public License | 
					
						
							|  |  |  |  * along with this program.  If not, see <http://www.gnu.org/licenses/>. | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if (!defined('LACONICA')) { exit(1); } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-07-14 23:18:12 -04:00
										 |  |  | require_once(INSTALLDIR.'/lib/twitterapi.php'); | 
					
						
							| 
									
										
										
										
											2008-07-14 04:09:49 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-07-15 00:31:21 -04:00
										 |  |  | class TwitapiaccountAction extends TwitterapiAction { | 
					
						
							| 
									
										
										
										
											2008-07-14 04:09:49 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-07-14 15:03:00 -04:00
										 |  |  | 	function verify_credentials($args, $apidata) { | 
					
						
							| 
									
										
										
										
											2008-12-15 22:04:55 -05:00
										 |  |  | 		parent::handle($args); | 
					
						
							| 
									
										
										
										
											2008-07-18 00:03:32 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-15 22:04:55 -05:00
										 |  |  | 		if (!in_array($apidata['content-type'], array('xml', 'json'))) { | 
					
						
							|  |  |  | 			common_user_error(_('API method not found!'), $code = 404); | 
					
						
							|  |  |  | 			return; | 
					
						
							| 
									
										
										
										
											2008-07-18 00:03:32 -04:00
										 |  |  | 		} | 
					
						
							| 
									
										
										
										
											2008-09-30 22:54:21 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-15 22:04:55 -05:00
										 |  |  | 		$this->show_extended_profile($apidata['user'], $apidata); | 
					
						
							| 
									
										
										
										
											2008-07-14 04:09:49 -04:00
										 |  |  | 	} | 
					
						
							| 
									
										
										
										
											2008-09-30 22:54:21 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-07-14 15:03:00 -04:00
										 |  |  | 	function end_session($args, $apidata) { | 
					
						
							| 
									
										
										
										
											2008-07-14 04:09:49 -04:00
										 |  |  | 		parent::handle($args); | 
					
						
							| 
									
										
										
										
											2008-08-18 20:29:03 -04:00
										 |  |  | 		common_server_error(_('API method under construction.'), $code=501); | 
					
						
							| 
									
										
										
										
											2008-07-14 04:09:49 -04:00
										 |  |  | 	} | 
					
						
							| 
									
										
										
										
											2008-09-30 22:54:21 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-07-14 15:03:00 -04:00
										 |  |  | 	function update_location($args, $apidata) { | 
					
						
							| 
									
										
										
										
											2008-07-14 04:09:49 -04:00
										 |  |  | 		parent::handle($args); | 
					
						
							| 
									
										
										
										
											2008-07-20 00:47:56 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-08-19 17:49:23 -04:00
										 |  |  | 		if ($_SERVER['REQUEST_METHOD'] != 'POST') { | 
					
						
							|  |  |  | 			$this->client_error(_('This method requires a POST.'), 400, $apidata['content-type']); | 
					
						
							| 
									
										
										
										
											2008-09-30 22:54:21 -04:00
										 |  |  | 			return; | 
					
						
							| 
									
										
										
										
											2008-08-19 17:49:23 -04:00
										 |  |  | 		} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-07-20 00:47:56 -04:00
										 |  |  | 		$location = trim($this->arg('location')); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		if (!is_null($location) && strlen($location) > 255) { | 
					
						
							| 
									
										
										
										
											2008-09-30 22:54:21 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 			// XXX: But Twitter just truncates and runs with it. -- Zach
 | 
					
						
							| 
									
										
										
										
											2008-08-18 20:29:03 -04:00
										 |  |  | 			$this->client_error(_('That\'s too long. Max notice size is 255 chars.'), 406, $apidate['content-type']); | 
					
						
							| 
									
										
										
										
											2008-09-30 22:54:21 -04:00
										 |  |  | 			return; | 
					
						
							| 
									
										
										
										
											2008-07-20 00:47:56 -04:00
										 |  |  | 		} | 
					
						
							| 
									
										
										
										
											2008-09-30 22:54:21 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-07-20 00:47:56 -04:00
										 |  |  | 		$user = $apidata['user']; | 
					
						
							|  |  |  | 		$profile = $user->getProfile(); | 
					
						
							| 
									
										
										
										
											2008-09-30 22:54:21 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-07-20 00:47:56 -04:00
										 |  |  | 		if (!$profile) { | 
					
						
							|  |  |  | 			common_server_error(_('User has no profile.')); | 
					
						
							| 
									
										
										
										
											2008-09-30 22:54:21 -04:00
										 |  |  | 			return; | 
					
						
							| 
									
										
										
										
											2008-07-20 00:47:56 -04:00
										 |  |  | 		} | 
					
						
							| 
									
										
										
										
											2008-09-30 22:54:21 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-07-20 00:47:56 -04:00
										 |  |  | 		$orig_profile = clone($profile); | 
					
						
							|  |  |  | 		$profile->location = $location; | 
					
						
							| 
									
										
										
										
											2008-09-30 22:54:21 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-07-20 00:47:56 -04:00
										 |  |  | 		$result = $profile->update($orig_profile); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		if (!$result) { | 
					
						
							|  |  |  | 			common_log_db_error($profile, 'UPDATE', __FILE__); | 
					
						
							|  |  |  | 			common_server_error(_('Couldn\'t save profile.')); | 
					
						
							| 
									
										
										
										
											2008-09-30 22:54:21 -04:00
										 |  |  | 			return; | 
					
						
							| 
									
										
										
										
											2008-07-20 00:47:56 -04:00
										 |  |  | 		} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		common_broadcast_profile($profile); | 
					
						
							| 
									
										
										
										
											2008-07-21 13:44:38 -04:00
										 |  |  | 		$type = $apidata['content-type']; | 
					
						
							| 
									
										
										
										
											2008-09-30 22:54:21 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-07-21 13:44:38 -04:00
										 |  |  | 		$this->init_document($type); | 
					
						
							|  |  |  | 		$this->show_profile($profile, $type); | 
					
						
							|  |  |  | 		$this->end_document($type); | 
					
						
							| 
									
										
										
										
											2008-07-14 04:09:49 -04:00
										 |  |  | 	} | 
					
						
							| 
									
										
										
										
											2008-07-20 00:47:56 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-07-14 15:03:00 -04:00
										 |  |  | 	function update_delivery_device($args, $apidata) { | 
					
						
							|  |  |  | 		parent::handle($args); | 
					
						
							| 
									
										
										
										
											2008-08-18 20:29:03 -04:00
										 |  |  | 		common_server_error(_('API method under construction.'), $code=501); | 
					
						
							| 
									
										
										
										
											2008-07-14 15:03:00 -04:00
										 |  |  | 	} | 
					
						
							| 
									
										
										
										
											2008-09-30 22:54:21 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-07-14 15:03:00 -04:00
										 |  |  | 	function rate_limit_status($args, $apidata) { | 
					
						
							|  |  |  | 		parent::handle($args); | 
					
						
							| 
									
										
										
										
											2008-08-18 20:29:03 -04:00
										 |  |  | 		common_server_error(_('API method under construction.'), $code=501); | 
					
						
							| 
									
										
										
										
											2008-07-14 15:03:00 -04:00
										 |  |  | 	} | 
					
						
							| 
									
										
										
										
											2008-07-14 04:09:49 -04:00
										 |  |  | } |