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
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
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
95688c90ad
ForceBotUnlistedPolicy: simplify code
2020-09-08 01:15:15 +02:00
8b695c3eeb
ForceBotUnlistedPolicy: format
2020-09-07 22:53:45 +02:00
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
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
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
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
Maksim Pechnikov
7794d7c694
added Pleroma.Web.PleromaAPI.EmojiFileController
2020-08-19 06:50:20 +03:00
Haelwenn (lanodan) Monnier
5316e231b0
Pipeline Ingestion: Audio (Part 2)
2020-08-19 00:06:31 +02:00
Ivan Tashkinov
da116d81fb
[ #2497 ] Added video preview proxy. Switched from exexec to Port.
2020-08-18 18:23:27 +03:00
Ivan Tashkinov
27e7999a15
Merge remote-tracking branch 'remotes/origin/develop' into 2168-media-preview-proxy
2020-08-18 18:02:09 +03:00
lain
3998ef9d64
Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into features/validators-audio
2020-08-18 13:31:42 +02:00