| 
									
										
										
										
											2020-05-02 06:41:47 +08:00
										 |  |  | <?php | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | namespace BookStack\Console\Commands; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-05-18 00:56:55 +08:00
										 |  |  | use BookStack\Activity\CommentRepo; | 
					
						
							|  |  |  | use BookStack\Activity\Models\Comment; | 
					
						
							| 
									
										
										
										
											2020-05-02 06:41:47 +08:00
										 |  |  | use Illuminate\Console\Command; | 
					
						
							| 
									
										
										
										
											2022-08-17 21:39:53 +08:00
										 |  |  | use Illuminate\Support\Facades\DB; | 
					
						
							| 
									
										
										
										
											2020-05-02 06:41:47 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-05-24 20:21:46 +08:00
										 |  |  | class RegenerateCommentContentCommand extends Command | 
					
						
							| 
									
										
										
										
											2020-05-02 06:41:47 +08:00
										 |  |  | { | 
					
						
							|  |  |  |     /** | 
					
						
							|  |  |  |      * The name and signature of the console command. | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @var string | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2023-05-24 19:59:50 +08:00
										 |  |  |     protected $signature = 'bookstack:regenerate-comment-content | 
					
						
							|  |  |  |                             {--database= : The database connection to use}'; | 
					
						
							| 
									
										
										
										
											2020-05-02 06:41:47 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |     /** | 
					
						
							|  |  |  |      * The console command description. | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @var string | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     protected $description = 'Regenerate the stored HTML of all comments'; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     /** | 
					
						
							|  |  |  |      * Execute the console command. | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2023-05-24 19:59:50 +08:00
										 |  |  |     public function handle(CommentRepo $commentRepo): int | 
					
						
							| 
									
										
										
										
											2020-05-02 06:41:47 +08:00
										 |  |  |     { | 
					
						
							| 
									
										
										
										
											2022-08-17 21:39:53 +08:00
										 |  |  |         $connection = DB::getDefaultConnection(); | 
					
						
							| 
									
										
										
										
											2020-05-02 06:41:47 +08:00
										 |  |  |         if ($this->option('database') !== null) { | 
					
						
							| 
									
										
										
										
											2022-08-17 21:39:53 +08:00
										 |  |  |             DB::setDefaultConnection($this->option('database')); | 
					
						
							| 
									
										
										
										
											2020-05-02 06:41:47 +08:00
										 |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-05-24 19:59:50 +08:00
										 |  |  |         Comment::query()->chunk(100, function ($comments) use ($commentRepo) { | 
					
						
							| 
									
										
										
										
											2020-05-02 06:41:47 +08:00
										 |  |  |             foreach ($comments as $comment) { | 
					
						
							| 
									
										
										
										
											2023-05-24 19:59:50 +08:00
										 |  |  |                 $comment->html = $commentRepo->commentToHtml($comment->text); | 
					
						
							| 
									
										
										
										
											2020-05-02 06:41:47 +08:00
										 |  |  |                 $comment->save(); | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         }); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-08-17 21:39:53 +08:00
										 |  |  |         DB::setDefaultConnection($connection); | 
					
						
							| 
									
										
										
										
											2020-05-02 06:41:47 +08:00
										 |  |  |         $this->comment('Comment HTML content has been regenerated'); | 
					
						
							| 
									
										
										
										
											2022-08-30 00:46:41 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-08-17 21:39:53 +08:00
										 |  |  |         return 0; | 
					
						
							| 
									
										
										
										
											2020-05-02 06:41:47 +08:00
										 |  |  |     } | 
					
						
							|  |  |  | } |