Commit graph

4567 commits

Author SHA1 Message Date
feld 6c052bd5b6 Merge branch 'media-preview-proxy-nostream' into 'develop'
Media preview proxy

See merge request pleroma/pleroma!3001
2020-09-18 18:38:20 +00:00
lain 7e02f4ed3b Merge branch 'feature/2118-web-push-encryption-http' into 'develop'
Make WebPushEncryption use Pleroma.HTTP as an HTTP adapter

Closes #2118

See merge request pleroma/pleroma!3008
2020-09-18 12:25:10 +00:00
Steven Fuchs f2ef9735c5 Federate data through persistent websocket connections 2020-09-18 11:58:22 +00:00
Maksim Pechnikov 2ec0dcf001 Merge branch 'develop' into issue/2099 2020-09-18 07:08:37 +03:00
Sergey Suprunenko 226fa3e486
Make WebPushEncryption use Pleroma.HTTP as an HTTP adapter 2020-09-17 22:10:55 +02:00
Ivan Tashkinov a428800405 Merge remote-tracking branch 'remotes/origin/develop' into media-preview-proxy-nostream
# Conflicts:
#	CHANGELOG.md
2020-09-17 22:22:59 +03:00
Haelwenn (lanodan) Monnier 7bf269fe83 Fix MRF reject for ChatMessage 2020-09-17 22:07:54 +03:00
Haelwenn (lanodan) Monnier abf25e5d52 Create MRF.filter_pipeline to inject :object_data when present 2020-09-17 22:07:54 +03:00
Haelwenn beefc022dd Merge branch 'omit-nondiscoverable-from-search' into 'develop'
User search should respect discoverable flag

See merge request pleroma/pleroma!2997
2020-09-17 17:59:38 +00:00
feld 608824b97e Merge branch 'instance-docs' into 'develop'
AdminAPI: Allow to modify Terms of Service and Instance Panel via Admin API

Closes #1516

See merge request pleroma/pleroma!2931
2020-09-17 16:54:53 +00:00
rinpatch 608017b7df 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-17 19:50:51 +03:00
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
stwf 9d77f4abf8 adapt to new user factory behavior 2020-09-17 12:32:40 -04:00
stwf dfc621a529 add test and changelog entry 2020-09-17 12:18:07 -04:00
stwf 41939e3175 User search respect discoverable flag 2020-09-17 12:15:50 -04: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
Mark Felder f7e40f7ef1 Deny ConfigDB migration when deprecated settings found 2020-09-17 09:32:50 -05: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
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 5e3c70afa5 AdminAPI Chat tests: Remove factory.
The factory system doesn't work too well with how the chats are
done. Instead of tempting people to use it, let's rather use the
CommonAPI system for now.
2020-09-17 13:37:25 +02:00
lain e39ff2616b Admin chat api tests: Small additions. 2020-09-17 13:29:26 +02: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
Mark Felder 73e0e6a8a2 Remove unused import 2020-09-16 10:56:42 -05:00
lain 7a88b726bf User: Remote users don't need to be confirmed or approved 2020-09-16 17:29:16 +02: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
lain 6b088ed76a Merge branch 'issue/2089' into 'develop'
[#2089] fix notifications

See merge request pleroma/pleroma!3000
2020-09-16 12:22:48 +00:00
Maksim Pechnikov 599f8bb152 RepoStreamer.chunk_stream -> Repo.chunk_stream 2020-09-16 09:47:18 +03:00
Ivan Tashkinov 2f155fb89f Merge remote-tracking branch 'remotes/origin/develop' into media-preview-proxy-nostream 2020-09-15 20:29:39 +03:00
Maksim Pechnikov f879d07fa1 fixed tests 2020-09-15 15:32:49 +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
stwf f900a40d5d fix credo warning 2020-09-14 13:55:49 -04:00
stwf 38b2db297b search indexing metadata respects discoverable flag 2020-09-14 13:18:11 -04:00
Mark Felder d31f0393bf Validate Welcome Chat message works with Simple policy applied to local instance 2020-09-14 12:06:08 -05:00
rinpatch 738685a629 Apply 1 suggestion(s) to 1 file(s) 2020-09-14 11:56:00 +00: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
Alex Gleason c4061f06ba
Merge branch 'chat-moderation-stable' into chat-moderation 2020-09-11 14:30:28 -05:00
Alex Gleason bc86d0a906
Chat moderation: fix formatting 2020-09-11 14:29:56 -05:00
Alex Gleason 9733c9d065
Merge remote-tracking branch 'upstream/develop' into chat-moderation 2020-09-11 14:13:38 -05:00
Alex Gleason dfb831ca39
Chat moderation: add tests for unauthorized access 2020-09-11 14:11:07 -05:00
Alex Gleason e229536e5c
Chat Moderation: use explicit sender and recipient fields 2020-09-11 14:11:00 -05:00
Alex Gleason 67726453f8
Credo fix 2020-09-11 14:10:52 -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 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 (lanodan) Monnier dbc013f24c
instance: Handle not getting a favicon 2020-09-11 11:37:46 +02:00
Haelwenn (lanodan) Monnier 1b3d5956b1
Pipeline Ingestion: Article 2020-09-11 01:40:20 +02:00
Haelwenn (lanodan) Monnier 846b59ccb0
Pipeline Ingestion: Video 2020-09-11 01:39:39 +02:00
Alexander Strizhakov 15aece7238 remove validate_expires_at from enqueue method 2020-09-10 21:52:31 +03:00
Alexander Strizhakov 2c2094d4b2 configurable lifetime for ephemeral activities 2020-09-10 21:51:59 +03:00
Alexander Strizhakov eb5ff715f7 pin/unpin for activities with expires_at option 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 de4c935071 don't expire pinned posts 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 275602daa7 Streaming integration tests: remove unexpected error assumption
For some reason instead of fixing unexpected errors, we made tests
assert they indeed trigger... Now that the errors are fixed these were
failing
2020-09-10 21:28:47 +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 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
Mark Felder b900c06d4e Add tests for the bulk confirm/unconfirm tasks 2020-09-09 09:02:07 -05:00
Mark Felder 6c79a60649 Add test for pleroma.user set --confirmed
Order now matters because of testing shell_info
2020-09-09 08:44:01 -05:00
rinpatch 0d2814ec8e Metadata: Move restriction check from Feed provider to activated_providers 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 44ced17634 Fix test so setting doesn't leak 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
Haelwenn (lanodan) Monnier 10ef532c63 AP C2S: Restrict character limit on Note 2020-09-08 20:21:34 +03:00
Haelwenn 073f5490ec Merge branch 'bugfix/mock' into 'develop'
mockfix but for non-secteam because gitlab

See merge request pleroma/pleroma!2973
2020-09-08 19:46:23 +03:00
rinpatch 7490b76bbf Merge branch 'fix/upload-filter-exiftool-webp' into 'develop'
Skip processing webp image files because we can't strip EXIF

Closes #2080

See merge request pleroma/pleroma!2924
2020-09-08 19:45:44 +03:00
Haelwenn (lanodan) Monnier 921f926e96
Remove OStatus in testsuite 2020-09-08 18:43:57 +02:00
Haelwenn (lanodan) Monnier ee0e05f930
Drop unused "inReplyToAtomUri" in objects 2020-09-08 18:43:57 +02:00
Alexander Strizhakov fd7e9bdd25
don't run async tests, which use Mock 2020-09-08 17:40:23 +02:00
feld bf048ab72f Merge branch 'develop' into 'develop'
ForceBotUnlistedPolicy

See merge request pleroma/pleroma!2967
2020-09-08 14:52:51 +00:00
Haelwenn (lanodan) Monnier f6723dc9bd
account_view_test: Remove empty test 2020-09-08 16:33:22 +02:00
Haelwenn (lanodan) Monnier 788dececff
test: remove extraneous :instances_favicons config bits 2020-09-08 16:32:54 +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 0a05670b44 Merge branch 'fix/upload-filter-exiftool-webp' into 'develop'
Skip processing webp image files because we can't strip EXIF

Closes #2080

See merge request pleroma/pleroma!2924
2020-09-08 12:21:33 +00:00
rinpatch ce3474f4d3 Disable favicon scraping in tests 2020-09-08 15:09:10 +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
rinpatch 964bc8e2e8 Merge branch 'bugfix/favicon-too-long' into 'develop'
instance: Drop favicon URLs longer than 255 characters

Closes #2116

See merge request pleroma/pleroma!2949
2020-09-08 13:55:52 +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 84acfab156 Merge branch 'fix-searching-following' into 'develop'
search: fix 'following' query parameter

See merge request pleroma/pleroma!2943
2020-09-08 12:53:02 +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
Mark Felder 4ea07f74e9 Revert/simplify.
We only need to check the content-type. There's no chance a webp file
will get mismatched as another image type.
2020-09-08 12:29:38 +03:00
Mark Felder 216c84a8f4 Bypass the filter based on content-type as well in case a webp image is uploaded with the wrong file extension. 2020-09-08 12:29:38 +03:00
Mark Felder 3a98960c26 Verify webp files are not processed with exiftool 2020-09-08 12:29:38 +03:00
Mark Felder 2165a24974 Improve upload filter return values so we can identify when filters make no changes to the input 2020-09-08 12:29:38 +03:00
Alibek Omarov d074e54013 ForceBotUnlistedPolicy: try to fix test 2 2020-09-07 23:28:29 +02:00
Alibek Omarov 0a25c92cfa ForceBotUnlistedPolicy: try to fix test 2020-09-07 23:18:36 +02:00
Alibek Omarov d2fd1d3481 ForceBotUnlistedPolicy: fix test extension 2020-09-07 23:04:07 +02:00
Alibek Omarov 8b695c3eeb ForceBotUnlistedPolicy: format 2020-09-07 22:53:45 +02:00
Alibek Omarov 57cf0cc3b3 ForceBotUnlistedPolicy: add test 2020-09-07 22:50:57 +02:00
Alexander Strizhakov 18d21aed00
deprecation warnings 2020-09-07 19:59:17 +03:00
Alexander Strizhakov 696bf09433
passing adapter options directly without adapter key 2020-09-07 19:59:17 +03:00
Alexander Strizhakov ee67c98e55
removing Stats worker from Oban cron jobs 2020-09-07 19:16:14 +03:00
rinpatch d5c286b802 Merge branch 'bugfix/favicon-too-long' into 'develop'
instance: Drop favicon URLs longer than 255 characters

Closes #2116

See merge request pleroma/pleroma!2949
2020-09-07 11:12:30 +00: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
Haelwenn (lanodan) Monnier 08aef7dd4e
instance: Log catch favicon errors as warnings 2020-09-07 08:40:52 +02: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
Ivan Tashkinov 759f8bc3ae [#2497] Fixed MediaProxyWarmingPolicyTest. 2020-09-06 15:30:11 +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 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 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
lain 5da3677607 Frontend mix task: Add tests. 2020-09-03 11:40:17 +02: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
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 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
rinpatch b2d776d77d Merge branch 'http-fixes' into 'develop'
Improvements and fixes for http requests

See merge request pleroma/pleroma!2904
2020-09-02 09:36:56 +00:00
Alexander Strizhakov 79f65b4374
correct pool and uniform headers format 2020-09-02 09:16:51 +03:00
Karol Kosek 868057871a
search: fix 'following' query parameter
The parameter included the accounts that are following you (followers)
instead of those you are actually following.

Co-Authored-By: Haelwenn (lanodan) Monnier <contact@hacktivis.me>
2020-09-02 02:08:43 +02: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 a142da3e4f
Add new Emoji Ecto.Type and fix emoji in Question 2020-09-01 08:34:57 +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
Mark Felder 3737f38432 Merge branch 'develop' into feld-2168-media-preview-proxy 2020-08-30 11:28:45 -05:00
Maksim Pechnikov f0fefc4f5c marks notifications as read after mute 2020-08-28 18:17:44 +03: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
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
lain cfc99fe05c TimelineController: Keys are atoms now.
Closes #2078
Closes #2070
2020-08-26 15:37:30 +02: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