Thomas Citharel
882661e22c
Clean some unused config key
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-02-05 15:19:15 +01:00
Thomas Citharel
d0e28c6308
Add Oban.Plugins.Pruner to clear done jobs
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-01-27 17:06:09 +01:00
Thomas Citharel
43c694be72
Upgrade Oban
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-01-27 17:06:09 +01:00
Thomas Citharel
88707ff729
Add Sentry
...
We use Sentry 7.x for now because Sentry 8.0 requires Elixir 1.10
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-01-27 17:06:09 +01:00
Thomas Citharel
a8e58547fd
Add back media proxy for resources pictures
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-01-26 12:15:53 +01:00
Thomas Citharel
e0e46a81e3
Refactor CSP config by using Pleroma's HTTPSecurityPlug
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-01-25 18:06:49 +01:00
Thomas Citharel
79e00a65b8
Add junit to exunit
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-01-13 17:35:16 +01:00
ty kayn
5c57f1ce3c
⚡ if an event has geo coordinates, add links to routing on OSM, with correct place and zoom of 14, 3 buttons to get routig as car, bike, and by feet.
...
Signed-off-by: Baptiste Lemoine <contact@cipherbliss.com>
2020-12-17 11:26:25 +01:00
Thomas Citharel
9b27e70eb0
Save remote profiles avatars & banners locally
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-12-15 17:17:42 +01:00
Thomas Citharel
d6d9309784
[LDAP] Allow to filter users by memberOf
...
Closes #528
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-12-01 09:16:41 +01:00
Thomas Citharel
0f5941a046
[LDAP] Allow to bind to an admin with a different FQDN
...
By directly providing the full DN
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-12-01 09:16:28 +01:00
Thomas Citharel
207d5c0eb0
Use better upstream deps
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-11-30 12:48:23 +01:00
Thomas Citharel
0e1dc0df8d
Clean unconfirmed users
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-11-27 11:10:12 +01:00
Thomas Citharel
c9457fe0d3
Track usage of media files and add a job to clean them
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-11-26 17:53:33 +01:00
Thomas Citharel
846f7b71f3
Update some outdated dev config
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-11-23 17:00:41 +01:00
Thomas Citharel
a115b49b4c
Only load all locales in prod mode
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-11-17 15:42:03 +01:00
Thomas Citharel
eafc9ab658
Hide tokens inside logs
...
Especially from Websockets logs which contains auth token
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-11-16 12:30:06 +01:00
Thomas Citharel
90ee9d7d72
Activate missing languages
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-11-14 13:49:13 +01:00
Thomas Citharel
7c11807c14
Allow to join an open group
...
Also:
* Refactor interacting with a remote event so that you can interact with
a remote group as well
* Add a setting for group admins to pick between an open and invite-only
group
* Fix new groups without posts/todos/resources/events/conversations URL
set
* Repair local groups that haven't got their
posts/todos/resources/events/conversations URL set
* Add a scheduled job to refresh remote groups every hour
* Add a user setting to pick when to receive notifications when there's
new members to approve (will be used when this feature is available)
* Fix pagination for members
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-11-06 15:19:36 +01:00
Thomas Citharel
7baad7cafc
Load only a few locales in dev environment
...
No need to load everything
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-11-06 12:03:20 +01:00
Thomas Citharel
67b906cc96
Fix language change
...
- Load the language files correctly when language is changed
- Save user language in localstorage so that we can have it even if disconnected (but still load it from user settings eventually since
user might be on a different device)
- Load all locales from Cldr with Gettext
- Fix pt-PT -> pt-BR
- Clean some obsolete config.exs comments
Later changes will allow to set the language without an account
https://framagit.org/framasoft/mobilizon/-/issues/375
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-10-28 19:57:57 +01:00
Thomas Citharel
e80aece1dd
Add a comment in docs and config for recommended email port values
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-10-21 10:10:44 +02:00
Thomas Citharel
19c82c76ba
Debug errors in test mode as well
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-10-13 15:06:00 +02:00
Thomas Citharel
dad9623482
Make sure only proper pictures are uploaded
...
Closes #384
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-10-09 19:29:12 +02:00
Thomas Citharel
07a5d10421
Introduce support for custom nginx error pages
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-10-09 14:48:49 +02:00
Thomas Citharel
586d8c440d
Add languages to admin settings
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-10-07 16:38:24 +02:00
Thomas Citharel
49a5725da3
Improve and activate groups
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-09-29 10:25:00 +02:00
Thomas Citharel
f11e1b948e
Also respond AS payload to application/ld+json
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-09-23 09:23:06 +02:00
setop
bd3087d121
Fix geospatial clients
...
add json plus to base client and rename to geospacial client
geospatial http client with json plug
2020-09-21 14:46:07 +02:00
Thomas Citharel
69faeec14c
Allow to disable event creation
...
And change the group toggle
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-09-02 15:08:47 +02:00
Thomas Citharel
7c0b813dce
Fix getting remote IP behind reverse proxy
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-08-27 15:54:43 +02:00
Thomas Citharel
0f82363878
Move crontab for sitemap to hourly
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-08-12 17:55:20 +02:00
Thomas Citharel
c56fb710b6
Introduce Sitemaps
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-08-12 16:29:34 +02:00
Thomas Citharel
9a0068dfea
Upgrade oban to 2.0
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-08-12 16:06:09 +02:00
Thomas Citharel
9c9f1385fb
Introduce group posts
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-07-30 16:55:35 +02:00
Thomas Citharel
9a080c1f10
Introduce support for 3rd-party auth (OAuth2 & LDAP)
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-07-06 15:42:59 +02:00
Thomas Citharel
a0eb880f6a
Fix typo
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-06-09 17:14:00 +02:00
Thomas Citharel
dac47d2abb
Add config option to allow anonymous reporting
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-06-09 14:07:49 +02:00
Thomas Citharel
7dbabcf15f
Add toggle to disable groups
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-06-08 16:47:57 +02:00
Thomas Citharel
4144e9ffd0
Introduce group basic federation, event new page and notifications
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-06-03 16:01:26 +02:00
Cku
cf6b3fbf31
Allow database port configuration for dev and test
2020-06-01 22:34:16 +02:00
Thomas Citharel
39b7afd1cd
Blind key rotation and stale duration for profiles
...
See https://blog.dereferenced.org/the-case-for-blind-key-rotation
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-02-14 18:21:18 +01:00
Thomas Citharel
9e3df495dc
Move configuration to traditional way
...
⭐ ️ This is the way.
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-02-06 16:12:13 +01:00
Thomas Citharel
2ed9050a90
Add anonymous and remote participations
2020-01-29 17:28:11 +01:00
rustra
8856cc2f55
Rename MobilizonWeb to Mobilizon.Web
2020-01-26 21:39:49 +01:00
rustra
3577fe42e1
Improve Federation boundaries
2020-01-24 22:02:10 +01:00
rustra
cdb520a95b
Split Federation as separate context
2020-01-22 02:14:42 +01:00
Thomas Citharel
d8c20feead
Use mix.exs version instead of config one
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2019-12-18 14:32:20 +01:00
Thomas Citharel
d552fcb2d3
Add a config option to whitelist users registration
...
Through whole email or domain email
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2019-12-17 12:09:24 +01:00
Thomas Citharel
334d66bf5d
Add admin interface to manage instances subscriptions
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2019-12-15 21:56:16 +01:00
Thomas Citharel
dc07f34d78
Introduce comments below events
...
Also add tomstones
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2019-11-28 12:33:58 +01:00
Thomas Citharel
a53100ef6e
Added a demo mode to show or hide instance warnings that data is deleted
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2019-11-21 16:07:43 +01:00
Thomas Citharel
3b210a33a2
Disable address autocomplete where required (nominatim)
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2019-11-20 13:49:57 +01:00
Thomas Citharel
c7b25474d3
Introduce support for Pelias geocoder
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2019-11-19 17:59:04 +01:00
Thomas Citharel
c599a47d58
Introduce Mimirsbrunn geocoder and improve addresses & maps
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2019-11-12 14:10:18 +01:00
Thomas Citharel
08dab070e7
Handle update identity with bad identity username
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2019-11-06 09:32:02 +01:00
Thomas Citharel
92d694acf4
Merge branch 'bug/fix-issue-when-updating-event' into 'master'
...
Fix issue when updating event and introduce background jobs
See merge request framasoft/mobilizon!300
2019-11-04 17:05:32 +01:00
Thomas Citharel
95ba76a0fa
Fix issue when updating event and introduce background jobs
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2019-11-04 16:40:36 +01:00
Thomas Citharel
0a844aa174
Open links from event URL and in event description in external window
...
And add rel='noopener noreferrer' on them
Closes #282 and #283
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2019-11-04 16:09:44 +01:00
Thomas Citharel
3838e0315a
Better config for inet6 in prod
...
Taken from Phoenix template config
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2019-10-23 16:24:24 +02:00
Thomas Citharel
b5f9518faf
Implement search engine & service in backend
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2019-10-23 15:27:11 +02:00
Thomas Citharel
d1fb90eece
Add the optimize filter for uploaded pics
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2019-10-21 13:42:45 +02:00
Thomas Citharel
c7e0b4abfb
Lower default file upload limit to 10MB
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2019-10-18 14:19:05 +02:00
Thomas Citharel
5e75daa732
Add e2e seed and test event creation
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2019-10-12 19:34:16 +02:00
Thomas Citharel
fa781fc840
Rework homepage and add a (fancy) about section
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2019-10-08 12:27:31 +02:00
Thomas Citharel
77d286ebb6
Introduce Cypress
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2019-10-06 18:28:18 +02:00
Thomas Citharel
cbb54e2b92
Fix (somehow) picture URL generation issue
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2019-10-03 15:35:38 +02:00
Thomas Citharel
5fd38ace2e
Notifications on event update
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2019-09-30 19:01:46 +02:00
Thomas Citharel
65b49e247f
Add config option to disable federation
...
Closes #148
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2019-09-27 16:18:29 +02:00
Thomas Citharel
df5c6b4008
Various fixes
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2019-09-23 10:26:38 +02:00
miffigriffi
4c74248a04
Merge branch 'master' into refactoring-based-on-credo-and-dialyzer
2019-09-22 00:40:53 +02:00
miffigriffi
da97c29340
Move Email context under MobilizonWeb
2019-09-17 02:45:32 +02:00
Chocobozzz
82df0526ec
Edit events fixes and update cache
2019-09-09 14:41:19 +02:00
miffy
fa037fd683
Separating of Storage context
2019-09-08 01:49:56 +02:00
miffy
86a0630a7d
Remove unused config
2019-09-08 00:06:22 +02:00
Thomas Citharel
0e0b68445b
Reuse existing addresses when creating an event
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2019-08-22 16:20:42 +02:00
Thomas Citharel
c51115bdbe
Introduce relay
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2019-08-13 11:15:13 +02:00
Thomas Citharel
5fbaf42cad
Add address input and refactor federation stuff
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2019-07-30 10:35:29 +02:00
Thomas Citharel
6d80bf43ea
Refactor adding tags to an event
...
Also refactor extracting tags from content, now uses Pleroma's Formatter
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2019-07-26 12:06:26 +02:00
Thomas Citharel
aef841e192
Introduce backend for reports
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2019-07-23 13:49:22 +02:00
Thomas Citharel
49f38c8924
Final fixes for build
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2019-07-05 16:59:25 +02:00
Thomas Citharel
2749989a28
Drop the eex template and directly use the webpack index.html
...
Partly reverts ff7fd460
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2019-07-04 17:43:18 +02:00
Thomas Citharel
449baabe3c
Upgrade Elixir deps
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2019-07-03 17:30:22 +02:00
Thomas Citharel
f90089e1bf
Refactor media upload
...
Use Upload Media logic from Pleroma
Backend changes for picture upload
Move AS <-> Model conversion to separate module
Front changes
Downgrade apollo-client: https://github.com/Akryum/vue-apollo/issues/577
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2019-05-24 17:29:51 +02:00
Julien Lavergne
a2c181f7fe
Update NodeInfo support to 2.1 ( #79 )
2019-05-24 09:18:19 +02:00
Vincent
7f31121880
Simplify PageController
2019-05-02 13:54:06 +02:00
Vincent
ff7fd460f0
add make test and Remove vue-cli serve
2019-04-30 13:56:07 +02:00
Thomas Citharel
12116ba6fa
Add visibility to actors
...
Also use url helpers to generate urls properly
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2019-04-25 19:05:05 +02:00
yalh
7115392456
Update prod.exs
2019-04-11 23:53:44 +02:00
Thomas Citharel
da2a0593ca
Various UI stuff (mainly implement mookup)
...
Fix lint
Disable modern mode
Fixes
UI fixes
Fixes
Ignore .po~ files
Fixes
Fix homepage
Fixes
Fixes
Mix format
Fix tests
Fix tests (yeah…)
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2019-04-11 11:58:13 +02:00
Chocobozzz
4fa78d7cd2
Get config and display/hide register button
2019-03-22 15:26:58 +01:00
Chocobozzz
e864b38ec6
Add config endpoint
2019-03-22 13:58:57 +01:00
Thomas Citharel
98b7618338
Add GeoSpatial backends for geocoding
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
Geospatial Backend
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2019-03-15 16:37:43 +01:00
Thomas Citharel
cadbe6082a
Add a new Phoenix config option
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2019-02-22 13:53:11 +01:00
Thomas Citharel
256d50e855
Allow tag relations + bump ecto deps
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2019-02-21 16:58:14 +01:00
Thomas Citharel
bbe4b57baf
➡ Rename mobilizon default dev hostname from .dev to .local
...
Because Google has .dev and it's HSTS preloaded 😔
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2019-01-04 16:12:40 +01:00
Thomas Citharel
6885c73aa8
Change configuration and docker compose
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2019-01-03 11:33:52 +01:00
Thomas Citharel
e5ef51c40e
Rename env variable call
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2018-12-20 18:30:37 +01:00
Thomas Citharel
97deb305af
Typo
2018-12-20 18:15:12 +01:00
Thomas Citharel
403a32e996
Improve overall configuration and support
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2018-11-15 17:35:47 +01:00
Thomas Citharel
9c65ad0170
Use ex_vcr for tests
...
Which are now offline-only !
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2018-11-13 12:23:37 +01:00
Thomas Citharel
5721c5fe05
Toot
2018-11-12 09:05:31 +01:00
Thomas Citharel
b2db190056
Forgot an {:ok} tuple
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2018-11-08 16:26:14 +01:00
Thomas Citharel
f87b042c72
Make loglevel env an atom
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2018-11-08 16:23:09 +01:00
Thomas Citharel
c1222763f1
Add loglevel to env variable
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2018-11-08 16:20:36 +01:00
Thomas Citharel
6aad8b4d36
Add some parameters through env
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2018-11-07 16:25:17 +01:00
Thomas Citharel
b54dae7e15
Move to GraphQL
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2018-11-06 10:30:27 +01:00
Thomas Citharel
559c889f1b
Rename project to Mobilizon
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2018-10-11 17:37:39 +02:00
Thomas Citharel
3b48ac957f
Put js build through phoenix
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2018-10-10 14:57:35 +02:00
Thomas Citharel
979aad5acb
Remove credo and use mix format, and lint everything
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2018-07-27 10:45:35 +02:00
Thomas Citharel
df3f08c528
Fix Docker front and api ports
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2018-07-25 17:06:50 +02:00
Thomas Citharel
c4cfb081e7
Add docker-compose dev
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2018-07-25 16:42:04 +02:00
Thomas Citharel
28987fc689
Download GeoIP files
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
Debug
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
Debug geoip fils
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
Damn it, forgot you
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
Debug
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
Fix
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
Debug
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
Finalize
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2018-07-09 17:17:13 +02:00
Thomas Citharel
e170aa7f66
Mostly UI stuff
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2018-07-09 14:19:24 +02:00
Thomas Citharel
615e91a05b
Fix tests
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2018-07-04 16:23:52 +02:00
Thomas Citharel
93a97b0865
Some work
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2018-07-04 14:29:17 +02:00
Thomas Citharel
f1cb601b46
WIP
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2018-06-06 18:14:04 +02:00
Thomas Citharel
e14007bac5
WIP
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2018-06-06 18:12:21 +02:00
Thomas Citharel
1217361b6c
fix some code style and add checks to ci
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2018-01-14 17:57:25 +01:00
Thomas Citharel
16c180d512
debug
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2018-01-14 00:21:20 +01:00
Thomas Citharel
a9fe91fc23
use own pg config
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2018-01-14 00:03:04 +01:00
Thomas Citharel
97c1c4e2a3
fix ci env
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2018-01-13 23:40:06 +01:00
Thomas Citharel
20cd1bb579
Change models, new migrations, fix front and make tests work
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2018-01-13 23:33:03 +01:00
Thomas Citharel
8ac705d8c2
replace coherence with guardian
2017-12-09 14:58:37 +01:00
Thomas Citharel
90ceb4f6fe
initial commit
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2017-12-08 09:58:14 +01:00