Ivan Tashkinov
e743c22329
Fixed incorrect usage of "relations" as a short form of "relationships".
2020-03-25 09:04:00 +03:00
rinpatch
f316882464
Apply suggestion to lib/pleroma/web/activity_pub/activity_pub.ex
2020-03-24 18:37:53 +00:00
Egor Kislitsyn
4a2538967c
Support pagination in conversations
2020-03-24 20:18:27 +04:00
Egor Kislitsyn
d1a9716a98
Fix activity deletion
2020-03-24 17:38:18 +04:00
rinpatch
981e015f1b
Mastodon API Account view: Remove an outdated hack
...
The hack with caching the follow relationship was introduced
when we still were storing it inside the follow activity, resulting in
slow queries. Now we store follow state in `FollowRelationship` table,
so this is no longer necessary.
2020-03-22 17:10:37 +03:00
lain
3c2c32b460
Merge branch 'remake-remodel' into develop
2020-03-19 18:00:55 +01:00
Egor Kislitsyn
d1c7f8e576
Merge remote-tracking branch 'origin/develop' into global-status-expiration
2020-03-12 16:02:24 +04:00
lain
6f7a8c43a2
Merge branch 'fix/no-email-no-fail' into 'develop'
...
Do not fail when user has no email
See merge request pleroma/pleroma!2249
2020-03-04 12:43:06 +00:00
Egor Kislitsyn
0f386110c6
Merge remote-tracking branch 'origin/develop' into global-status-expiration
2020-03-03 00:32:34 +04:00
Haelwenn
764a50f8a6
Merge branch 'feature/1482-activity_pub_transactions' into 'develop'
...
ActivityPub actions & side-effects in transaction
Closes #1482
See merge request pleroma/pleroma!2089
2020-03-02 07:58:01 +00: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
Alexander Strizhakov
34f1d09f3a
spec fix
2020-03-01 12:01:39 +03:00
Alexander Strizhakov
32d1e04817
ActivityPub actions & side-effects in transaction
2020-03-01 12:01:39 +03:00
Egor Kislitsyn
cb60a9c42f
Do not fail when user has no email
2020-02-27 17:27:49 +04:00
eugenijm
e2a6a40367
Admin API: GET /api/pleroma/admin/statuses
- list all statuses (accepts godmode
and local_only
)
2020-02-26 20:21:38 +03:00
Egor Kislitsyn
4d459b0e99
Move ActivityExpiration creation from CommonApi.post/2 to ActivityPub.insert/4
2020-02-13 22:27:10 +04:00
lain
a0d9d42eaa
Emoji Reactions: Actually use the validation.
2020-01-30 16:07:37 +01:00
lain
46915207b6
Remove whole_db
parameter everywhere, it's not used anymore
2020-01-28 14:40:40 +01:00
rinpatch
6e6f1ead31
Merge branch 'no-error-404' into 'develop'
...
Log at debug level for object deletion, not error.
See merge request pleroma/pleroma!2066
2020-01-22 17:55:49 +00:00
Egor Kislitsyn
432b3067d4
Do not crash when remote user follower and following counters are hidden
2019-12-19 19:26:46 +07:00
Phil Hagelberg
02c3031e99
Don't log when users or objects are deleted.
2019-12-13 12:05:53 -08:00
Maxim Filippov
3ecf131511
Merge branch 'develop' into feature/report-notes
2019-12-12 02:16:23 +03:00
Mark Felder
9ef912aecf
Merge branch 'develop' into issue/1411
2019-12-11 15:02:53 -06:00
Sadposter
1ad96d667a
remove single-step pipe
2019-12-11 09:08:20 +00:00
Sadposter
8cfaab8f04
Merge branch 'develop' into 'domain-block-precedence'
...
# Conflicts:
# lib/pleroma/user.ex
2019-12-10 16:54:25 +00:00
Sadposter
25f774f7c1
format activity_pub.ex
2019-12-10 16:41:43 +00:00
Sadposter
19d228cc58
modify SQL to include followed-but-domain-blocked activities
2019-12-10 16:40:12 +00:00
701815e64c
[ActivityPub] Configurable ActivityPub actor type
2019-12-10 13:19:26 +00:00
rinpatch
29a3f70cba
Merge branch 'bugfix/1463-blocking-in-user-tls' into 'develop'
...
ActivityPub: For user timelines, respects blocks.
Closes #1463
See merge request pleroma/pleroma!2041
2019-12-08 11:23:31 +00:00
lain
e8cee4d9a0
ActivityPub: For user timelines, respects blocks.
...
Unless the timeline belongs to a blocked user.
2019-12-06 14:25:13 +01:00
rinpatch
cdff5b8267
Merge branch 'develop' into fix/mrf-delete
2019-12-06 00:12:21 +03:00
rinpatch
9f99640cfc
ActivityPub: Fix deletes being exempt from MRF
...
Closes #1461
2019-12-05 21:45:57 +03:00
Maksim Pechnikov
e21afdb7c7
Merge branch 'develop' into issue/1411
2019-12-05 12:18:59 +03:00
Ivan Tashkinov
30caf3e51e
Merge remote-tracking branch 'remotes/upstream/develop' into 1335-user-api-id-fields-relations
...
# Conflicts:
# lib/pleroma/user.ex
2019-12-04 18:56:31 +03:00
lain
e9993acdbb
Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into remake-remodel
2019-12-04 16:35:59 +01:00
Maxim Filippov
4b60d41db9
Add report notes
2019-12-04 00:26:37 +09:00
lain
7722e5a67a
Merge branch 'feature/move-activity' into 'develop'
...
Support "Move" activity
Closes #1316
See merge request pleroma/pleroma!1883
2019-12-02 16:26:19 +00:00
Maksim Pechnikov
88f7cf51d4
Merge branch 'develop' into issue/1411
2019-12-01 16:18:16 +03:00
kPherox
0326683932
hide follower/following for friendica
2019-11-30 15:43:05 +09:00
Ivan Tashkinov
c8d3c3bfec
Merge remote-tracking branch 'remotes/upstream/develop' into 1335-user-api-id-fields-relations
...
# Conflicts:
# lib/pleroma/web/activity_pub/activity_pub.ex
2019-11-26 10:42:36 +03:00
Ivan Tashkinov
555edd01ab
[ #1335 ] User AP ID relations fetching performance optimizations.
2019-11-20 12:19:07 +03:00
Ivan Tashkinov
ba5cc30165
[ #1335 ] Implemented notification mutes and reblog mutes as UserRelationships. User to UserRelationship relations and functions refactoring.
2019-11-19 23:22:10 +03:00
Maksim Pechnikov
708fd234bd
fix order favorites activites
2019-11-19 20:19:41 +03:00
Maksim Pechnikov
5cee51fac5
fix order by
for fetch_favorites
2019-11-18 21:34:54 +03:00
Maksim Pechnikov
0937895182
updated fetch_favorites
2019-11-18 16:56:47 +03:00
Maksim Pechnikov
4beb3ce5c5
/api/v1/favourites: added sorting for activites by adds to favorites
2019-11-18 09:44:08 +03:00
Ivan Tashkinov
01d9c093c3
Merge remote-tracking branch 'remotes/upstream/develop' into 1335-user-api-id-fields-relations
2019-11-15 21:40:14 +03:00
Ivan Tashkinov
c31ddce51e
[ #1335 ] Reorganized users.mutes
as relation to UserMute entity.
2019-11-15 21:38:54 +03:00
Maxim Filippov
114930b5fd
Merge branch 'develop' into feature/admin-api-list-statuses-for-a-given-instance
2019-11-14 23:45:29 +09:00
Maxim Filippov
30af5da330
Admin API: list all statuses from a given instance
2019-11-14 23:44:07 +09:00
Egor Kislitsyn
3c0abfca53
Merge remote-tracking branch 'upstream/develop' into feature/move-activity
2019-11-14 16:39:45 +07:00
Ivan Tashkinov
3db988250b
[ #1335 ] User: refactored :blocks field into :blocked_users relation.
...
Introduced UserBlock.
2019-11-10 16:30:21 +03:00
lain
a88e834dba
Merge branch 'develop' into 'reactions'
...
# Conflicts:
# CHANGELOG.md
2019-11-10 11:32:50 +00:00
Maksim Pechnikov
9d0b989521
add subject to atom feed
2019-11-10 11:10:20 +03: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
556da92902
Merge branch 'feature/store-statuses-data-inside-flag' into 'develop'
...
Store status data inside flag activity
See merge request pleroma/pleroma!1849
2019-11-04 14:11:44 +00:00
Egor Kislitsyn
61fc739ab8
Handle "Move" activity
2019-10-30 18:21:49 +07:00
Egor Kislitsyn
4270861085
Merge branch 'develop' into feature/move-activity
2019-10-28 15:10:47 +07:00
Maxim Filippov
791bcfd90f
Merge branch 'develop' into feature/store-statuses-data-inside-flag
2019-10-27 16:11:25 +03:00
Maxim Filippov
8eff05d4c6
Strip status data from Flag (when federating or closing/resolving report)
2019-10-27 16:05:32 +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
Ivan Tashkinov
c0246309a5
[ #1304 ] Extra bullet-proofing.
2019-10-23 19:30:02 +03: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
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
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
bae96de273
activitypub: tag containment checks for better error tracing
2019-10-18 14:50:10 +00:00
Ariadne Conill
48059c03c9
fix up some tests
2019-10-18 14:50:09 +00:00
eugenijm
359dd1890e
Mastodon API: Mark the conversation as read for the author when they send a new direct message
2019-10-17 16:49:39 +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
lain
6e4f52f8a2
Introduce new ingestion pipeline structure, implement internal Likes with it.
2019-10-16 16:16:39 +02:00
lain
6977cddff9
Merge branch 'benchmark-finishing' into 'develop'
...
Benchmark finishing
Closes #755
See merge request pleroma/pleroma!1848
2019-10-16 11:54:49 +00:00
eugenijm
a97b642289
Mastodon API: Add exclude_visibilities
parameter to the timeline and notification endpoints
2019-10-14 02:57:21 +03: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
c54ae662dc
Merge remote-tracking branch 'origin/develop' into benchmark-finishing
2019-10-10 14:40:59 +02:00
lain
d7f9679ff2
Merge branch 'develop' into 'reactions'
...
# Conflicts:
# CHANGELOG.md
2019-10-10 12:38:51 +00:00
Ariadne Conill
9a2f71f4d5
mastodon api: fix exclude_replies ( closes #1287 )
2019-10-07 12:29:33 +00:00
lain
61097ba6ab
Merge branch 'develop' into 'reactions'
...
# Conflicts:
# CHANGELOG.md
2019-10-06 08:11:47 +00:00
lain
4b8524f392
ActivityPub / Transmogrifier: Correctly store incoming Update id.
2019-10-05 14:49:45 +02:00
lain
dfe5c958eb
ActivityPub: Add undo for emoji reactions.
2019-10-02 15:08:20 +02:00
lain
557223b2b5
Merge remote-tracking branch 'origin/develop' into reactions
2019-10-02 13:27:55 +02:00
Thibaut Girka
fe538973dd
Ensure self-announces do not widen the audience of the original post
2019-10-01 18:38:57 +02:00
KokaKiwi
1f0be71ea4
Make activity announceable by its author.
2019-10-01 17:47:43 +02:00
lain
19bc0b8c79
.
2019-09-30 16:38:19 +02:00
lain
08256e9299
ActivityPub: Federate reactions.
2019-09-30 15:51:09 +02:00
lain
b923842e96
Merge remote-tracking branch 'origin/develop' into reactions
2019-09-30 13:57:54 +02:00
Ariadne Conill
7cad6ea67a
pleroma api: hook up scrobbler controller
2019-09-30 10:39:17 +00:00
Ariadne Conill
1f9de2a8cd
activitypub: implement IR-level considerations for Listen activities
2019-09-30 10:39:17 +00: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
5fb72170a7
Revert "add _discoverable_ keyword into ActivityPub @context"
...
This reverts commit 3aef4bdf8f37efd1055a84c5fca12ec4559a17f5.
2019-09-26 02:57:41 +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
kaniini
beabc49e35
Merge branch 'feature/activities-pagination-by-offset' into 'develop'
...
Allow activities pagination via limit/offset
See merge request pleroma/pleroma!1714
2019-09-26 02:49:45 +00:00
rinpatch
d87be2ec96
Don't embed the first page in inboxes/outboxes and refactor the views to
...
follow View/Controller pattern
Note that I mentioned the change in 1.1 section because I intend to
backport this, if this is not needed I will move it back to Unreleased.
2019-09-25 15:59:04 +03:00
Egor Kislitsyn
b5dfe83433
Replace Pleroma.FlakeId
with flake_id
hex package
2019-09-25 17:14:31 +07:00
Maxim Filippov
60cbea5bb2
Allow activities pagination via limit/offset
2019-09-25 01:25:42 +03:00
eugenijm
7cf1252455
Mastodon API: Fix private and direct statuses not being filtered out from the public timeline for an authenticated user (GET /api/v1/timelines/public
)
2019-09-20 18:27:00 +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
Roman Chvanikov
76c3e290fc
Merge develop
2019-09-16 20:30:42 +03:00
Egor Kislitsyn
96816ceaa2
Revert "Merge branch 'revert-4fabf83a' into 'develop'"
...
This reverts commit fe7fd33126
, reversing
changes made to 4fabf83ad0
.
2019-09-16 17:55:04 +07:00
kaniini
c623b4324d
Revert "Merge branch 'streamer-refactoring' into 'develop'"
...
This reverts merge request !1653
2019-09-16 09:09:21 +00:00
Steven Fuchs
aab264db82
Streamer refactoring
2019-09-16 07:44:03 +00:00
Roman Chvanikov
0bd2b85edb
Separate Subscription Notifications from regular Notifications
2019-09-13 18:25:27 +03:00
lain
a7f31bf06c
Merge remote-tracking branch 'origin/develop' into reactions
2019-09-13 16:31:27 +02:00
lain
e5b3ad3d04
ActivityPub: Use is_unicode_emoji? function.
2019-09-13 16:06:34 +02:00
Ivan Tashkinov
c3f00447af
Merge remote-tracking branch 'remotes/upstream/develop' into 1149-oban-job-queue
2019-09-08 08:41:10 +03:00
Maksim Pechnikov
39f99dc6cd
Merge branch 'develop' into support/tests
2019-09-07 22:13:43 +03:00
Ariadne Conill
5effb2cbca
activitypub: help ecto build a better query for thread mute filtering
...
using an indexed value in thread_mute table helps ecto build a better query.
2019-09-06 23:11:26 +00:00
Alex S
79dde58044
one more temp commit
2019-09-05 16:02:20 +03:00
Maksim Pechnikov
8cbad5500c
add tests for activity_pub/utils.ex
2019-09-04 15:25:12 +03:00
lain
9bc12b88b3
ActivityPub: Save emoji reactions in object.
2019-09-03 16:50:04 -05: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
f017260cdc
Merge remote-tracking branch 'origin/develop' into reactions
2019-08-27 16:38:51 -05:00
Maksim Pechnikov
00abe099cd
added tests for ActivityPub.like\unlike
2019-08-27 16:21:03 +03:00
lain
6e1ec4c5da
ActivityPub: Basic EmojiReactions.
2019-08-26 16:29:51 -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
lain
74f7f308f8
Merge branch 'fix/admin-api-user-deletion' into 'develop'
...
Fix deactivated user deletion
See merge request pleroma/pleroma!1546
2019-08-20 19:34:47 +00: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
Maxim Filippov
5171aa5b4d
Refactor check_actor_is_active
2019-08-19 20:36:25 +03:00
kaniini
18c8c8d176
Merge branch 'feature/hide-muted-threads-from-timeline' into 'develop'
...
Hide muted theads from home/public timelines unless `with_muted` is set
See merge request pleroma/pleroma!1575
2019-08-18 21:57:55 +00:00
rinpatch
a4a3e3becd
Hide muted theads from home/public timelines unless with_muted
is set
2019-08-15 17:37:30 +03:00
Maxim Filippov
ec969eec51
Merge branch 'develop' into 'fix/admin-api-user-deletion'
...
# Conflicts:
# CHANGELOG.md
2019-08-14 22:45:32 +00:00
Maxim Filippov
2b94ae3b39
Do not check if actor is active when deleting a user
2019-08-15 01:35:29 +03: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
Egor Kislitsyn
e457fcc479
Add :max_remote_account_fields
config option
2019-08-14 14:58:06 +07:00
kaniini
5c35d2f1d8
Merge branch 'preload-user-timelines' into 'develop'
...
Preload thread mutes/bookmarks in user_statuses
See merge request pleroma/pleroma!1563
2019-08-14 01:04:07 +00:00
rinpatch
8202f1634a
Preload thread mutes/bookmarks in user_statuses
2019-08-14 03:02:09 +03:00
rinpatch
f4e087ee48
Preload thread mutes/bookmarks in get_context
...
Also removes filtering for creates (was done on the database side
already) and filtering for the requested activity (moved to the database
side) from application side.
2019-08-14 02:36:54 +03:00
Ivan Tashkinov
0e1c481a94
[ #1149 ] Added more oban workers. Refactoring.
2019-08-13 20:20:26 +03:00
Maxim Filippov
dfae61c25c
Fix deactivated user deletion
2019-08-09 23:05:28 +03:00
rinpatch
73d8d5c49f
Stop depending on the embedded object in restrict_favorited_by
2019-08-07 00:12:42 +03:00
Sergey Suprunenko
8b2fa31fed
Handle MRF rejections of incoming AP activities
2019-08-03 18:12:38 +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
rinpatch
41e0304757
Merge branch 'develop' into feature/hide-follows-remote
2019-07-25 18:43:30 +03:00
Maxim Filippov
03471151d6
AdminAPI: Add "godmode" while fetching user statuses (i.e. admin can see private statuses)
2019-07-24 01:51:36 +03: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
Ariadne Conill
739bbe0d3b
security: detect object containment violations at the IR level
...
It is more efficient to check for object containment violations at the IR
level instead of in the protocol handlers. OStatus containment is especially
a tricky situation, as the containment rules don't match those of IR and
ActivityPub.
Accordingly, we just always do a final containment check at the IR level
before the object is added to the IR object graph.
2019-07-14 17:47:08 +00:00