| 
									
										
										
										
											2009-06-22 13:14:15 -07:00
										 |  |  | #!/usr/bin/env php
 | 
					
						
							|  |  |  | <?php | 
					
						
							|  |  |  | /* | 
					
						
							| 
									
										
										
										
											2009-08-25 18:14:12 -04:00
										 |  |  |  * StatusNet - the distributed open-source microblogging tool | 
					
						
							| 
									
										
										
										
											2009-08-25 18:12:20 -04:00
										 |  |  |  * Copyright (C) 2008, 2009, StatusNet, Inc. | 
					
						
							| 
									
										
										
										
											2009-06-22 13:14:15 -07:00
										 |  |  |  * | 
					
						
							|  |  |  |  * 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/>. | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | define('INSTALLDIR', realpath(dirname(__FILE__) . '/..')); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-06-22 15:29:43 -07:00
										 |  |  | require_once INSTALLDIR.'/scripts/commandline.inc'; | 
					
						
							| 
									
										
										
										
											2009-06-22 13:14:15 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | common_log(LOG_INFO, 'Fixing up conversations.'); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-13 13:34:28 -04:00
										 |  |  | $notice = new Notice(); | 
					
						
							|  |  |  | $notice->query('select id, reply_to from notice where conversation is null'); | 
					
						
							| 
									
										
										
										
											2009-06-22 13:14:15 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-13 13:34:28 -04:00
										 |  |  | while ($notice->fetch()) { | 
					
						
							| 
									
										
										
										
											2009-06-22 13:14:15 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-06-28 20:15:45 +00:00
										 |  |  |     $cid = null; | 
					
						
							|  |  |  |      | 
					
						
							| 
									
										
										
										
											2009-10-13 13:34:28 -04:00
										 |  |  |     $orig = clone($notice); | 
					
						
							| 
									
										
										
										
											2009-06-28 20:15:45 +00:00
										 |  |  |      | 
					
						
							| 
									
										
										
										
											2009-10-13 13:34:28 -04:00
										 |  |  |     if (empty($notice->reply_to)) { | 
					
						
							|  |  |  |         $notice->conversation = $notice->id; | 
					
						
							| 
									
										
										
										
											2009-06-22 13:14:15 -07:00
										 |  |  |     } else { | 
					
						
							|  |  |  |         $reply = Notice::staticGet('id', $notice->reply_to); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         if (empty($reply)) { | 
					
						
							|  |  |  |             common_log(LOG_WARNING, "Replied-to notice $notice->reply_to not found."); | 
					
						
							|  |  |  |             $notice->conversation = $notice->id; | 
					
						
							|  |  |  |         } else if (empty($reply->conversation)) { | 
					
						
							|  |  |  |             common_log(LOG_WARNING, "Replied-to notice $reply->id has no conversation ID."); | 
					
						
							|  |  |  |             $notice->conversation = $notice->id; | 
					
						
							|  |  |  |         } else { | 
					
						
							|  |  |  |             $notice->conversation = $reply->conversation; | 
					
						
							|  |  |  |         } | 
					
						
							| 
									
										
										
										
											2009-06-28 20:15:45 +00:00
										 |  |  | 	 | 
					
						
							|  |  |  | 	unset($reply); | 
					
						
							|  |  |  | 	$reply = null; | 
					
						
							| 
									
										
										
										
											2009-06-22 13:14:15 -07:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     print "$notice->conversation"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     $result = $notice->update($orig); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (!$result) { | 
					
						
							|  |  |  |         common_log_db_error($notice, 'UPDATE', __FILE__); | 
					
						
							|  |  |  |         continue; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-06-28 20:15:45 +00:00
										 |  |  |     $orig = null; | 
					
						
							|  |  |  |     unset($orig); | 
					
						
							|  |  |  |      | 
					
						
							| 
									
										
										
										
											2009-06-22 13:14:15 -07:00
										 |  |  |     print ".\n"; | 
					
						
							|  |  |  | } |