Commit graph

5458 commits

Author SHA1 Message Date
Haelwenn
0465bdbd49 Merge branch 'fix/mrf-simple-welcome-chats' into 'develop'
Ensure we only apply media_nsfw simple policy on parsable objects

Closes #2133

See merge request pleroma/pleroma!2992
2020-09-17 19:50:23 +03:00
lain
bb70b231d0 Merge branch 'reply-visibility-user-guard' into 'develop'
Mastodon API: fix the public timeline returning an error when the `reply_visibility` parameter is set to `self` for an unauthenticated user

See merge request pleroma/pleroma!2999
2020-09-17 19:49:08 +03:00
rinpatch
22d49993d9 Merge branch 'bugfix/mrf-ingestion' into 'develop'
Bugfix: MRF and Pipeline Ingestion

See merge request pleroma/secteam/pleroma!15
2020-09-17 19:48:33 +03:00
rinpatch
eff7f9892d Merge branch 'hotfix/rich-media-compile-error' into 'develop'
RichMedia: fix a compilation error due to nonexistent variable

See merge request pleroma/pleroma!2996
2020-09-17 19:06:10 +03:00
rinpatch
dee4639dbb Merge branch 'feat/rich-media-head' into 'develop'
RichMedia: Do a HEAD request to check content type/length

See merge request pleroma/pleroma!2995
2020-09-17 19:04:50 +03:00
lain
2a7c9ac147 Merge branch 'nondiscoverable-user-metadata' into 'develop'
search indexing metadata should respect discoverable flag

See merge request pleroma/pleroma!2998
2020-09-17 14:20:03 +00:00
Ivan Tashkinov
d9fb5bc08a Merge remote-tracking branch 'remotes/origin/develop' into media-preview-proxy-nostream 2020-09-17 17:14:20 +03:00
Ivan Tashkinov
7cdbd91d83 [#2497] Configurability of :min_content_length (preview proxy). Refactoring, documentation, tests. 2020-09-17 17:13:40 +03:00
lain
7c60789ba5 Merge branch 'develop' into 'nondiscoverable-user-metadata'
# Conflicts:
#   CHANGELOG.md
2020-09-17 14:09:01 +00:00
rinpatch
db80b9d630 RichMedia: Fix log spam on failures and resetting TTL on cached errors 2020-09-17 16:56:39 +03:00
eugenijm
c711a2b157 Return the file content for GET /api/pleroma/admin/instance_document/:document_name 2020-09-17 16:55:53 +03:00
eugenijm
582ad5d4e1 AdminAPI: Allow to modify Terms of Service and Instance Panel via Admin API 2020-09-17 16:48:07 +03:00
lain
7a73850928 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into alexgleason/pleroma-chat-moderation 2020-09-17 13:26:04 +02:00
Maksim Pechnikov
b867f9d7ae Merge branch 'develop' into issue/2099 2020-09-17 08:41:35 +03:00
Ivan Tashkinov
a781f41f96 [#2497] Media preview proxy: misc. improvements (static param support, dynamic fifo pipe path), refactoring. 2020-09-16 22:30:42 +03:00
rinpatch
eca8d26784 Merge branch 'chores/mrf-loglevel' into 'develop'
Fetcher: Correctly return MRF reject reason

See merge request pleroma/pleroma!2990
2020-09-16 13:37:04 +00:00
rinpatch
adbd0032fa Merge branch 'features/validators-video' into 'develop'
Pipeline Ingestion: Video and Article

See merge request pleroma/pleroma!2908
2020-09-16 13:36:27 +00:00
Ivan Tashkinov
2f155fb89f Merge remote-tracking branch 'remotes/origin/develop' into media-preview-proxy-nostream 2020-09-15 20:29:39 +03:00
eugenijm
3ab59a6f3c Mastodon API: fix the public timeline returning an error when the reply_visibility parameter is set to self for an unauthenticated user 2020-09-15 13:00:56 +03:00
Haelwenn
5c4ff5c73c Merge branch 'fix/mrf-simple-welcome-chats' into 'develop'
Ensure we only apply media_nsfw simple policy on parsable objects

Closes #2133

See merge request pleroma/pleroma!2992
2020-09-15 08:25:10 +00:00
Mark Felder
709723182d Ensure SimplePolicy's tags in string representation don't trip up the object validator 2020-09-14 17:06:42 -05:00
stwf
38b2db297b search indexing metadata respects discoverable flag 2020-09-14 13:18:11 -04:00
rinpatch
bb407edce4 RichMedia: fix a compilation error due to nonexistent variable
No idea why this passed Gitlab CI
2020-09-14 15:46:00 +03:00
rinpatch
f70335002d RichMedia: Do a HEAD request to check content type/length
This shouldn't be too expensive, since the connections are pooled,
but it should save us some bandwidth since we won't fetch non-html
files and files that are too large for us to process (especially
since you can't cancel a request without closing the connection
with HTTP1).
2020-09-14 14:45:58 +03:00
rinpatch
f66a15c4a5 RichMedia parser: do not set a cache TTL for unchanging errors 2020-09-14 14:44:25 +03:00
Ivan Tashkinov
cd234a5321 [#2497] Media preview proxy: preview bypass for small images
(basing on Content-Length and Content-Type).
2020-09-12 11:20:41 +03:00
Ivan Tashkinov
32831f371f [#2497] Media preview proxy: redirecting to media proxy url in case of preview error or unsupported content type. 2020-09-12 10:33:42 +03:00
Mark Felder
c0b36621f1 Ensure we only apply NSFW Simple policy on parsable objects 2020-09-11 23:22:14 -05:00
Alex Gleason
9733c9d065
Merge remote-tracking branch 'upstream/develop' into chat-moderation 2020-09-11 14:13:38 -05:00
Alex Gleason
e229536e5c
Chat Moderation: use explicit sender and recipient fields 2020-09-11 14:11:00 -05:00
Alex Gleason
02d70228b5
AdminAPI: fix delete chat message 2020-09-11 14:10:35 -05:00
Alex Gleason
9dd0b23da4
AdminAPI: show chat 2020-09-11 14:10:28 -05:00
Alex Gleason
f13b52a703
AdminAPI: list messages in a chat 2020-09-11 14:10:19 -05:00
Alex Gleason
c41430b23e
Refactor with Chat.for_user_query/1 2020-09-11 14:10:13 -05:00
Alex Gleason
fb0de07343
AdminAPI: list chats for a user 2020-09-11 14:10:05 -05:00
Alex Gleason
b40a627ab0
AdminAPI: delete a chat message 2020-09-11 14:09:58 -05:00
Alex Gleason
f88dc1937e
MastodonAPI.StatusView.get_user/1 --> CommonAPI.get_user/1 2020-09-11 14:09:50 -05:00
Haelwenn (lanodan) Monnier
f1f44069ae
Fetcher: Correctly return MRF reject reason 2020-09-11 20:00:41 +02:00
Ivan Tashkinov
0bda85857e Merge remote-tracking branch 'remotes/origin/develop' into media-preview-proxy
# Conflicts:
#	lib/pleroma/instances/instance.ex
2020-09-11 17:19:58 +03:00
Haelwenn
36c9197ac3 Apply 1 suggestion(s) to 1 file(s) 2020-09-11 10:46:16 +00:00
Haelwenn (lanodan) Monnier
f18178cb09
AttachmentValidator: directly embed url schema and pass it fix_media_type 2020-09-11 01:40:20 +02:00
Haelwenn (lanodan) Monnier
1b3d5956b1
Pipeline Ingestion: Article 2020-09-11 01:40:20 +02:00
Haelwenn (lanodan) Monnier
2132b24a9d
object_validators: likes & announcements as [ObjectID] 2020-09-11 01:39:39 +02:00
Haelwenn (lanodan) Monnier
846b59ccb0
Pipeline Ingestion: Video 2020-09-11 01:39:39 +02:00
Haelwenn (lanodan) Monnier
b73e9ef686
transmogrifier: Call strip_internal_fields on pipeline ingestion 2020-09-11 01:39:38 +02:00
Haelwenn (lanodan) Monnier
da876d09e8
federator: normalize only actor, catch actor error 2020-09-11 00:56:21 +02:00
Mark Felder
55562ca936 Merge branch 'develop' into feature/gen-magic 2020-09-10 16:05:22 -05:00
Ivan Tashkinov
4d18a50f3c [#2497] Formatting fix. 2020-09-10 21:54:26 +03:00
Alexander Strizhakov
357d971a10 expiration for new pipeline 2020-09-10 21:50:41 +03:00
Alexander Strizhakov
93e1c8df9d reject activity creation
if passed expires_at option and expiring activities are not configured
2020-09-10 21:50:41 +03:00
Alexander Strizhakov
9bf1065a06 schedule activity expiration in Oban 2020-09-10 21:50:40 +03:00
rinpatch
0254696e30 Merge branch 'feature/1790-oban-overuse-clear-oauth-token' into 'develop'
Feature/1790 removing expired tokens through Oban scheduled jobs

See merge request pleroma/pleroma!2957
2020-09-10 18:45:04 +00:00
rinpatch
541a3eede2 Merge branch 'chores/remove-ostatus-fixtures' into 'develop'
Remove OStatus in testsuite

See merge request pleroma/pleroma!2968
2020-09-10 18:41:00 +00:00
rinpatch
53cf7fef6e Merge branch 'fix/streaming-termination-errors' into 'develop'
Fix two pseudo-errors in websocket handler

Closes #2131

See merge request pleroma/pleroma!2982
2020-09-10 18:40:54 +00:00
Ivan Tashkinov
dc4e06e199 [#2497] Removed support for thumbnail_max_* params for media preview proxy
(per https://git.pleroma.social/pleroma/pleroma/-/merge_requests/2497#note_70771)
2020-09-10 21:28:07 +03:00
rinpatch
01fa68fe45 Websocket handler: fix never matching code on failed auth
`:cowboy_req.reply` does not return tuples since 2.0, see
https://ninenines.eu/docs/en/cowboy/2.4/manual/cowboy_req.reply/
2020-09-10 21:26:52 +03:00
rinpatch
e16e8f9816 Websocket handler: do not raise if handler is terminated before switching protocols
Closes #2131
2020-09-10 21:14:23 +03:00
rinpatch
cb06e98da2 websocket handler: Do not log client ping frames as errors 2020-09-10 21:14:23 +03:00
Alexander Strizhakov
7dd986a563
expire mfa tokens through Oban 2020-09-10 16:01:19 +03:00
Alexander Strizhakov
3ce658b930
schedule expired oauth tokens deletion with Oban 2020-09-10 16:01:19 +03:00
Maksim Pechnikov
9853c90abb added paginate links to headers for /chats/:id/messages 2020-09-10 12:39:29 +03:00
Ivan Tashkinov
148bc24435 [#2497] Removed Hackney-specific code
(no longer needed due to adapter options unification).
2020-09-10 11:54:10 +03:00
Ivan Tashkinov
cad69669fc [#2130] Fixed OAuth OOB authentication for users with enabled MFA. 2020-09-09 22:44:38 +03:00
Ivan Tashkinov
68a74d6659 [#2497] Added missing alias, removed legacy :adapter option specification for HTTP.get/_. 2020-09-09 19:30:42 +03:00
Mark Felder
4ee99dafcc Merge branch 'develop' into media-preview-proxy 2020-09-09 11:11:36 -05:00
rinpatch
0d2814ec8e Metadata: Move restriction check from Feed provider to activated_providers 2020-09-08 20:21:34 +03:00
Mark Felder
2011142ed9 Use :restrict_unauthenticated testing for more granular control 2020-09-08 20:21:34 +03:00
Mark Felder
a85ed6defb Do not serve RSS/Atom feeds when instance is private 2020-09-08 20:21:34 +03:00
Mark Felder
14d07081fd Feed provider only generates a redirect, so always activate it.
Making this configurable is misleading.
2020-09-08 20:21:34 +03:00
Mark Felder
ff07014b26 Disable providers of user and status metadata when instance is private 2020-09-08 20:21:34 +03:00
Mark Felder
630444ee08 Do not make RelMe metadata provider optional.
There's really no sound reason to turn this off anyway.
2020-09-08 20:21:34 +03:00
Haelwenn (lanodan) Monnier
10ef532c63 AP C2S: Restrict character limit on Note 2020-09-08 20:21:34 +03:00
Egor Kislitsyn
a781ac6ca5 Fix atom leak in AdminAPIController 2020-09-08 20:21:34 +03:00
Haelwenn (lanodan) Monnier
ee0e05f930
Drop unused "inReplyToAtomUri" in objects 2020-09-08 18:43:57 +02:00
Mark Felder
21efda2edb Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into unlisted 2020-09-08 09:31:26 -05:00
rinpatch
4b76d7ce67 Merge branch 'fix/admin-controller-atom-leak' into 'develop'
Fix atom leak in AdminAPIController

See merge request pleroma/secteam/pleroma!6
2020-09-08 14:00:00 +03:00
lain
9b85592b8b Merge branch 'fix/rich-media-fake-statuses' into 'develop'
Rich Media: Do not cache URLs for preview statuses

Closes #1987

See merge request pleroma/pleroma!2956
2020-09-08 13:56:42 +03:00
feld
43b07c31cb Merge branch 'fix/2095-deactivated-account-reset' into 'develop'
Disallow password resets for deactivated accounts

Closes #2095

See merge request pleroma/pleroma!2935
2020-09-08 13:53:47 +03:00
rinpatch
dccbed856d Merge branch 'http-fixes' into 'develop'
Improvements and fixes for http requests

See merge request pleroma/pleroma!2904
2020-09-08 13:53:16 +03:00
rinpatch
ea4b6c64d6 Merge branch 'feat/rich-media-improvements' into 'develop'
Rich media improvements

See merge request pleroma/pleroma!2944
2020-09-08 13:00:49 +03:00
rinpatch
8c3241df44 Merge branch 'fix/2047-rich-media-parser' into 'develop'
RichMedia parser fix

Closes #2047

See merge request pleroma/pleroma!2941
2020-09-08 13:00:15 +03:00
rinpatch
13e606941c Merge branch 'fix/2087-metadata' into 'develop'
Fix/2087 metadata

See merge request pleroma/secteam/pleroma!11
2020-09-08 12:55:30 +03:00
rinpatch
718c7cc847 Merge branch 'fix/apc2s-limits' into 'develop'
AP C2S: Restrict character limit on Note

Closes #2

See merge request pleroma/secteam/pleroma!9
2020-09-08 12:51:38 +03:00
Alibek Omarov
95688c90ad ForceBotUnlistedPolicy: simplify code 2020-09-08 01:15:15 +02:00
Alibek Omarov
8b695c3eeb ForceBotUnlistedPolicy: format 2020-09-07 22:53:45 +02:00
Alibek Omarov
699224a900 ForceBotUnlistedPolicy: initial add, tiny clean up from my previous version 2020-09-07 22:15:42 +02:00
Alexander Strizhakov
696bf09433
passing adapter options directly without adapter key 2020-09-07 19:59:17 +03:00
Alexander Strizhakov
a83916fdac
adapter options unification
not needed options deletion
2020-09-07 19:59:17 +03:00
lain
fdab01ab56 Merge branch 'fix/rich-media-fake-statuses' into 'develop'
Rich Media: Do not cache URLs for preview statuses

Closes #1987

See merge request pleroma/pleroma!2956
2020-09-07 10:19:19 +00:00
Maksim Pechnikov
917d325972 added api spec 2020-09-07 07:17:30 +03:00
Maksim Pechnikov
5ae56aafb2 added import mutes 2020-09-06 21:42:51 +03:00
rinpatch
170599c390 RichMedia: do not log webpages missing metadata as errors
Also fixes the return value of Parser.parse on errors, previously
was just `:ok` due to the logger call in the end
2020-09-05 22:05:35 +03:00
rinpatch
e198ba492e Rich Media: Do not cache URLs for preview statuses
Closes #1987
2020-09-05 20:53:46 +03:00
Ivan Tashkinov
88a6ee4a59 [#2497] Func defs grouping fix. 2020-09-05 20:23:18 +03:00
Ivan Tashkinov
f170d47130 [#2497] Adjusted media proxy preview invalidation. Allowed client-side caching for media preview. Adjusted prewarmer to fetch only proxiable URIs.
Removed :preview pool in favor of existing :media one. Misc. refactoring.
2020-09-05 20:19:09 +03:00
Ivan Tashkinov
c3b02341bf [#2497] Made media preview proxy fall back to media proxy instead of to source url. Adjusted tests. Refactoring. 2020-09-05 16:16:35 +03:00
Mark Felder
d1e1057e22 Merge branch 'media-preview-proxy' of git.pleroma.social:pleroma/pleroma into feld-media-preview-proxy 2020-09-03 14:48:43 -05:00
Mark Felder
6141eb94ab Fetch preview requests through the MediaProxy. Separate connection options are not needed.
Use a separate pool for preview requests
2020-09-03 14:42:11 -05:00
Ivan Tashkinov
60c925380d [#2497] Added support for enforcing output format for media proxy preview, used for avatar_static & header_static (AccountView). 2020-09-03 20:13:29 +03:00
Mark Felder
85446cc30c Merge branch 'develop' into media-preview-proxy 2020-09-03 10:34:06 -05:00
lain
9433311923 Merge branch 'bugfix/incoming-poll-emoji' into 'develop'
Fix emoji in Question, force generated context/context_id insertion

Closes #1870

See merge request pleroma/pleroma!2915
2020-09-03 11:50:30 +00:00
feld
d1a6f67b1d Merge branch 'fix/2095-deactivated-account-reset' into 'develop'
Disallow password resets for deactivated accounts

Closes #2095

See merge request pleroma/pleroma!2935
2020-09-02 17:11:24 +00:00
lain
119e11f455 Merge branch 'bugfix/mastoapi-lists' into 'develop'
Fix removing an account from a list

Closes #2103

See merge request pleroma/pleroma!2940
2020-09-02 17:03:45 +00:00
lain
581f382e71 ListController: DRY up stuff. 2020-09-02 18:32:00 +02:00
Mark Felder
cbf7f0e029 Disallow password resets for deactivated accounts.
Ensure all responses to password reset events are identical.
2020-09-02 09:09:13 -05:00
rinpatch
d48fc90978 StatusView: Start fetching rich media cards as soon as possible 2020-09-02 16:45:54 +03:00
rinpatch
19691389b9 Rich media: Add failure tracking 2020-09-02 14:59:52 +03:00
rinpatch
47ff425cfd Merge branch 'fix/2047-rich-media-parser' into 'develop'
RichMedia parser fix

Closes #2047

See merge request pleroma/pleroma!2941
2020-09-02 09:38:43 +00:00
Alexander Strizhakov
79f65b4374
correct pool and uniform headers format 2020-09-02 09:16:51 +03:00
Ivan Tashkinov
6ce28c4091 [#2497] Fix for png media proxy preview response headers (content-type & content-disposition). 2020-09-01 21:21:58 +03:00
Alexander Strizhakov
03d06062ab
don't fail on url fetch 2020-09-01 19:39:07 +03:00
Haelwenn (lanodan) Monnier
d872858046
Fix removing an account from a list
Mastodon (Frontend) changed a different method for deletes,
keeping old format as mastodon documentation is too loose
2020-09-01 12:49:32 +02:00
rinpatch
126461942b User table: ensure bio is always a string
Gets rid of '|| ""' in multiple places and fixes #2067
2020-09-01 10:45:42 +03:00
Haelwenn (lanodan) Monnier
b960cede9a
common_fixes: Force inserting context and context_id 2020-09-01 08:35:00 +02:00
Haelwenn (lanodan) Monnier
a142da3e4f
Add new Emoji Ecto.Type and fix emoji in Question 2020-09-01 08:34:57 +02:00
Haelwenn (lanodan) Monnier
2ecc7d9230
transmogrifier: Remove mastodon emoji-format from emoji field 2020-09-01 08:29:53 +02:00
Haelwenn
9d63b2c9db Merge branch 'chat-relation-constraints' into 'develop'
Chats: Add cascading delete on both referenced users.

See merge request pleroma/pleroma!2934
2020-08-31 20:55:05 +00:00
lain
0b621a834a Chats: Add cascading delete on both referenced users.
Also remove the now-superfluous join in the chat controller,
which was only used to filter out these cases.
2020-08-31 16:48:17 +02:00
Ivan Tashkinov
0a839d51a7 [#2497] Added Cache-Control response header for media proxy preview endpoint. 2020-08-31 13:08:50 +03:00
lain
d91c4feebe Notification: Small refactor. 2020-08-31 11:02:54 +02:00
Mark Felder
3737f38432 Merge branch 'develop' into feld-2168-media-preview-proxy 2020-08-30 11:28:45 -05:00
Mark Felder
2d2af75777 Support PNG previews to preserve alpha channels 2020-08-30 09:17:24 -05:00
Maksim Pechnikov
f0fefc4f5c marks notifications as read after mute 2020-08-28 18:17:44 +03:00
Mark Felder
5b4d483f52 Add a note about the avatars and banners situation 2020-08-27 17:28:21 -05:00
Mark Felder
67c79394e8 Support static avatars and header images with Mediaproxy Preview 2020-08-27 17:15:23 -05:00
Mark Felder
ef9d12fcc5 Attempt at supporting video thumbnails via ffmpeg 2020-08-27 12:31:55 -05:00
Haelwenn
6b01a09a08 Merge branch '2078-list-fixes' into 'develop'
Resolve "List timeline returns incorrectly assigned Account for replies and repeats"

Closes #2070 and #2078

See merge request pleroma/pleroma!2923
2020-08-27 17:05:53 +00:00
Mark Felder
157ecf4022 Follow redirects.
I think we should be using some global adapter options here, though.
2020-08-27 11:46:56 -05:00
lain
78939c1d16 ChatController: Don't die if the recipient is gone. 2020-08-27 12:13:18 +02:00
Mark Felder
2cfe2dc81b Merge branch 'develop' into feld-2168-media-preview-proxy 2020-08-26 16:37:57 -05:00
Mark Felder
eead2276e7 Ensure GIFs are redirected to the original or they become static. 2020-08-26 16:18:11 -05:00
lain
cfc99fe05c TimelineController: Keys are atoms now.
Closes #2078
Closes #2070
2020-08-26 15:37:30 +02:00
Mark Felder
ddbddc08fc Redirects for videos right now 2020-08-25 17:31:55 -05:00
Mark Felder
899ea2da3e Switch to imagemagick, only support videos 2020-08-25 17:18:22 -05:00
feld
fb33321fa2 Merge branch 'feature/1952-read-muted-notifications' into 'develop'
Automatically mark notifications about statuses from muted users and threads as read

Closes #1952

See merge request pleroma/pleroma!2893
2020-08-25 21:32:32 +00:00
Mark Felder
479578b148 Merge branch 'develop' into feld-2168-media-preview-proxy 2020-08-25 11:57:23 -05:00
lain
112bec5225 Webfinger: Handle bogus ids better. 2020-08-25 17:35:59 +02:00
lain
c1d51944c7 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into frontend-bundles-downloads 2020-08-25 11:44:51 +02:00
feld
d39abd02ac Merge branch 'relay-fix-admin-fe' into 'develop'
Relay fix for admin-fe

See merge request pleroma/pleroma!2902
2020-08-24 17:03:18 +00:00
Mark Felder
98f8851f29 Use the image thumbnail for rich metadata (OGP/Twittercards) 2020-08-22 15:12:11 -05:00
Maksim Pechnikov
0922791e4d updated errors on add emoji 2020-08-22 10:56:26 +03:00
Maksim Pechnikov
f5845ff033 upload emoji zip file 2020-08-22 10:42:02 +03:00
Mark Felder
4e6eb22b4a Try to warm the cache with the preview image if preview proxy enabled 2020-08-21 12:19:35 -05:00
lain
e1c8c599ff Merge branch 'features/validators-event' into 'develop'
Pipeline Ingestion: Event

See merge request pleroma/pleroma!2909
2020-08-21 16:10:30 +00:00
Alexander Strizhakov
1f8c32b773
adding actor type in user show 2020-08-21 10:38:56 +03:00
Ivan Tashkinov
aa0a5ffb48 [#2497] Media preview proxy: added quality config setting, adjusted width/height defaults. 2020-08-21 08:59:08 +03:00
Haelwenn (lanodan) Monnier
36c125a071
Pipeline Ingestion: Event 2020-08-20 21:49:26 +02:00
Ivan Tashkinov
02ad1cd8e9 [#2497] Media preview proxy: added Content-Disposition header with filename to response. 2020-08-20 09:58:50 +03:00
Ivan Tashkinov
4ee15e991e [#2497] Media preview proxy config refactoring & documentation. 2020-08-19 21:36:26 +03:00
Alexander Strizhakov
7dc275b69b
relay fix for admin-fe 2020-08-19 08:41:39 +03:00