Commit graph

422 commits

Author SHA1 Message Date
Maksim Pechnikov
ff6c727739 Merge branch 'develop' into issue/1276 2019-11-04 20:24:53 +03:00
Maksim Pechnikov
57995fa8cf fix migrate
update migrate
2019-11-03 20:44:59 +03:00
Haelwenn
9d8da9ea15 Merge branch 'fix/migration-schema' into 'develop'
Fix bookmark migration using a query with a schema

See merge request pleroma/pleroma!1923
2019-11-02 15:07:47 +00:00
Maksim Pechnikov
fd8099fb68 Merge branch 'develop' into issue/1276 2019-10-31 21:09:46 +03:00
lain
e14cae25aa Merge branch 'refactor/db-add-defaults' into 'develop'
Set defaults to fields with NULL values

Closes #1358

See merge request pleroma/pleroma!1914
2019-10-31 13:34:57 +00:00
Maksim Pechnikov
1b82eb6d41 move sql (update_markers) from migrate to mix task 2019-10-30 23:22:38 +03:00
Maksim Pechnikov
d719078699 Merge branch 'develop' into issue/1276 2019-10-30 23:07:18 +03:00
Roman Chvanikov
8bb6da7cd6 Remove following column from the migrations 2019-10-30 18:34:14 +03:00
rinpatch
c546da7cfe Fix bookmark migration using a query with a schema
This resulted in failures when updating from Pleroma <1.0 because of all
the new fields that were added to the user schema.
2019-10-30 12:59:14 +03:00
Egor Kislitsyn
40d5fb6ef8
Add a migration to fix blocked follows 2019-10-30 15:52:37 +07:00
Maksim Pechnikov
b27a92e8fa Merge branch 'develop' into issue/1276 2019-10-29 22:23:19 +03:00
rinpatch
3e09b7c5ae Fix two migrations sharing the same module name
This makes ecto execute only the latter one.
2019-10-29 16:56:24 +03:00
kPherox
5334190056
Migrate missing follow requests 2019-10-29 19:22:34 +09:00
Roman Chvanikov
435d220700 Move setDefaultsToTables to past to run before notNull migrations 2019-10-28 19:17:50 +03:00
Roman Chvanikov
4b0893631f Complete defaults 2019-10-28 19:16:19 +03:00
Egor Kislitsyn
4270861085
Merge branch 'develop' into feature/move-activity 2019-10-28 15:10:47 +07:00
Egor Kislitsyn
3c86a0ab24
Fix SetNotNullForUsers migration 2019-10-28 14:45:50 +07:00
lain
2480200759 Merge branch 'refactor/following-relationships' into 'develop'
Move following relationships to a separate table

Closes #1233

See merge request pleroma/pleroma!1814
2019-10-28 07:27:45 +00:00
Roman Chvanikov
0be9cb086b Add migration 2019-10-27 19:29:35 +03:00
kaniini
060adfd762 Merge branch 'improve-user-info-migration' into 'develop'
User info migration improvements

See merge request pleroma/pleroma!1887
2019-10-27 05:33:41 +00:00
kaniini
fbadd36cc0 Merge branch 'refactor/db-not-null-constraints-for-users' into 'develop'
Add NOT NULL constraints for users table

See merge request pleroma/pleroma!1910
2019-10-27 05:32:01 +00:00
kaniini
a9cadf3905 Merge branch 'refactor/db-not-null-constraints-for-user_invite_tokens' into 'develop'
Add NOT NULL constraints for user_invite_tokens table

See merge request pleroma/pleroma!1909
2019-10-27 05:31:52 +00:00
kaniini
4a72d39ca6 Merge branch 'refactor/db-not-null-constraints-for-thread_mutes' into 'develop'
Add NOT NULL constraints for thread_mutes table

See merge request pleroma/pleroma!1908
2019-10-27 05:31:41 +00:00
kaniini
e94144669a Merge branch 'refactor/db-not-null-constraints-for-scheduled_activities' into 'develop'
Add NOT NULL constraints for scheduled_activities table

See merge request pleroma/pleroma!1907
2019-10-27 05:31:31 +00:00
kaniini
9e084771c6 Merge branch 'refactor/db-not-null-constraints-for-registrations' into 'develop'
Add NOT NULL constraints for registrations table

See merge request pleroma/pleroma!1906
2019-10-27 05:31:21 +00:00
kaniini
3ac6160299 Merge branch 'refactor/db-not-null-constraints-for-push_subscriptions' into 'develop'
Add NOT NULL constraints for push_subscriptions table

See merge request pleroma/pleroma!1905
2019-10-27 05:31:09 +00:00
kaniini
26daaa9f04 Merge branch 'refactor/db-not-null-constraints-for-password_reset_tokens' into 'develop'
Add NOT NULL constraints for password_reset_tokens table

See merge request pleroma/pleroma!1904
2019-10-27 05:30:59 +00:00
kaniini
1fc591fcfc Merge branch 'refactor/db-not-null-constraints-for-objects' into 'develop'
Add NOT NULL constraints for objects table

See merge request pleroma/pleroma!1903
2019-10-27 05:30:47 +00:00
kaniini
8b204b4d71 Merge branch 'refactor/db-not-null-constraints-for-oauth_authorizations' into 'develop'
Add NOT NULL constraints for oauth_authorizations table

See merge request pleroma/pleroma!1902
2019-10-27 05:30:36 +00:00
kaniini
fe97493d91 Merge branch 'refactor/db-not-null-constraints-for-oauth_tokens' into 'develop'
Add NOT NULL constraints for oauth_tokens table

See merge request pleroma/pleroma!1901
2019-10-27 05:30:25 +00:00
kaniini
84e992d85b Merge branch 'refactor/db-not-null-constraints-for-notifications' into 'develop'
Add NOT NULL constraints for notifications table

See merge request pleroma/pleroma!1900
2019-10-27 05:30:09 +00:00
kaniini
19a625459b Merge branch 'refactor/db-not-null-constraints-for-moderation_log' into 'develop'
Add NOT NULL constraints for moderation_log table

See merge request pleroma/pleroma!1899
2019-10-27 05:29:56 +00:00
kaniini
79702b54b6 Merge branch 'refactor/db-not-null-constraints-for-markers' into 'develop'
Add NOT NULL constraints for markers table

See merge request pleroma/pleroma!1898
2019-10-27 05:29:45 +00:00
kaniini
2e7e43c853 Merge branch 'refactor/db-not-null-constraints-for-lists' into 'develop'
Add NOT NULL constraints for lists table

See merge request pleroma/pleroma!1897
2019-10-27 05:29:33 +00:00
kaniini
75dab79183 Merge branch 'refactor/db-not-null-constraints-for-instances' into 'develop'
Add NOT NULL constraints for instances table

See merge request pleroma/pleroma!1896
2019-10-27 05:29:18 +00:00
kaniini
24699b991a Merge branch 'refactor/db-not-null-constraints-for-filters' into 'develop'
Add NOT NULL constraints for filters table

See merge request pleroma/pleroma!1895
2019-10-27 05:29:05 +00:00
kaniini
3ac8eb4046 Merge branch 'refactor/db-not-null-constraints-for-conversation_participations' into 'develop'
Add NOT NULL constraints for conversation_participations table

See merge request pleroma/pleroma!1894
2019-10-27 05:28:45 +00:00
kaniini
6be16b8617 Merge branch 'refactor/db-not-null-constraints-for-conversation_participation_recipient_ships' into 'develop'
Add NOT NULL constraints for conversation_participation_recipient_ships table

See merge request pleroma/pleroma!1893
2019-10-27 05:28:32 +00:00
kaniini
b05fbc890e Merge branch 'refactor/db-not-null-constraints-for-config' into 'develop'
Add NOT NULL constraints for config table

See merge request pleroma/pleroma!1892
2019-10-27 05:28:18 +00:00
kaniini
8785d7ba5d Merge branch 'refactor/db-not-null-constraints-for-bookmarks' into 'develop'
Add NOT NULL constraints for bookmarks table

See merge request pleroma/pleroma!1891
2019-10-27 05:28:03 +00:00
kaniini
93f6f173ce Merge branch 'refactor/db-not-null-constraints-for-apps' into 'develop'
Add NOT NULL constraints for apps table

See merge request pleroma/pleroma!1890
2019-10-27 05:27:43 +00:00
kaniini
5cb5f9a270 Merge branch 'refactor/db-not-null-constraints-for-activity-expirations' into 'develop'
Add NOT NULL constraints for activity_expirations table

See merge request pleroma/pleroma!1889
2019-10-27 05:27:24 +00:00
Roman Chvanikov
175f6c8355 Add migration 2019-10-26 22:59:24 +03:00
Roman Chvanikov
bdb2039453 Add migration 2019-10-26 22:58:37 +03:00
Roman Chvanikov
f5f9197fce Add migration 2019-10-26 22:57:43 +03:00
Roman Chvanikov
2e608f7cbf Add migration 2019-10-26 22:56:48 +03:00
Roman Chvanikov
2810729218 Add migration 2019-10-26 22:55:29 +03:00
Roman Chvanikov
cf72b7649e Add migration 2019-10-26 22:54:37 +03:00
Roman Chvanikov
a4cf664385 Add migration 2019-10-26 22:53:41 +03:00
Roman Chvanikov
776c31267f Add migration 2019-10-26 22:52:49 +03:00
Roman Chvanikov
c0b0fb19c8 Add migration 2019-10-26 22:50:52 +03:00
Roman Chvanikov
5fece5f8bc Put correct migration 2019-10-26 22:49:37 +03:00
Roman Chvanikov
d58cca5f0a Add migration 2019-10-26 22:46:09 +03:00
Roman Chvanikov
cf0fa124a2 Add migration 2019-10-26 22:45:24 +03:00
Roman Chvanikov
13cc52dc60 Add migration 2019-10-26 22:44:42 +03:00
Roman Chvanikov
55203c198b Add migration 2019-10-26 22:43:32 +03:00
Roman Chvanikov
b85bee32da Add migration 2019-10-26 22:42:24 +03:00
Roman Chvanikov
b33aacc4fb Add migration 2019-10-26 22:40:51 +03:00
Roman Chvanikov
382e83fab5 Add migration 2019-10-26 22:39:24 +03:00
Roman Chvanikov
0223dc4e02 Add migration 2019-10-26 22:38:07 +03:00
Roman Chvanikov
d12555a69e Add migration 2019-10-26 22:37:30 +03:00
Roman Chvanikov
7ac42fefe3 Add migration 2019-10-26 22:36:43 +03:00
Roman Chvanikov
c1ff8472fd Add migration 2019-10-26 22:33:18 +03:00
Roman Chvanikov
5cb03fe801 Add migration 2019-10-26 22:32:31 +03:00
Roman Chvanikov
cd0218c205 Add migration 2019-10-26 22:31:25 +03:00
Roman Chvanikov
6e7fd364a4 Add migration 2019-10-26 22:28:18 +03:00
rinpatch
12ab7b3280 User info migration improvements
- Move column additions into a separate migration, so postgres doesn't
need an exclusive lock on the table for the main part
- Fill in columns by using one big update statement instead of a bunch
of small ones because it's much faster (the migration took 140s on
patch.cx database)
2019-10-26 03:45:24 +03:00
Egor Kislitsyn
b777083f3f
Add also_known_as field to Pleroma.User 2019-10-25 19:14:18 +07:00
Egor Kislitsyn
4c1dd55c48 Merge remote-tracking branch 'upstream/develop' into refactor/following-relationships 2019-10-24 14:55:36 +07:00
Maksim Pechnikov
99cf1ef9be Merge branch 'develop' into issue/1276 2019-10-24 09:23:59 +03:00
Maksim Pechnikov
d3fb9e02cc add tests 2019-10-23 22:48:04 +03:00
Maksim Pechnikov
aa64b3108b fix migrate 2019-10-23 22:02:59 +03:00
Ivan Tashkinov
8cc809e44e Merge remote-tracking branch 'remotes/upstream/develop' into 1304-user-info-deprecation
# Conflicts:
#	lib/pleroma/notification.ex
2019-10-23 17:22:42 +03:00
Ivan Tashkinov
11cd994425 [#1304] Fixed null::jsonb handling in User.Info migration. 2019-10-23 17:15:48 +03:00
Maksim Pechnikov
d4270397dc Marker: added unread_count field 2019-10-22 14:51:46 +03:00
Ivan Tashkinov
7c7f90bc4f [#1304] Merged develop, handled User.Info.invisible. 2019-10-21 11:58:22 +03:00
Maksim Pechnikov
243719a965 Merge branch 'develop' into feature/masto_api_markers 2019-10-21 11:32:28 +03:00
Egor Kislitsyn
f726d953d5
Fix typos 2019-10-21 14:56:39 +07:00
Egor Kislitsyn
e37d4b2ddf
Revert "Skip deactivated users in followers import"
This reverts commit 8ad015ef64.
2019-10-21 14:52:52 +07:00
Ivan Tashkinov
75da202ab7 [#1304] Typo fix. 2019-10-21 10:20:28 +03:00
Egor Kislitsyn
4ea1a61b00
Merge branch 'develop' into refactor/following-relationships 2019-10-21 14:19:15 +07:00
Ivan Tashkinov
ee04fbc35a [#1304]. Post-merge fixes. Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into 1304-user-info-deprecation
# Conflicts:
#	CHANGELOG.md
#	lib/pleroma/notification.ex
#	lib/pleroma/user.ex
#	lib/pleroma/user/info.ex
#	lib/pleroma/web/admin_api/admin_api_controller.ex
#	lib/pleroma/web/ostatus/handlers/follow_handler.ex
#	lib/pleroma/web/ostatus/ostatus.ex
#	lib/pleroma/web/salmon/salmon.ex
#	lib/pleroma/web/websub/websub.ex
#	test/web/admin_api/admin_api_controller_test.exs
#	test/web/federator_test.exs
#	test/web/mastodon_api/controllers/conversation_controller_test.exs
#	test/web/ostatus/ostatus_controller_test.exs
#	test/web/ostatus/ostatus_test.exs
#	test/web/salmon/salmon_test.exs
#	test/web/websub/websub_test.exs
2019-10-20 22:29:56 +03:00
Ivan Tashkinov
c6fdfbc4f1 Merge remote-tracking branch 'remotes/upstream/develop' into 1304-user-info-deprecation
# Conflicts:
#	CHANGELOG.md
#	lib/pleroma/notification.ex
#	lib/pleroma/user.ex
#	lib/pleroma/user/info.ex
#	lib/pleroma/web/activity_pub/activity_pub.ex
#	lib/pleroma/web/admin_api/admin_api_controller.ex
#	lib/pleroma/web/ostatus/handlers/follow_handler.ex
#	lib/pleroma/web/ostatus/ostatus.ex
#	lib/pleroma/web/salmon/salmon.ex
#	lib/pleroma/web/websub/websub.ex
#	test/web/admin_api/admin_api_controller_test.exs
#	test/web/federator_test.exs
#	test/web/mastodon_api/controllers/conversation_controller_test.exs
#	test/web/ostatus/ostatus_controller_test.exs
#	test/web/ostatus/ostatus_test.exs
#	test/web/salmon/salmon_test.exs
#	test/web/websub/websub_test.exs
2019-10-20 20:43:18 +03:00
Ivan Tashkinov
e8843974cb [#1304] Moved remaining fields from User.Info to User.
Misc. fixes / improvements.
2019-10-20 13:42:42 +03:00
Ariadne Conill
34754938ba add missing migration to drop websub table 2019-10-20 10:39:03 +00:00
rinpatch
39e996528c Fix a migration wiping user info of users that don't have any mutes
And introduce safe_jsonb_set
2019-10-18 15:22:07 +03:00
Maksim Pechnikov
66b5d0ff55 add Markers /api/v1/markers 2019-10-17 15:26:59 +03:00
Ivan Tashkinov
10ff01acd9 [#1304] Moved all non-mutes / non-blocks fields from User.Info to User. WIP. 2019-10-16 21:59:21 +03:00
Egor Kislitsyn
8ad015ef64
Skip deactivated users in followers import 2019-10-14 14:16:57 +07:00
Egor Kislitsyn
059005ff82
Replace user.following with Pleroma.FollowingRelationship 2019-10-11 02:35:32 +07:00
Egor Kislitsyn
2c7ff32e5b
Add thread_visibility to migrations 2019-10-10 21:11:34 +07:00
Egor Kislitsyn
761ad0b48e
Split CreateFollowingRelationships to multiple migrations 2019-10-08 20:27:42 +07:00
Egor Kislitsyn
6291eaa590 Update CreateFollowingRelationships 2019-10-08 20:19:38 +07:00
rinpatch
32808208be Enable mix format for migrations 2019-10-08 15:16:39 +03:00
Egor Kislitsyn
12ebeef130
Add CreateFollowingRelationships migration 2019-10-08 18:05:23 +07:00
rinpatch
ee88afb2e2 Fix muted notification migration only working with a schema
Should also improve performance. I tested it on my local DB, but if
anyone has a backup of <=1.0 db they can test this on, please do
2019-10-06 18:06:04 +03:00
rinpatch
125f96e706 Fix the use of queries with a schema in a migration 2019-10-06 17:23:43 +03:00
rinpatch
fefbd31c6e Move local keys out of user.info 2019-10-06 16:56:36 +03:00
eugenijm
8249924485 Mastodon API: Add pleroma.unread_conversation_count to the Account entity 2019-10-05 20:12:00 +03:00
rinpatch
1fba66178d Merge branch 'develop' into cleanup/drop-subscription-table-if-exists 2019-09-30 00:26:49 +03:00
rinpatch
81b4243173 Remove subscription_notifications table if it existed
Followup to !1741
2019-09-29 23:52:40 +03:00
rinpatch
e9d1aa75d5 Revert subscription refactoring.
As discussed in pleroma-meta#2

This reverts commit eb9aa7aa10, reversing
changes made to c4fbb56984.
2019-09-29 18:43:27 +03:00
Roman Chvanikov
b4b147000c Merge develop 2019-09-26 10:38:54 +03:00
rinpatch
a21584556f Update oban to 0.8.1
This version uses a different locking mechanism, which gets rid of
`WARNING:  you don't own a lock of type ShareLock` log spam
2019-09-17 13:04:43 +03:00
Roman Chvanikov
76c3e290fc Merge develop 2019-09-16 20:30:42 +03:00
kaniini
17142a3720 Merge branch 'feature/delivery-tracking' into 'develop'
Track signed fetches of objects and use them for delete federation

See merge request pleroma/pleroma!1661
2019-09-16 07:39:58 +00:00
rinpatch
ac4a748fad Disallow NULLs in deliveries 2019-09-13 19:28:35 +03:00
Roman Chvanikov
0bd2b85edb Separate Subscription Notifications from regular Notifications 2019-09-13 18:25:27 +03:00
rinpatch
769fb778d4 Track object/create activity fetches 2019-09-12 21:37:36 +03:00
Ivan Tashkinov
e890ea7e82 [#1149] Added Oban job for "activity_expiration". Merged remote-tracking branch 'remotes/upstream/develop' into 1149-oban-job-queue
# Conflicts:
#	config/config.exs
2019-08-31 14:25:43 +03:00
Maxim Filippov
37dd3867bb Log admin/moderator actions 2019-08-25 19:39:37 +00:00
lain
cc6c0b4ba6 Merge remote-tracking branch 'origin/develop' into sixohsix/pleroma-post_expiration 2019-08-24 15:48:33 +02:00
Ivan Tashkinov
c34126f89c Merge remote-tracking branch 'remotes/upstream/develop' into 1149-oban-job-queue 2019-08-24 09:29:54 +03:00
rinpatch
05e7d0a438 Add an index on object likes
In !1538 favorites timeline was switched to use the joined object, but
no idex on likes in the joined object was added.
2019-08-23 03:17:20 +03:00
Ivan Tashkinov
256ff09aa8 [#1149] Merge remote-tracking branch 'remotes/upstream/develop' into 1149-oban-job-queue
# Conflicts:
#	lib/pleroma/application.ex
#	lib/pleroma/scheduled_activity_worker.ex
#	lib/pleroma/web/federator/retry_queue.ex
#	lib/pleroma/web/oauth/token/clean_worker.ex
#	test/user_test.exs
#	test/web/federator_test.exs
2019-08-22 20:59:58 +03:00
lain
560dbad538 Merge remote-tracking branch 'origin/develop' into pleroma-conversations 2019-08-14 15:30:40 +02:00
Ivan Tashkinov
267262491e Merge remote-tracking branch 'remotes/upstream/develop' into 1149-oban-job-queue 2019-08-09 20:09:56 +03:00
lain
f88560accd Conversations: Add recipient list to conversation participation.
This enables to address the same group of people every time.
2019-08-02 11:55:41 +02:00
Ivan Tashkinov
23d279e03e [#1149] Replaced RetryQueue with oban-based retries. 2019-08-01 17:28:00 +03:00
Mike Verdone
666514194a Add activity expirations table
Add a table to store activity expirations. An activity can have zero or
one expirations. The expiration has a scheduled_at field which stores
the time at which the activity should expire and be deleted.
2019-07-24 13:14:52 +02:00
Roman Chvanikov
9bca70b10a Merge develop 2019-07-16 16:19:19 +03:00
Egor Kislitsyn
64a946643e Merge remote-tracking branch 'pleroma/develop' into feature/addressable-lists 2019-07-15 14:11:54 +07:00
Roman Chvanikov
c729883936 Merge branch 'develop' into feature/digest-email 2019-07-14 21:43:30 +03:00
Alexander Strizhakov
e7c39b7ac8 Feature/1072 muting notifications 2019-07-14 13:29:31 +00:00
Roman Chvanikov
eae991b06a merge develop 2019-07-12 18:08:27 +03:00
Egor Kislitsyn
182f7bbb11 Merge branch 'develop' into feature/addressable-lists 2019-07-11 13:26:59 +07:00
Alex S
936050257d saving following_address for existing users 2019-07-10 17:42:18 +03:00
Alex S
f8786fa6f2 adding following_address field to user 2019-07-10 17:42:18 +03:00
Roman Chvanikov
371d39e160 Merge develop 2019-07-09 21:21:09 +03:00
Roman Chvanikov
efefee8241 Split alters rather than work with indexes 2019-07-03 14:56:02 +03:00
Roman Chvanikov
291d95dcc3 Fix migration 2019-07-03 01:14:40 +03:00
Maksim
85c7916c94 [#1033] Fix database migrations 2019-07-01 01:08:07 +00:00
Roman Chvanikov
657277ffc0 Resolve conflicts 2019-06-29 00:52:50 +03:00
Alex S
982cad0268 support for config groups 2019-06-23 08:16:16 +03:00
Alexander Strizhakov
c2ca1f22a2 it is changed in compile time
we can't change module attributes and endpoint settings in runtime
2019-06-14 15:45:05 +00:00
Sergey Suprunenko
a7d956d383 Remove unused imports and aliases from migration 2019-06-10 13:20:37 +00:00
Roman Chvanikov
01fe5abad1 Resolve conflicts 2019-06-07 01:20:50 +03:00
Egor Kislitsyn
17004a0f1a Create index on activities.local 2019-06-05 16:37:43 +07:00
Roman Chvanikov
b1b1a270e8 Fix conflict 2019-06-05 02:45:21 +03:00
Egor Kislitsyn
9ce928d823 Merge remote-tracking branch 'pleroma/develop' into feature/addressable-lists 2019-06-04 16:28:23 +07:00
kaniini
94d12a79c4 Merge branch 'hotfix/add-in_reply_to_index' into 'develop'
Add index on inReplyTo for objects

See merge request pleroma/pleroma!1240
2019-06-04 05:38:13 +00:00
Mark Felder
6ef145b4fc Merge branch 'develop' into feature/digest-email 2019-06-03 15:29:53 -05:00
rinpatch
cfc3c62b2f Add missing tag index on objects
The previous activity index is useless because objects are not embedded
anymore and instead a joined object is queried.
2019-06-03 20:42:13 +03:00
rinpatch
be56801dda Add index on inReplyTo for objects
Fixes the performance of `get_existing_votes`
2019-06-03 19:26:43 +03:00
Roman Chvanikov
ce47017c89 Merge develop 2019-05-29 18:18:22 +03:00
William Pitcock
5fbbc57c1b add migration to add notification settings to user accounts 2019-05-25 07:25:13 +00:00
Egor Kislitsyn
f333041a0a Merge remote-tracking branch 'pleroma/develop' into feature/addressable-lists 2019-05-24 21:05:57 +07:00
lain
022e6e4b44 RUM: Remove vacuum analyze from migration
Can't be run in a trnasaction.
2019-05-17 14:59:01 +02:00
Egor Kislitsyn
557f0e33a7 Merge remote-tracking branch 'pleroma/develop' into feature/addressable-lists 2019-05-17 19:57:14 +07:00
Egor Kislitsyn
f2936e0a07 Add ap_id to List 2019-05-17 19:56:37 +07:00