From d5ddf67b7d689754fc37a9f6c6bce77d4877c492 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcin=20Miko=C5=82ajczak?= Date: Tue, 12 Jun 2018 09:49:25 +0200 Subject: [PATCH 01/60] Added the law requirements for the EU/EEA MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Marcin Mikołajczak --- resources/views/site/privacy.blade.php | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/resources/views/site/privacy.blade.php b/resources/views/site/privacy.blade.php index 576f1af20..1903e5768 100644 --- a/resources/views/site/privacy.blade.php +++ b/resources/views/site/privacy.blade.php @@ -66,8 +66,13 @@

Your public content may be downloaded by other servers in the network. Your public and followers-only posts are delivered to the servers where your followers reside, and direct messages are delivered to the servers of the recipients, in so far as those followers or recipients reside on a different server than this.

When you authorize an application to use your account, depending on the scope of permissions you approve, it may access your public profile information, your following list, your followers, your lists, all your posts, and your favourites. Applications can never access your e-mail address or password.

-

Children's Online Privacy Protection Act Compliance

-

Our site, products and services are all directed to people who are at least 13 years old. If this server is in the USA, and you are under the age of 13, per the requirements of COPPA (Children's Online Privacy Protection Act) do not use this site.

+

Site usage by children

+ +

If this server is in the EU or the EEA: Our site, products and services are all directed to people who are at least 16 years old. If you are under the age of 16, per the requirements of the GDPR (General Data Protection Regulation) do not use this site.

+ +

If this server is in the USA: Our site, products and services are all directed to people who are at least 13 years old. If you are under the age of 13, per the requirements of COPPA (Children's Online Privacy Protection Act) do not use this site.

+ +

Law requirements can be different if this server is in another jurisdiction.

Changes to our Privacy Policy

If we decide to change our privacy policy, we will post those changes on this page.

From dc23e04d6844bbd70521233c60e2b338447772f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcin=20Miko=C5=82ajczak?= Date: Tue, 12 Jun 2018 11:30:13 +0200 Subject: [PATCH 02/60] Last update date --- resources/views/site/privacy.blade.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/views/site/privacy.blade.php b/resources/views/site/privacy.blade.php index 1903e5768..f5bc9ba54 100644 --- a/resources/views/site/privacy.blade.php +++ b/resources/views/site/privacy.blade.php @@ -77,7 +77,7 @@

Changes to our Privacy Policy

If we decide to change our privacy policy, we will post those changes on this page.

-

This document is CC-BY-SA. It was last updated May 31, 2018.

+

This document is CC-BY-SA. It was last updated Jun 12, 2018.

Originally adapted from the Mastodon privacy policy.

From 27ad80d9a8207c40b6ec39b7fe4ad24886cfb5c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Xos=C3=A9=20M?= Date: Mon, 18 Jun 2018 16:03:48 +0200 Subject: [PATCH 03/60] navmenu --- resources/lang/gl/navmenu.php | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 resources/lang/gl/navmenu.php diff --git a/resources/lang/gl/navmenu.php b/resources/lang/gl/navmenu.php new file mode 100644 index 000000000..1e427d5cc --- /dev/null +++ b/resources/lang/gl/navmenu.php @@ -0,0 +1,13 @@ + 'Ver perfil', + 'myTimeline' => 'A miña liña temporal', + 'publicTimeline' => 'Liña temporal pública', + 'remoteFollow' => 'Seguimento remoto', + 'settings' => 'Axustes', + 'admin' => 'Admin', + 'logout' => 'Saír', + +]; From f4881569375903f6523d14b8e05ca67202ad7a47 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Xos=C3=A9=20M?= Date: Mon, 18 Jun 2018 16:20:00 +0200 Subject: [PATCH 04/60] backup --- .../lang/vendor/backup/gl/notifications.php | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 resources/lang/vendor/backup/gl/notifications.php diff --git a/resources/lang/vendor/backup/gl/notifications.php b/resources/lang/vendor/backup/gl/notifications.php new file mode 100644 index 000000000..8ab623b00 --- /dev/null +++ b/resources/lang/vendor/backup/gl/notifications.php @@ -0,0 +1,35 @@ + 'Mensaxe da exepción: :message', + 'exception_trace' => 'Traza da excepción: :trace', + 'exception_message_title' => 'Mensaxe da excepción', + 'exception_trace_title' => 'Traza da excepción', + + 'backup_failed_subject' => 'Erro no respaldo de :application_name', + 'backup_failed_body' => 'Importante: Algo fallou ao respaldar :application_name', + + 'backup_successful_subject' => 'Respaldo realizado correctamente :application_name', + 'backup_successful_subject_title' => 'Novo respaldo correcto!', + 'backup_successful_body' => 'Parabéns, un novo respaldo de :application_name foi realizado correctamente no disco con nome :disk_name.', + + 'cleanup_failed_subject' => 'Limpando os respaldos de :application_name failed.', + 'cleanup_failed_body' => 'Algo fallou mentras se limpaban os respaldos de :application_name', + + 'cleanup_successful_subject' => 'Limpeza correcta nos respaldos de :application_name', + 'cleanup_successful_subject_title' => 'Limpeza dos respaldos correcta!', + 'cleanup_successful_body' => 'Realizouse correctamente a limpeza dos respaldos de :application_name no disco con nome :disk_name.', + + 'healthy_backup_found_subject' => 'Os respaldos de :application_name no disco :disk_name están en bo estado', + 'healthy_backup_found_subject_title' => 'Os respaldos de :application_name están ben!', + 'healthy_backup_found_body' => 'Os respaldos de :application_name están en bo estado. Bo traballo!', + + 'unhealthy_backup_found_subject' => 'Importante: Os respaldos de :application_name non están en bo estado', + 'unhealthy_backup_found_subject_title' => 'Importante: Os respaldos de :application_name non están ben. :problem', + 'unhealthy_backup_found_body' => 'Os respaldos para :application_name no disco :disk_name non están ben.', + 'unhealthy_backup_found_not_reachable' => 'Non se puido alcanzar o disco de destino. :error', + 'unhealthy_backup_found_empty' => 'Non existen copias de respaldo para esta aplicación.', + 'unhealthy_backup_found_old' => 'O último respaldo realizouse en :date e considerase demasiado antigo.', + 'unhealthy_backup_found_unknown' => 'Lamentámolo, non se puido determinar unha causa concreta.', + 'unhealthy_backup_found_full' => 'Os respaldos están a utilizar demasiado espazo. A utilización actual de :disk_usage é maior que o límite establecido de :disk_limit.', +]; From 0c63972136440b6ac0a70f3bf049dbf979e3fa80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcin=20Miko=C5=82ajczak?= Date: Tue, 19 Jun 2018 13:21:51 +0200 Subject: [PATCH 05/60] s/instagram/Instagram/ --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 15f30985f..fe8ad87a8 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # PixelFed: Federated Image Sharing -PixelFed is a federated social image sharing platform, similar to instagram. +PixelFed is a federated social image sharing platform, similar to Instagram. Federation is done using the [ActivityPub](https://activitypub.rocks/) protocol, which is used by [Mastodon](http://joinmastodon.org/), [PeerTube](https://joinpeertube.org/en/), [Pleroma](https://pleroma.social/), and more. Through ActivityPub PixelFed can share @@ -73,4 +73,4 @@ Matrix](https://matrix.to/#/#freenode_#pixelfed:matrix.org) ## Support The lead maintainer is on Patreon! You can become a Patron at -https://www.patreon.com/dansup \ No newline at end of file +https://www.patreon.com/dansup From a28627f87bd99abd695fc628582f21fe9581f623 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcin=20Miko=C5=82ajczak?= Date: Tue, 19 Jun 2018 20:42:35 +0200 Subject: [PATCH 06/60] i18n: Update Polish translation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Marcin Mikołajczak --- resources/lang/pl/navmenu.php | 13 +++++++++++++ resources/lang/pl/notification.php | 2 ++ 2 files changed, 15 insertions(+) create mode 100644 resources/lang/pl/navmenu.php diff --git a/resources/lang/pl/navmenu.php b/resources/lang/pl/navmenu.php new file mode 100644 index 000000000..07a94950d --- /dev/null +++ b/resources/lang/pl/navmenu.php @@ -0,0 +1,13 @@ + 'Pokaż mój profil', + 'myTimeline' => 'Moja oś czasu', + 'publicTimeline' => 'Publiczna oś czasu', + 'remoteFollow' => 'Zdalne śledzenie', + 'settings' => 'Ustawienia', + 'admin' => 'Administrator', + 'logout' => 'Wyloguj się', + +]; diff --git a/resources/lang/pl/notification.php b/resources/lang/pl/notification.php index d9d2e412f..7e453397f 100644 --- a/resources/lang/pl/notification.php +++ b/resources/lang/pl/notification.php @@ -4,5 +4,7 @@ return [ 'likedPhoto' => 'polubił Twoje zdjęcie.', 'startedFollowingYou' => 'zaczął Cię obserwować.', + 'commented' => 'skomentował Twój wpis', + 'mentionedYou' => 'wspomniał o Tobie.' ]; From 70253121804f019d88541e4f6042859945eb23f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Quent=C3=AD?= <33203663+Quenty31@users.noreply.github.com> Date: Tue, 19 Jun 2018 21:59:04 +0200 Subject: [PATCH 07/60] Creacion --- resources/lang/oc/navmenu.php | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 resources/lang/oc/navmenu.php diff --git a/resources/lang/oc/navmenu.php b/resources/lang/oc/navmenu.php new file mode 100644 index 000000000..f40edaab5 --- /dev/null +++ b/resources/lang/oc/navmenu.php @@ -0,0 +1,13 @@ + 'Veire mon perfil', + 'myTimeline' => 'Ma cronologia', + 'publicTimeline' => 'Cronologia publica', + 'remoteFollow' => 'Seguir a distància', + 'settings' => 'Paramètres', + 'admin' => 'Admin', + 'logout' => 'Desconnexion', + +]; From 65b015c3a6b892418e553fa7ec4e5414701224e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Quent=C3=AD?= <33203663+Quenty31@users.noreply.github.com> Date: Tue, 19 Jun 2018 22:01:00 +0200 Subject: [PATCH 08/60] Update --- resources/lang/oc/notification.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/resources/lang/oc/notification.php b/resources/lang/oc/notification.php index 38676b253..acffb33e9 100644 --- a/resources/lang/oc/notification.php +++ b/resources/lang/oc/notification.php @@ -4,5 +4,7 @@ return [ 'likedPhoto' => 'a aimat vòstra fòto.', 'startedFollowingYou' => 'a començat de vos seguir.', + 'commented' => 'a comentat vòstra publicacion.', + 'mentionedYou' => 'vos a mencionat.' ]; From 74f250b5e715f328c7f41b046249ded7fda71071 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Quent=C3=AD?= <33203663+Quenty31@users.noreply.github.com> Date: Tue, 19 Jun 2018 22:18:48 +0200 Subject: [PATCH 09/60] Update profile.php --- resources/lang/oc/profile.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/resources/lang/oc/profile.php b/resources/lang/oc/profile.php index ee70a7b00..473eac3bb 100644 --- a/resources/lang/oc/profile.php +++ b/resources/lang/oc/profile.php @@ -1,5 +1,8 @@ 'Aqueste utilizaire a pas encara de publicacion !', + 'emptyTimeline' => 'Aqueste utilizaire a pas encara de publicacion !', + 'emptyFollowers' => 'Aqueste utilizaire a pas encara pas seguidors !', + 'emptyFollowing' => 'Aqueste utilizaire sèc degun pel moment !', + 'savedWarning' => 'Solament vos vesètz çò que salvagardatz', ]; From 037f76398b50a71d64a5be9d6a25f92792a4e896 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Quent=C3=AD?= <33203663+Quenty31@users.noreply.github.com> Date: Tue, 19 Jun 2018 22:19:38 +0200 Subject: [PATCH 10/60] Create timeline.php --- resources/lang/oc/timeline.php | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 resources/lang/oc/timeline.php diff --git a/resources/lang/oc/timeline.php b/resources/lang/oc/timeline.php new file mode 100644 index 000000000..dee3660c3 --- /dev/null +++ b/resources/lang/oc/timeline.php @@ -0,0 +1,7 @@ + 'Vòstre cronologia es voida.' + +]; From 37f9ae41c78a912affe7363dbacf65725f14c4e8 Mon Sep 17 00:00:00 2001 From: OpenAlgeria <39639882+OpenAlgeria@users.noreply.github.com> Date: Sat, 23 Jun 2018 15:08:22 +0200 Subject: [PATCH 11/60] Update notification.php --- resources/lang/fr/notification.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/resources/lang/fr/notification.php b/resources/lang/fr/notification.php index 96d3164db..3585fd484 100644 --- a/resources/lang/fr/notification.php +++ b/resources/lang/fr/notification.php @@ -2,4 +2,6 @@ return [ 'likedPhoto' => 'a aimé votre photo.', 'startedFollowingYou' => 'a commencé à vous suivre.', + 'commented' => 'commenté sur votre post.', + 'mentionedYou' => 'vos à mentionné.' ]; From 6f1b42508f1876941527cc5f52de0804d4f0201a Mon Sep 17 00:00:00 2001 From: OpenAlgeria <39639882+OpenAlgeria@users.noreply.github.com> Date: Sat, 23 Jun 2018 15:11:02 +0200 Subject: [PATCH 12/60] Update notification.php --- resources/lang/fr/notification.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/lang/fr/notification.php b/resources/lang/fr/notification.php index 3585fd484..b89456855 100644 --- a/resources/lang/fr/notification.php +++ b/resources/lang/fr/notification.php @@ -3,5 +3,5 @@ return [ 'likedPhoto' => 'a aimé votre photo.', 'startedFollowingYou' => 'a commencé à vous suivre.', 'commented' => 'commenté sur votre post.', - 'mentionedYou' => 'vos à mentionné.' + 'mentionedYou' => 'vous à mentionné.' ]; From 9554387dd4c545f9255fbb76bc7e09ba5f315df7 Mon Sep 17 00:00:00 2001 From: OpenAlgeria <39639882+OpenAlgeria@users.noreply.github.com> Date: Sat, 23 Jun 2018 15:14:13 +0200 Subject: [PATCH 13/60] Create navmenu.php --- resources/lang/fr/navmenu.php | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 resources/lang/fr/navmenu.php diff --git a/resources/lang/fr/navmenu.php b/resources/lang/fr/navmenu.php new file mode 100644 index 000000000..b6ab1f608 --- /dev/null +++ b/resources/lang/fr/navmenu.php @@ -0,0 +1,10 @@ + 'Voir mon profil', + 'myTimeline' => 'Ma chronologie', + 'publicTimeline' => 'Chronologie publique', + 'remoteFollow' => 'Suivre à distance', + 'settings' => 'Paramètres', + 'admin' => 'Admin', + 'logout' => ' Se déconnecter', +]; From e170830acabd9ddf18547ff41571ad516ffc32ee Mon Sep 17 00:00:00 2001 From: Angristan <11699655+Angristan@users.noreply.github.com> Date: Sun, 22 Jul 2018 19:15:49 +0200 Subject: [PATCH 14/60] Provide at least a major version of redis for the docker image Considering Redis 5 is currently in RC, it would be safer to provide at least a major version of Redis, even if there is not compatibility issue yet. --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index 8e9ccd4c1..861dc0b9d 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -46,7 +46,7 @@ services: - "mysql-data:/var/lib/mysql" redis: - image: redis:alpine + image: redis:4-alpine volumes: - "redis-data:/data" networks: From 49f34e8fe207a16b6ff131357a092d7b40eec5f1 Mon Sep 17 00:00:00 2001 From: Angristan Date: Tue, 24 Jul 2018 22:24:25 +0200 Subject: [PATCH 15/60] Add MAIL_FROM_ADDRESS and MAIL_FROM_NAME to env --- .env.example | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.env.example b/.env.example index 7fd42e89f..18032f25e 100644 --- a/.env.example +++ b/.env.example @@ -32,6 +32,8 @@ MAIL_PORT=2525 MAIL_USERNAME=null MAIL_PASSWORD=null MAIL_ENCRYPTION=null +MAIL_FROM_ADDRESS="pixelfed@example.com +MAIL_FROM_NAME="Pixelfed" SESSION_DOMAIN="${APP_DOMAIN}" SESSION_SECURE_COOKIE=true From e527e888b5324e65bf94c559dba73740054a863d Mon Sep 17 00:00:00 2001 From: Chris Lamb Date: Wed, 8 Aug 2018 22:36:45 +0200 Subject: [PATCH 16/60] Don't double-escape caption in Atom feed. This avoids ugly literal "I don&#039;t know" in feed readers, etc. --- resources/views/atom/user.blade.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/resources/views/atom/user.blade.php b/resources/views/atom/user.blade.php index dd639dd38..c27ebcd8e 100644 --- a/resources/views/atom/user.blade.php +++ b/resources/views/atom/user.blade.php @@ -26,16 +26,16 @@ @foreach($items as $item) - <![CDATA[{{ $item->caption }}]]> + {{ $item->caption }} {{ url($item->id) }} profile->username }}]]> - caption !!}]]> + {{ $item->caption }} {{ $item->updated_at->toAtomString() }} @endforeach - \ No newline at end of file + From c22a8197a5ed98619a9fa5849bc68a3afb5cfe8e Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Thu, 9 Aug 2018 19:11:57 -0600 Subject: [PATCH 17/60] Add fred.gif --- public/img/fred1.gif | Bin 0 -> 20802 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 public/img/fred1.gif diff --git a/public/img/fred1.gif b/public/img/fred1.gif new file mode 100644 index 0000000000000000000000000000000000000000..b3a7e3257918f9cb5acc096020ff9ce0c452ec8b GIT binary patch literal 20802 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 P-va*@__x6S?E?P=t{2ia literal 0 HcmV?d00001 From b35e6d0366e668a1b5608a1f3dbef37b13840053 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Thu, 9 Aug 2018 19:56:50 -0600 Subject: [PATCH 18/60] Update AccountController --- app/Http/Controllers/AccountController.php | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/app/Http/Controllers/AccountController.php b/app/Http/Controllers/AccountController.php index 3ef8ef272..5e66d8271 100644 --- a/app/Http/Controllers/AccountController.php +++ b/app/Http/Controllers/AccountController.php @@ -40,6 +40,25 @@ class AccountController extends Controller return view('account.activity', compact('profile', 'notifications')); } + public function followingActivity(Request $request) + { + $this->validate($request, [ + 'page' => 'nullable|min:1|max:3', + 'a' => 'nullable|alpha_dash', + ]); + $profile = Auth::user()->profile; + $action = $request->input('a'); + $timeago = Carbon::now()->subMonths(1); + $following = $profile->following->pluck('id'); + $notifications = Notification::whereIn('actor_id', $following) + ->where('profile_id', '!=', $profile->id) + ->whereDate('created_at', '>', $timeago) + ->orderBy('notifications.id','desc') + ->simplePaginate(30); + + return view('account.following', compact('profile', 'notifications')); + } + public function verifyEmail(Request $request) { return view('account.verify_email'); From 483dca77886c25a5c80695f8622eb6a215089cb0 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Thu, 9 Aug 2018 19:58:47 -0600 Subject: [PATCH 19/60] Add following activity view --- resources/views/account/following.blade.php | 96 +++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 resources/views/account/following.blade.php diff --git a/resources/views/account/following.blade.php b/resources/views/account/following.blade.php new file mode 100644 index 000000000..8cb3dbf9e --- /dev/null +++ b/resources/views/account/following.blade.php @@ -0,0 +1,96 @@ +@extends('layouts.app') + +@section('content') +
+
+
+
+ +
+
+
+{{--
+ Notifications + + + + + View All + +
--}} +
+
    + + @if($notifications->count() > 0) + @foreach($notifications as $notification) + @php + if(!in_array($notification->action, ['like', 'follow'])) { + continue; + } + @endphp +
  • + @switch($notification->action) + + @case('like') + + + + + {{$notification->actor->username}} + + {{__('liked a post by')}} + + {{$notification->item->profile->username}} + + {{$notification->created_at->diffForHumans(null, true, true, true)}} + + + @if($notification->item_id && $notification->item_type == 'App\Status') + + @endif + + @break + + @case('follow') + + + + + {{$notification->actor->username}} + + {{__('started following')}} + + {{$notification->item->username}} + + {{$notification->created_at->diffForHumans(null, true, true, true)}} + + @break + + @endswitch +
  • + @endforeach +
+ +
+ {{$notifications->links()}} +
+ @else +
+
No unread notifications found.
+
+ @endif +
+
+@endsection + +@push('scripts') + +@endpush From bc55b276f0e10c923b9cb8f6dc8934b2e9da2ed0 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Thu, 9 Aug 2018 20:00:04 -0600 Subject: [PATCH 20/60] Update notifications view --- resources/views/account/activity.blade.php | 39 ++++++++++++++++++++-- 1 file changed, 37 insertions(+), 2 deletions(-) diff --git a/resources/views/account/activity.blade.php b/resources/views/account/activity.blade.php index dec6e16a8..ba1f7592e 100644 --- a/resources/views/account/activity.blade.php +++ b/resources/views/account/activity.blade.php @@ -3,16 +3,51 @@ @section('content')
+
+
+ +
+
+