Commit Graph

821 Commits

Author SHA1 Message Date
Rigel Kent 2158ac9034
Add server plugin filter hooks for import with torrent and url (#2621)
* Add server plugin filter hooks for import with torrent and url

* WIP: pre and post-import filter hooks

* Rebased

* Cleanup filters to accept imports

Co-authored-by: Chocobozzz <me@florianbigard.com>
2020-05-14 11:10:26 +02:00
Chocobozzz 2ca154da93
Fix auto follow index URL 2020-05-12 09:37:39 +02:00
Chocobozzz d253bfaaa5
Add other tests to external auth 2020-05-11 18:32:58 +02:00
Chocobozzz 95cd31f1fe
Allow to auto follow a specific URL 2020-05-11 10:53:06 +02:00
Chocobozzz 81c647ff19
Cleanup oauth tokens cache 2020-05-11 08:40:38 +02:00
Rigel Kent df4c603dea Switch emails to pug templates and provide richer html/text-only versions 2020-05-08 15:31:51 +02:00
Chocobozzz 80fdaf0645
Add moderation helpers to plugins 2020-05-07 15:07:01 +02:00
Chocobozzz 3cc665f48f
Add last login date to users 2020-05-07 10:39:09 +02:00
Chocobozzz 1c32067367
Fix HLS audio only transcoding 2020-05-05 16:27:46 +02:00
Chocobozzz bc90883f1a Handle external login errors 2020-05-04 16:21:39 +02:00
Chocobozzz a4995eb7ac Add ability to unregister plugin auths 2020-05-04 16:21:39 +02:00
Chocobozzz e9b0fa5c16 Auth plugin compat with regular user accounts 2020-05-04 16:21:39 +02:00
Chocobozzz a5896799f1 Add plugin settings change watcher 2020-05-04 16:21:39 +02:00
Chocobozzz dadc90bca2 Client calls revoke-token endpoint on logout 2020-05-04 16:21:39 +02:00
Chocobozzz 5a7eecdd56 Add config helper for plugins 2020-05-04 16:21:39 +02:00
Chocobozzz ebefc902f5 Add external login buttons 2020-05-04 16:21:39 +02:00
Chocobozzz 9107d791e2 Add external login tests 2020-05-04 16:21:39 +02:00
Chocobozzz 4a8d113b9b Begin support for external auths 2020-05-04 16:21:39 +02:00
Chocobozzz 98813e69bc Check auth plugin result 2020-05-04 16:21:39 +02:00
Chocobozzz 055cfb11a9 Add plugin auth migrations 2020-05-04 16:21:39 +02:00
Chocobozzz e307e4fce3 Add ability for auth plugins to hook tokens validity 2020-05-04 16:21:39 +02:00
Chocobozzz e1c5503114 Support logout and add id and pass tests 2020-05-04 16:21:39 +02:00
Chocobozzz 8dc8a34ee8 Avoir some circular dependencies 2020-05-04 16:21:39 +02:00
Chocobozzz 7fed637506 Begin auth plugin support 2020-05-04 16:21:39 +02:00
Rigel Kent 86521a67b2 Add video channel and video thumbnail, rework video appearance in row 2020-05-01 16:41:02 +02:00
Chocobozzz b3af2601da
Add ability to remove privacies using plugins 2020-04-20 15:42:27 +02:00
Kim b1770a0af4
Add thumbnail / preview generation from url on the fly (#2646)
* Add thumbnails generation on the fly to URL import

* Display generated preview to import first edit

* Use ternary to get type inference

* Move preview/thumbnail test just after import

Co-authored-by: kimsible <kimsible@users.noreply.github.com>
2020-04-20 10:28:38 +02:00
Chocobozzz 0dd57e4d43
Fix tests 2020-04-20 09:04:38 +02:00
Chocobozzz 2c0ccd4b3f
Do not support subscriptions to accounts 2020-04-16 16:37:25 +02:00
Chocobozzz 652c64165b
Fix import captions test 2020-04-15 14:15:44 +02:00
Chocobozzz 5e2b2e2775
Add ability for plugins to add custom routes 2020-04-10 15:23:25 +02:00
Rigel Kent 9afa0901f1
Fix lint for emailer 2020-04-10 14:26:42 +02:00
Ismaël Bouya ed3f089cc7 Add sendmail 2020-04-10 10:20:06 +02:00
Chocobozzz ab3ead3a6f
Add ability to remove a video from a plugin 2020-04-09 11:37:44 +02:00
Chocobozzz 1b05d82d86
Add SQL query support in plugins 2020-04-09 11:00:30 +02:00
Chocobozzz bc0d801bb7
Refactor plugin helpers factory 2020-04-09 09:57:32 +02:00
Chocobozzz 8c9e787526
Add ability to accept or not remote redundancies 2020-04-07 15:32:20 +02:00
Chocobozzz d57d1d83c6
Support audio files import 2020-04-03 15:41:39 +02:00
Chocobozzz 6cb5564490
Fix add comment in threads with deleted comments 2020-03-20 14:43:12 +01:00
Chocobozzz c547bbf96a
Fix re running HLS transcoding 2020-03-12 15:37:28 +01:00
Chocobozzz 84ebcf345c
Fix federation with pleroma 2020-03-12 14:14:11 +01:00
Chocobozzz ac940348cd
Fix lint 2020-03-10 16:37:25 +01:00
Chocobozzz 7b81edc854
Video file metadata PR cleanup 2020-03-10 16:18:29 +01:00
Rigel Kent 8319d6ae72
Add video file metadata to download modal, via ffprobe (#2411)
* Add video file metadata via ffprobe

* Federate video file metadata

* Add tests for file metadata generation

* Complete tests for videoFile metadata federation

* Lint migration and video-file for metadata

* Objectify metadata from getter in ffmpeg-utils

* Add metadataUrl to all videoFiles

* Simplify metadata API middleware

* Load playlist in videoFile when requesting metadata
2020-03-10 14:39:40 +01:00
Chocobozzz 366caf8b71
Fix build with typescript 3.8 2020-02-28 16:51:25 +01:00
Chocobozzz bdd428a6d9
Update dependencies 2020-02-28 16:21:34 +01:00
Chocobozzz 887e1a0376
Fix emailer 2020-02-18 08:29:23 +01:00
Chocobozzz 134cf2bce9
Merge branch 'release/2.1.0' into develop 2020-02-17 15:44:53 +01:00
Chocobozzz 2db48acc46
Correctly fix auto follows 2020-02-17 15:44:06 +01:00
Chocobozzz 2ad9dcda24
Merge branch 'release/2.1.0' into develop 2020-02-17 15:34:42 +01:00
Chocobozzz 1c5fbed209
Fix avatar update 2020-02-17 15:33:42 +01:00
Chocobozzz 7d233f1dd9
Manual approves followers only for the instance
And not for accounts or channels of the instance
2020-02-17 14:27:29 +01:00
Chocobozzz 4c1c170934
Refactor email enabled function 2020-02-17 10:27:00 +01:00
John Livingston 45f1bd72a0
Creating a user with an empty password will send an email to let him set his password (#2479)
* Creating a user with an empty password will send an email to let him set his password

* Consideration of Chocobozzz's comments

* Tips for optional password

* API documentation

* Fix circular imports

* Tests
2020-02-17 10:16:52 +01:00
Chocobozzz 5224f71303
Correctly check remote extension 2020-02-12 10:26:35 +01:00
Chocobozzz c6de3a85ee
Fix remote avatar without AP mediatype field 2020-02-12 10:23:24 +01:00
Chocobozzz 58b6fdcafc
Small cleanup 2020-02-06 17:41:25 +01:00
Chocobozzz 6872996d29
Be more robust with missing thumbnails/previews 2020-02-06 17:39:19 +01:00
Chocobozzz 084a2cd0f6
Optimize context for CacheFile 2020-02-04 16:34:46 +01:00
Chocobozzz 2c8776fc31
Optimize view endpoint 2020-02-04 16:18:01 +01:00
Chocobozzz 943e519390
Don't refresh videos when processing views
It allows us to use a cache
2020-02-04 15:58:59 +01:00
Chocobozzz f51c02c77f
Fix lint 2020-02-04 09:12:42 +01:00
Chocobozzz 598edb8af1
Reduce AP context size on specific activities 2020-02-03 11:31:23 +01:00
Chocobozzz a15871560f
Move to eslint 2020-02-03 08:31:02 +01:00
Chocobozzz ca6d36227a
Add url field in caption and use it for thumbnails 2020-01-30 11:53:38 +01:00
Chocobozzz 0374b6b5cd
Cleanup server fixme 2020-01-28 14:45:17 +01:00
Chocobozzz b764380ac2 Add ability to list redundancies 2020-01-28 11:35:26 +01:00
Chocobozzz 99849607a6
Remove debug messages 2020-01-24 11:38:35 +01:00
Rigel Kent 7738273b80 Accessibility fixes for #2149 2020-01-21 10:08:10 +01:00
John Livingston 98da1a7b4a Fix: unregistring a plugin did not remove properly his hooks. 2020-01-20 14:54:03 +01:00
Chocobozzz c08579e14f
Add correct status on not found video 2020-01-09 08:51:27 +01:00
Chocobozzz e612209767
Try to fix subscriptions inconsistencies 2020-01-08 15:44:41 +01:00
Chocobozzz e92269053e
Update http signature 2020-01-07 15:56:09 +01:00
Chocobozzz 7cde3b9c2e
Update validator dependency 2020-01-07 15:56:07 +01:00
Chocobozzz dddc8b1fe0
Don't notify on muted instance 2019-12-19 11:34:00 +01:00
Nassim Bounouas f88ee4a952 Feature/password reset link expiration (#2305)
* #1928 Add a sentence indicating the reset time limit on form and email

* #1928 Customizable password reset lifetime

* #1928 Add a route to verify reset link and call it on reset form init

* Revert "#1928 Customizable password reset lifetime"

This reverts commit 0ed97453f8.

* #1928 Reset password lifetime hardcoded to one hour

* Remove useless modifications for #1928
2019-12-18 09:59:00 +01:00
Chocobozzz 22a73cb879
Add internal privacy mode 2019-12-12 16:51:59 +01:00
Chocobozzz 92e0f42e8c
Don't use the max quality file when transcoding to a new resolution 2019-12-11 09:51:17 +01:00
Chocobozzz 1061c73fde
Add ability to filter per job type 2019-12-04 14:49:59 +01:00
Chocobozzz c883db6d03
Move deleted comment on new follow tests 2019-12-04 11:48:12 +01:00
Julien Maulny b5206dfc45 Fix retrieving of deleted comments when subscribing to a new instance 2019-12-04 09:36:45 +01:00
Julien Maulny 69222afac8 Soft delete video comments instead of detroy 2019-12-04 09:36:45 +01:00
Chocobozzz 47f6cb31d7
Fix email to field 2019-11-29 13:36:40 +01:00
Chocobozzz 2fa9c40e20
Fix tests 2019-11-27 10:29:27 +01:00
Chocobozzz 49c3bf6fa2
Fix duplicate HLS resolution in master playlist 2019-11-26 16:57:51 +01:00
Chocobozzz 52201311e1
Add codec information in HLS playlist 2019-11-26 16:25:36 +01:00
Chocobozzz 3a149e9f8b
Add audio only transcoding tests 2019-11-25 10:59:49 +01:00
frankdelange 5c7d650827
Add audio-only option to transcoders and player
This patch adds an audio-only option to PeerTube by means of a new transcoding configuration which creates mp4 files which only contain an audio stream. This new transcoder has a resolution of '0' and is presented in the preferences and in the player resolution menu as 'Audio-only' (localised). When playing such streams the player shows the file thumbnail as background and disables controls autohide.

Audio-only files can be shared and streamed just like any other file. They can be downloaded as well, the resulting file will be an mp4 container with a single audio stream.

This patch is a proof of concept to show the feasibility of 'true' audio-only support. There are better ways of doing this which also enable multiple audio streams for a given video stream (e.g. DASH) but as this would entail a fundamental change in the way PeerTube works it is a bridge too far for a simple proof of concept.
2019-11-25 10:59:47 +01:00
Chocobozzz 66fb2aa39b
Don't always replace actor avatar 2019-11-25 10:59:44 +01:00
Chocobozzz d7a25329f9
Add ability to disable webtorrent
In favour of HLS
2019-11-25 10:59:43 +01:00
Chocobozzz 92ce62331e
Fix auto index follow 2019-11-04 15:20:34 +01:00
Chocobozzz a82ddfad00
Fix lint 2019-10-23 13:15:18 +02:00
Chocobozzz 47581df073
Fix federation with some actors
That don't have a shared inbox, or a URL
2019-10-23 11:33:53 +02:00
Chocobozzz d5d9b6d7bf
Update server dependencies 2019-10-21 15:03:28 +02:00
Chocobozzz eba06469b7
Fix audio merging when specifying a preview 2019-10-18 11:44:01 +02:00
Lukas Winkler 32d7f2b754 fix a few typos (#2141)
* fix a few typos

* apply changes to original files instead

* additional correction
2019-09-23 08:17:42 +02:00
Chocobozzz 9157d5981f
Improve plugin package.json error message 2019-09-11 10:19:03 +02:00
Chocobozzz 00aab0666c
Merge branch 'release/1.4.0' into develop 2019-09-05 10:19:35 +02:00
Chocobozzz 2ba613a543 Fix tests 2019-09-04 16:24:58 +02:00
Chocobozzz 6f1b4fa417 Add auto follow instances index support 2019-09-04 16:24:58 +02:00
Chocobozzz 8424c4026a Add auto follow back support for instances 2019-09-04 16:24:58 +02:00
Chocobozzz f8278b9605
Fix bug in redundancy eviction 2019-09-04 14:40:39 +02:00
Chocobozzz 2fd9737886
Fix redundancy too heavy with streaming playlists 2019-08-30 11:05:27 +02:00
Chocobozzz 0b5c385b45
Handle reports from mastodon 2019-08-30 09:40:32 +02:00
John Livingston 20ec03846d fixes 2065: optimisation (#2073)
* fixes 2065: optimisation

* Update peertube-socket.ts
2019-08-23 09:05:30 +02:00
Chocobozzz d5c8932a60
Merge branch 'release/1.4.0' into develop 2019-08-22 14:46:47 +02:00
Chocobozzz 217ffacfdd
Try to fix video duplication 2019-08-22 11:03:50 +02:00
Chocobozzz d636ab58d0
Fix html tag with blacklisted video 2019-08-22 10:46:54 +02:00
Chocobozzz 5c5e587307
Merge branch 'feature/strong-model-types' into develop 2019-08-22 10:43:11 +02:00
Chocobozzz 1b42d73f44
Fix socket notification with multiple user tabs 2019-08-22 10:33:58 +02:00
Chocobozzz 916937d7da
email object -> email subject 2019-08-22 10:33:58 +02:00
Chocobozzz 015d9dec91
Fix socket notification with multiple user tabs 2019-08-22 10:33:22 +02:00
Chocobozzz 7c58378a57
email object -> email subject 2019-08-22 10:22:01 +02:00
Chocobozzz b5fecbf441
Type toActivityPubObject functions 2019-08-21 15:23:04 +02:00
Chocobozzz f92e7f76d4
Fix ownership change 2019-08-21 08:57:00 +02:00
Chocobozzz 1ca9f7c3f7
Type toFormattedJSON 2019-08-20 19:23:10 +02:00
Chocobozzz 0283eaac2a
Cleanup model types 2019-08-20 14:53:42 +02:00
Chocobozzz 96ca24f00e
Fix tests 2019-08-20 10:22:05 +02:00
Chocobozzz 453e83ea5d
Stronger model typings 2019-08-19 17:26:35 +02:00
Chocobozzz 0b353d1d8a
Fix redundancy exceeding the limit 2019-08-12 08:46:46 +02:00
Chocobozzz e2600d8b26
Add avatar to prune script 2019-08-09 15:04:36 +02:00
Chocobozzz 557b13ae24
Lazy load avatars 2019-08-09 11:32:40 +02:00
Chocobozzz 5224c394b3
Stronger actor association typing in AP functions 2019-08-09 08:17:16 +02:00
Chocobozzz 511765c9f8
Remove comment federation by video owner 2019-08-07 15:35:29 +02:00
Chocobozzz 0763044f7d
Fix comment notifications 2019-08-07 12:07:59 +02:00
Chocobozzz 6b9c966f64
Automatically remove bad followings 2019-08-06 17:26:51 +02:00
Chocobozzz f847ccb33c
Optimize watch endpoint 2019-08-06 17:20:19 +02:00
Chocobozzz 1198edf4bb
Fix user notifications on new follow 2019-08-02 10:53:36 +02:00
Chocobozzz 65af03a241
Automatically update playlist thumbnails 2019-08-01 16:54:24 +02:00
Chocobozzz a21e25ff64
Fix like/dislike federation 2019-08-01 14:26:49 +02:00
Chocobozzz 29d4e1375f
Fix HLS transcoding 2019-08-01 14:19:18 +02:00
Chocobozzz 970ceac0a6
Fix multiple server tests 2019-08-01 10:15:28 +02:00
Chocobozzz 2284f20207
Add gitlab ci support 2019-07-29 13:40:39 +02:00
Chocobozzz d75db01f14
Add plugin translation system 2019-07-26 15:18:30 +02:00
Chocobozzz ee286591a5
Plugins can update video constants
Categories, licences and languages
2019-07-26 15:18:30 +02:00
Chocobozzz 23bdacf8ec
Add setting helper to client plugins 2019-07-26 15:18:28 +02:00
Chocobozzz 9ae88819c2
Change plugin models names 2019-07-24 11:17:42 +02:00
Chocobozzz 5b77537ce5 Correctly notify on auto blacklist 2019-07-24 10:58:16 +02:00
Chocobozzz 7c421bb198 Fix auto blacklist 2019-07-24 10:58:16 +02:00
Chocobozzz 3e753302d8 Refactor middleware helpers 2019-07-24 10:58:16 +02:00
Chocobozzz a8b666e9f1 Add plugin static files cache 2019-07-24 10:58:16 +02:00
Chocobozzz 7663e55a2c Log error on unknown hook 2019-07-24 10:58:16 +02:00
Chocobozzz 587568e1cc Add plugin table migration table 2019-07-24 10:58:16 +02:00
Chocobozzz 6691c52280 Add filter hooks tests 2019-07-24 10:58:16 +02:00
Chocobozzz 89cd127560 Add hook filters tests 2019-07-24 10:58:16 +02:00
Chocobozzz 09071200c7 Add plugin API tests 2019-07-24 10:58:16 +02:00
Chocobozzz 9b474844e8 Add CLI plugins tests 2019-07-24 10:58:16 +02:00
Chocobozzz 32fe001389 Provide logger to plugins 2019-07-24 10:58:16 +02:00
Chocobozzz 60cfd4cb54 Add plugins check params tests 2019-07-24 10:58:16 +02:00
Chocobozzz b4055e1c23 Add server hooks 2019-07-24 10:58:16 +02:00
Chocobozzz 9fa6ca160a Some plugins fixes and doc enhancements 2019-07-24 10:58:16 +02:00
Chocobozzz 66170ca8c6 Use process.env.npm_package_version 2019-07-24 10:58:16 +02:00
Chocobozzz d133f38582 Check latest plugins version with config interval 2019-07-24 10:58:16 +02:00
Chocobozzz e0ce715a1d Check latest plugins version 2019-07-24 10:58:16 +02:00
Chocobozzz 6702a1b2cc Add ability to search available plugins 2019-07-24 10:58:16 +02:00
Chocobozzz b2195fafc2 WIP plugins: add storage manager 2019-07-24 10:58:16 +02:00
Chocobozzz b5f919ac8e WIP plugins: update plugin 2019-07-24 10:58:16 +02:00
Chocobozzz dba85a1e9e WIP plugins: add plugin settings/uninstall in client 2019-07-24 10:58:16 +02:00
Chocobozzz ad91e7006e WIP plugins: plugin settings on server side 2019-07-24 10:58:16 +02:00
Chocobozzz ffb321bedc WIP plugins: load theme on client side 2019-07-24 10:58:16 +02:00
Chocobozzz 7cd4d2ba10 WIP plugins: add theme support 2019-07-24 10:58:16 +02:00
Chocobozzz 18a6f04c07 WIP plugins: hook on client side 2019-07-24 10:58:16 +02:00
Chocobozzz 2c0539420d WIP plugins: static files 2019-07-24 10:58:16 +02:00
Chocobozzz f023a19c3e WIP plugins: install/uninstall 2019-07-24 10:58:16 +02:00
Chocobozzz 345da516fa WIP plugins: add ability to register plugins 2019-07-24 10:58:16 +02:00
Chocobozzz d89954ff0b
Log typo 2019-07-03 16:07:30 +02:00
Nassim Bounouas 4e9fa5b7e9 Feature/subject in contact form (#1926)
* #1915 Add a subject to contact form and add it to email sent

* #1915 Add subject to contact form tests

* #1915 Contact form test corrected && tslint correction
2019-06-21 08:49:35 +02:00
Chocobozzz 26d7879998
Fix redundancy exceeded quota 2019-06-20 10:33:01 +02:00
Chocobozzz d1ab89deb7
Handle email update on server 2019-06-11 14:31:11 +02:00
Chocobozzz 1f20622f2b
Improve registration
* Add ability to set the user display name
 * Use display name to guess the username/channel name
 * Add explanations about what is the purpose of a username/channel name
 * Add a loader at the "done" step
2019-06-07 17:05:42 +02:00
Chocobozzz 7d14d4d2ca
Server: Bulk update videos support field 2019-05-31 16:44:46 +02:00
Chocobozzz 9977c12838
Remove old activities processor 2019-05-31 15:36:50 +02:00
Chocobozzz ee79b60e4e
More robust federation
In particular when fetching pleroma outbox
2019-05-31 15:17:04 +02:00
Chocobozzz 57cfff7885
Remove unused actor uuid field 2019-05-31 14:49:31 +02:00
Chocobozzz e590b4a512
Add ability to specify channel on registration 2019-05-28 10:46:32 +02:00
Chocobozzz ec893ae075
Fix crash in files cache 2019-05-28 10:16:58 +02:00
Chocobozzz 21d141c296
Merge branch 'release/v1.3.0' into develop 2019-05-21 13:32:00 +02:00
Chocobozzz 63dc589865
Fix video views 2019-05-21 13:14:27 +02:00
Chocobozzz 73b3aa6429
Merge branch 'feature/audio-upload' into develop 2019-05-21 10:05:12 +02:00
Yohan Boniface b5bfadf0b5 Allow to control emails prefix and signature with config (#1789)
* Allow to control emails prefix and signature with config

* Adapt email config according to @Chocobozzz review
2019-05-17 14:10:19 +02:00
Chocobozzz 536598cfaf
Add audio support in upload 2019-05-16 17:16:47 +02:00
libertysoft3 2fbd5e25dd transcode in STORAGE.TMP_DIR for s3fs compatibility (#147) 2019-05-16 08:59:35 +02:00
Felix Ableitner 658a47ab68 Added comments for transcode functions 2019-05-13 13:02:42 +02:00
Felix Ableitner 7ed2c1a46f fixed formatting, added test case 2019-05-04 13:06:43 +02:00
Felix Ableitner 5ba49f268d Dont transcode videos when it is not required (fixes #1780) 2019-05-04 03:19:49 +02:00
Chocobozzz c28bcdd10a
Fix pleroma follow 2019-04-25 15:20:30 +02:00
Chocobozzz c0e71e849a
Fix user notifications tests 2019-04-25 14:23:15 +02:00
Chocobozzz 47f6409bb8
Use apicache instead of our broken implementation 2019-04-25 11:27:13 +02:00
Chocobozzz 9cc8d43e37
Add migrations 2019-04-24 16:26:22 +02:00
Chocobozzz 2fb5b3a55a
Relax videos list thumbnail api join 2019-04-24 16:26:22 +02:00
Chocobozzz dc85273764
Refactor video caption/preview caches 2019-04-24 16:26:21 +02:00
Chocobozzz 3acc508440
Upgrade sequelize 2019-04-24 16:26:21 +02:00
Chocobozzz 1735c82572
Update sequelize 2019-04-24 16:26:20 +02:00
Chocobozzz e8bafea35b
Create a dedicated table to track video thumbnails 2019-04-24 16:25:52 +02:00
Chocobozzz 4ee7a4c9ac
Remove tmp file on image processing error 2019-04-24 16:25:51 +02:00
Chocobozzz 1eddc9a74f
Add user adminFlags 2019-04-15 14:39:52 +02:00
Chocobozzz cda03765fe
Add ability to delete old remote views 2019-04-12 08:31:06 +02:00
Chocobozzz 8f0bc73d7d
Add ability to limit videos history size 2019-04-11 15:38:53 +02:00
Chocobozzz 74dc3bca2b
Don't expose constants directly in initializers/ 2019-04-11 14:26:41 +02:00
Chocobozzz 6dd9de95df
Move config in its own file 2019-04-11 13:45:39 +02:00