| 
									
										
										
										
											2020-03-12 17:59:13 +00:00
										 |  |  | <?php | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-10-10 09:26:18 +01:00
										 |  |  | declare(strict_types = 1); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-05-20 16:53:53 +00:00
										 |  |  | // {{{ License
 | 
					
						
							| 
									
										
										
										
											2020-10-10 18:25:49 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-05-20 16:53:53 +00:00
										 |  |  | // This file is part of GNU social - https://www.gnu.org/software/social
 | 
					
						
							|  |  |  | //
 | 
					
						
							|  |  |  | // GNU social 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.
 | 
					
						
							|  |  |  | //
 | 
					
						
							|  |  |  | // GNU social 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 GNU social.  If not, see <http://www.gnu.org/licenses/>.
 | 
					
						
							| 
									
										
										
										
											2020-10-10 18:25:49 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-05-20 16:53:53 +00:00
										 |  |  | // }}}
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-03-21 20:18:05 +00:00
										 |  |  | /** | 
					
						
							|  |  |  |  * Handle network public feed | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * @package  GNUsocial | 
					
						
							|  |  |  |  * @category Controller | 
					
						
							|  |  |  |  * | 
					
						
							| 
									
										
										
										
											2021-02-19 23:29:43 +00:00
										 |  |  |  * @author    Hugo Sales <hugo@hsal.es> | 
					
						
							| 
									
										
										
										
											2020-09-04 00:15:18 +01:00
										 |  |  |  * @author    Eliseu Amaro <eliseu@fc.up.pt> | 
					
						
							| 
									
										
										
										
											2021-02-19 23:29:43 +00:00
										 |  |  |  * @copyright 2020-2021 Free Software Foundation, Inc http://www.fsf.org | 
					
						
							| 
									
										
										
										
											2020-03-21 20:18:05 +00:00
										 |  |  |  * @license   https://www.gnu.org/licenses/agpl.html GNU AGPL v3 or later | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-03-12 17:59:13 +00:00
										 |  |  | namespace App\Controller; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-04-14 19:54:38 +00:00
										 |  |  | use function App\Core\I18n\_m; | 
					
						
							| 
									
										
										
										
											2021-04-15 22:26:05 +00:00
										 |  |  | use App\Core\VisibilityScope; | 
					
						
							| 
									
										
										
										
											2021-12-23 13:27:31 +00:00
										 |  |  | use App\Util\Common; | 
					
						
							|  |  |  | use Component\Feed\Feed; | 
					
						
							|  |  |  | use Component\Feed\Util\FeedController; | 
					
						
							| 
									
										
										
										
											2020-08-15 05:47:45 +00:00
										 |  |  | use Symfony\Component\HttpFoundation\Request; | 
					
						
							| 
									
										
										
										
											2020-03-15 21:21:11 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-12-07 21:06:39 +00:00
										 |  |  | class Feeds extends FeedController | 
					
						
							| 
									
										
										
										
											2020-03-12 17:59:13 +00:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2021-12-23 13:27:31 +00:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * The Planet feed represents every local post. Which is what this instance has to share with the universe. | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     public function public(Request $request): array | 
					
						
							| 
									
										
										
										
											2021-12-04 13:08:33 +00:00
										 |  |  |     { | 
					
						
							| 
									
										
										
										
											2021-12-23 13:27:31 +00:00
										 |  |  |         $data = Feed::query( | 
					
						
							|  |  |  |             query: 'note-local:true', | 
					
						
							|  |  |  |             page: $this->int('p'), | 
					
						
							|  |  |  |             language: Common::actor()?->getTopLanguage()?->getLocale(), | 
					
						
							|  |  |  |         ); | 
					
						
							| 
									
										
										
										
											2021-12-08 10:20:37 +00:00
										 |  |  |         return [ | 
					
						
							| 
									
										
										
										
											2021-12-23 13:27:31 +00:00
										 |  |  |             '_template'     => 'feed/feed.html.twig', | 
					
						
							|  |  |  |             'page_title'    => _m(\is_null(Common::user()) ? 'Feed' : 'Planet'), | 
					
						
							|  |  |  |             'notes'         => $data['notes'], | 
					
						
							| 
									
										
										
										
											2021-12-08 10:20:37 +00:00
										 |  |  |         ]; | 
					
						
							| 
									
										
										
										
											2021-12-04 13:08:33 +00:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-12-23 13:27:31 +00:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * The Home feed represents everything that concerns a certain actor (its subscriptions) | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     public function home(Request $request): array | 
					
						
							| 
									
										
										
										
											2020-07-06 20:51:08 +00:00
										 |  |  |     { | 
					
						
							| 
									
										
										
										
											2021-12-24 03:38:29 +00:00
										 |  |  |         Common::ensureLoggedIn(); | 
					
						
							| 
									
										
										
										
											2021-12-23 13:27:31 +00:00
										 |  |  |         $data = Feed::query( | 
					
						
							| 
									
										
										
										
											2021-12-25 10:12:38 +00:00
										 |  |  |             query: 'note-from:subscribed-person,subscribed-group,subscribed-organization,subscribed-business', | 
					
						
							| 
									
										
										
										
											2021-12-23 13:27:31 +00:00
										 |  |  |             page: $this->int('p'), | 
					
						
							|  |  |  |             language: Common::actor()?->getTopLanguage()?->getLocale(), | 
					
						
							| 
									
										
										
										
											2021-12-24 09:27:24 +00:00
										 |  |  |             actor: Common::actor(), | 
					
						
							| 
									
										
										
										
											2021-12-23 13:27:31 +00:00
										 |  |  |         ); | 
					
						
							| 
									
										
										
										
											2021-12-08 10:20:37 +00:00
										 |  |  |         return [ | 
					
						
							| 
									
										
										
										
											2021-12-23 13:27:31 +00:00
										 |  |  |             '_template'     => 'feed/feed.html.twig', | 
					
						
							|  |  |  |             'page_title'    => _m('Home'), | 
					
						
							|  |  |  |             'notes'         => $data['notes'], | 
					
						
							| 
									
										
										
										
											2021-12-08 10:20:37 +00:00
										 |  |  |         ]; | 
					
						
							| 
									
										
										
										
											2020-03-12 17:59:13 +00:00
										 |  |  |     } | 
					
						
							|  |  |  | } |