lain
205313e541
Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into remake-remodel-dms
2020-05-06 11:44:30 +02:00
lain
92caae5923
Undoing: Move undoing blocks to the pipeline everywhere.
2020-05-05 18:02:24 +02:00
lain
a3bb2e5474
Undoing: Move undoing announcements to the pipeline everywhere.
2020-05-05 16:42:34 +02:00
lain
b34debe615
Undoing: Move undoing reactions to the pipeline everywhere.
2020-05-05 16:17:09 +02:00
lain
a3071f0231
Undoing: Move undoing likes to the pipeline everywhere.
2020-05-05 15:08:41 +02:00
lain
ad771546d8
Transmogrifier: Move emoji reactions to common pipeline.
2020-05-05 12:11:46 +02:00
lain
2cb3f8a8cf
Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into feature/delete-validator
2020-05-05 10:19:01 +02:00
Haelwenn (lanodan) Monnier
bf0e41f0da
Transmogrifier.set_sensitive/1: Keep sensitive set to true
2020-05-04 23:36:00 +02:00
lain
c23cb8d37a
Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into remake-remodel-dms
2020-05-04 19:24:04 +02:00
lain
3559dd1085
Transmogrifier: Rely on LikeValidator.
2020-05-04 17:18:38 +02:00
lain
c40afe5ba0
Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into remake-remodel-dms
2020-05-04 10:43:20 +02:00
lain
6fb96f64c1
Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into feature/delete-validator
2020-05-03 12:55:29 +02:00
lain
4dfc617cdf
Transmogrifier: Don't fetch actor that's guaranteed to be there.
2020-05-03 12:51:28 +02:00
lain
44fbd09709
Merge branch 'issue/1577' into 'develop'
...
[#1577 ] fix mediaType of object
See merge request pleroma/pleroma!2372
2020-05-01 12:38:46 +00:00
lain
4dc5302f45
Transmogrifier: Handle incoming deletes for non-user objects.
2020-04-30 15:26:23 +02:00
lain
589ce1e96b
Apply suggestion to lib/pleroma/web/activity_pub/transmogrifier.ex
2020-04-29 19:47:16 +00:00
lain
a88734a0a2
Transmogrifier: Fetch missing actors for chatmessages.
2020-04-29 14:25:33 +02:00
lain
53e3063bd0
Transmogrifier: Remove ChatMessageHandling module.
2020-04-29 13:52:23 +02:00
Maksim Pechnikov
ea5142b94b
convert markdown content to html
2020-04-28 09:32:43 +03:00
lain
8c2c325598
Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into remake-remodel-dms
2020-04-17 15:51:24 +02:00
rinpatch
942d7467ca
Merge branch 'develop' into features/remove-user-source_data
2020-04-16 21:28:52 +03:00
rinpatch
252528a4b9
Merge branch 'refactor/remove-upgrade-changeset' into 'develop'
...
Remove User.upgrade_changeset in favor of remote_user_creation
See merge request pleroma/pleroma!2368
2020-04-16 14:59:11 +00:00
lain
44bfb491ea
Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into remake-remodel-dms
2020-04-15 14:41:43 +02:00
Maksim Pechnikov
c5c09fc61b
fix mediaType of object
2020-04-13 07:02:57 +03:00
rinpatch
5e365448f3
Merge branch 'following-relationships-optimizations' into 'develop'
...
FollowingRelationship storage & performance optimizations
See merge request pleroma/pleroma!2332
2020-04-11 19:46:04 +00:00
rinpatch
c077ad0b33
Remove User.upgrade_changeset in favor of remote_user_creation
...
The two changesets had the same purpose, yet some changes were updated
in one, but not the other (`uri`, for example).
Also makes `Transmogrifier.upgrade_user_from_ap_id` be called from
`ActivityPub.make_user_from_ap_id` only when the user is actually
not AP enabled yet.
I did not bother rewriting tests that used `User.insert_or_update`
to use the changeset instead because they seemed to just test the implementation,
rather than behavior.
2020-04-11 22:31:46 +03:00
Haelwenn
4d33e0bd50
Merge branch 'bugfix/apc2s_upload_activity' into 'develop'
...
bugfix: AP C2S activity with attachments
See merge request pleroma/pleroma!2316
2020-04-10 04:31:13 +00:00
Haelwenn (lanodan) Monnier
9172d719cc
profile emojis in User.emoji instead of source_data
2020-04-10 06:20:02 +02:00
lain
3775683a04
ChatMessage: Basic incoming handling.
2020-04-08 15:55:43 +02:00
lain
349b9d86dc
Merge branch 'remake-remodel-2' into 'develop'
...
Ingestion Pipeline Revamp
See merge request pleroma/pleroma!2315
2020-04-06 11:59:01 +00:00
lain
e67cde0ed6
Transmogrifier: Refactoring / Renaming.
2020-04-06 13:46:34 +02:00
lain
c982093cc2
Transmogrifier: Fix BAD code by RINPATCH
2020-03-31 19:33:41 +02:00
lain
1b323ce1c6
Apply suggestion to lib/pleroma/web/activity_pub/transmogrifier.ex
2020-03-31 17:28:18 +00:00
lain
ecac57732a
Transmogrifier: Only add context if it really is onne.
2020-03-31 19:16:45 +02:00
lain
288f2b5a7c
Apply suggestion to lib/pleroma/web/activity_pub/transmogrifier.ex
2020-03-31 17:00:55 +00:00
lain
0be1fa0a86
Apply suggestion to lib/pleroma/web/activity_pub/transmogrifier.ex
2020-03-31 17:00:48 +00:00
lain
f6835333be
Apply suggestion to lib/pleroma/web/activity_pub/transmogrifier.ex
2020-03-31 12:55:25 +00:00
Haelwenn
e999c67cee
Merge branch 'feature/funkwhale-audio' into 'develop'
...
Add support for funkwhale Audio activity
Closes #764 and #1624
See merge request pleroma/pleroma!2287
2020-03-29 19:18:22 +00:00
Ivan Tashkinov
be9d18461a
FollowingRelationship storage & performance optimizations (state turned ecto_enum
-driven integer, reorganized indices etc.).
2020-03-28 18:49:03 +03:00
Haelwenn (lanodan) Monnier
c1fd4f6653
transmogrifier.ex: rework fix_attachment for better IR
2020-03-19 19:10:03 +01:00
lain
3c2c32b460
Merge branch 'remake-remodel' into develop
2020-03-19 18:00:55 +01:00
Haelwenn (lanodan) Monnier
f9d622d25a
WIP
2020-03-19 15:39:11 +01:00
Ivan Tashkinov
7c8003c3fc
[ #1364 ] Improved control over generation / sending of notifications. Fixed blocking / muting users notifications issue. Added tests.
2020-03-15 21:00:12 +03:00
Haelwenn (lanodan) Monnier
863ec33ba2
Add support for funkwhale Audio activity
...
reel2bits fixture not included as it lacks the Actor fixture for it.
Closes: https://git.pleroma.social/pleroma/pleroma/issues/1624
Closes: https://git.pleroma.social/pleroma/pleroma/issues/764
2020-03-11 13:46:42 +01:00
Haelwenn (lanodan) Monnier
6da6540036
Bump copyright years of files changed after 2020-01-07
...
Done via the following command:
git diff fcd5dd259a
--stat --name-only | xargs sed -i '/Pleroma Authors/c# Copyright © 2017-2020 Pleroma Authors <https:\/\/pleroma.social\/>'
2020-03-02 06:08:45 +01:00
Egor Kislitsyn
22018adae6
Fix Dialyzer warnings
2020-02-25 18:34:56 +04:00
Ivan Tashkinov
269d592181
[ #1505 ] Restricted max thread distance for fetching replies on incoming federation (in addition to reply-to depth restriction).
2020-02-15 20:41:38 +03:00
Ivan Tashkinov
24e49d14f2
[ #1505 ] Removed wrapping of reply URIs into first
element, added comments to transmogrifier tests.
2020-02-09 17:34:48 +03:00
Ivan Tashkinov
6ea3c06d8d
[ #1505 ] Minor refactoring.
2020-02-09 14:09:01 +03:00
Ivan Tashkinov
7c3991f59e
[ #1505 ] Fixed replies
serialization (included objects' ids instead of activities' ids).
2020-02-09 10:17:21 +03:00
Ivan Tashkinov
4e6bbdc7b5
Merge remote-tracking branch 'remotes/origin/develop' into 1505-threads-federation
2020-02-08 19:59:37 +03:00
Ivan Tashkinov
d458f4fdca
[ #1505 ] Added tests, changelog entry, tweaked config settings related to replies output on outgoing federation.
2020-02-08 19:58:02 +03:00
Lain Soykaf
8a79f20c21
EmojiReactions: Rename to EmojiReacts
2020-02-06 18:09:57 +01:00
Ivan Tashkinov
86e4d23acb
[ #1505 ] Background fetching of incoming activities' replies
collections.
2020-01-25 10:47:30 +03:00
Ivan Tashkinov
cf96c40057
[ #1505 ] Added Mastodon-compatible replies
collection to Note federated representation.
2020-01-22 21:10:17 +03:00
Haelwenn (lanodan) Monnier
6cf3b19a38
transmogrifier.ex: simplify handle_incoming of actors
2020-01-19 07:06:15 +01:00
d2f1c4f658
Add ActivityPub Object Event type support
...
Adds Event support in the same way Video objects are handled, with the
name of the object as message header.
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2019-12-17 16:16:21 +01:00
rinpatch
a21340caa1
Fix never matching clause
...
`length/1` is only used with lists.
2019-12-08 16:46:18 +03:00
lain
e9993acdbb
Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into remake-remodel
2019-12-04 16:35:59 +01:00
Egor Kislitsyn
3c0abfca53
Merge remote-tracking branch 'upstream/develop' into feature/move-activity
2019-11-14 16:39:45 +07:00
lain
b22ee9d966
Merge remote-tracking branch 'origin/develop' into reactions
2019-11-08 13:27:11 +01:00
lain
1bd1f62af5
Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into remake-remodel
2019-11-05 15:21:00 +01:00
lain
3d1b445cbf
Object Validators: Extract common validations.
2019-11-05 15:02:09 +01:00
Egor Kislitsyn
61fc739ab8
Handle "Move" activity
2019-10-30 18:21:49 +07:00
kPherox
0c361eeb25
Add pending to handle incoming for Follow activity
2019-10-29 17:12:49 +09:00
Egor Kislitsyn
4270861085
Merge branch 'develop' into feature/move-activity
2019-10-28 15:10:47 +07: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
lain
97d5c79aa0
Add Pipeline module, test for federation.
2019-10-23 11:52:27 +02: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
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
Ariadne Conill
c9280b9730
rework to use properties instead of compound typing, per SocialCG
2019-10-19 23:21:37 +00:00
Ariadne Conill
ef659331b0
implement invisible support for remote users
2019-10-19 23:21:37 +00:00
Ariadne Conill
4f82e42e4e
websub: remove entirely
2019-10-18 14:50:09 +00:00
lain
203d61b950
Transmogrifier: Make proper use of the LikeValidator.
2019-10-17 19:35:31 +02: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
lain
081e8206ab
Transmogrifier: Use new ingestion pipeline for Likes.
2019-10-16 17:03:21 +02:00
lain
37812740c4
Transmogrifier: Correctly save incoming ids for Accept/Reject.
2019-10-11 11:48:58 +02:00
lain
9b963064eb
Transmogrifier: Actually store who deleted a note.
2019-10-11 11:25:45 +02:00
Egor Kislitsyn
059005ff82
Replace user.following
with Pleroma.FollowingRelationship
2019-10-11 02:35:32 +07:00
lain
29647dfd09
Transmogrifier: Save correct ids for incoming deletes.
2019-10-10 17:17:33 +02:00
lain
91e90aa807
Merge branch 'misskey-compat' into 'reactions'
...
Transmogrifier: Handle misskey likes with reactions like EmojiReactions.
See merge request pleroma/pleroma!1783
2019-10-07 07:25:27 +00:00
lain
61097ba6ab
Merge branch 'develop' into 'reactions'
...
# Conflicts:
# CHANGELOG.md
2019-10-06 08:11:47 +00:00
kaniini
45b7f03f89
Merge branch 'accept-embedded-announce-object' into 'develop'
...
Import object from self-Announce whenever possible
See merge request pleroma/pleroma!1770
2019-10-05 19:28:29 +00:00
lain
4b8524f392
ActivityPub / Transmogrifier: Correctly store incoming Update id.
2019-10-05 14:49:45 +02:00
Thibaut Girka
791d93ff0e
Make credo happy
2019-10-05 13:56:40 +02:00
Thibaut Girka
977e711e22
Import object from self-Announce whenever possible
2019-10-05 13:56:40 +02:00
lain
6a85f7d1ea
Transmogrifier: Extend misskey like compatibility.
2019-10-05 10:45:42 +02:00
lain
43a211bcb1
Transmogrifier: Handle misskey likes with reactions like EmojiReactions.
2019-10-04 17:01:04 +02:00
lain
c9043c6c80
Transmogrifier: Handle incoming Undos for EmojiReactions.
2019-10-03 18:37:23 +02:00
lain
557223b2b5
Merge remote-tracking branch 'origin/develop' into reactions
2019-10-02 13:27:55 +02:00
Thibaut Girka
86880b9821
Inline object when Announcing a self-owned private object
2019-10-02 12:15:06 +02:00
lain
dae744478e
Transmogrifier: Handle compact objects in undos.
2019-09-30 18:13:05 +02:00
lain
b923842e96
Merge remote-tracking branch 'origin/develop' into reactions
2019-09-30 13:57:54 +02:00
Ariadne Conill
172c74a77b
activitypub: transmogrifier: implement support for Listen activities
2019-09-30 10:39:17 +00:00
Maksim Pechnikov
d4ed3a35b8
Merge branch 'develop' into test/activity_pub/transmogrifier.ex
2019-09-19 07:35:34 +03:00
Haelwenn
f95a2b2cda
Merge branch 'issue/733' into 'develop'
...
[#733 ] added test for Ostatus
See merge request pleroma/pleroma!1657
2019-09-18 22:28:10 +00:00
rinpatch
d32894ae51
Move object internal fields to a constant
2019-09-18 19:24:20 +03:00
Maksim Pechnikov
7dd51652f9
Merge branch 'develop' into issue/733
2019-09-17 21:20:08 +03:00
Egor Kislitsyn
085d014f08
Fix Transmogrifier.upgrade_user_from_ap_id/1
2019-09-16 19:26:00 +07:00
Maksim Pechnikov
d75bc728e7
Merge branch 'develop' into issue/733
2019-09-16 07:34:22 +03: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
lain
a7f31bf06c
Merge remote-tracking branch 'origin/develop' into reactions
2019-09-13 16:31:27 +02:00
Maksim Pechnikov
2b40e57a72
Merge branch 'develop' into test/activity_pub/transmogrifier.ex
2019-09-13 06:55:05 +03:00
lain
8d4b661ecb
Transmogrifier: Strip internal emoji reaction fields.
2019-09-12 18:59:13 +02:00
Maksim Pechnikov
4f548cb2b7
added test for Ostatus
2019-09-12 10:25:43 +03:00
Mark Felder
74e4c72c4a
Fix double quotes in error logs
...
Example:
pleroma: [error] Couldn't fetch ""https://pleroma.soykaf.com/objects/6288a14b-0623-40fc-a26a-0d358f8a11ca "", error: nil
2019-09-11 16:16:09 -05:00
Maksim Pechnikov
007e0c1ce1
added tests
2019-09-11 23:19:06 +03:00
Maksim Pechnikov
fcf604fa43
added tests
2019-09-11 07:23:33 +03:00
Maksim Pechnikov
a31af93e1d
added tests /activity_pub/transmogrifier.ex
2019-09-10 16:43: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
c30cc039e4
Transmogrifier: Use Containment.get_actor to get actors.
2019-08-27 12:22:30 -05:00
lain
a0b21c8928
Transmogrifier: Handle incoming emoji reactions.
2019-08-26 16:47:31 -05:00
lain
3da65292b3
Transmogrifier: Fix follow handling when the actor is an object.
2019-08-26 14:34:52 -05: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
Ivan Tashkinov
8778c16dac
Merge remote-tracking branch 'remotes/upstream/develop' into 1149-oban-job-queue
2019-08-14 21:44:50 +03:00
Egor Kislitsyn
e457fcc479
Add :max_remote_account_fields
config option
2019-08-14 14:58:06 +07:00
Egor Kislitsyn
f7bbf99caa
Use info.fields instead of source_data for remote users
2019-08-14 14:52:54 +07:00
Egor Kislitsyn
5178f960c3
Support user attachment update in Transmogrifier
2019-08-14 14:52:54 +07:00
Ivan Tashkinov
0e1c481a94
[ #1149 ] Added more oban workers. Refactoring.
2019-08-13 20:20:26 +03:00
Ariadne Conill
f46cd7e9c7
config: remove legacy activitypub accept_blocks setting
...
Anyone who is interested in dropping blocks can write their own MRF
policy at this point. This setting predated the MRF framework.
Disabling the side effect (unsubscription) is still a config option
per policy.
2019-08-13 02:15:21 +00:00
rinpatch
92479c6f48
Do not fetch the reply object in fix_type
unless the object has the
...
`name` key and use a depth limit when fetching it
2019-08-11 22:49:55 +03:00
Sergey Suprunenko
af4cf35e20
Strip internal fields including likes from incoming and outgoing activities
2019-08-10 18:47:40 +00:00
rinpatch
c88a5d3251
Merge branch 'develop' into feature/hide-follows-remote
2019-07-31 14:12:29 +03:00
Ariadne Conill
b93498eb52
constants: add as_public constant and use it everywhere
2019-07-29 02:43:19 +00:00
Ariadne Conill
492d854e7a
transmogrifier: use User.delete() instead of handrolled user deletion code for remote users
...
Closes #1104
2019-07-28 21:32:04 +00:00
rinpatch
196cad46f3
Resolve merge conflicts
2019-07-20 22:04:47 +03:00
Egor Kislitsyn
64a946643e
Merge remote-tracking branch 'pleroma/develop' into feature/addressable-lists
2019-07-15 14:11:54 +07:00
rinpatch
d06d1b751d
Use atoms when updating user info
2019-07-14 00:21:35 +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
Egor Kislitsyn
182f7bbb11
Merge branch 'develop' into feature/addressable-lists
2019-07-11 13:26:59 +07:00
Alex S
beba7bbc85
removing synchronization worker
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
Ivan Tashkinov
2b9d914089
[ #161 ] Refactoring, documentation.
2019-06-30 15:58:50 +03:00
Ivan Tashkinov
5b7b1040b3
[ #161 ] Limited replies depth on incoming federation in order to prevent memory leaks on recursive replies fetching.
2019-06-29 20:04:50 +03:00
rinpatch
d020f68e87
Transmogrifier: Do not crash if inReplyTo does not exist and can't be fetched
2019-06-07 20:40:38 +03:00
lain
e1370ba131
Utils: Use update_follow_state_for_all when appropriate.
2019-06-05 16:51:28 +02:00
lain
076c9ae40e
User: Remove superfluous maybe_follow
.
2019-06-05 14:24:31 +02:00
lain
3115b64cfe
Transmogrifier: Add tests for incoming follows to locked accounts.
2019-06-05 14:10:46 +02:00
Egor Kislitsyn
9ce928d823
Merge remote-tracking branch 'pleroma/develop' into feature/addressable-lists
2019-06-04 16:28:23 +07:00
rinpatch
026b245dbc
Merge branch 'develop' into feature/polls-2-electric-boogalo
2019-06-03 11:14:52 +03:00
rinpatch
65db5e9f52
Resolve merge conflicts
2019-06-01 16:29:58 +03:00
Sergey Suprunenko
2bbc2a801f
Remove all follower collections but actor's from "cc"
2019-06-01 03:26:45 +00:00
rinpatch
a9eaa55885
Fix fix_explicit_addressing moving follower collection to cc and add tests for it
2019-05-31 14:17:05 +03:00
rinpatch
19c90d47c4
Normalize poll votes to Answer objects
2019-05-22 21:17:57 +03:00
rinpatch
5ece901af3
Resolve merge conflicts and remove IO.inspects
2019-05-18 13:37:38 +03:00
Egor Kislitsyn
557f0e33a7
Merge remote-tracking branch 'pleroma/develop' into feature/addressable-lists
2019-05-17 19:57:14 +07:00