Egor Kislitsyn
3c0abfca53
Merge remote-tracking branch 'upstream/develop' into feature/move-activity
2019-11-14 16:39:45 +07:00
Egor Kislitsyn
e6d7e27bd6
Add allow_following_move
setting to User
2019-11-12 18:45:28 +07:00
lain
8521553ad9
User: Don't let deactivated users authenticate.
2019-11-11 12:37:38 +01:00
Ivan Tashkinov
5cf2c7422b
[ #1335 ] Applied code review suggestions.
2019-11-11 14:16:57 +03:00
Ivan Tashkinov
3db988250b
[ #1335 ] User: refactored :blocks field into :blocked_users relation.
...
Introduced UserBlock.
2019-11-10 16:30:21 +03:00
Maksim Pechnikov
4b7c11e3f9
excluded invisible actors from gets /api/v1/accounts/:id
2019-11-04 20:44:24 +03:00
lain
0c31258616
User: Don't pull remote users follower count immediately after deactivating.
...
The other instance doesn't necessarily know that anything changed yet, and it
will be fixed up at the next user pull anyway.
Closes #1369
2019-11-04 14:36:54 +01:00
Egor Kislitsyn
4270861085
Merge branch 'develop' into feature/move-activity
2019-10-28 15:10:47 +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
eugenijm
0580654485
Mark the conversations with the blocked user as read and update the blocking user's unread_conversation_count
.
...
Since the conversations with the blocked user are invisible, they are excluded
from the blocking user's `unread_conversation_count`.
2019-10-26 02:29:18 +03:00
Egor Kislitsyn
b777083f3f
Add also_known_as
field to Pleroma.User
2019-10-25 19:14:18 +07:00
Egor Kislitsyn
dbee53c2df
Remove unused Pleroma.User.info_fields/0
2019-10-25 16:48:01 +07:00
Egor Kislitsyn
4c1dd55c48
Merge remote-tracking branch 'upstream/develop' into refactor/following-relationships
2019-10-24 14:55:36 +07:00
Ivan Tashkinov
11cd994425
[ #1304 ] Fixed null::jsonb handling in User.Info migration.
2019-10-23 17:15:48 +03:00
Ivan Tashkinov
7c7f90bc4f
[ #1304 ] Merged develop
, handled User.Info.invisible.
2019-10-21 11:58:22 +03:00
Ivan Tashkinov
a11a7176d5
Merge remote-tracking branch 'remotes/upstream/develop' into 1304-user-info-deprecation
...
# Conflicts:
# lib/pleroma/user/info.ex
# lib/pleroma/web/activity_pub/activity_pub.ex
# lib/pleroma/web/activity_pub/transmogrifier.ex
2019-10-21 11:05:09 +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
b4cbf0568b
[ #1304 ] Analysis issue fix.
2019-10-20 13:58:27 +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
95871cb462
user: implement User.invisible?/1
2019-10-19 23:21:37 +00:00
Ariadne Conill
d379b48769
kill almost all of the OStatus module
2019-10-18 14:50:09 +00:00
Ariadne Conill
4f82e42e4e
websub: remove entirely
2019-10-18 14:50:09 +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
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
feld
21f0757b0d
Merge branch 'feature/multiple-users-activation-permissions' into 'develop'
...
Ability to toggle activation status, permission group & delete multiple users
Closes admin-fe#39
See merge request pleroma/pleroma!1825
2019-10-16 12:14:47 +00:00
Maxim Filippov
da0e4879bc
DELETE /api/pleroma/admin/users now accepts nicknames array
2019-10-15 17:33:29 +02:00
Egor Kislitsyn
059005ff82
Replace user.following
with Pleroma.FollowingRelationship
2019-10-11 02:35:32 +07:00
lain
c54ae662dc
Merge remote-tracking branch 'origin/develop' into benchmark-finishing
2019-10-10 14:40:59 +02:00
Maxim Filippov
ad42837244
Ability to toggle activation status and permission group for a group of users
2019-10-09 17:03:54 +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
kaniini
e07e9cb75e
Revert "Merge branch 'user-info-unread-direct-conversation' into 'develop'"
...
This reverts merge request !1737
2019-10-05 10:00:05 +00:00
kaniini
5c04e81724
Merge branch 'user-info-unread-direct-conversation' into 'develop'
...
Add the `unread_conversation_count` field to the user info
See merge request pleroma/pleroma!1737
2019-10-04 17:33:18 +00:00
rinpatch
8217292085
Fix get_cached_by_nickname_or_id not allowing to get local users by
...
nickname
Closes #1293
2019-10-04 14:44:09 +03:00
eugenijm
06d9df79c5
Mastodon API: Add pleroma.unread_conversation_count
to the Account entity
2019-10-04 00:53:23 +03:00
Maksim Pechnikov
3d722dc200
Merge branch 'develop' into tests/mastodon_api_controller.ex
2019-09-26 16:16:30 +03:00
kaniini
48a82c4609
Merge branch 'refactor/user' into 'develop'
...
Simplify updating user's `info`
See merge request pleroma/pleroma!1712
2019-09-26 03:00:38 +00:00
kaniini
3ff57f1fd3
Merge branch 'hex-flake-id' into 'develop'
...
Replace `Pleroma.FlakeId` with `flake_id` hex package
See merge request pleroma/pleroma!1692
2019-09-26 02:51:54 +00:00
Egor Kislitsyn
b5dfe83433
Replace Pleroma.FlakeId
with flake_id
hex package
2019-09-25 17:14:31 +07:00
Egor Kislitsyn
1bea67cb5e
Cleanup Pleroma.User
2019-09-24 19:50:09 +07:00
Egor Kislitsyn
209395c7e6
Add User.change_info/2 and User.update_info/2
2019-09-24 19:50:07 +07:00
Egor Kislitsyn
79b25be4e1
Do not return tuple when unneeded
2019-09-24 15:03:20 +07:00
Maksim Pechnikov
d75d0ae134
Merge branch 'develop' into tests/mastodon_api_controller.ex
2019-09-24 08:06:04 +03:00
Maksim Pechnikov
179fa32dd5
Merge branch 'develop' into tests/mastodon_api_controller.ex
2019-09-23 21:41:57 +03:00
Maxim Filippov
6f25668215
Admin API: Add ability to force user's password reset
2019-09-22 16:08:07 +03:00
rinpatch
95a4a19417
Merge branch 'support/tests' into 'develop'
...
add tests for activity_pub/utils.ex
See merge request pleroma/pleroma!1627
2019-09-17 14:47:26 +00: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
Maksim Pechnikov
8751809e1e
Merge branch 'develop' into support/tests
2019-09-15 14:22:15 +03:00
Ivan Tashkinov
610236d6be
[ #1149 ] Merge remote-tracking branch 'remotes/upstream/develop' into 1149-oban-job-queue
...
# Conflicts:
# docs/config.md
2019-09-15 10:12:24 +03:00
rinpatch
62bbba80f3
Merge branch 'fix/truncate-remote-user-fields' into 'develop'
...
Truncate remote user fields
See merge request pleroma/pleroma!1619
2019-09-14 16:39:42 +00:00
Ivan Tashkinov
6bcedb693c
[ #1149 ] Merge remote-tracking branch 'remotes/upstream/develop' into 1149-oban-job-queue
...
# Conflicts:
# docs/config.md
# mix.lock
2019-09-14 16:11:44 +03:00
rinpatch
ba70a8cae6
Merge branch 'develop' into feature/delivery-tracking
2019-09-13 19:42:53 +03:00
lain
53a3ad6043
Merge branch 'cleanup-activity' into 'develop'
...
Cleanup `Pleroma.Activity` and add more tests
See merge request pleroma/pleroma!1623
2019-09-13 14:48:00 +00:00
rinpatch
ce23529d91
Use delivery info when federating deletes
2019-09-13 11:38:17 +03:00
Egor Kislitsyn
25d8216804
Add email change endpoint
2019-09-13 13:09:35 +07:00
Egor Kislitsyn
39dc9b470c
Cleanup Pleroma.Activity and Pleroma.Web.ActivityPub.Utils
2019-09-13 12:44:59 +07:00
rinpatch
769fb778d4
Track object/create activity fetches
2019-09-12 21:37:36 +03:00
Maksim Pechnikov
39f99dc6cd
Merge branch 'develop' into support/tests
2019-09-07 22:13:43 +03:00
Maksim Pechnikov
ab2f21e470
tests for mastodon_api_controller.ex
2019-09-06 21:50:00 +03:00
Alex S
b3f6f6a409
generating remote users
2019-09-06 20:14:02 +03:00
Ivan Tashkinov
ca1ba1e272
[ #1149 ] Merge remote-tracking branch 'remotes/upstream/develop' into 1149-oban-job-queue
...
# Conflicts:
# test/web/twitter_api/twitter_api_controller_test.exs
2019-09-06 13:26:05 +03:00
rinpatch
26fe6f70c9
Move checking for restrict_local to User.get_cached_by_id_or_nickname
2019-09-05 15:39:10 +03:00
Sadposter
cb99cfcc65
don't try to truncate non-strings
2019-09-04 15:57:42 +01:00
Sadposter
2975da284b
truncate remote user bio/display name
2019-09-04 15:45:40 +01:00
Maksim Pechnikov
8cbad5500c
add tests for activity_pub/utils.ex
2019-09-04 15:25:12 +03:00
rinpatch
cc1d1ee406
Mastdon API: Add ability to get a remote account by nickname to
...
`/api/v1/accounts/:id`
2019-09-03 19:26:10 +03:00
Ivan Tashkinov
dd017c65a4
[ #1149 ] Refactored Oban workers API (introduced enqueue/3
).
2019-08-31 21:58:42 +03:00
Ivan Tashkinov
a90ea8ba15
[ #1149 ] Addressed code review comments (code style, jobs pruning etc.).
2019-08-31 19:08:56 +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
lain
90986667ce
Merge branch 'admin-create-users' into 'develop'
...
user creation admin api will create multiple users
See merge request pleroma/pleroma!1170
2019-08-24 16:04:19 +00: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
ef43016b2c
Merge branch 'feature/custom-fields' into 'develop'
...
Add custom profile fields
See merge request pleroma/pleroma!1488
2019-08-20 12:44:14 +00:00
lain
49ae3191df
Merge branch 'hotfix/user_unfollow' into 'develop'
...
[#1177 ] fixed User.unfollow with synchronization external user
See merge request pleroma/pleroma!1579
2019-08-19 14:36:10 +00:00
Sadposter
94e336d9d5
clear follow requests when blocking a user
2019-08-18 20:30:57 +01:00
Maksim Pechnikov
3315a2a1c3
fixed User.unfollow with synchronization external user
2019-08-16 15:58:42 +03:00
lain
7ab2dbbdb6
Merge branch 'pleroma-conversations' into 'develop'
...
Extended Pleroma Conversations
See merge request pleroma/pleroma!1535
2019-08-16 12:55:33 +00:00
rinpatch
bd5ad0af78
Cache follow state
2019-08-15 00:47:30 +03:00
Ivan Tashkinov
8778c16dac
Merge remote-tracking branch 'remotes/upstream/develop' into 1149-oban-job-queue
2019-08-14 21:44:50 +03:00
lain
560dbad538
Merge remote-tracking branch 'origin/develop' into pleroma-conversations
2019-08-14 15:30:40 +02:00
Egor Kislitsyn
e457fcc479
Add :max_remote_account_fields
config option
2019-08-14 14:58:06 +07:00
rinpatch
83a3de8cc4
Merge branch 'length-limit-bio' into 'develop'
...
Add configurable length limits for `User.bio` and `User.name`
See merge request pleroma/pleroma!1515
2019-08-13 22:40:13 +00:00
Ivan Tashkinov
0e1c481a94
[ #1149 ] Added more oban workers. Refactoring.
2019-08-13 20:20:26 +03:00
lain
a2b98f6d58
Merge remote-tracking branch 'origin/develop' into pleroma-conversations
2019-08-08 16:04:20 +02:00
Roman Chvanikov
9d4f34fbcb
Merge branch 'develop' into feature/digest-email
2019-08-02 18:16:04 +03:00
lain
5ff8f07ca9
Merge branch 'feature/hide-follows-remote' into 'develop'
...
Refactor Follows/Followers counter syncronization and set hide_followers/hide_follows for remote users
See merge request pleroma/pleroma!1411
2019-08-02 11:23:07 +00: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
Egor Kislitsyn
9ca4506355
Add configurable length limits for User.bio
and User.name
2019-08-01 15:53:37 +07:00
rinpatch
301ea0dc04
Add tests for counters being updated on follow
2019-07-31 21:09:13 +03:00
Maksim
58443d0cd6
tests for TwitterApi/UtilController
2019-07-31 15:14:36 +00:00
rinpatch
f42719506c
Fix credo issues
2019-07-31 14:20:34 +03:00
rinpatch
c88a5d3251
Merge branch 'develop' into feature/hide-follows-remote
2019-07-31 14:12:29 +03:00
Maksim
6a4b8b2681
fixed User.update_and_set_cache for stale user
2019-07-28 20:29:26 +00:00
rinpatch
41e0304757
Merge branch 'develop' into feature/hide-follows-remote
2019-07-25 18:43:30 +03:00
Eugenij
4504135894
Add domain_blocking
to the relationship API (GET /api/v1/accounts/relationships)
2019-07-24 15:12:27 +00:00
Roman Chvanikov
d2da3d30f3
Merge branch 'develop' into feature/digest-email
2019-07-24 16:37:52 +03:00
Maksim
c49a09ed88
tests for Pleroma.Web.ActivityPub.Publisher
2019-07-23 19:15:48 +00:00
Sadposter
54a161cb7a
move unauth'd user blocks?/2 check
2019-07-23 19:44:47 +01:00
Alexander Strizhakov
b70e659304
Feature/1087 wildcard option for blocks
2019-07-22 14:33:58 +00:00
rinpatch
196cad46f3
Resolve merge conflicts
2019-07-20 22:04:47 +03:00
rinpatch
d4ee76ab63
Apply suggestion to lib/pleroma/user.ex
2019-07-20 18:52:41 +00:00
Roman Chvanikov
8292331b35
Merge branch 'develop' into feature/digest-email
2019-07-20 16:41:58 +03:00
Ivan Tashkinov
d0198fe215
[ #1112 ] Preserving id
on user insert conflict on order not to violate conversation_partipations_user_id_fkey constraint.
2019-07-20 13:03:34 +03:00
Roman Chvanikov
36049f08ef
Merge develop
2019-07-20 01:03:25 +03:00
Ariadne Conill
62e5ff624e
user: add is_internal_user? helper function
2019-07-17 17:12:42 +00:00
Ariadne Conill
4885473be2
user: refactor get_or_create_instance_user() into get_or_create_service_actor_by_id()
2019-07-17 16:03:05 +00:00
Roman Chvanikov
9bca70b10a
Merge develop
2019-07-16 16:19:19 +03:00
Maksim
c32384c1ea
tests for Pleroma.Signature
2019-07-15 13:01:22 +00: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
rinpatch
0c2dcb4c69
Add follow information refetching after following/unfollowing
2019-07-14 01:58:39 +03:00
rinpatch
e8fa477793
Refactor Follows/Followers counter syncronization
...
- Actually sync counters in the database instead of info cache (which got
overriden after user update was finished anyway)
- Add following count field to user info
- Set hide_followers/hide_follows for remote users based on http status
codes for the first collection page
2019-07-13 19:27:49 +03:00
Roman Chvanikov
eae991b06a
merge develop
2019-07-12 18:08:27 +03:00
Alex S
beba7bbc85
removing synchronization worker
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
Sergey Suprunenko
2d2b50ccca
Send and handle "Delete" activity for deleted users
2019-07-10 05:16:08 +00:00
Roman Chvanikov
371d39e160
Merge develop
2019-07-09 21:21:09 +03:00
Alexander Strizhakov
d6b0fce6e9
Fix/1019 correct count remote users
2019-07-09 17:36:35 +00:00
Maksim
6dadf5d6f4
[ #1043 ] fix search accounts.
2019-07-05 04:22:08 +00:00
Roman Chvanikov
657277ffc0
Resolve conflicts
2019-06-29 00:52:50 +03:00
Maksim
a0c4ebb4d7
[ #184 ] small refactoring reset password
2019-06-24 19:01:56 +00:00
Sergey Suprunenko
2c63c67512
Rework user deletion
2019-06-24 18:59:12 +00: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
Roman Chvanikov
01fe5abad1
Resolve conflicts
2019-06-07 01:20:50 +03:00
kaniini
3f6da9c45a
Merge branch 'bugfix/377-stuck-follow-request' into 'develop'
...
Bugfix/377 stuck follow request
Closes #377
See merge request pleroma/pleroma!1250
2019-06-05 15:52:40 +00:00
kaniini
a511d2f900
Merge branch 'improve-search' into 'develop'
...
[#943 ] Contain search for unauthenticated users
See merge request pleroma/pleroma!1220
2019-06-05 15:51:32 +00:00
lain
076c9ae40e
User: Remove superfluous maybe_follow
.
2019-06-05 14:24:31 +02:00
lain
024dfdc39c
Typo + Linting.
2019-06-05 12:45:28 +02:00
lain
8b9a0dd4a7
User: Don't error out when following a user that's already followed.
...
This leads to a few situations where it is impossible to follow a user.
2019-06-05 12:06:45 +02:00
Egor Kislitsyn
1cb245c982
Fix formatting
2019-06-05 16:55:17 +07:00
Egor Kislitsyn
5b04f07a1e
Limit search for unauthenticated users to local users only
2019-06-05 16:51:04 +07:00
Mark Felder
6ef145b4fc
Merge branch 'develop' into feature/digest-email
2019-06-03 15:29:53 -05:00
lain
2b664b048e
User: Add function to get AP ids from nicknames.
2019-06-03 18:16:11 +02:00
Sachin Joshi
ad5263c647
Merge remote-tracking branch 'upstream/develop' into admin-create-users
2019-06-01 11:42:37 +05:45
Sachin Joshi
5534d4c676
make bulk user creation from admin works as a transaction
2019-06-01 11:17:53 +05:45
feld
6872c5f88f
Mastodon API search default value for "resolve" is false
...
https://docs.joinmastodon.org/api/rest/accounts/
https://docs.joinmastodon.org/api/rest/search/
2019-05-31 18:46:57 +00:00
Egor Kislitsyn
99f70c7e20
Use Pleroma.Config everywhere
2019-05-30 15:33:58 +07:00
Roman Chvanikov
ce47017c89
Merge develop
2019-05-29 18:18:22 +03:00
William Pitcock
045803346d
move key generation functions into Pleroma.Keys module
2019-05-22 03:58:15 +00:00
Sadposter
daeae8e2e7
Move default mascot configuration to config/
2019-05-20 16:12:55 +01:00
lain
249b31ffe5
Fix specs.
2019-05-17 11:49:13 +02:00
Alexander Strizhakov
7ed682213f
Fix/902 random compile failing
2019-05-17 07:25:20 +00:00
Sergey Suprunenko
2c303afc8b
Remove duplicated entries in users' following lists
2019-05-16 20:04:08 +00:00
Alexander Strizhakov
73ae58fdfa
Feature/896 toggling confirmation
2019-05-16 13:23:41 +00:00
Mark Felder
1caa6331ea
Group def perform() together to fix the build
2019-05-14 12:33:03 -05:00
lambda
692919c7d2
Merge branch 'refactor/use-job-queue-everywhere' into 'develop'
...
use job queue everywhere
Closes #862
See merge request pleroma/pleroma!1142
2019-05-14 15:27:34 +00:00
William Pitcock
ac3a3abf6b
clean up follow/block imports a little
2019-05-14 15:07:38 +00:00
Egor Kislitsyn
b92c004ea8
Reuse query from User.restrict_deactivated/1
2019-05-14 18:29:10 +07:00
Egor Kislitsyn
5e2b491276
Merge remote-tracking branch 'pleroma/develop' into feature/disable-account
2019-05-14 18:15:56 +07:00