From 603fdbc46a67fee10ecab2da21f327e15cee7194 Mon Sep 17 00:00:00 2001 From: Valso Date: Mon, 30 Mar 2020 16:04:43 +0700 Subject: [PATCH 01/24] thai translation, first version --- resources/lang/th/auth.php | 19 +++++ resources/lang/th/exception.php | 11 +++ resources/lang/th/helpcenter.php | 26 ++++++ resources/lang/th/navmenu.php | 19 +++++ resources/lang/th/notification.php | 12 +++ resources/lang/th/pagination.php | 19 +++++ resources/lang/th/passwords.php | 22 ++++++ resources/lang/th/profile.php | 15 ++++ resources/lang/th/site.php | 20 +++++ resources/lang/th/timeline.php | 7 ++ resources/lang/th/validation.php | 122 +++++++++++++++++++++++++++++ 11 files changed, 292 insertions(+) create mode 100644 resources/lang/th/auth.php create mode 100644 resources/lang/th/exception.php create mode 100644 resources/lang/th/helpcenter.php create mode 100644 resources/lang/th/navmenu.php create mode 100644 resources/lang/th/notification.php create mode 100644 resources/lang/th/pagination.php create mode 100644 resources/lang/th/passwords.php create mode 100644 resources/lang/th/profile.php create mode 100644 resources/lang/th/site.php create mode 100644 resources/lang/th/timeline.php create mode 100644 resources/lang/th/validation.php diff --git a/resources/lang/th/auth.php b/resources/lang/th/auth.php new file mode 100644 index 000000000..5011a85f5 --- /dev/null +++ b/resources/lang/th/auth.php @@ -0,0 +1,19 @@ + 'ข้อมูลไม่ตรงกับบันทึกของเรา', + 'throttle' => 'ลงชื่อเข้าหลายครั้งเกินไป โปรดลองอีกครั้งภายใน :seconds วินาที', + +]; diff --git a/resources/lang/th/exception.php b/resources/lang/th/exception.php new file mode 100644 index 000000000..448f1c3c9 --- /dev/null +++ b/resources/lang/th/exception.php @@ -0,0 +1,11 @@ + [ + 'invalid' => [ + 'album' => 'ต้องมีอย่างรูปหรือวีดิโอเป็นอย่างน้อย', + ], + ], + +]; \ No newline at end of file diff --git a/resources/lang/th/helpcenter.php b/resources/lang/th/helpcenter.php new file mode 100644 index 000000000..62877d1a2 --- /dev/null +++ b/resources/lang/th/helpcenter.php @@ -0,0 +1,26 @@ + 'Help Center', + 'whatsnew' => 'What\'s New', + + 'gettingStarted' => 'Getting Started', + 'sharingMedia' => 'Sharing Media', + 'profile' => 'Profile', + 'stories' => 'Stories', + 'hashtags' => 'Hashtags', + 'discover' => 'Discover', + 'directMessages' => 'Direct Messages', + 'timelines' => 'Timelines', + 'embed' => 'Embed', + + 'communityGuidelines' => 'Community Guidelines', + 'whatIsTheFediverse' => 'What is the fediverse?', + 'controllingVisibility' => 'Controlling Visibility', + 'blockingAccounts' => 'Blocking Accounts', + 'safetyTips' => 'Safety Tips', + 'reportSomething' => 'Report Something', + 'dataPolicy' => 'Data Policy' + +]; \ No newline at end of file diff --git a/resources/lang/th/navmenu.php b/resources/lang/th/navmenu.php new file mode 100644 index 000000000..3449b7d45 --- /dev/null +++ b/resources/lang/th/navmenu.php @@ -0,0 +1,19 @@ + 'ค้นหา', + 'home' => 'หน้าหลัก', + 'local' => 'Local', + 'network' => 'Network', + 'discover' => 'Discover', + 'viewMyProfile' => 'ดูโพรไฟล์', + 'myProfile' => 'โพรไฟล์ของฉัน', + 'myTimeline' => 'ทามไลน์ของฉัน', + 'publicTimeline' => 'ทามไลน์สาธารณะ', + 'remoteFollow' => 'Remote Follow', + 'settings' => 'ตั้งค่า', + 'admin' => 'ผู้ดูแล', + 'logout' => 'ออกจากระบบ', + 'directMessages' => 'ส่งข้อความ', + 'composePost' => 'สร้างโพสต์', +]; diff --git a/resources/lang/th/notification.php b/resources/lang/th/notification.php new file mode 100644 index 000000000..da9e15e4a --- /dev/null +++ b/resources/lang/th/notification.php @@ -0,0 +1,12 @@ + 'ถูกใจโพสต์ของคุณ', + 'likedComment' => 'ถูกใจความเห็นของคุณ', + 'startedFollowingYou' => 'ได้ติดตามคุณแล้ว', + 'commented' => 'ได้แสดงความเห็นโพสต์ของคุณ', + 'mentionedYou' => 'พูดถึงคุณ', + 'shared' => 'แชร์โพสต์ของคุณ', + +]; diff --git a/resources/lang/th/pagination.php b/resources/lang/th/pagination.php new file mode 100644 index 000000000..614f95181 --- /dev/null +++ b/resources/lang/th/pagination.php @@ -0,0 +1,19 @@ + '« ก่อนหน้า', + 'next' => 'ถัดไป »', + +]; diff --git a/resources/lang/th/passwords.php b/resources/lang/th/passwords.php new file mode 100644 index 000000000..20dfe0058 --- /dev/null +++ b/resources/lang/th/passwords.php @@ -0,0 +1,22 @@ + 'รหัสผ่านจำเป็นต้องมีอย่างน้อยหกตัวอักษร', + 'reset' => 'คุณได้เปลี่ยนรหัสผ่านเรียบร้อยแล้ว!', + 'sent' => 'หากอีเมลของคุณอยู่ในฐานข้อมูลของเราแล้ว ในอีกไม่กี่นาทีคุณจะได้รับอีเมลเพื่อแก้ใขรหัสผ่าน หากไม่พบอีเมล โปรดไปตรวจดูที่ถังขยะ', + 'token' => 'ใช้รหัสผ่านนี้ไม่ได้', + 'user' => 'หากอีเมลของคุณอยู่ในฐานข้อมูลของเราแล้ว ในอีกไม่กี่นาทีคุณจะได้รับอีเมลเพื่อแก้ใขรหัสผ่าน หากไม่พบอีเมล โปรดไปตรวจดูที่ถังขยะ', + +]; diff --git a/resources/lang/th/profile.php b/resources/lang/th/profile.php new file mode 100644 index 000000000..eaf694b92 --- /dev/null +++ b/resources/lang/th/profile.php @@ -0,0 +1,15 @@ + 'ผู้ใช้นี้ยังไม่มีโพสต์อะไร!', + 'emptyFollowers' => 'ผู้ใช้นี้ยังไม่มีผู้ติดตาม!', + 'emptyFollowing' => 'ผู้ใช้นี้ยังไม่ได้ติดตามใครเลย!', + 'emptySaved' => 'คุณยังไม่ได้บันทึกโพสต์ใด ๆ!', + 'savedWarning' => 'คุณเท่านั้นที่สามารถดูโพสต์นี้ได้', + 'privateProfileWarning' => 'บัญชีนี้เป็นบัญชีส่วนบุคคล', + 'alreadyFollow' => ':username ได้ติดตาม', + 'loginToSeeProfile' => 'ดูรูปและวีดิโอ', + + 'status.disabled.header' => 'บัญชีไม่สามารถใช้งานได้', + 'status.disabled.body' => 'เสียใจด้วยนะ บัญชีนี้ไม่สามารถใช้งานได้ โปรดลองใหม่อีกครั้ง', +]; diff --git a/resources/lang/th/site.php b/resources/lang/th/site.php new file mode 100644 index 000000000..54c40cd6a --- /dev/null +++ b/resources/lang/th/site.php @@ -0,0 +1,20 @@ + 'เกี่ยวกับ', + 'help' => 'ช่วยเหลือ', + 'language' => 'ภาษา', + 'fediverse' => 'Fediverse', + 'opensource' => 'Open Source', + 'terms' => 'ข้อกำหนด', + 'privacy' => 'ความเป็นส่วนตัว', + 'l10nWip' => 'เรากำลังอยู่ดำเนินการแปลเป็นภาษาของคุณ', + 'currentLocale' => 'สถานที่ปัจจุบัน', + 'selectLocale' => 'เลือกภาษาที่ได้รับการสนับสนุน', + 'contact' => 'ติดต่อ', + 'contact-us' => 'ติดต่อเรา', + 'places' => 'สถานที่', + 'profiles' => 'โพรไฟล์', + +]; diff --git a/resources/lang/th/timeline.php b/resources/lang/th/timeline.php new file mode 100644 index 000000000..79352add8 --- /dev/null +++ b/resources/lang/th/timeline.php @@ -0,0 +1,7 @@ + 'ทามไลน์ของคุณยังไม่มีอะไร!', + +]; diff --git a/resources/lang/th/validation.php b/resources/lang/th/validation.php new file mode 100644 index 000000000..77d230221 --- /dev/null +++ b/resources/lang/th/validation.php @@ -0,0 +1,122 @@ + 'The :attribute must be accepted.', + 'active_url' => 'The :attribute is not a valid URL.', + 'after' => 'The :attribute must be a date after :date.', + 'after_or_equal' => 'The :attribute must be a date after or equal to :date.', + 'alpha' => 'The :attribute may only contain letters.', + 'alpha_dash' => 'The :attribute may only contain letters, numbers, and dashes.', + 'alpha_num' => 'The :attribute may only contain letters and numbers.', + 'array' => 'The :attribute must be an array.', + 'before' => 'The :attribute must be a date before :date.', + 'before_or_equal' => 'The :attribute must be a date before or equal to :date.', + 'between' => [ + 'numeric' => 'The :attribute must be between :min and :max.', + 'file' => 'The :attribute must be between :min and :max kilobytes.', + 'string' => 'The :attribute must be between :min and :max characters.', + 'array' => 'The :attribute must have between :min and :max items.', + ], + 'boolean' => 'The :attribute field must be true or false.', + 'confirmed' => 'The :attribute confirmation does not match.', + 'date' => 'The :attribute is not a valid date.', + 'date_format' => 'The :attribute does not match the format :format.', + 'different' => 'The :attribute and :other must be different.', + 'digits' => 'The :attribute must be :digits digits.', + 'digits_between' => 'The :attribute must be between :min and :max digits.', + 'dimensions' => 'The :attribute has invalid image dimensions.', + 'distinct' => 'The :attribute field has a duplicate value.', + 'email' => 'The :attribute must be a valid email address.', + 'exists' => 'The selected :attribute is invalid.', + 'file' => 'The :attribute must be a file.', + 'filled' => 'The :attribute field must have a value.', + 'image' => 'The :attribute must be an image.', + 'in' => 'The selected :attribute is invalid.', + 'in_array' => 'The :attribute field does not exist in :other.', + 'integer' => 'The :attribute must be an integer.', + 'ip' => 'The :attribute must be a valid IP address.', + 'ipv4' => 'The :attribute must be a valid IPv4 address.', + 'ipv6' => 'The :attribute must be a valid IPv6 address.', + 'json' => 'The :attribute must be a valid JSON string.', + 'max' => [ + 'numeric' => 'The :attribute may not be greater than :max.', + 'file' => 'The :attribute may not be greater than :max kilobytes.', + 'string' => 'The :attribute may not be greater than :max characters.', + 'array' => 'The :attribute may not have more than :max items.', + ], + 'mimes' => 'The :attribute must be a file of type: :values.', + 'mimetypes' => 'The :attribute must be a file of type: :values.', + 'min' => [ + 'numeric' => 'The :attribute must be at least :min.', + 'file' => 'The :attribute must be at least :min kilobytes.', + 'string' => 'The :attribute must be at least :min characters.', + 'array' => 'The :attribute must have at least :min items.', + ], + 'not_in' => 'The selected :attribute is invalid.', + 'not_regex' => 'The :attribute format is invalid.', + 'numeric' => 'The :attribute must be a number.', + 'present' => 'The :attribute field must be present.', + 'regex' => 'The :attribute format is invalid.', + 'required' => 'The :attribute field is required.', + 'required_if' => 'The :attribute field is required when :other is :value.', + 'required_unless' => 'The :attribute field is required unless :other is in :values.', + 'required_with' => 'The :attribute field is required when :values is present.', + 'required_with_all' => 'The :attribute field is required when :values is present.', + 'required_without' => 'The :attribute field is required when :values is not present.', + 'required_without_all' => 'The :attribute field is required when none of :values are present.', + 'same' => 'The :attribute and :other must match.', + 'size' => [ + 'numeric' => 'The :attribute must be :size.', + 'file' => 'The :attribute must be :size kilobytes.', + 'string' => 'The :attribute must be :size characters.', + 'array' => 'The :attribute must contain :size items.', + ], + 'string' => 'The :attribute must be a string.', + 'timezone' => 'The :attribute must be a valid zone.', + 'unique' => 'The :attribute has already been taken.', + 'uploaded' => 'The :attribute failed to upload.', + 'url' => 'The :attribute format is invalid.', + + /* + |-------------------------------------------------------------------------- + | Custom Validation Language Lines + |-------------------------------------------------------------------------- + | + | Here you may specify custom validation messages for attributes using the + | convention "attribute.rule" to name the lines. This makes it quick to + | specify a specific custom language line for a given attribute rule. + | + */ + + 'custom' => [ + 'attribute-name' => [ + 'rule-name' => 'custom-message', + ], + ], + + /* + |-------------------------------------------------------------------------- + | Custom Validation Attributes + |-------------------------------------------------------------------------- + | + | The following language lines are used to swap attribute place-holders + | with something more reader friendly such as E-Mail Address instead + | of "email". This simply helps us make messages a little cleaner. + | + */ + + 'attributes' => [], + +]; From c7ccb26ffc261cc846bb76d146143ec284742933 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sun, 26 Apr 2020 02:06:48 -0600 Subject: [PATCH 02/24] Update ModLog model, add fillable attribute --- app/ModLog.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/ModLog.php b/app/ModLog.php index 0e0b2b5e4..b5e892fc5 100644 --- a/app/ModLog.php +++ b/app/ModLog.php @@ -8,6 +8,8 @@ class ModLog extends Model { protected $visible = ['id']; + protected $fillable = ['*']; + public function admin() { return $this->belongsTo(User::class, 'user_id'); From 6969bb5bb4b097e0e34cccd1fa17f67f58f00c12 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sun, 26 Apr 2020 02:07:17 -0600 Subject: [PATCH 03/24] Update Profile model, cast timestamp for last_fetched_at --- app/Profile.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/app/Profile.php b/app/Profile.php index e9907f710..7c8325ad6 100644 --- a/app/Profile.php +++ b/app/Profile.php @@ -18,7 +18,10 @@ class Profile extends Model */ public $incrementing = false; - protected $dates = ['deleted_at']; + protected $dates = [ + 'deleted_at', + 'last_fetched_at' + ]; protected $hidden = ['private_key']; protected $visible = ['id', 'user_id', 'username', 'name']; protected $fillable = ['user_id']; From ed09e541586625c209e1caca778d5cabd42cdc7b Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sun, 26 Apr 2020 02:47:13 -0600 Subject: [PATCH 04/24] Update app.js, add timeAgo util --- resources/assets/js/app.js | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/resources/assets/js/app.js b/resources/assets/js/app.js index 97b33d9bb..fcfa03e21 100644 --- a/resources/assets/js/app.js +++ b/resources/assets/js/app.js @@ -69,6 +69,31 @@ window.App.util = { return 0; } return new Intl.NumberFormat(locale, { notation: notation , compactDisplay: "short" }).format(count); + }), + timeAgo: (function(ts) { + let date = Date.parse(ts); + let seconds = Math.floor((new Date() - date) / 1000); + let interval = Math.floor(seconds / 31536000); + if (interval >= 1) { + return interval + "y"; + } + interval = Math.floor(seconds / 604800); + if (interval >= 1) { + return interval + "w"; + } + interval = Math.floor(seconds / 86400); + if (interval >= 1) { + return interval + "d"; + } + interval = Math.floor(seconds / 3600); + if (interval >= 1) { + return interval + "h"; + } + interval = Math.floor(seconds / 60); + if (interval >= 1) { + return interval + "m"; + } + return Math.floor(seconds) + "s"; }) }, filters: [ From 46767810a49a474f158dae74d23f2ad1b5b9967c Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sun, 26 Apr 2020 02:47:47 -0600 Subject: [PATCH 05/24] Update Profile.vue component, fix pagination bug --- resources/assets/js/components/Profile.vue | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/resources/assets/js/components/Profile.vue b/resources/assets/js/components/Profile.vue index 6e8594998..0acccfa68 100644 --- a/resources/assets/js/components/Profile.vue +++ b/resources/assets/js/components/Profile.vue @@ -760,8 +760,13 @@ self.ids.push(d.id); } }); + let max = Math.min(...this.ids); + if(max == this.max_id) { + $state.complete(); + return; + } this.min_id = Math.max(...this.ids); - this.max_id = Math.min(...this.ids); + this.max_id = max; $state.loaded(); this.loading = false; } else { From c95dd26a7972dcf8ca795a009db86c0a06abd813 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sun, 26 Apr 2020 02:49:28 -0600 Subject: [PATCH 06/24] Update PostComponent.vue, use timeAgo util --- .../assets/js/components/PostComponent.vue | 24 +------------------ 1 file changed, 1 insertion(+), 23 deletions(-) diff --git a/resources/assets/js/components/PostComponent.vue b/resources/assets/js/components/PostComponent.vue index 05aecb176..1432f83c4 100644 --- a/resources/assets/js/components/PostComponent.vue +++ b/resources/assets/js/components/PostComponent.vue @@ -1066,29 +1066,7 @@ export default { }, timeAgo(ts) { - let date = Date.parse(ts); - let seconds = Math.floor((new Date() - date) / 1000); - let interval = Math.floor(seconds / 31536000); - if (interval >= 1) { - return interval + "y"; - } - interval = Math.floor(seconds / 604800); - if (interval >= 1) { - return interval + "w"; - } - interval = Math.floor(seconds / 86400); - if (interval >= 1) { - return interval + "d"; - } - interval = Math.floor(seconds / 3600); - if (interval >= 1) { - return interval + "h"; - } - interval = Math.floor(seconds / 60); - if (interval >= 1) { - return interval + "m"; - } - return Math.floor(seconds) + "s"; + return App.util.format.timeAgo(ts); }, emojiReaction() { From 877023fb2141eb9014c8c32e45fd318203101a65 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sun, 26 Apr 2020 23:10:21 -0600 Subject: [PATCH 07/24] Update purify config, fix microformats support --- config/purify.php | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/config/purify.php b/config/purify.php index da156c5f7..681f55dd6 100644 --- a/config/purify.php +++ b/config/purify.php @@ -68,8 +68,8 @@ return [ */ 'HTML.Allowed' => env('RESTRICT_HTML_TYPES', true) ? - 'a[href|title|rel],p,span,br' : - 'a[href|title|rel],p,span,strong,em,del,b,i,s,strike,h1,h2,h3,h4,h5,h6,ul,ol,li,br', + 'a[href|title|rel|class],p[class],span[class],br' : + 'a[href|title|rel|class],p[class],span[class],strong,em,del,b,i,s,strike,h1,h2,h3,h4,h5,h6,ul,ol,li,br', /* @@ -133,6 +133,27 @@ return [ 'AutoFormat.RemoveEmpty' => false, + 'Attr.AllowedClasses' => [ + 'h-feed', + 'h-entry', + 'h-cite', + 'h-card', + 'p-author', + 'p-name', + 'p-in-reply-to', + 'p-repost-of', + 'p-comment', + 'u-photo', + 'u-uid', + 'u-url', + 'dt-published', + 'e-content', + 'mention', + 'hashtag', + 'ellipsis', + 'invisible' + ], + 'Attr.AllowedRel' => [ 'noreferrer', 'noopener', From b355b98a9f9872d6bbf2fff62b26434754a7ee31 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sun, 26 Apr 2020 23:11:17 -0600 Subject: [PATCH 08/24] Update changelog --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 530daff9d..e1338568c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,8 @@ - Updated PublicApiControllers, fix block/mutes filtering on public timeline ([08383dd4](https://github.com/pixelfed/pixelfed/commit/08383dd4)) - Updated FixUsernames command, fixes remote username search ([0f943f67](https://github.com/pixelfed/pixelfed/commit/0f943f67)) - Updated Timeline component, fix mod tools ([b1d5eb05](https://github.com/pixelfed/pixelfed/commit/b1d5eb05)) +- Updated Profile.vue component, fix pagination bug ([46767810](https://github.com/pixelfed/pixelfed/commit/46767810)) +- Updated purify config, fix microformats support ([877023fb](https://github.com/pixelfed/pixelfed/commit/877023fb)) ## [v0.10.9 (2020-04-17)](https://github.com/pixelfed/pixelfed/compare/v0.10.8...v0.10.9) From 996866cbac6590d6dc651d67b376800b966d0f86 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sun, 26 Apr 2020 23:13:39 -0600 Subject: [PATCH 09/24] Update LikeController, fix likes_count bug --- app/Http/Controllers/LikeController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Http/Controllers/LikeController.php b/app/Http/Controllers/LikeController.php index fa3caaf7c..601286179 100644 --- a/app/Http/Controllers/LikeController.php +++ b/app/Http/Controllers/LikeController.php @@ -27,7 +27,7 @@ class LikeController extends Controller $profile = $user->profile; $status = Status::findOrFail($request->input('item')); - $count = $status->likes_count; + $count = $status->likes()->count(); if ($status->likes()->whereProfileId($profile->id)->count() !== 0) { $like = Like::whereProfileId($profile->id)->whereStatusId($status->id)->firstOrFail(); From 483548e217ff46f16cc2e734973fee343dcafc80 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sun, 26 Apr 2020 23:20:27 -0600 Subject: [PATCH 10/24] Update AccountController, add followRequestJson method --- app/Http/Controllers/AccountController.php | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/app/Http/Controllers/AccountController.php b/app/Http/Controllers/AccountController.php index 6f136c3ad..a554f17d8 100644 --- a/app/Http/Controllers/AccountController.php +++ b/app/Http/Controllers/AccountController.php @@ -327,6 +327,27 @@ class AccountController extends Controller return view('account.follow-requests', compact('followers')); } + public function followRequestsJson(Request $request) + { + $pid = Auth::user()->profile_id; + $followers = FollowRequest::whereFollowingId($pid)->orderBy('id','desc')->whereIsRejected(0)->get(); + $res = [ + 'count' => $followers->count(), + 'accounts' => $followers->take(10)->map(function($a) { + $actor = $a->actor; + return [ + 'id' => $actor->id, + 'username' => $actor->username, + 'avatar' => $actor->avatarUrl(), + 'url' => $actor->url(), + 'local' => $actor->domain == null, + 'following' => $actor->followedBy(Auth::user()->profile) + ]; + }) + ]; + return response()->json($res, 200, [], JSON_PRETTY_PRINT|JSON_UNESCAPED_SLASHES); + } + public function followRequestHandle(Request $request) { $this->validate($request, [ From 591a1929287396b5ad4677276d0fd66d5a0b0268 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sun, 26 Apr 2020 23:25:35 -0600 Subject: [PATCH 11/24] Update UserInvite model, add sender relation --- app/UserInvite.php | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/app/UserInvite.php b/app/UserInvite.php index c8761a775..6b9a839f9 100644 --- a/app/UserInvite.php +++ b/app/UserInvite.php @@ -6,10 +6,13 @@ use Illuminate\Database\Eloquent\Model; class UserInvite extends Model { + public function sender() + { + return $this->belongsTo(Profile::class, 'profile_id'); + } + public function url() { - $path = '/i/invite/code'; - $url = url($path, [$this->key, $this->token]); - return $url; + return url("/i/invite/code/{$this->key}/{$this->token}"); } } From fcab5010d685b952f0a1cc4357d4d2b8b5b6ad1a Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sun, 26 Apr 2020 23:28:24 -0600 Subject: [PATCH 12/24] Add UIKit model, migration and controller --- app/Http/Controllers/UIKitController.php | 10 +++++ app/UIKit.php | 21 ++++++++++ .../2020_04_13_045435_create_uikit_table.php | 39 +++++++++++++++++++ 3 files changed, 70 insertions(+) create mode 100644 app/Http/Controllers/UIKitController.php create mode 100644 app/UIKit.php create mode 100644 database/migrations/2020_04_13_045435_create_uikit_table.php diff --git a/app/Http/Controllers/UIKitController.php b/app/Http/Controllers/UIKitController.php new file mode 100644 index 000000000..bfa720dca --- /dev/null +++ b/app/Http/Controllers/UIKitController.php @@ -0,0 +1,10 @@ +where('k', $k)->first()->v; + } +} diff --git a/database/migrations/2020_04_13_045435_create_uikit_table.php b/database/migrations/2020_04_13_045435_create_uikit_table.php new file mode 100644 index 000000000..3fa856ff7 --- /dev/null +++ b/database/migrations/2020_04_13_045435_create_uikit_table.php @@ -0,0 +1,39 @@ +bigIncrements('id'); + $table->string('k')->unique()->index(); + $table->text('v')->nullable(); + $table->json('meta')->nullable(); + // default value for rollbacks + $table->text('defv')->nullable(); + // delta history + $table->text('dhis')->nullable(); + $table->unsignedInteger('edit_count')->default(0)->nullable(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('uikit'); + } +} From 38b0233e962db9beea2af01fe95884a6ceafa120 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sun, 26 Apr 2020 23:29:24 -0600 Subject: [PATCH 13/24] Update AccountTransformer, add last_fetched_at attribute --- app/Transformer/Api/AccountTransformer.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/Transformer/Api/AccountTransformer.php b/app/Transformer/Api/AccountTransformer.php index 0486495c8..16a45b97c 100644 --- a/app/Transformer/Api/AccountTransformer.php +++ b/app/Transformer/Api/AccountTransformer.php @@ -34,7 +34,8 @@ class AccountTransformer extends Fractal\TransformerAbstract 'local' => (bool) $local, 'is_admin' => (bool) $is_admin, 'created_at' => $profile->created_at->toJSON(), - 'header_bg' => $profile->header_bg + 'header_bg' => $profile->header_bg, + 'last_fetched_at' => optional($profile->last_fetched_at)->toJSON() ]; } From 924e424cd2281110ab8b809561242bbafbd72667 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sun, 26 Apr 2020 23:33:37 -0600 Subject: [PATCH 14/24] Update StoryItemTransformer, increase story length to 5 seconds --- app/Transformer/Api/StoryItemTransformer.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Transformer/Api/StoryItemTransformer.php b/app/Transformer/Api/StoryItemTransformer.php index 1fbd9c37d..7c59ef22e 100644 --- a/app/Transformer/Api/StoryItemTransformer.php +++ b/app/Transformer/Api/StoryItemTransformer.php @@ -14,7 +14,7 @@ class StoryItemTransformer extends Fractal\TransformerAbstract return [ 'id' => (string) $item->id, 'type' => $item->type, - 'length' => $item->duration != 0 ? $item->duration : 3, + 'length' => 5, 'src' => $item->url(), 'preview' => null, 'link' => null, From 613190729093309af238165479d2561f1023b41e Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sun, 26 Apr 2020 23:34:31 -0600 Subject: [PATCH 15/24] Update changelog --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e1338568c..19cae1be4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,6 +16,12 @@ - Updated Timeline component, fix mod tools ([b1d5eb05](https://github.com/pixelfed/pixelfed/commit/b1d5eb05)) - Updated Profile.vue component, fix pagination bug ([46767810](https://github.com/pixelfed/pixelfed/commit/46767810)) - Updated purify config, fix microformats support ([877023fb](https://github.com/pixelfed/pixelfed/commit/877023fb)) +- Updated LikeController, fix likes_count bug ([996866cb](https://github.com/pixelfed/pixelfed/commit/996866cb)) +- Updated AccountController, added followRequestJson method ([483548e2](https://github.com/pixelfed/pixelfed/commit/483548e2)) +- Updated UserInvite model, added sender relation ([591a1929](https://github.com/pixelfed/pixelfed/commit/591a1929)) +- Updated migrations, added UIKit ([fcab5010](https://github.com/pixelfed/pixelfed/commit/fcab5010)) +- Updated AccountTransformer, added last_fetched_at attribute ([38b0233e](https://github.com/pixelfed/pixelfed/commit/38b0233e)) +- Updated StoryItemTransformer, increase story length to 5 seconds ([924e424c](https://github.com/pixelfed/pixelfed/commit/924e424c)) ## [v0.10.9 (2020-04-17)](https://github.com/pixelfed/pixelfed/compare/v0.10.8...v0.10.9) From 8763bfc5c470162b6477b063a457157003e99727 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sun, 26 Apr 2020 23:43:54 -0600 Subject: [PATCH 16/24] Add ActivityPubFetchService for signed GET requests --- app/Services/ActivityPubFetchService.php | 59 ++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 app/Services/ActivityPubFetchService.php diff --git a/app/Services/ActivityPubFetchService.php b/app/Services/ActivityPubFetchService.php new file mode 100644 index 000000000..765c62765 --- /dev/null +++ b/app/Services/ActivityPubFetchService.php @@ -0,0 +1,59 @@ + 'application/activity+json, application/json', + 'User-Agent' => 'PixelfedBot - https://pixelfed.org' + ]; + + public static function queue() + { + return new self; + } + + public function signed($signed = true) + { + $this->signed = $signed; + return $this; + } + + public function actor($profile) + { + $this->actor = $profile; + return $this; + } + + public function url($url) + { + if(!Helpers::validateUrl($url)) { + throw new \Exception('Invalid URL'); + } + $this->url = $url; + return $this; + } + + public function get() + { + if($this->signed == true && $this->actor == null) { + throw new \Exception('Cannot sign request without actor'); + } + return $this->signedRequest(); + } + + protected function signedRequest() + { + $this->headers = HttpSignature::sign($this->actor, $this->url, false, $this->headers); + return Zttp::withHeaders($this->headers)->get($this->url)->body(); + } +} \ No newline at end of file From 1dc65e933e34d6eefae153d7d071975d8fb59494 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Mon, 27 Apr 2020 00:14:50 -0600 Subject: [PATCH 17/24] Update StatusController, fix reblog_count bug --- app/Http/Controllers/StatusController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Http/Controllers/StatusController.php b/app/Http/Controllers/StatusController.php index ef1d59395..cf209bf15 100644 --- a/app/Http/Controllers/StatusController.php +++ b/app/Http/Controllers/StatusController.php @@ -175,7 +175,7 @@ class StatusController extends Controller ->whereIn('scope', ['public', 'unlisted']) ->findOrFail($request->input('item')); - $count = $status->shares_count; + $count = $status->shares()->count(); $exists = Status::whereProfileId(Auth::user()->profile->id) ->whereReblogOfId($status->id) From 36dc7fbac1d9fe30c5453158cc11af5d8c40fb63 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Mon, 27 Apr 2020 21:07:01 -0600 Subject: [PATCH 18/24] Update change log --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 19cae1be4..3660f2bb2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,9 @@ ## [Unreleased](https://github.com/pixelfed/pixelfed/compare/v0.10.9...dev) ### Added +- ActivityPubFetchService for signed GET requests ([8763bfc5](https://github.com/pixelfed/pixelfed/commit/8763bfc5)) - Custom content warnings for remote posts ([6afc61a4](https://github.com/pixelfed/pixelfed/commit/6afc61a4)) +- Thai translations ([https://github.com/pixelfed/pixelfed/commit/74cd536](https://github.com/pixelfed/pixelfed/commit/74cd536)) ### Updated - Updated PostComponent, fix remote urls ([42716ccc](https://github.com/pixelfed/pixelfed/commit/42716ccc)) @@ -22,6 +24,7 @@ - Updated migrations, added UIKit ([fcab5010](https://github.com/pixelfed/pixelfed/commit/fcab5010)) - Updated AccountTransformer, added last_fetched_at attribute ([38b0233e](https://github.com/pixelfed/pixelfed/commit/38b0233e)) - Updated StoryItemTransformer, increase story length to 5 seconds ([924e424c](https://github.com/pixelfed/pixelfed/commit/924e424c)) +- Updated StatusController, fix reblog_count bug ([1dc65e93](https://github.com/pixelfed/pixelfed/commit/1dc65e93)) ## [v0.10.9 (2020-04-17)](https://github.com/pixelfed/pixelfed/compare/v0.10.8...v0.10.9) From 5e48ffca63f447b1f82da2a2b2505f0ab02b986c Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Mon, 27 Apr 2020 21:23:13 -0600 Subject: [PATCH 19/24] Update NotificationCard.vue component, add follow requests at top of card, remove card-header --- .../assets/js/components/NotificationCard.vue | 62 +++++++++---------- 1 file changed, 31 insertions(+), 31 deletions(-) diff --git a/resources/assets/js/components/NotificationCard.vue b/resources/assets/js/components/NotificationCard.vue index b82d98770..b5a03bc97 100644 --- a/resources/assets/js/components/NotificationCard.vue +++ b/resources/assets/js/components/NotificationCard.vue @@ -2,19 +2,19 @@
-
-

- - Alerts - -

-
Loading...
-
+
+
+
+

+

{{followRequests.count}} Follow Requests

+

+
+
@@ -76,11 +76,20 @@ notifications: {}, notificationCursor: 2, notificationMaxId: 0, + profile: { + locked: false + }, + followRequests: null }; }, mounted() { + let self = this; this.fetchNotifications(); + setTimeout(function() { + self.profile = window._sharedData.curUser; + self.fetchFollowRequests(); + }, 500); }, updated() { @@ -138,29 +147,7 @@ }, timeAgo(ts) { - let date = Date.parse(ts); - let seconds = Math.floor((new Date() - date) / 1000); - let interval = Math.floor(seconds / 31536000); - if (interval >= 1) { - return interval + "y"; - } - interval = Math.floor(seconds / 604800); - if (interval >= 1) { - return interval + "w"; - } - interval = Math.floor(seconds / 86400); - if (interval >= 1) { - return interval + "d"; - } - interval = Math.floor(seconds / 3600); - if (interval >= 1) { - return interval + "h"; - } - interval = Math.floor(seconds / 60); - if (interval >= 1) { - return interval + "m"; - } - return Math.floor(seconds) + "s"; + return window.App.util.format.timeAgo(ts); }, mentionUrl(status) { @@ -219,6 +206,19 @@ } } }); + }, + + fetchFollowRequests() { + if(window._sharedData.curUser.locked == true) { + axios.get('/account/follow-requests.json') + .then(res => { + this.followRequests = res.data; + }) + } + }, + + redirect(url) { + window.location.href = url; } } } From 66f44a9d26c7d8b429ad069c27d0df230c01a28f Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Mon, 27 Apr 2020 21:28:37 -0600 Subject: [PATCH 20/24] Update RemoteProfile.vue component, add warning for empty profiles and last_fetched_at --- .../assets/js/components/RemoteProfile.vue | 38 +++++++++++++++++-- 1 file changed, 34 insertions(+), 4 deletions(-) diff --git a/resources/assets/js/components/RemoteProfile.vue b/resources/assets/js/components/RemoteProfile.vue index dc4250509..a0eb9f86a 100644 --- a/resources/assets/js/components/RemoteProfile.vue +++ b/resources/assets/js/components/RemoteProfile.vue @@ -33,8 +33,7 @@

{{profile.display_name}}

-

{{profile.acct}}

-

+

{{profile.acct}}

{{profile.statuses_count}} @@ -49,8 +48,10 @@ Followers

+

+

Last updated:

@@ -110,9 +111,18 @@
- +
@@ -191,6 +201,8 @@ warning: false, ctxMenuStatus: false, ctxMenuRelationship: false, + fetchingRemotePosts: false, + showMutualFollowers: false } }, @@ -451,6 +463,24 @@ swal('Error', 'Something went wrong. Please try again later.', 'error'); }); }, + + manuallyFetchRemotePosts($event) { + this.fetchingRemotePosts = true; + event.target.blur(); + swal( + 'Fetching Remote Posts', + 'Check back in a few minutes!', + 'info' + ); + }, + + timeAgo(ts, suffix = false) { + if(ts == null) { + return 'never'; + } + suffix = suffix ? ' ' + suffix : ''; + return App.util.format.timeAgo(ts) + suffix; + }, } } From b8b5ba4fb3c9ab41bbf7704f432ebcfa409e087c Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Mon, 27 Apr 2020 21:29:44 -0600 Subject: [PATCH 21/24] Update changelog --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3660f2bb2..d63b6ed84 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -25,6 +25,8 @@ - Updated AccountTransformer, added last_fetched_at attribute ([38b0233e](https://github.com/pixelfed/pixelfed/commit/38b0233e)) - Updated StoryItemTransformer, increase story length to 5 seconds ([924e424c](https://github.com/pixelfed/pixelfed/commit/924e424c)) - Updated StatusController, fix reblog_count bug ([1dc65e93](https://github.com/pixelfed/pixelfed/commit/1dc65e93)) +- Updated NotificationCard.vue component, add follow requests at top of card, remove card-header ([5e48ffca](https://github.com/pixelfed/pixelfed/commit/5e48ffca)) +- Update RemoteProfile.vue component, add warning for empty profiles and last_fetched_at ([66f44a9d](https://github.com/pixelfed/pixelfed/commit/66f44a9d)) ## [v0.10.9 (2020-04-17)](https://github.com/pixelfed/pixelfed/compare/v0.10.8...v0.10.9) From 2847e6bbcaf091b608f16624e8ff27ad8cafec43 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Mon, 27 Apr 2020 21:34:45 -0600 Subject: [PATCH 22/24] Update web routes --- routes/web.php | 1 + 1 file changed, 1 insertion(+) diff --git a/routes/web.php b/routes/web.php index 39f5cc402..2799d10e7 100644 --- a/routes/web.php +++ b/routes/web.php @@ -272,6 +272,7 @@ Route::domain(config('pixelfed.domain.app'))->middleware(['validemail', 'twofact Route::get('activity', 'AccountController@notifications')->name('notifications'); Route::get('follow-requests', 'AccountController@followRequests')->name('follow-requests'); Route::post('follow-requests', 'AccountController@followRequestHandle'); + Route::get('follow-requests.json', 'AccountController@followRequestsJson'); }); Route::group(['prefix' => 'settings'], function () { From cd42b2be3f6bafa19081b8773e6b53440902efa5 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Mon, 27 Apr 2020 21:35:58 -0600 Subject: [PATCH 23/24] Update compiled assets --- public/js/app.js | Bin 6907 -> 7168 bytes public/js/profile.js | Bin 107368 -> 107414 bytes public/js/rempro.js | Bin 22149 -> 23403 bytes public/js/status.js | Bin 67911 -> 67701 bytes public/js/timeline.js | Bin 118356 -> 118720 bytes public/mix-manifest.json | Bin 1939 -> 1939 bytes 6 files changed, 0 insertions(+), 0 deletions(-) diff --git a/public/js/app.js b/public/js/app.js index b35bd672ff7f150a6496342e382e501fca5fc289..3a52f6073f340680b67f81155bc73591b5b23a3a 100644 GIT binary patch delta 507 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 diff --git a/public/js/status.js b/public/js/status.js index fe31e0097400167fa2b8907709b34f08d176c0c9..6635bae54102ae3edf34998e6c7cb660649447b0 100644 GIT binary patch delta 567 zcmX>;iRJ4AmI*I5Pi0)MHCb1MUCObbK(DkUGe<8izbH4cM6V<>H`OscU!z2Gv$1X- z2cM@?PN9;fPO*kkRjEhe=JlpoSsdoZiH1gri3Xb$7xZ$ocp5snPX4$+dvWVVW@e!3 z$rB!`ixwLO1S)A-7whF|Bx>p<*6Mgx7?p!$Hm~0z$+KDMkcJ>ja;9JI%X@tQ0gT|~%DcYVUlM@#^Zk}+tl7%HD)U60;W`G*Z zjj=j0d3r^uiOD6I`FX|BDTyVCx@EdB*~zQc$WCrvBabk1)tU$dhik14f@8Nf2Ekdh zb~ZoEkXVK4m^=lA$qwxDle5_n%ui4IcWkewLU$&ynVm@!%4fbV3< tN7*c(C;>@=f(R(NS^qJQ8mkT{RzdM11Ja8eW3@Wb(WW{Ev9Yn5)&P*9!r1@- delta 747 zcmex5f#vulmI*Id3|%WLC)!K1M7kE4PBwhdx$*f1t@^UWB8602m&B4(y@JG|;#7?i zO`T#}-^7v(y|kSC{2~pFywq|9ki2fHroLgSv8GNUvUIV&v7xE48BpB1D7B=tC{H2L z&eqUAQCq1}$w~uFshNR^g@J*lCR9bal2tvr5(_gEBo!%`W*D0x$!B27n<324RkA|z zNU^52Qn6C4PHJv`R%TFYVsc4le%|Ke+VLEGX#oWhNWD7k1`ByBb^$;#qLO-r$` zG)hX`ylh@CHyc<&Y4XCg>Y|`vRMNCA*2~jK)YMC?)p1WZikQ6bf#u}*i{fx?lj|;u zAvg~%%1+*SQ65N>(q=VpGyec)h?~)Tj;Krrd2u}573j}BPWlIF-&t)?N$Lfj^ zf>Uy3HG-pl)gHmgyBdw)T)f(b;KX0k-E6!{pLz4Vwaz?{6a(_1+i6LJngff8k{lS{BWm+;O68r`&n30D^jy2Cq6QnJogOG<_p*CIaxpv x0SaXPvScSWq(Gj$e1Jmzj#Ya49JheK}(WW{Ev9Yn5)&MX52tWV; diff --git a/public/js/timeline.js b/public/js/timeline.js index 82f897ce6682d123cfc071f218c17bfa85f007c1..2ead8ca833be488adba33a0d1756ac719651be3d 100644 GIT binary patch delta 737 zcmaKq&1(}u7{(c!7?K(x4Q*O!b+cmG#m(fyFN_9^1`&l63aw&o(#`JdX4}n9x;rry zS!n4&)QfZubEy{ZUMfNaFZJxDpnre`FCGewX9d?JMT_X=J?sG?66wCaeqe|ox}tP0m7-hx zQ0wh9xY@@_iy#p1aq{&#Y!JhQ8n$aPfyAhxyp9DTw%T{W_r3wCqv%g2jei@SxRlQQ zM+)qE9v_#N4D3K15rI$2ih>&!Np?d>*u50syn`*eawSH$FCUKVXOlxv^}M+veU(VE z-4fVkA7${4ovwi)c1-~zbo-ItSHbE7_PPSn;4J%60o>7EO1=5?{d|lTpNt-|GK?tT zR6nx0ik>hHy-H|%Jw>0d2FLy>j2B&(w(pG4nWrK4LIu%Kog^}xQwpZ&@l_J%EtC1Fz^Fe*$x9>&PO-7uUnp1Hm(u}C4+)+MndRj(kis5n)lL{lfv z);F;vLoY2SKfg#rBQLdF0VJ=Rs;O_7YOJYKj4Yj}Z)|94Yz7p!E=nyaEy`0UwzD;~ zFVn4u4Gk@uEfI31W82-rWwX&Nb(t&@@5G0bCs-+Jd&rW ztyHX3tCO3WSCW~Z7h05Kl~y{vr!a*UCh(F;u+sgzS_<|d0~#kbc23I*2zxc zhD=Je)BBqll_uZ*t2|lhmz;P}YD&IBTB2@FxQtjlAMQW4(|7M+B zAI&;hqEnB}F(dS(aH+sWe&fm;7|w z0!B`joOGZW0=b6Ms}mTvPu6b`n|z_2l`|d#Z(Nm+`TLq=?x-vRVj@ ZsU+y{@pBQ!;`@+{DQ1pF>bL1R{Q+11Br^a2 From f87831b5426cd5c9092a514802890d1a89bfe8dc Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Mon, 27 Apr 2020 21:36:16 -0600 Subject: [PATCH 24/24] Update changelog --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d63b6ed84..b63bda23c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -26,7 +26,7 @@ - Updated StoryItemTransformer, increase story length to 5 seconds ([924e424c](https://github.com/pixelfed/pixelfed/commit/924e424c)) - Updated StatusController, fix reblog_count bug ([1dc65e93](https://github.com/pixelfed/pixelfed/commit/1dc65e93)) - Updated NotificationCard.vue component, add follow requests at top of card, remove card-header ([5e48ffca](https://github.com/pixelfed/pixelfed/commit/5e48ffca)) -- Update RemoteProfile.vue component, add warning for empty profiles and last_fetched_at ([66f44a9d](https://github.com/pixelfed/pixelfed/commit/66f44a9d)) +- Updated RemoteProfile.vue component, add warning for empty profiles and last_fetched_at ([66f44a9d](https://github.com/pixelfed/pixelfed/commit/66f44a9d)) ## [v0.10.9 (2020-04-17)](https://github.com/pixelfed/pixelfed/compare/v0.10.8...v0.10.9)