Commit graph

6861 commits

Author SHA1 Message Date
lain 56b5b9aa27 Merge branch 'follower-mrf-again' into 'develop'
Follower mrf again

See merge request pleroma/pleroma!2833
2020-08-03 14:22:11 +00:00
lain 5876d5123c Merge branch 'object-age-fix' into 'develop'
MRF Object Age Policy: Don't break on messages without cc/to

See merge request pleroma/pleroma!2840
2020-08-03 12:50:10 +00:00
lain 10c792110e MRF Object Age Policy: Don't break on messages without cc/to 2020-08-03 14:12:32 +02:00
Alex Gleason dc88b6f091
Add email blacklist, fixes #1404 2020-08-02 14:53:42 -05:00
Ilja f671d7e68c Add welcome chatmessages
* I added the option in config/config.exs
* created a new module lib/pleroma/user/welcome_chat_message.ex
* Added it to the registration flow
* added to the cheatsheet
* added to the config/description.ex
* added to the Changelog.md
2020-08-02 15:54:59 +02:00
lain 70951d042b Merge branch '1985-unobtrusive-autologin-on-registration' into 'develop'
[#1985] Prevented force login on registration if account approval and/or email confirmation needed

Closes #1985

See merge request pleroma/pleroma!2823
2020-08-01 15:58:17 +00:00
rinpatch 45be1fe00e ConnectionPool: fix gun open errors being returned without an error tuple
When gun shuts down due to the host being unreachable, the worker
process shuts down with the same shutdown reason since they are linked.
Gun doesn't have error tuples in it's shutdown reason though, so we need
to handle it in get_conn.

Closes #2008
2020-08-01 18:02:26 +03:00
Roman Chvanikov 4bf44b7d65 Don't override user-agent header if it's been set 2020-08-01 10:04:25 +03:00
lain 4b18a07392 Revert "Merge branch 'revert-1ac0969c' into 'develop'"
This reverts merge request !2825
2020-07-31 15:18:04 +00:00
lain 010d77ec85 Revert "Merge branch 'mrf-silence-2' into 'develop'"
This reverts merge request !2820
2020-07-31 15:17:09 +00:00
lain 1ac0969c72 Merge branch 'mrf-silence-2' into 'develop'
MRF silencing alternative solution

See merge request pleroma/pleroma!2820
2020-07-31 14:43:33 +00:00
Haelwenn (lanodan) Monnier ac2598307d
Merge remote-tracking branch 'pleroma/develop' into features/poll-validation 2020-07-31 13:57:21 +02:00
Ivan Tashkinov 27b0a8b155 [#1985] Prevented force login on registration if account approval and/or email confirmation needed.
Refactored login code in OAuthController, reused in AccountController. Added tests.
2020-07-31 14:13:38 +03:00
lain 1dd162a5f7 SimplePolicy: Fix problem with DM leaks. 2020-07-31 09:57:30 +02:00
Haelwenn d1cf1108ac Merge branch 'render-preview-cards-in-chats' into 'develop'
Render preview cards in chats

See merge request pleroma/pleroma!2816
2020-07-30 20:08:03 +00:00
Haelwenn 87fe31fb5c Merge branch '1993-confirm-users-on-registration' into 'develop'
AccountController: Don't explicitly ask to keep users unconfirmed.

Closes #1993

See merge request pleroma/pleroma!2809
2020-07-30 20:01:04 +00:00
lain a3c37379e9 ChatMessage schema: Add preview cards. 2020-07-30 19:57:45 +02:00
lain 781b270863 ChatMessageReferenceView: Display preview cards. 2020-07-30 19:57:26 +02:00
lain 873ff5ce14 Merge branch 'hide-reactions' into 'develop'
Let favourites and emoji reactions optionally be hidden

See merge request pleroma/pleroma!2804
2020-07-30 12:41:47 +00:00
Mark Felder 33f0427809 Expose seconds_valid in Pleroma Captcha API endpoint 2020-07-29 16:07:22 -05:00
Alex Gleason 702f0fb822
Merge remote-tracking branch 'upstream/develop' into mrf-silence 2020-07-29 13:01:16 -05:00
Alex Gleason 93638935d7
SimpleMRF: :silence --> :followers_only 2020-07-29 12:58:08 -05:00
Alex Gleason d8a01c9432
Merge remote-tracking branch 'upstream/develop' into hide-reactions 2020-07-29 12:43:39 -05:00
lain dc36d6e9d2 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into frontend-bundles-admin 2020-07-29 16:24:22 +02:00
lain d9bf2c58df Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into 1993-confirm-users-on-registration 2020-07-29 14:42:09 +02:00
Haelwenn 269b61a240 Merge branch '1996-dont-break-on-chatmessages' into 'develop'
EnsureRePrepended: Don't break on chat messages.

Closes #1996

See merge request pleroma/pleroma!2808
2020-07-29 12:20:04 +00:00
lain de5c7e20a3 Merge branch 'bugfix/remote-user-atom' into 'develop'
feed/user_controller: Return 404 when the user is remote

Closes #1911

See merge request pleroma/pleroma!2811
2020-07-29 12:16:20 +00:00
Haelwenn (lanodan) Monnier 2e27847573
feed/user_controller: Return 404 when the user is remote 2020-07-29 14:02:02 +02:00
lain 79f9ddd8b7 Merge branch 'by-approval' into 'develop'
Registrations "by approval" mode

Closes #1931

See merge request pleroma/pleroma!2757
2020-07-29 11:27:26 +00:00
lain 66974e17a0 Endpoint: Serve a dynamically configured admin interface 2020-07-29 13:03:04 +02:00
lain 6a25f72a75 FrontendStatic: Work correctly for other frontend types. 2020-07-29 13:02:48 +02:00
lain c25c21dd22 AccountController: Don't explicitly ask to keep users unconfirmed.
Confirmation is set in User.register_changeset based on the config
settings.
2020-07-29 11:47:03 +02:00
lain edf8b6abfe EnsureRePrepended: Don't break on chat messages. 2020-07-29 10:53:08 +02:00
Alex Gleason 2a99e7df8e
SimpleMRF silence: optimize, work okay with nil values in addressing 2020-07-28 20:32:58 -05:00
Alex Gleason 3c90f7f715
SimpleMRF: Let instances be silenced 2020-07-28 19:06:42 -05:00
rinpatch dab1d8c98e gun ConnectionPool: Re-add a missing cast for remove_client 2020-07-28 23:48:41 +03:00
Alex Gleason 3b7c454418
Let favourites and emoji reactions optionally be hidden 2020-07-28 14:58:30 -05:00
rinpatch 4ce6179dc7 gun ConnectionPool: replace casts with calls
The slowdown from this is most likely immesurable, however it eliminates
possible false positives when tracking dead clients.
2020-07-28 20:49:48 +03:00
lain ad5c42628a FrontendStatic: Add plug to serve frontends based on configuration. 2020-07-28 17:35:16 +02:00
lain 14c28dcbd1 InstanceStatic: Refactor. 2020-07-28 15:44:47 +02:00
lain e5ac9534aa Merge branch 'cleanup/masto_fe-default_settings' into 'develop'
masto_fe_view: Remove @default_settings

See merge request pleroma/pleroma!2799
2020-07-28 07:41:44 +00:00
Alex Gleason f688c8df82
Fix User.registration_reason HTML sanitizing issues 2020-07-27 20:36:31 -05:00
Alex Gleason f43518eb74
Lint, fix test 2020-07-27 19:22:31 -05:00
Alex Gleason 6f44a0ee84
Add configurable registration_reason limit 2020-07-27 15:13:34 -05:00
Alex Gleason 6747bf2e16
Merge remote-tracking branch 'upstream/develop' into by-approval 2020-07-27 12:29:18 -05:00
lain e1a1c8e7de Merge branch 'develop' into 'cleanup/masto_fe-default_settings'
# Conflicts:
#   lib/pleroma/web/views/masto_fe_view.ex
2020-07-27 16:35:47 +00:00
Haelwenn (lanodan) Monnier 4a6389316d
masto_fe_view: Remove @default_settings 2020-07-27 17:59:13 +02:00
lain 9e6f4694dd Pipeline: Unify embedded_object / object_data, move to validator. 2020-07-27 16:39:50 +02:00
lain 762c9ea564 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into embedded-object-federation 2020-07-27 16:19:45 +02:00
lain 2a3abfd326 Merge branch 'issue/1934-welcome-email' into 'develop'
[#1934] welcome email

See merge request pleroma/pleroma!2786
2020-07-27 12:34:36 +00:00
lain 0d5d1c62ef Apply 1 suggestion(s) to 1 file(s) 2020-07-27 12:24:41 +00:00
Haelwenn 64b21cee14 Merge branch 'fix/reverse-proxy-no-body-connection-leak' into 'develop'
ReverseProxy: Fix a gun connection leak when there is an error with no body

See merge request pleroma/pleroma!2798
2020-07-27 08:20:46 +00:00
Alex Gleason 6931dbfa58
Merge remote-tracking branch 'upstream/develop' into by-approval 2020-07-26 15:46:14 -05:00
rinpatch 6bf8eee5f9 ReverseProxy tesla client: remove handling of old_conn
This is no longer relevant because we use a custom
FollowRedirects middleware now
2020-07-26 20:52:00 +03:00
rinpatch d4fbec62a3 ReverseProxy: Fix a gun connection leak when there is an error with no
body

- Modify `close/1` function to do the same thing it does for hackney,
which is - close the client rather than the whole connection
- Release the connection when there is no body to chunk
2020-07-26 19:30:17 +03:00
Alibek Omarov 6107440ea0 OpenAPI: remove accidentally pasted buffer data 2020-07-26 13:59:46 +00:00
Alibek Omarov b31844d6e0 OpenAPI: Replace actor_id by account_id to follow ChatMessage schema 2020-07-26 13:54:56 +00:00
Lain Soykaf 3d13fb05f8 Side Effects: On undoing, put information about the undone object. 2020-07-24 14:40:22 +02:00
Lain Soykaf 91f3cf9bc6 Pipeline: Add embedded object federation. 2020-07-24 14:06:41 +02:00
Maksim Pechnikov 61ef1fca4b remove duplicate module 2020-07-24 08:35:06 +03:00
feld 51627a10e5 Merge branch 'unblock-domain-via-query' into 'develop'
Allow unblocking a domain via query params

Closes #1971

See merge request pleroma/pleroma!2783
2020-07-23 20:06:11 +00:00
Mark Felder 4bfad0b483 Support blocking via query parameters as well and document the change. 2020-07-23 12:59:40 -05:00
Haelwenn 6100b90209 Merge branch '1976-status-view-fixes' into 'develop'
StatusView: Handle badly formatted emoji reactions.

Closes #1976

See merge request pleroma/pleroma!2788
2020-07-23 16:58:36 +00:00
Maksim Pechnikov 67ab9a7928 Merge branch 'develop' into issue/1934-welcome-email 2020-07-23 16:36:27 +03:00
lain 76aa49a0c5 Merge branch '1973-chats-fix-with-restrict-unauthenticated' into 'develop'
[#1973] Fixed accounts rendering in GET /api/v1/pleroma/chats with truish :restrict_unauthenticated setting

Closes #1973

See merge request pleroma/pleroma!2791
2020-07-23 12:52:02 +00:00
Ivan Tashkinov 9ea51a6de5 [#2791] AccountView: renamed :force option to :skip_visibility_check. 2020-07-23 15:08:30 +03:00
lain b2ba70eec4 Merge branch 'bugfix/mrf-reject-logging' into 'develop'
Fix #783: Make MRF reject log as info level instead of error

Closes #783

See merge request pleroma/pleroma!2758
2020-07-23 11:08:29 +00:00
lain 250e0369c7 Merge branch 'issue/1878' into 'develop'
[#1878] fix reset confirmation email in admin section

See merge request pleroma/pleroma!2751
2020-07-23 10:56:33 +00:00
lain a81581472f Merge branch 'linkify' into 'develop'
Fix Linkify

See merge request pleroma/pleroma!2792
2020-07-23 10:28:52 +00:00
Maksim Pechnikov 7991ddad58 added warning to use old keys 2020-07-23 09:01:37 +03:00
Ivan Tashkinov 6f5f7af607 [#1973] Fixed accounts rendering in GET /api/v1/pleroma/chats with truish :restrict_unauthenticated.
Made `Pleroma.Web.MastodonAPI.AccountView.render("show.json", _)` demand :for or :force option in order to prevent incorrect rendering of empty map instead of expected user representation with truish :restrict_unauthenticated setting.
2020-07-22 19:06:00 +03:00
lain 1c9752cff4 Merge branch 'fix/pleroma-api-emoji-packs' into 'develop'
Fix /api/pleroma/emoji/packs index endpoint.

See merge request pleroma/pleroma!2777
2020-07-22 15:09:32 +00:00
Maksim Pechnikov db0224d174 added check user email for welcome email 2020-07-22 16:00:49 +03:00
Lain Soykaf 0cb9e1da74 StatusView: Handle badly formatted emoji reactions. 2020-07-22 14:44:06 +02:00
Maksim Pechnikov 5879d36854 fix sender for welcome email 2020-07-22 15:34:47 +03:00
Mark Felder 341a8f3500 Skip the correct plug 2020-07-21 17:26:59 -05:00
lain 5b1eeb06d8 Revert "Merge branch 'revert-2b5d9eb1' into 'develop'"
This reverts merge request !2784
2020-07-21 22:18:17 +00:00
lain 696c13ce54 Revert "Merge branch 'linkify' into 'develop'"
This reverts merge request !2677
2020-07-21 22:17:34 +00:00
Mark Felder 97c60b6a43 Merge branch 'develop' into fix/pleroma-api-emoji-packs 2020-07-21 16:25:45 -05:00
lain 2b5d9eb105 Merge branch 'linkify' into 'develop'
AutoLinker --> Linkify, update to latest version

See merge request pleroma/pleroma!2677
2020-07-21 19:35:43 +00:00
lain fa2421dd7e Merge branch 'gopher-fix' into 'develop'
Gopher: using atom keys in search params

See merge request pleroma/pleroma!2775
2020-07-21 19:31:03 +00:00
Egor Kislitsyn bdb3375933
Allow unblocking a domain via query params 2020-07-21 16:06:46 +04:00
Maksim Pechnikov 3edaecae96 added welcome email 2020-07-21 09:25:53 +03:00
Alex Gleason 204dddcfaa
Pleroma.Formatter can have partial updates 2020-07-20 13:45:05 -05:00
href 4bac25e6f5 Don't enable Pleroma.HTTP.Middleware.FollowRedirects unless Gun is used 2020-07-18 13:17:38 +02:00
KokaKiwi 7ce722ce3e
Fix /api/pleroma/emoji/packs index endpoint. 2020-07-18 12:55:04 +02:00
Haelwenn 10d46235cf Merge branch 'fix-1958' into 'develop'
OpenAPI: Add :id to follower/following endpoints, fixes #1958

Closes #1958

See merge request pleroma/pleroma!2772
2020-07-17 18:54:30 +00:00
Alex Gleason 48f8b26c92
OpenAPI: Add :id to follower/following endpoints, fixes #1958 2020-07-17 12:35:28 -05:00
Alex Gleason 5756843736
Fully delete users with status :approval_pending 2020-07-17 12:19:41 -05:00
Mark Felder 20a496d2cb Expose the post formats in /api/v1/instance 2020-07-17 10:45:41 -05:00
Alexander Strizhakov af376cbffb
using atom keys in search params 2020-07-17 18:06:05 +03:00
Mark Felder 62438530e2 TOTP length is configurable, so we can't hardcode this here. 2020-07-17 08:19:49 -05:00
Alex Gleason 5e74556703
Sanitize reason param in POST /api/v1/accounts 2020-07-16 20:25:53 -05:00
Alex Gleason 38425ebdbf
Merge remote-tracking branch 'upstream/develop' into linkify 2020-07-16 14:51:36 -05:00
Mark Felder 3be64556db Improve TOTP token and recovery input fields in OAuth login 2020-07-16 13:11:03 -05:00
Alex Gleason 9ce95fa68f
Use approval_required in /api/v1/instance 2020-07-15 17:04:30 -05:00
Mark Felder b2d398b1d0 Merge branch 'develop' into refactor/gun-pool-registry 2020-07-15 13:34:27 -05:00
Mark Felder 9d30bacace Merge branch 'develop' into refactor/notification_settings 2020-07-15 09:30:23 -05:00
rinpatch 0fe36b311c Merge branch 'features/mrf-reasons' into 'develop'
Add rejection reason to our MRFs

See merge request pleroma/pleroma!2759
2020-07-15 14:00:22 +00:00
Haelwenn (lanodan) Monnier d29b8997f4
MastoAPI: fix & test giving MRF reject reasons 2020-07-15 15:25:33 +02:00
rinpatch 7115c5f82e ConnectionPool.Worker: do not stop with an error when there is a timeout
This produced error log messages about GenServer termination
every time the connection was not open due to a timeout.

Instead we stop with `{:shutdown, <gun_error>}` since shutting down
when the connection can't be established is normal behavior.
2020-07-15 15:58:08 +03:00
href 6d583bcc3b Set a default timeout for Gun adapter timeout 2020-07-15 15:26:35 +03:00
href afd378f84c host is now useless 2020-07-15 15:26:35 +03:00
href ce1a42bd04 Simplify TLS opts
- `verify_fun` is not useful now
- use `customize_check_hostname` (OTP 20+ so OK)
- `partial_chain` is useless as of OTP 21.1 (wasn't there, but hackney/..
uses it)
2020-07-15 15:26:35 +03:00
href 53ba6815b1 parentheses... 2020-07-15 15:26:35 +03:00
href 23d714ed30 Fix race in enforcer/reclaimer start 2020-07-15 15:26:35 +03:00
href 6a0f2bdf8c Ensure connections error get known by the caller 2020-07-15 15:26:35 +03:00
href 46dd276d68 ConnectionPool.Worker: Open gun conn in continue instead of init 2020-07-15 15:26:35 +03:00
rinpatch a705637dcf Connection Pool: fix LRFU implementation to not actually be LRU
The numbers of the native time unit were so small the CRF was always 1,
making it an LRU. This commit switches the time to miliseconds and changes
the time delta multiplier to the one yielding mostly highest hit rates according
to the paper
2020-07-15 15:26:35 +03:00
rinpatch 9b73c35ca8 Request limiter setup: consider {:error, :existing} a success
When the application restarts (which happens after certain config
changes), the limiters are not destroyed, so `ConcurrentLimiter.new`
will produce {:error, :existing}
2020-07-15 15:26:35 +03:00
rinpatch 12fa5541f0 FollowRedirects: Unconditionally release the connection if there is an error
There is no need for streaming the body if there is no body
2020-07-15 15:26:35 +03:00
rinpatch 37f1e781cb Gun adapter helper: fix wildcard cert issues on OTP 23
See https://bugs.erlang.org/browse/ERL-1260 for more info.

The ssl match function is basically copied from mint, except
that `:string.lowercase/1` was replaced by `:string.casefold`.
It was a TODO in mint's code, so might as well do it since we don't need
to support OTP <20.

Closes #1834
2020-07-15 15:26:35 +03:00
rinpatch 007843b75e Add documentation for new connection pool settings and remove some
`:retry_timeout` and `:retry` got removed because reconnecting on failure is
something the new pool intentionally doesn't do.

`:max_overflow` had to go in favor of `:max_waiting`, I didn't reuse the key because
the settings are very different in their behaviour.

`:checkin_timeout` got removed in favor of `:connection_acquisition_wait`,
I didn't reuse the key because the settings are somewhat different.

I didn't do any migrations/deprecation warnings/changelog entries because
these settings were never in stable.
2020-07-15 15:26:35 +03:00
rinpatch 7882f28569 Use erlang monotonic time for CRF calculation 2020-07-15 15:26:35 +03:00
rinpatch 00926a63fb Adapter Helper: Use built-in ip address type 2020-07-15 15:26:35 +03:00
rinpatch 4128e3a84a HTTP: Implement max request limits 2020-07-15 15:26:35 +03:00
rinpatch 94c8f3cfaf Use a custom pool-aware FollowRedirects middleware 2020-07-15 15:26:35 +03:00
rinpatch 281ddd5e37 Connection pool: fix connections being supervised by gun_sup 2020-07-15 15:26:35 +03:00
rinpatch 1b15cb066c Connection pool: Add client death tracking
While running this in production I noticed a number of ghost
processes with all their clients dead before they released the connection,
so let's track them to log it and remove them from clients
2020-07-15 15:26:35 +03:00
rinpatch e94ba05e52 Connection pool: Fix a possible infinite recursion if the pool is exhausted 2020-07-15 15:26:35 +03:00
rinpatch 7738fbbaf5 Connection pool: implement logging and telemetry events 2020-07-15 15:26:25 +03:00
rinpatch 0ffde499b8 Connection Pool: register workers using :via 2020-07-15 15:24:47 +03:00
rinpatch ec9d0d146b Connection pool: Fix race conditions in limit enforcement
Fixes race conditions in limit enforcement by putting worker processes
in a DynamicSupervisor
2020-07-15 15:17:27 +03:00
rinpatch d08b157699 Connection pool: check that there actually is a result
Sometimes connections died before being released to the pool, resulting
in MatchErrors
2020-07-15 15:17:27 +03:00
rinpatch fffbcffb8c Connection Pool: don't enforce pool limits if no new connection needs to be opened 2020-07-15 15:17:27 +03:00
rinpatch 58a4f350a8 Refactor gun pooling and simplify adapter option insertion
This patch refactors gun pooling to use Elixir process registry and
simplifies adapter option insertion.

Having the pool use process registry instead of a GenServer has a number of advantages:
- Simpler code: the initial implementation adds about half the lines of code it deletes
- Concurrency: unlike a GenServer, ETS-based registry can handle multiple checkout/checkin
requests at the same time
- Precise and easy idle connection clousure: current proposal for closing idle connections in
the GenServer-based pool needs to filter through all connections once a minute and compare their
last active time with closing time. With Elixir process registry this can be done
by just using `Process.send_after`/`Process.cancel_timer` in the worker process.
- Lower memory footprint: In my tests `gun-memory-leak` branch uses about 290mb on peak load (250 connections)
and 235mb on idle (5-10 connections). Registry-based pool uses 210mb on idle and 240mb on peak load
2020-07-15 15:17:27 +03:00
Haelwenn (lanodan) Monnier e4beff90f5
Create Question: Add context field to create 2020-07-15 12:32:43 +02:00
Haelwenn (lanodan) Monnier bfe2dafd39
{Answer,Question}Validator: Keep both actor and attributedTo for now but sync them 2020-07-15 12:32:42 +02:00
Haelwenn (lanodan) Monnier c19bdc811e
Fix attachments in polls 2020-07-15 12:32:42 +02:00
Haelwenn (lanodan) Monnier d713930ea7
Fixup for EctoType module move 2020-07-15 11:40:24 +02:00
Haelwenn (lanodan) Monnier 435a65b976
QuestionValidator: Use AttachmentValidator 2020-07-15 11:40:24 +02:00
Haelwenn (lanodan) Monnier fe6924d00d
CreateGenericValidator: add expires_at 2020-07-15 11:40:24 +02:00
Haelwenn (lanodan) Monnier 82895a4012
SideEffects: port ones from ActivityPub.do_create and ActivityPub.insert 2020-07-15 11:40:23 +02:00
Haelwenn (lanodan) Monnier 4f70fd4105
question_validator: remove conversation field 2020-07-15 11:39:56 +02:00
Haelwenn (lanodan) Monnier 173f69c854
question_validator: fix for mastodon poll expiration
Mastodon activities do not have a "closed" field, this could be seen on
https://pouet.it/users/lanodan_tmp/statuses/104345126997708380
which runs Mastodon 3.1.4 (SDF runs 3.1.2)
2020-07-15 11:39:56 +02:00
Haelwenn (lanodan) Monnier 47ba796f41
create_question_validator: remove validate_recipients_match 2020-07-15 11:39:55 +02:00
Haelwenn (lanodan) Monnier ad867ccfa1
fetcher: Reinject Question through validator 2020-07-15 11:39:55 +02:00
Haelwenn (lanodan) Monnier 6b9c4bc1f1
fetcher: more descriptive variable names 2020-07-15 11:39:55 +02:00
Haelwenn (lanodan) Monnier 4644a8bd10
Fix multiple-choice poll detection 2020-07-15 11:39:55 +02:00
Haelwenn (lanodan) Monnier 10bd08ef07
transmogrifier_test: test date, anyOf and oneOf completely 2020-07-15 11:39:54 +02:00
Haelwenn (lanodan) Monnier 89a2433154
QuestionOptionsValidator: inline schema for replies 2020-07-15 11:39:54 +02:00
Haelwenn (lanodan) Monnier c5efaf6b00
AnswerValidator: Create 2020-07-15 11:39:54 +02:00
Haelwenn (lanodan) Monnier 7bcd7a9595
QuestionValidator: Create 2020-07-15 11:39:53 +02:00
Alex Gleason 0d004a9d04
Email admins when a new unapproved account is up for review 2020-07-14 20:31:20 -05:00
Alex Gleason 48983e9421
Merge remote-tracking branch 'upstream/develop' into by-approval 2020-07-14 18:56:40 -05:00
Alex Gleason df3d1bf5e5
Add :approval_pending to User @type account_status 2020-07-14 18:56:36 -05:00
Alex Gleason 20d24741af
AdminAPI: Add PATCH /api/pleroma/admin/users/approve endpoint 2020-07-14 18:02:44 -05:00
Alex Gleason 33f1b29b2c
AdminAPI: Filter users by need_approval 2020-07-14 14:29:03 -05:00
Alex Gleason b750129da1
AdminAPI: Return approval_pending with users 2020-07-14 13:47:05 -05:00
Maksim Pechnikov 1dd767b8c7 Include port in host for signatures 2020-07-14 21:44:08 +03:00
Mark Felder 777a7edc6b Lint and fix test to match new log message 2020-07-14 13:15:37 -05:00
Mark Felder 37297a8482 Improve error messages 2020-07-14 13:12:16 -05:00
Alex Gleason a1570ba6ad
AdminAPI: Return registration_reason with users 2020-07-14 13:08:39 -05:00
feld 3f65f2ea79 Merge branch 'feature/1922-media-proxy-whitelist' into 'develop'
Support for hosts with scheme in MediaProxy whitelist setting

Closes #1922

See merge request pleroma/pleroma!2754
2020-07-14 18:07:44 +00:00
feld 63798e89de Merge branch 'fix/scrubber-recompile-warnings-as-errors' into 'develop'
Fix in-db configuration in dev environment

See merge request pleroma/pleroma!2764
2020-07-14 18:05:36 +00:00
feld 2909dc873b Merge branch '1940-admin-token-oauthless-auth' into 'develop'
[#1940] Reinstated OAuth-less `admin_token` authentication

Closes #1940

See merge request pleroma/pleroma!2760
2020-07-14 16:48:26 +00:00
Ivan Tashkinov 124b4709dc [#1940] Added admin_token param (as admin_api_params/0) to existing Admin API OpenAPI operations. 2020-07-14 19:31:05 +03:00
feld 246f49d685 Merge branch '1916-transmogrifier-skipping-oddities-in-address-fields' into 'develop'
Transmogrifier: filtering weirdness in address fields

Closes #1916

See merge request pleroma/pleroma!2762
2020-07-14 15:17:25 +00:00
rinpatch e6ccc25565 Fix in-db configuration in dev environment
Previously, in-db configuration only worked when `warnings_as_errors`
was disabled because re-compiling scrubbers on application restart
created a warning about module conflicts. This patch fixes that
by enabling `ignore_module_conflict` option of the compiler at runtime,
and enables `warnings_as_errors` in prod since there is no reason
to keep it disabled anymore.
2020-07-14 13:16:54 +03:00
Haelwenn (lanodan) Monnier 858d9fc7e8
MRF Policies: Return a {:reject, reason} instead of {:reject, nil} 2020-07-14 11:04:16 +02:00
Ivan Tashkinov 9b225db7d8 [#1940] Applied rate limit for requests with bad admin_token. Added doc warnings on admin_token setting. 2020-07-14 11:58:41 +03:00
Ivan Tashkinov cf3f8cb72a [#1940] Reinstated OAuth-less admin_token authentication. Refactored UserIsAdminPlug (freed from checking admin scopes presence). 2020-07-19 21:35:57 +03:00
Alex Gleason 5ddf0415c4
Accept reason in POST /api/v1/accounts and store in DB 2020-07-14 00:22:12 -05:00
= b221b640a2 Transmogrifier: filtering weirdness in address fields 2020-07-13 22:43:21 +03:00
Mark Felder 80c21100db Merge branch 'develop' into refactor/notification_settings 2020-07-13 13:32:21 -05:00
feld 5d215fd81f Merge branch 'config-behaviours-runtime' into 'develop'
Config/Docs: Expand behaviour suggestions modules at runtime

Closes #1941

See merge request pleroma/pleroma!2755
2020-07-13 15:45:25 +00:00
feld 8f9ee694ed Merge branch 'features/profile-fields-emojo' into 'develop'
user: Add support for custom emojis in profile fields

See merge request pleroma/pleroma!2741
2020-07-13 15:43:46 +00:00
Haelwenn (lanodan) Monnier ce243b107f
Use Logger.info for {:reject, reason} 2020-07-13 15:26:31 +02:00
Haelwenn (lanodan) Monnier 2aac92e9e0
Transmogrifier.fix_in_reply_to/2: Use warn for non-fatal fail to get replied-to post 2020-07-13 15:26:30 +02:00
Haelwenn f918b6f86d Merge branch '1937-renaming' into 'develop'
ActivityPub: Don't rename a clashing nickname with the same ap id.

Closes #1937

See merge request pleroma/pleroma!2748
2020-07-13 12:06:43 +00:00
Alex Gleason bcfd38c8f3
Make a user unapproved when registering with account_approval_required on 2020-07-12 22:55:37 -05:00
Alex Gleason e4e5577818
Prevent unapproved users from logging in 2020-07-12 22:55:26 -05:00
Alex Gleason 51ab8d0128
Add account_approval_required instance setting 2020-07-12 20:27:58 -05:00
Alex Gleason a62f17da17
Add approval_pending field to User 2020-07-12 20:27:14 -05:00
href 4347d2de5e Config/Docs: Expand behaviour suggestions at runtime 2020-07-12 17:23:33 +02:00
Alexander Strizhakov b376442325
MediaProxy whitelist setting now supports hosts with scheme
added deprecation warning about using bare domains
2020-07-12 12:41:40 +03:00
Roman Chvanikov 3116a75e80 Check if mogrify available before calling it 2020-07-11 18:22:03 +03:00
Roman Chvanikov 523f1b93a4 Remove Logger requirement 2020-07-11 18:15:51 +03:00
Roman Chvanikov 45bd64e2a7 Error in Filter.Exiftool if exiftool not found 2020-07-11 18:11:23 +03:00
Roman Chvanikov aedbbec88a Add Pleroma.Utils.command_available?/1 and use where appropriate 2020-07-11 15:48:45 +03:00
Maksim Pechnikov 62fc8eab0d fix reset confirmation email in admin section 2020-07-11 07:20:35 +03:00
Mark Felder b329f05ed6 Remove unused @types 2020-07-10 17:08:54 -05:00
Mark Felder 9e45672674 Add a moduledoc 2020-07-10 17:07:28 -05:00
Mark Felder 6167593881 Support Exiftool for stripping EXIF data
We really only want to strip location data anyway, and mogrify strips color profiles.
2020-07-10 16:46:26 -05:00
Mark Felder 3c0c1fd2ef Merge branch 'develop' into issue/1790-updated-oban 2020-07-10 11:34:53 -05:00
feld ce9514000d Merge branch 'proxy-range-and-chunk' into 'develop'
ReverseProxy: Streaming and disable encoding if Range

Closes #1860 and #1823

See merge request pleroma/pleroma!2749
2020-07-10 16:18:28 +00:00
Mark Felder 72b3dbf4d1 Credo line length complaint 2020-07-10 11:04:19 -05:00
href a1dace088c ReverseProxy: Streaming and disable encoding if Range
Fixes #1823
Fixes #1860
2020-07-10 17:23:11 +02:00
lain 93e494ec21 ActivityPub: Don't rename a clashing nickname with the same ap id. 2020-07-10 14:10:44 +02:00
lain b39eb6ecc5 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into chat-federation-information 2020-07-10 12:26:53 +02:00
Haelwenn 31a0ed5d01 Merge branch 'admin-api-user-credentials-for-remote-users-fix' into 'develop'
Admin API: fix `GET /api/pleroma/admin/users/:nickname/credentials` returning 404 when getting the credentials of a remote user while `:instance, :limit_to_local_content` is set to `:unauthenticated`

Closes admin-fe#107 and #1788

See merge request pleroma/pleroma!2554
2020-07-10 09:22:14 +00:00
lain 48f98a2748 Merge branch 'mix-tasks-improvement' into 'develop'
Mix tasks improvement

See merge request pleroma/pleroma!2723
2020-07-10 08:58:44 +00:00
Haelwenn 4ac6e6283f Merge branch 'develop' into 'admin-api-user-credentials-for-remote-users-fix'
# Conflicts:
#   CHANGELOG.md
2020-07-10 08:55:15 +00:00
Haelwenn 5ea6387572 Merge branch 'user-search-nickname-rank-boost' into 'develop'
Improved search results for localized nickname match

See merge request pleroma/pleroma!2733
2020-07-10 08:49:14 +00:00
Haelwenn (lanodan) Monnier cc7153cd82
user: Add support for custom emojis in profile fields 2020-07-09 19:21:58 +02:00
Mark Felder 2b979cc90c Add AdminFE reports URL to report emails 2020-07-09 11:55:40 -05:00
Mark Felder d23804f191 Use the Pleroma.Config alias 2020-07-09 10:53:51 -05:00
Mark Felder 49c4e24953 Merge branch 'develop' into fix/csp-for-captcha 2020-07-09 09:08:59 -05:00
lain 8ca1f3e8c6 Merge branch '1723-token-fixes' into 'develop'
AccountController: Return scope in proper format.

Closes #1723

See merge request pleroma/pleroma!2694
2020-07-09 13:10:05 +00:00
lain f4469dc741 Merge branch 'features/favicons' into 'develop'
Add support for remote favicons

See merge request pleroma/pleroma!2261
2020-07-09 13:09:31 +00:00
Haelwenn bdc7b60610 Merge branch '1925-muting-reblogs' into 'develop'
AccountController: Fix muting / unmuting reblogs.

Closes #1925

See merge request pleroma/pleroma!2732
2020-07-09 12:10:26 +00:00
eugenijm c2be0da79f Admin API: fix GET /api/pleroma/admin/users/:nickname/credentials returning 404 when getting the credentials of a remote user while :instance, :limit_to_local_content is set to :unauthenticated 2020-07-09 14:57:40 +03:00
Haelwenn 68036f5a3b Merge branch 'follow-pipeline' into 'develop'
Handle `Follow` activities with the pipeline

See merge request pleroma/pleroma!2734
2020-07-09 10:32:24 +00:00
lain 6d688f14fa Merge branch 'bugfix/status-deletion' into 'develop'
#1920 fix activity deletion

See merge request pleroma/pleroma!2721
2020-07-09 09:37:52 +00:00
Ivan Tashkinov 123352ffa1 Removed unused trigram index on users. Fixed users_fts_index usage. 2020-07-08 22:50:15 +03:00
lain 00e54f8fe7 ActivityPub: Remove follow and fix issues. 2020-07-08 17:07:24 +02:00
lain 9dda8b5427 CommonAPI: Switch to pipeline for following. 2020-07-08 15:40:56 +02:00
Alexander Strizhakov b28cc15459
don't restart pleroma in mix tasks 2020-07-08 15:58:47 +03:00
Alexander Strizhakov 72ad3a66f4
don't fully start pleroma in mix tasks 2020-07-08 15:58:47 +03:00
lain 172f4aff8e Transmogrifier: Move following to the pipeline. 2020-07-08 14:30:53 +02:00
lain 29fa75d00d Notification: For follows, notify the followed. 2020-07-08 14:29:29 +02:00
lain 7d0e2b3fdd Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into follow-pipeline 2020-07-08 13:23:07 +02:00
lain cdc153db31 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into issue/1880 2020-07-08 13:21:58 +02:00
lain 6335b32aa8 Merge branch '1895-hashtag-timeline-restrict-unauthenticated-fix' into 'develop'
[#1895] Made hashtag timeline respect `:restrict_unauthenticated` instance setting

Closes #1895

See merge request pleroma/pleroma!2731
2020-07-08 10:55:03 +00:00
Ivan Tashkinov 704a383055 Improved search results for localized nickname match. Tweaked user search to rank nickname matches higher than name matches. 2020-07-08 13:14:18 +03:00
Ivan Tashkinov a6495f4a68 [#1895] credo fix. 2020-07-08 12:54:23 +03:00
lain c0385cf47a AccountController: Fix muting / unmuting reblogs. 2020-07-08 11:52:29 +02:00
Ivan Tashkinov 3f8370a285 [#1895] Applied code review suggestion. 2020-07-08 12:36:44 +03:00
Maksim Pechnikov e341f81785 fixed delete Like activity in remove user 2020-07-08 09:06:23 +03:00
Haelwenn (lanodan) Monnier 31fef95e35
Add changelog and documentation 2020-07-08 06:29:24 +02:00
Haelwenn (lanodan) Monnier 312fc55f14
Add [:instances_favicons, :enabled] setting, defaults to false 2020-07-08 06:28:40 +02:00
Haelwenn (lanodan) Monnier 8c9df2d2e6
instance: Prevent loop of updates 2020-07-08 06:28:40 +02:00
Haelwenn (lanodan) Monnier 013e2c5057
Use instances table instead of Cachex 2020-07-08 06:28:39 +02:00
Haelwenn (lanodan) Monnier 6a679d80c9
Move get_favicon to Pleroma.Instances, use / 2020-07-08 06:28:39 +02:00
Haelwenn (lanodan) Monnier f6d09fafee
Add support for remote favicons 2020-07-08 06:28:39 +02:00
Haelwenn a8447c3803 Merge branch '1918-avatar-background-header-reset-2' into 'develop'
Resolve "Better support for resetting avatar/header/background"

Closes #1918

See merge request pleroma/pleroma!2729
2020-07-08 03:25:30 +00:00
Haelwenn db13acf242 Merge branch 'fix/twitter-rich-media-preview' into 'develop'
Add "Bot" to User Agent to coerce Twitter into serving OGP <meta> tags.

Closes #1923

See merge request pleroma/pleroma!2730
2020-07-08 03:05:20 +00:00
lain 8939ff39e4 Merge branch 'remove-twitter-api' into 'develop'
Remove some TwitterAPI endpoints

See merge request pleroma/pleroma!2327
2020-07-07 18:26:07 +00:00
Ivan Tashkinov 3e08e77151 [#1895] Made hashtag timeline respect :restrict_unauthenticated instance setting. 2020-07-07 20:37:11 +03:00
Mark Felder 18438a9bf0 Add "Bot" to User Agent to coerce Twitter into serving OGP <meta> tags. 2020-07-07 11:21:05 -05:00
lain c8dd973af5 AccountController: Remove unused update_? routes.
These were not documented and are also not used anymore.
2020-07-07 16:53:20 +02:00
lain 59cf78e412 AccountController: Allow removal / reset of user images. 2020-07-07 16:53:03 +02:00
lain 9ad305209a Merge branch 'bugfix/peertube-videos' into 'develop'
Fix getting videos from peertube

See merge request pleroma/pleroma!2728
2020-07-07 09:14:50 +00:00
Haelwenn fa0fa4552f Merge branch 'feature/1392-support-irreversible-filters' into 'develop'
Updates for Feature/1392 support irreversible filters

Closes #1392

See merge request pleroma/pleroma!2186
2020-07-07 08:23:49 +00:00
Haelwenn (lanodan) Monnier fbb9743a70
Fix getting videos from peertube 2020-07-07 09:38:38 +02:00
Haelwenn d81acb5f62 Merge branch 'description-limits' into 'develop'
Add limits to image descriptions

See merge request pleroma/pleroma!2724
2020-07-07 03:00:52 +00:00
Mark Felder da4029391d IO list, not concatenation 2020-07-06 11:28:08 -05:00
Mark Felder 65843d92c4 Simplify the logic 2020-07-06 10:59:41 -05:00
lain a6a12b241f FollowValidator: Add basic validation. 2020-07-06 15:57:19 +02:00
lain 28feba8af4 Preloaders: Remove status_net preloader 2020-07-06 12:24:45 +02:00
lain 1963e143c5 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into remove-twitter-api 2020-07-06 12:15:59 +02:00
lain 158c26d7dd StaticFE Plug: Use phoenix helper to get the requested format. 2020-07-06 12:11:10 +02:00
lain ed4f9f6a29 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into 1507-static-fe-prioritize-json 2020-07-06 12:07:56 +02:00
lain 208baf157a ActivityPub: Add new 'capabilities' to user. 2020-07-06 11:38:40 +02:00
lain 74b88c0a8b Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into chat-federation-information 2020-07-06 11:27:06 +02:00
rinpatch 69f0b286f7 Merge branch '1915-dont-filter-announce-notifications' into 'develop'
Streamer: Don't filter out announce notifications.

Closes #1915

See merge request pleroma/pleroma!2719
2020-07-06 09:21:03 +00:00
lain cc8b4e48d9 InstanceView: Add chat limit, description limit 2020-07-06 11:12:37 +02:00
lain af7720237b Upload: Restrict description length 2020-07-06 11:08:13 +02:00
Alexander Strizhakov 20c27bef40
renaming back and reject nil on create 2020-07-06 09:30:42 +03:00
Alexander Strizhakov 771748db1f
Apply suggestion to lib/pleroma/filter.ex 2020-07-06 09:30:41 +03:00
Alexander Strizhakov 6558f31cda
don't filter notifications for follow and move types 2020-07-06 09:30:41 +03:00
Sergey Suprunenko 8277b29790
Restrict thread statuses that contain user's irreversible filters 2020-07-06 09:30:39 +03:00
Sergey Suprunenko 5af1bf443d
Skip notifications for statuses that contain an irreversible filtered word 2020-07-06 09:28:22 +03:00
Sergey Suprunenko 4a8c26654e
Restrict statuses that contain user's irreversible filters 2020-07-06 09:28:21 +03:00
Alexander Strizhakov 480dfafa83
don't save tesla settings into db 2020-07-06 08:48:20 +03:00
Roman Chvanikov fc1f34b851 Delete activity before sending response to client 2020-07-06 00:01:25 +03:00
Mark Felder af612bd006 Ensure all CSP parameters for remote hosts have a scheme 2020-07-05 10:11:43 -05:00
lain cf56655614 Streamer: Don't filter out announce notifications. 2020-07-04 17:11:37 +02:00
Mark Felder e9a28078ad Rename function and clarify that CSP is only strict with MediaProxy enabled 2020-07-03 17:18:22 -05:00
Mark Felder eaa59daa4c Add Captcha endpoint to CSP headers when MediaProxy is enabled.
Our CSP rules are lax when MediaProxy enabled, but lenient otherwise.

This fixes broken captcha on instances not using MediaProxy.
2020-07-03 17:06:20 -05:00
Mark Felder 4695bdd81b Merge branch 'develop' into issue/1790-updated-oban 2020-07-03 10:36:41 -05:00
lain c2a052a346 Merge branch 'features/mastoapi-2.9.0-status_text' into 'develop'
MastoAPI 2.9.0: status text on deletion

See merge request pleroma/pleroma!2690
2020-07-03 15:06:33 +00:00
lain 9a27ef47f1 Merge branch '1912-leading-trailing-space-search' into 'develop'
SearchController: Trim query.

Closes #1912

See merge request pleroma/pleroma!2717
2020-07-03 14:59:12 +00:00
lain d3efb50262 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into features/mastoapi-2.9.0-status_text 2020-07-03 16:44:31 +02:00
lain 19fbfbb767 Merge branch '1892-exclude-bots-from-search-results' into 'develop'
[#1892] Exclusion of service actors from user search results

Closes #1892

See merge request pleroma/pleroma!2708
2020-07-03 14:38:22 +00:00
lain 945e75c8e8 SearchController: Trim query. 2020-07-03 16:36:55 +02:00
lain e3b5559780 AccountController: Make setting accepts_chat_messages possible. 2020-07-03 15:54:25 +02:00
lain 4a7b89e372 ChatMessageValidator: Additional validation. 2020-07-03 15:13:27 +02:00
lain 3ca9af1f9f Account Schema: Add accepts_chat_messages 2020-07-03 14:31:04 +02:00
lain 5c0bf4c472 ActivityPub: Ingest information about chat acceptance. 2020-07-03 13:58:34 +02:00
lain 26a7cc3f00 UserView: Add acceptsChatMessages field 2020-07-03 13:38:59 +02:00
lain 37fdb05058 User, Migration: Change accepts_chat_messages to be nullable
This is to model the ambiguous state of most users.
2020-07-03 13:12:23 +02:00
lain 3250228be9 AccountView: Add 'accepts_chat_messages' to view. 2020-07-03 13:07:33 +02:00
lain 98bfdba108 User: On registration, set accepts_chat_messages to true. 2020-07-03 12:47:05 +02:00
rinpatch 86151b23a6 Merge branch '1910-migration-fix' into 'develop'
Notification Backfill: Explicitly select the needed fields.

Closes #1910

See merge request pleroma/pleroma!2715
2020-07-03 10:44:19 +00:00
lain 59b426ebef Notification Backfill: Explicitly select the needed fields.
Prevents a crashing migration when we change user fields.
2020-07-03 11:25:12 +02:00
Ivan Tashkinov 90764670dc [#1892] Excluded internal users (applications) from user search results, reinstated service actors in search results. 2020-07-03 11:02:15 +03:00
Mark Felder 8121e46f25 Merge branch 'develop' into activation-meta 2020-07-02 13:01:22 -05:00
Mark Felder d44ec2bf4c Remove camelCase from the keys 2020-07-02 12:55:08 -05:00
rinpatch 4c044f6225 Merge branch 'fetcher-fixes' into 'develop'
Don't fail fetching when the user in a replied-to message can't be fetched.

See merge request pleroma/pleroma!2711
2020-07-02 10:17:51 +00:00
lain bad08f34ca Credo fixes. 2020-07-02 09:57:31 +02:00
lain 311b7c19d0 Streamer: Align announce streaming with polling. 2020-07-02 09:50:26 +02:00
lain 61fe94d698 SideEffects: Refactor. 2020-07-02 09:33:50 +02:00
lain fedfe8f7d6 ActivityPub: Handle clashing nicknames for the same ap id
If we get a new user (identified by ap_id) that would have the same
nickname as an existing user, give the existing user a nickname that
is prepended with the user id, as this will never clash.

This can happen when a user switches server software and that soft-
ware generates ap ids in a different way.
2020-07-01 12:26:07 +02:00
lain ce92e6e5ce Fetcher: Work when we can't get the OP. 2020-07-01 11:48:51 +02:00
Alex Gleason 8daacc9114
AutoLinker --> Linkify, update to latest version
https://git.pleroma.social/pleroma/elixir-libraries/linkify
2020-06-30 16:39:15 -05:00
Mark Felder 5a8e0208b1 Add fields limits to instance metadata, add tests 2020-06-30 15:25:10 -05:00
Mark Felder 0883a706dc Merge branch 'develop' into activation-meta 2020-06-30 15:09:03 -05:00
Ivan Tashkinov 3d2989278c [#1892] Excluded bot actors (applications, services) from search results. 2020-06-30 21:26:39 +03:00
Mark Felder d69af7f742 Rename user.settings column
This is used exclusively by MastoFE/GlitchFE now
2020-06-30 11:50:53 -05:00
lain 8b7055e25e Credo fixes 2020-06-30 11:55:58 +02:00
lain 0176b7bca2 Merge branch 'preload-fixups-2' into preloadfixups 2020-06-30 11:40:34 +02:00
lain 2382a2a151 Preload: Load the correct instance panel 2020-06-30 11:35:54 +02:00
rinpatch 7bb3618939 Merge branch 'fix-notification-filtering' into 'develop'
Notifications: Never return `nil` in the notification list.

See merge request pleroma/pleroma!2705
2020-06-29 18:06:25 +00:00
lain 09c5991f82 Apply suggestion to lib/pleroma/notification.ex 2020-06-29 16:04:14 +00:00
lain 90083a754d Notifications: Never return nil in the notification list. 2020-06-29 17:48:18 +02:00
Egor Kislitsyn 979f02ec94
Fix CastAndValidate plug 2020-06-29 17:33:00 +04:00
Egor Kislitsyn 67d92ac7b7
Remove /statusnet/config 2020-06-29 17:00:37 +04:00
Egor Kislitsyn 8693e01799
Fix warning 2020-06-29 16:29:51 +04:00
Alexander Strizhakov 6512ef6879
excluding attachment links from RichMedia 2020-06-29 15:25:57 +03:00