Commit graph

1311 commits

Author SHA1 Message Date
32fbd2e4e3 fix all tests
Some checks failed
ci/woodpecker/push/lint Pipeline failed
ci/woodpecker/push/test unknown status
ci/woodpecker/push/release unknown status
2022-06-11 16:14:22 +01:00
142646426e fix emoji tests 2022-06-11 14:08:54 +01:00
0f6bece60d Merge remote-tracking branch 'origin/patch/readd-mastofe' into develop 2022-01-08 21:45:12 +00:00
0d012ebea1 Revert "Merge branch 'remove/mastofe' into 'develop'"
This reverts commit 6b3842cf50, reversing
changes made to 6b1282a829.
2022-01-08 21:44:37 +00:00
12a171844b Merge remote-tracking branch 'upstream/develop' into develop 2021-12-30 18:05:22 +00:00
Alex Gleason
a659428024 Merge branch 'restricted-moderators' into 'develop'
AdminAPI: Optionally restrict moderators from accessing sensitive data

See merge request pleroma/pleroma!3578
2021-12-27 17:06:22 +00:00
Alex Gleason
6e27fc9c12 Merge branch 'log-slow-queries' into 'develop'
Log slow Ecto queries

See merge request pleroma/pleroma!3553
2021-12-27 15:41:06 +00:00
Ivan Tashkinov
08c0f09bad Made slow queries logging disabled by default. 2021-12-27 09:13:31 +03:00
f02715c4b2 Fix lint errors 2021-12-27 03:42:03 +03:00
cd1041c3a4 API: optionally restrict moderators from accessing sensitive data 2021-12-27 02:27:48 +03:00
Ivan Tashkinov
3e9e7178bc Configurability of slow queries logging ([:pleroma, :telemetry, :slow_queries_logging]). Adjusted log messages truncation to 65 kb (was default: 8 kb). Non-truncated logging of slow query params. 2021-12-26 22:49:00 +03:00
marcin mikołajczak
de006443f0 MastoAPI: Profile directory 2021-12-26 02:35:17 +00:00
Alex Gleason
e1b89fe3aa
Merge remote-tracking branch 'origin/develop' into live-dashboard 2021-12-15 19:05:36 -05:00
Alex Gleason
29d80b39f2
Add Phoenix LiveDashboard
Co-authored-by: Egor Kislitsyn <egor@kislitsyn.com>
2021-12-15 19:05:27 -05:00
de60b1f3c1 make search provider configurable 2021-12-12 17:35:35 +00:00
449d8ff165 integrate search endpoint with ES 2021-12-12 17:35:35 +00:00
Alex Gleason
2ac3d341b0 Fix benchmarks 2021-12-12 17:35:02 +00:00
lain
613f55b078 Merge branch 'benchmark' into 'develop'
Fix benchmarks

See merge request pleroma/pleroma!3551
2021-12-06 21:16:30 +00:00
Alex Gleason
ce4560c2a1
Fix benchmarks 2021-12-03 16:20:54 -05:00
sadposter
a61207cf8f Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into develop 2021-11-19 13:43:24 +00:00
lain
e2772d6bf1 Merge branch 'block-behavior' into 'develop'
Configurable block visibility, fixes #2123

Closes #2123

See merge request pleroma/pleroma!3242
2021-11-15 14:27:59 +00:00
sadposter
bd9c9136f9 Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into develop 2021-09-13 16:14:58 +01:00
sadposter
1aab9b94b1 fix config 2021-09-13 16:13:42 +01:00
Haelwenn
6b3842cf50 Merge branch 'remove/mastofe' into 'develop'
Remove MastoFE from Pleroma, fixes #2625

Closes #2625

See merge request pleroma/pleroma!3392
2021-09-07 16:41:53 +00:00
sadposter
b202cf15d6 Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into develop 2021-08-30 22:04:42 +01:00
rinpatch
21720db859 Merge branch 'dkuku-develop-patch-66061' into 'develop'
Update dev.exs error message to write to stderr.

See merge request pleroma/pleroma!3492
2021-08-13 12:10:52 +00:00
Haelwenn
901204df22 Merge branch 'poll-notification' into 'develop'
MastodonAPI: Support poll notification

See merge request pleroma/pleroma!3484
2021-08-09 10:02:37 +00:00
Sean King
1841bd8383 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into remove/mastofe 2021-08-06 08:08:20 -06:00
Ilja
ee26f2c91b
Quarantine placeholders
* kePlaceholder and valuePlaceholder of quarantined_instances where in wrong case, should be snake_case
* The mrf simple and transparency exclusion were already OK
2021-08-06 07:59:54 +02:00
Ilja
f4028c908c
Add key- and valuePlaceholders for quarantined_instances and mrf_simple
* I also added for keywordpolicy as well now. It was done in the admin-fe, but is better to be done here
* I also added comments to explain why we did the _info keys (backwards compatibility)
2021-08-06 07:59:53 +02:00
Ilja
64002e92ad
config/description.exs: Update quarantine settings to tuples 2021-08-06 07:59:53 +02:00
sadposter
2519d4eb1a Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into develop 2021-08-02 22:10:01 +01:00
5c5571c668 use puts instead warn 2021-07-27 21:01:41 +00:00
69ebfb29fb Update dev.exs error message to write to stderr. Currently it dumps this message at the beginnig of the file when using vim-autoformat with mix format 2021-07-27 20:41:36 +00:00
Alex Gleason
33a19c002a
Merge remote-tracking branch 'pleroma/develop' into errorview-json-fix 2021-07-27 08:29:53 -05:00
Alex Gleason
94db0b7cd6
Add activity+json to Phoenix :format_encoders
Fixes ErrorView rendering
2021-07-27 08:28:52 -05:00
Alex Gleason
62bf6d67e3
Merge remote-tracking branch 'pleroma/develop' into poll-notification-fixes 2021-07-18 11:49:22 -05:00
Alex Gleason
0114754db2
MastodonAPI: Support poll notification 2021-07-17 22:19:38 -05:00
sadposter
e56c319e8f merge 2021-06-27 22:31:37 +01:00
Sean King
dc4814f0cd
Fix merge conflicts with upstream 2021-06-04 14:42:44 -06:00
Haelwenn
a5dce42c85 Merge branch 'chore/rename-chat' into 'develop'
Rename the non-federating Chat feature to Shout

See merge request pleroma/pleroma!2842
2021-06-03 15:52:16 +00:00
679d4c23e9 Update wording for relays in docs and config description 2021-06-02 11:30:09 -05:00
297feb73f4 Formatting 2021-06-02 11:21:04 -05:00
dcf84ac12e disableChat / disableShout didn't actually do anything for PleromaFE 2021-06-01 16:53:32 -05:00
Mark Felder
8ff2d8d17d Update description file for new shout config setting location 2021-06-01 11:49:47 -05:00
Mark Felder
d6432a65da Move shout configuration from :instance, update docs and changelog 2021-06-01 11:49:46 -05:00
Mark Felder
36fe8950f7 Update PleromaFE settings for the old chat box 2021-06-01 11:49:16 -05:00
Mark Felder
68aa56b9e4 Just call it shout 2021-06-01 11:49:16 -05:00
Mark Felder
ff00b354fa Rename the non-federating Chat feature to Shout 2021-06-01 11:49:14 -05:00
Snow
69aed310de Adding description 2021-05-29 02:22:33 +00:00
a833a2d76b Merge branch 'plug-runtime-dev' into 'develop'
Put Plugs in runtime mode in :dev, :test to speed up recompilation

See merge request pleroma/pleroma!3411
2021-05-28 18:57:45 +00:00
fe40f6f291 Switch from the deprecated "use Mix.config" to "import Config" 2021-05-20 14:02:58 -05:00
Alex Gleason
0461794375
Merge remote-tracking branch 'pleroma/develop' into plug-runtime-dev 2021-05-19 14:27:59 -05:00
Alex Gleason
e3173a279d
Put Plugs in runtime mode in :dev, :test to speed up recompilation 2021-05-19 14:27:46 -05:00
Alex Gleason
32ae8f4906
Merge remote-tracking branch 'pleroma/develop' into optional-config 2021-05-16 12:27:29 -05:00
Alex Gleason
b22f54eb29
Make prod.secret.exs optional (with warning) 2021-05-16 12:26:32 -05:00
sadposter
50a644a221 Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into develop 2021-05-12 16:13:30 +01:00
Alex Gleason
762be6ce10
Merge remote-tracking branch 'upstream/develop' into block-behavior 2021-04-29 11:14:32 -05:00
Sean King
fa2e62078c
Remove MastoFE configuration stuff 2021-04-15 23:51:04 -06:00
Mark Felder
2557e805a3 Support for configuration via AdminFE 2021-03-30 11:10:43 -05:00
Mark Felder
8b81d62227 Upstream original followbot implementation 2021-03-30 11:10:03 -05:00
sadposter
5f62b55a6f Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into develop 2021-03-23 23:01:07 +00:00
rinpatch
f930e83fa2 Merge branch 'fix/remove_auto_nsfw' into 'develop'
Remove sensitive setting #nsfw

See merge request pleroma/pleroma!3223
2021-03-19 08:48:22 +00:00
sadposter
292ddf730c Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into develop 2021-03-03 13:51:07 +00:00
Ivan Tashkinov
882dd46843 Merge remote-tracking branch 'remotes/origin/develop' into feature/object-hashtags-rework 2021-03-02 08:26:30 +03:00
Haelwenn (lanodan) Monnier
3bc7d12271
Remove sensitive-property setting #nsfw, create HashtagPolicy 2021-02-27 21:26:17 +01:00
Ivan Tashkinov
8f88a90ca3 Merge remote-tracking branch 'remotes/origin/develop' into feature/object-hashtags-rework
# Conflicts:
#	lib/pleroma/application.ex
#	lib/pleroma/config.ex
2021-02-23 13:58:35 +03:00
Ivan Tashkinov
77f3da0358 [#3213] Misc. tweaks: proper upsert in Hashtag, better feature toggle management. 2021-02-23 13:52:28 +03:00
Ivan Tashkinov
a98c4423f3 Apply i1t's suggestion(s) to 1 file(s) 2021-02-22 20:41:57 +00:00
sadposter
5f33699169 Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into develop 2021-02-20 15:27:56 +00:00
db7d6f337f Avoid unnecessary 500ms sleeps from CommonAPI.follow when the target user is remote 2021-02-19 18:37:37 -06:00
Ivan Tashkinov
b981edad8a [#3213] HashtagsTableMigrator: fault rate allowance to enable the feature (defaults to 1%), counting of affected objects, misc. tweaks. 2021-02-18 20:40:10 +03:00
rinpatch
6d66fadea7 Remove :auth, :enforce_oauth_admin_scope_usage
`admin` scope has been required by default for more than a year now
and all apps that use the API seems to request a proper scope by now.
2021-02-17 20:47:38 +03:00
Ivan Tashkinov
349b8b0f4f [#3213] rescue around potentially-raising Repo.insert_all/_ calls. Misc. improvements (docs etc.). 2021-02-13 22:01:11 +03:00
Ivan Tashkinov
5992382cf8 Merge remote-tracking branch 'remotes/origin/develop' into feature/object-hashtags-rework
# Conflicts:
#	CHANGELOG.md
#	lib/mix/tasks/pleroma/database.ex
#	lib/pleroma/web/templates/feed/feed/_activity.rss.eex
2021-02-11 19:31:57 +03:00
Ivan Tashkinov
a996ab46a5 [#3213] Reorganized hashtags cleanup. Transaction-wrapped Hashtag.get_or_create_by_names/1. Misc. improvements. 2021-02-11 19:30:21 +03:00
rinpatch
a52cedba62 Merge branch 'chore/descriptions-improvements' into 'develop'
More descriptions improvements

See merge request pleroma/pleroma!3307
2021-02-08 19:21:01 +00:00
ce7c275fb3 Improve various descriptions and labels 2021-02-08 11:45:50 -06:00
2bffa8e020 Make the suggestion match the default value 2021-02-08 11:25:32 -06:00
4dbb08a19f Improved Mailer descriptions 2021-02-08 10:08:33 -06:00
Ivan Tashkinov
d1c6dd97aa [#3213] Partially addressed code review points.
migration rollback task changes, hashtags-related config handling tweaks, `hashtags.data` deletion (unused).
2021-02-07 22:24:12 +03:00
f736501e97 Alpha-sort adapters
Add various labels, descriptions and suggestions for all adapter settings and try to use
the same terminology by the service provider.
2021-02-06 13:18:48 -06:00
0fcf16dcb8 Move Enabled to top as it's the master control of all email. Description not really needed. 2021-02-06 12:34:32 -06:00
bd828e5c9c More description improvements 2021-02-06 12:28:49 -06:00
227dd84f11 Update SMTP error description and default value 2021-02-06 12:06:47 -06:00
9e3e8e2e30 Update Swoosh docs URL, lint 2021-02-06 12:04:28 -06:00
cfc474c5f7 There is no reason to expose these Local adapter settings either. 2021-02-06 12:01:11 -06:00
6ffe15cc9f Remove No MX lookups setting
This setting defaults to false so the relay host will be used in an MX query so
multiple SMTP servers can be used. gen_smtp code states that all records returned from the
MX query are attempted in order and only a permanent SMTP error will stop the client from
attempting other servers in the list. Connection failures, TLS issues, etc will cause it to
try the next host.

If there is no MX record associated with the relay host, it automatically tries connecting to it
directly.

There is really no reason to expose this to end users. The default value is fine for everyone.
2021-02-06 11:55:25 -06:00
85710b026f Improve SMTP adapter setting descriptions 2021-02-06 11:55:01 -06:00
9f98885388 No reason to suggest users try the useless "Local" mail adapter 2021-02-06 11:28:55 -06:00
887db076b5 Load an emoji.txt specific to the test env 2021-02-03 16:40:59 -06:00
008499f65a Merge branch 'develop' into 'fix/2412-filters'
# Conflicts:
#   CHANGELOG.md
2021-02-03 14:23:23 +00:00
Ivan Tashkinov
1b49b8efe5 Merge remote-tracking branch 'remotes/origin/develop' into feature/object-hashtags-rework
# Conflicts:
#	CHANGELOG.md
2021-01-31 20:38:58 +03:00
Ivan Tashkinov
6fd4163ab6 [#3213] ActivityPub: implemented subqueries-based hashtags filtering, removed aggregation-based hashtags filtering. 2021-01-31 20:37:33 +03:00
Ivan Tashkinov
9948ff3356 [#3213] Added HashtagsCleanupWorker periodic job. 2021-01-31 18:24:19 +03:00
2048b93929 Add missing :ex_aws, :s3, :region setting 2021-01-29 11:31:15 -06:00
d7af0294e6 Merge branch 'service-worker-allowed-header' into 'develop'
Ability to set custom HTTP headers per each frontend

See merge request pleroma/pleroma!3247
2021-01-26 18:14:01 +00:00
Alexander Strizhakov
875fbaae35
support for expires_in/expires_at in filters 2021-01-26 08:27:45 +03:00
sadposter
3aa25b008d Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into develop 2021-01-23 22:38:07 +00:00
e709dec2eb Add Invalidation Script url_format setting 2021-01-21 14:52:02 -06:00
003402df40 Add ability to invalidate cache entries for Apache 2021-01-21 14:20:13 -06:00
eugenijm
7fcaa188a0 Allow to define custom HTTP headers per each frontend 2021-01-21 21:55:23 +03:00
eugenijm
133644dfa2 Ability to set the Service-Worker-Allowed header 2021-01-21 21:55:11 +03:00
Ivan Tashkinov
c041e9c630 [#3213] HashtagsTableMigrator: failures handling fix, retry function.
Changed default hashtags filtering strategy to non-aggregate approach.
2021-01-21 20:23:08 +03:00
Ivan Tashkinov
2634a16b4c Merge remote-tracking branch 'remotes/origin/develop' into feature/object-hashtags-rework
# Conflicts:
#	CHANGELOG.md
2021-01-21 20:20:35 +03:00
Alexander Strizhakov
5ade430e46
changed naming in changelog 2021-01-21 10:13:02 +03:00
Alexander Strizhakov
6d48144a9d
use proper naming
for MediaProxyWarmingPolicy in ConcurrentLimiter
2021-01-21 09:50:18 +03:00
Alexander Strizhakov
b4ff63d020
configurable limits for ConcurrentLimiter
Pleroma.Web.RichMedia.Helpers & Pleroma.Web.MediaProxy
2021-01-21 09:47:21 +03:00
2926713fe5 Merge branch 'deprecate-public_endpoint' into 'develop'
Deprecate Uploaders.S3, :public_endpoint

See merge request pleroma/pleroma!3251
2021-01-20 22:48:48 +00:00
086100e3b7 Consistent comment style for :ex_aws 2021-01-20 16:39:39 -06:00
Ivan Tashkinov
48b399cedb [#3213] Refactoring of HashtagsTableMigrator. Hashtag timeline performance optimization (auto switch to non-aggregate join strategy when efficient). 2021-01-16 20:22:14 +03:00
f9e0c05ca4 Only run one attachment cleanup job per node
The previous limit of 5 was probably causing massing performance issues due to concurrent full table scans.
2021-01-15 14:50:32 -06:00
5627f3642f Not needed in test.exs 2021-01-13 11:54:45 -06:00
f0ab60189e truncated_namespace should default to nil 2021-01-13 11:54:00 -06:00
lain
c7cd9bd591 Password: Add password module
Replaces Pbkdf2.
2021-01-13 15:09:01 +01:00
8b28dce82a Deprecate Pleroma.Uploaders.S3, :public_endpoint 2021-01-12 16:31:35 -06:00
lain
ac1298fce8 Merge branch 'cleanup/unused-proxy-opts' into 'develop'
Cleanup Pleroma.Upload proxy opts

See merge request pleroma/pleroma!3236
2021-01-07 16:25:39 +00:00
Alex Gleason
1438fd9583
Merge remote-tracking branch 'upstream/develop' into block-behavior 2021-01-06 15:22:35 -06:00
Roger Braun
48cd336a72 allow external emoji 2021-01-06 10:13:01 -06:00
5e128a6be3 Merge branch 'fix/mediaproxy-config-descriptions' into 'develop'
Fix proxy and mediaproxy description.exs

See merge request pleroma/pleroma!3219
2021-01-05 21:16:33 +00:00
d69c78ceb9 Remove configurability of upload proxy opts, simplify 2021-01-05 15:06:00 -06:00
8864ac65c6 Add dinosaur gif from https://gifs.cc
"Our animations are free to be used to enhance your website."
2021-01-05 13:25:14 -06:00
lain
8e5904daa5 SideEffects.DeleteTest: asyncify.
Replace Mock with Mox, mock out Logger.
2021-01-04 18:40:59 +01:00
sadposter
6cd0586ef9 Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into develop 2020-12-29 13:16:14 +00:00
lain
e4f1d8f48c Merge branch 'cachex-test' into 'develop'
Test framework overhaul (speed, reliability)

See merge request pleroma/pleroma!3209
2020-12-26 10:26:35 +00:00
ce78b64db8 Formatting 2020-12-23 17:41:10 -06:00
5a084d6f8d Update descriptions for MediaProxy, remove settings that should not be exposed in AdminFE 2020-12-23 17:38:33 -06:00
lain
5db1e6c8d3 Pipeline test: Switch from Mock to Mox.
Speeds up the test and makes it possible to run async.
2020-12-21 16:35:12 +01:00
lain
ecd39a8fe5 Test config: Raise pool size for postgres.
Given all the async tests, this can become a bottleneck.
2020-12-21 12:31:12 +01:00
rinpatch
a05e1d4e48 config/description.exs: Remove outdated information about Oban
The version of Oban we depend on no longer uses ShareLocks, so this
note no longer applies.
2020-12-19 11:27:42 +03:00
lain
95a9bdfc37 Tests: Use NullCache for async tests.
Caching can't work in async tests, so for them it is mocked to a
null cache that is always empty. Synchronous tests are stubbed
with the real Cachex, which is emptied after every test.
2020-12-18 19:53:19 +01:00
lain
9a744d49c8 Jason: Remove by now superfluous jason_types file 2020-12-18 17:44:19 +01:00
Ivan Tashkinov
62bf4a1292 [#2353] Virtually never-expiring OAuth tokens (new and already issued ones). 2020-12-17 20:49:00 +03:00
Alexander Strizhakov
cebe3c7def Fix for dropping posts/notifs in WS when mix task is executed
- start oban in mix tasks with empty queues, plugins and crontab
- fix for update_users_following_followers_counts
- fix for removed logo.png
- typo in resend confirmation emails mix task docs
- fix for uploads mix task (start Majic.Pool)
- fix for creating user mix task (start :fast_html app)
2020-12-14 11:02:32 -06:00
Ivan Tashkinov
7fff9c1bee Tweaks to OAuth entities expiration: changed default to 30 days, removed hardcoded values usage, fixed OAuthView (expires_in). 2020-12-09 21:14:39 +03:00
Alexander Strizhakov
94480c6607
removing fed sockets settings 2020-11-26 17:39:38 +03:00
Alexander Strizhakov
5eef4988bf
fix for elixir 1.11
load runtime configs in releases with config provider
2020-11-25 14:10:24 +03:00
lain
11e0d5f9ac Password Resets: Don't accept tokens above a certain age.
By default, one day
2020-11-19 12:27:06 +01:00
rinpatch
2c55f7d7cb Remove FedSockets
Current FedSocket implementation has a bunch of problems. It doesn't
have proper error handling (in case of an error the server just doesn't
respond until the connection is closed, while the client doesn't match
any error messages and just assumes there has been an error after 15s)
and the code is full of bad descisions (see: fetch registry which uses
uuids for no reason and waits for a response by recursively querying a
 ets table until the value changes, or double JSON encoding).

Sometime ago I almost completed rewriting fedsockets from scrach to
adress these issues. However, while doing so, I realized that fedsockets
 are just too overkill for what they were trying to accomplish, which is
 reduce the overhead of federation by not signing every message.
This could be done without reimplementing failure states and endpoint
 logic we already have with HTTP by, for example, using TLS cert auth,
or switching to a more performant signature algorithm. I opened
https://git.pleroma.social/pleroma/pleroma/-/issues/2262 for further
discussion on alternatives to fedsockets.

From discussions I had with other Pleroma developers it seems like they
 would approve the descision to remove them as well,
therefore I am submitting this patch.
2020-11-17 17:28:30 +03:00
sadposter
7947236575 Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into develop 2020-11-15 19:40:23 +00:00
Alexander Strizhakov
efc27f6464
fix for adminFE
- revert UserAllowPolicy description
- MRF descriptions order
2020-11-11 10:10:57 +03:00
Alexander Strizhakov
485697d96c
config descriptions for custom MRF policies 2020-11-10 19:20:14 +03:00
lain
294628d981 Merge branch 'feature/expire-mutes' into 'develop'
Expiring mutes for users and activities

Closes #1817

See merge request pleroma/pleroma!2971
2020-11-05 12:44:16 +00:00
lain
d8d4e96230 Merge branch 'default-mrf' into 'develop'
Add TagPolicy as default MRF

See merge request pleroma/pleroma!2834
2020-11-04 15:54:12 +00:00
lain
dd2b3a8da9 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into feature/expire-mutes 2020-11-04 16:51:42 +01:00
lain
bae48c98e3 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into alexgleason/pleroma-block-behavior 2020-11-04 16:18:11 +01:00
sadposter
ddf36b096e Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into develop 2020-11-01 12:22:28 +00:00
Egor Kislitsyn
d2113428c0
Merge remote-tracking branch 'origin/develop' into feature/account-export 2020-10-30 19:34:02 +04:00
Mark Felder
89c356d19f Improve Keyword descriptions for AdminFE 2020-10-29 14:22:07 -05:00
Egor Kislitsyn
4a2d7a7a5d
Merge remote-tracking branch 'origin/develop' into feature/account-export 2020-10-28 15:33:36 +04:00