Marvin W
cc7b0aa7bd
Move GCM tag into per-device-encrypted area to be compatible with current OMEMO version, fixes #514
2019-03-07 20:17:56 +01:00
fiaxh
78ec625dbe
Check for eme tag before adding fallback text for empty-body OMEMO messages
2019-02-20 01:48:07 +01:00
Thibaut Girka
b97aa9b44b
Add fallback text when a known to be OMEMO-encrypted message failed to decrypt
2019-02-17 17:18:34 +01:00
Translations
e55fb9cca5
Update Translations
2019-02-14 21:13:42 +01:00
fiaxh
736522737f
Make file read/write async
2019-02-14 00:04:01 +01:00
Marvin W
4a8d628924
Do not use signal_protocol_internal.h
2019-02-12 15:27:58 -06:00
Marvin W
8e14ac6d71
Rewrite OMEMO crypt buffer logic to fix #474
2019-01-16 23:02:23 +01:00
fiaxh
8b08d874fa
Fix OMEMO decryption if MUC real_jid is not known (because sender is offline)
...
fixes #490
2019-01-09 00:59:28 +01:00
Marvin W
cdd4c0b854
Find libqrencode using cmake/pkg-config logic
2019-01-02 15:36:41 +01:00
Marvin W
7012023d59
Bump libsignal-protocol-c dependency to 2.3.2
2019-01-02 13:27:11 +01:00
Translations
4c8f4bef66
Update Translations
...
Arabic: ButterflyOfFire
Basque: beriain
Chinese (Simplified): Sak94664
Dutch: flevop, Nathan Follens
Flemish: Nathan Follens
French: Sioul
Galician: Xosé M
German: H A, ssantos
Luxembourgish: Dennis Fink
Norwegian Bokmål: Allan Nordhøy
Romanian: Licaon Kter
Spanish: sergio
2018-12-31 16:51:15 +01:00
fiaxh
446e86d4ad
Check FileTransfer's mime_type for null (unknown) when handeling it
...
fixes #479
2018-12-31 16:49:22 +01:00
fiaxh
680d28360c
Check content_length for null before parsing in http HEAD message response
...
fixes #468
2018-11-29 16:30:20 +01:00
fiaxh
7c1d580e17
Fix aesgcm http file up/download bugs
2018-11-27 18:28:28 +01:00
fiaxh
141db9e40a
Implement aesgcm encrypted file upload
2018-11-27 15:02:18 +01:00
fiaxh
01360a73ae
FileProvider for aesgcm links
...
Co-authored-by: Thibaut Girka <thib@sitedethib.com>
2018-11-27 03:41:31 +01:00
fiaxh
2208ff9799
Restructure (http) file provider flow: Separate download&get_info, download in provider, move XmppStreamModule into xmpp-vala
2018-11-27 03:38:42 +01:00
Tim Henkes
7497f1f17b
Allow 12 for the size of the IV
2018-11-20 08:07:28 -06:00
Rahix
9e5f30487a
Add a white border around QR-codes
...
Signed-off-by: Rahix <rahix@rahix.de>
2018-11-16 11:24:17 -06:00
Translations
45236d07bc
Update translations
2018-11-14 21:31:47 +01:00
Licaon_Kter
38b532034f
Fix Typo
2018-11-11 10:36:25 -06:00
Allan Nordhøy
57c6708e2d
Spelling, added comma and ending dot.
2018-11-11 06:33:50 -06:00
Translations
2e21414225
Update translations
...
Arabic: ButterflyOfFire <ButterflyOfFire@protonmail.com>
Galician: Iván Seoane <ivanrsm1997@gmail.com>
Italian: Valerio Baldisserotto <svalo@libersoft.it>
Norwegian Bokmål: Allan Nordhøy <epost@anotheragency.no>
Romanian: Licaon Kter <licaon.kter@protonmail.com>
2018-11-10 18:02:58 +01:00
fiaxh
7e6668d283
Use QR-code icon for OMEMO QR-code button
2018-11-10 17:24:48 +01:00
Marvin W
214906e1a5
Hide OMEMO messages from untrusted sources
2018-11-10 08:05:54 -06:00
Marvin W
dfb75e2cda
Merge PR #413 "Improvements to the OMEMO plugin"
2018-11-10 08:05:14 -06:00
fiaxh
f60ebc2af6
Use ContentItems for NotificationEvents
2018-11-07 00:17:24 +01:00
Translations
ab7cd67851
Update translations
...
Arabic: ButterflyOfFire <ButterflyOfFire@protonmail.com>
Basque: Aitor Beriain <beriain@bitmessage.ch>
Dutch: Nathan Follens <nthn@unseen.is>
Flemish: Nathan Follens <nthn@unseen.is>, woutersj <woutersj@gmail.com>
French: Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>, Jean-Baptiste <jean-baptiste@holcroft.fr>
Galician: Xosé M <xosem@disroot.org>
Italian: Valerio Baldisserotto <svalo@libersoft.it>
Luxembourgish: Dennis Fink <dennis.fink@c3l.lu>
Norwegian: Allan Nordhøy <epost@anotheragency.no>, Petter Reinholdtsen <pere-weblate@hungry.com>
Polish: Michael K <kellermichal@gmail.com>
Portuguese (Brazil): Rhagni Oliveira <rhagni@gmail.com>
Romanian: Licaon Kter <licaon.kter@protonmail.com>
Spanish: Bonber Rash <bonber@protonmail.com>
2018-10-23 23:57:59 +02:00
Translations
f876114126
Update translations
...
Arabic: ButterflyOfFire <ButterflyOfFire@protonmail.com>
Basque: account1 <surajchawla61@gmail.com>, Aitor Beriain <beriain@bitmessage.ch>
Dutch: Nathan Follens <nthn@unseen.is>
Flemish: Nathan Follens <nthn@unseen.is>
French: Étienne Deparis <etienne@depar.is>
Hungarian: notramo <notramo@vipmail.hu>
Italian: Valerio Baldisserotto <svalo@libersoft.it>
Luxembourgish: Dennis Fink <dennis.fink@c3l.lu>
Norwegian Bokmål: Allan Nordhøy <epost@anotheragency.no>
Romanian: Licaon Kter <licaon.kter@protonmail.com>
2018-09-07 13:45:07 +02:00
fiaxh
0e41fb3294
Add hidden
column to content_item table
2018-08-31 16:26:23 +02:00
Samuel Hand
65a12021bc
Solve a few compiler warnings
2018-08-14 02:00:39 +01:00
Samuel Hand
3c819a19e1
Properly decrypt messages from MUCs
2018-08-14 01:37:55 +01:00
bobufa
1d9ce7f471
sort file transfers into correct conversation
2018-08-13 22:39:18 +02:00
bobufa
4901b09670
add search filter expressions
2018-08-13 22:39:18 +02:00
bobufa
2e2a9a2390
accumulate conversation content in meta db table
2018-08-13 22:39:07 +02:00
bobufa
3ea00446fb
refactor conversation item management (accumulate them in libdino)
2018-08-13 22:04:47 +02:00
Samuel Hand
65724233f0
Move formatting out of translatable strings in manage_key_dialog
2018-08-12 12:42:06 +01:00
Samuel Hand
380e5edc51
Change own-notifcation wording and add a default action
2018-08-12 12:16:42 +01:00
Samuel Hand
c59faad5bf
Make the key lists scrollable
2018-08-12 11:23:32 +01:00
Samuel Hand
e2932af18f
Index consistently with the identity id
2018-08-12 11:04:40 +01:00
Samuel Hand
b589275ab4
Actually perform the database update when changing blind trust
2018-08-11 15:56:30 +01:00
Samuel Hand
9b98428996
Un-dim fingerprint when accepting keys
2018-08-11 15:54:14 +01:00
Samuel Hand
72cb5b4f90
Fix OMEMO not working when the database is re-created for an existing account
2018-08-11 14:19:06 +01:00
Samuel Hand
9d15c464c2
Merge branch 'master' into omemo-muc
2018-08-11 12:27:57 +01:00
Samuel Hand
d7b5db1d9f
Make strings translatable
2018-08-10 12:47:56 +01:00
Samuel Hand
8ebc2c5dd3
Fix mutual subscription detection
2018-08-10 01:40:20 +01:00
Samuel Hand
36cc8b0393
Code cleanup - move long database queries to their own functions and improve variable names
2018-08-10 00:45:22 +01:00
Samuel Hand
e1afda10e3
Make constructors the first function
2018-08-09 15:29:15 +01:00
Samuel Hand
b5d5a05a1e
Indentation fixes
2018-08-09 15:19:02 +01:00
Samuel Hand
18419b3268
Show a verification QR code for an accounts own key
2018-08-08 22:02:51 +01:00
Samuel Hand
cdaa29d7f0
Only send messages to active devices
2018-08-08 14:45:09 +01:00
Samuel Hand
14fc267e83
Minor UI improvements: use a stack for the key management dialog
2018-08-07 01:06:59 +01:00
fiaxh
41c333263b
pgp: Fix checking wrong variable for null
2018-08-06 00:52:11 +02:00
Samuel Hand
0bfab9d1d9
Fix bug where OMEMO not avaiable with a newly added contact
2018-08-05 01:26:36 +01:00
Samuel Hand
01d26bffd8
UI update: make the trust management interface more user friendly
2018-08-03 19:07:23 +01:00
Samuel Hand
e6069fa183
Mark messages from rejected and unknown devices
2018-07-29 13:31:57 +01:00
Samuel Hand
5d32a0ec3d
Fix omemo not being available on first startup
2018-07-28 19:03:52 +01:00
Samuel Hand
7e156b3a75
Code cleanup: create new trust management class
2018-07-25 21:27:26 +01:00
Samuel Hand
f2283778f6
only allow OMEMO in members only MUCs
2018-07-18 21:42:33 +01:00
Samuel Hand
c299a12b8e
Send OMEMO messages in MUCs to offline members
2018-07-17 19:57:42 +01:00
Samuel Hand
56a0da154a
Properly check if a MUC is viable for sending OMEMO messages
2018-07-17 19:47:07 +01:00
Samuel Hand
74c48e6567
Enable encryption in MUCs
2018-07-11 18:17:57 +01:00
Samuel Hand
62ad56af21
Notify on a new own device
2018-07-11 13:20:02 +01:00
Samuel Hand
acbc5710d0
Enable key management for own keys
2018-07-09 14:16:23 +01:00
Samuel Hand
f3c82094cd
Merge branch 'master' into omemo-trust-ui
2018-07-07 12:12:31 +01:00
Samuel Hand
7da735b844
More database migration, update defaults and indexes
2018-07-06 20:14:51 +01:00
Translations
3a00177a51
Update translations
...
Basque: Aitor Beriain <beriain@bitmessage.ch>
Dutch: Nathan Follens <nathan@email.is>
Finnish: mjlapin <muu@kapsi.fi>
Flemish: Nathan Follens <nthn@unseen.is>
Italian: Valerio Baldisserotto <svalo@libersoft.it>
Luxembourgish: Dennis Fink <dennis.fink@c3l.lu>
Norwegian Bokmål: Allan Nordhøy <epost@anotheragency.no>
Portugese (Brazil): 5lm31d5 <jeanrk15@gmail.com>
Romanian: Licaon Kter <licaon.kter@protonmail.com>
Russian: nvlgit <nvlbox@gmail.com>, Alexander <ilabdsf@gmail.com>
Spanish: mgueji <miguejim@mailbox.org>
2018-07-05 09:22:44 -06:00
Samuel Hand
20fe944c2d
Add a toggle switch for key management
2018-07-04 21:26:14 +01:00
Samuel Hand
a3c0c24b7e
Fix a bug where notifications wouldn't display upon a new device being added
2018-07-04 17:44:23 +01:00
Marvin W
638d81d67e
More cleanup and database modifications
2018-06-26 15:42:02 +01:00
Samuel Hand
2a8352c543
Database migration and code cleanup
2018-06-19 11:26:31 +01:00
Samuel Hand
df8b5fcb72
Properly handle the case where the recipients device list hasn't been fetched
2018-06-14 23:12:25 +02:00
Samuel Hand
0bcdae34a5
Disable debug mode for the omemo plugin
2018-06-11 08:48:55 +01:00
Samuel Hand
40c6835600
Add trust management utilities to the omemo plugin
2018-06-11 07:11:22 +01:00
Samuel Hand
630df3a2ee
Properly handle the case where the recipients device list hasn't been fetched
2018-06-08 02:37:50 +01:00
Samuel Hand
52e116ee44
remove bundle requests so session creation doesn't fail
2018-06-03 22:57:51 +02:00
Samuel Hand
bbe578343e
remove bundle requests so session creation doesn't fail
2018-06-03 17:53:05 +01:00
Samuel Hand
62e5e6485e
Implement XEP-0380 for the OMEMO and OpenPGP plugins ( #359 )
...
* Implement XEP-0380 in a naive fashion for both the OMEMO and OpenPGP plugins
* Move the XEP-0380 namespace to a constant
* Move the implementation for xep-0380 to its own module
* Remove un-needed lines from plugins/openpgp/src/stream_module.vala
2018-05-28 16:19:51 +02:00
Translations
4067e45779
Update translations
...
Arabic: ButterflyOfFire <ButterflyOfFire@protonmail.com>
Basque: Aitor Beriain <beriain@bitmessage.ch>
Chinese (Simplified): 朱陈锬 <201603748@stu.lzjtu.edu.cn>
Esperanto: Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
Finnish: mjlapin <muu@kapsi.fi>
Flemish: Nathan Follens <nathan@email.is>
French: Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
Italian: Valerio Baldisserotto <svalo@libersoft.it>
Japanese: Mako N <mako@pasero.net>
Luxembourgish: Dennis Fink <dennis.fink@c3l.lu>
Norwegian Bokmål: Allan Nordhøy <epost@anotheragency.no>
Romanian: Licaon Kter <licaon.kter@protonmail.com>
Spanish: mgueji <miguejim@mailbox.org>
2018-05-01 00:24:57 +02:00
fiaxh
6f27c3e58f
openpgp: Fix invalid iter in key selection dialog
...
On empty pgp keyring the key selection dialog would display a label "No Keys available"
which subsequently while selecting different accounts would disappear.
Co-authored-by: Gnoxter <gnoxter+github@linuxlounge.net>
2018-04-17 22:14:18 +02:00
Translations
7ecb0e614b
Update translations
2018-03-24 15:33:17 -06:00
fiaxh
a8ee61b34c
Move notification sounds (canberra dependency) into plugin, introduce libdino/NotificationEvents
2018-03-05 15:43:02 +01:00
fiaxh
ef40b61734
Small fixes
2018-01-30 17:29:54 +01:00
fiaxh
8c46c423c0
http-files: Report correct file size for encrypted files (slot request)
2018-01-28 23:26:37 +01:00
fiaxh
f6db249c92
Only display transferred images, display file names, open in system viewer, include and use pgp embedded file names
2018-01-28 22:00:22 +01:00
fiaxh
57c72d2818
Pipeline for incoming messages in libdino
2018-01-28 13:37:53 +01:00
Marvin W
782ae4c049
Move Jid class to xmpp-vala, partially refactor namespace
2018-01-28 00:38:47 +01:00
Translations
d46d071e57
Update translations
2018-01-24 17:37:17 +01:00
Jordi Mallach
7f256e1005
Initial Catalan translation. ( #279 )
...
* Initial Catalan translation.
* Add OMEMO and OpenPGP plugin translations.
2018-01-24 16:34:37 +01:00
linkmauve
0ce28c0b0d
Fix typos in comments and variable names ( #269 )
...
Thanks `codespell`!
2018-01-10 15:12:54 +01:00
Marvin W
6b58b348fa
Small fixes to signal-protocol-c helper functions
...
ref #253
2018-01-04 21:06:20 +01:00
Translations
b482c57f3b
Update translations
2017-12-31 22:57:21 +01:00
fiaxh
c7c1fb5124
Restore window state (size, maximized, position)
2017-12-31 22:48:14 +01:00
fiaxh
f25fadde2d
Fallback display for all file types
2017-12-13 21:11:33 +01:00
fiaxh
cee39b0117
Rename resources to have a reverse DNS prefix
2017-12-03 21:43:19 +01:00
fiaxh
1e011852e0
http-files: async file download
2017-11-27 22:17:36 +01:00
Translations
2f6878a523
Update translations
2017-11-24 01:14:58 +01:00
fiaxh
64774241e5
Fix memory leak
2017-11-23 01:28:29 +01:00
fiaxh
de133218da
Disconnect stanza listeners from pipeline
2017-11-22 00:40:41 +01:00
Translations
ebf8d7ab01
Update translations
2017-11-18 19:43:59 +01:00
fiaxh
2a514d0969
Fix unit tests using async + read message marker
2017-11-17 17:24:03 +01:00
fiaxh
3f531d6b91
Read+(write) stream async
2017-11-16 17:43:00 +01:00
fiaxh
1d0745177e
Replace deprecated function usages
2017-11-16 14:09:30 +01:00
fiaxh
d82194af58
Go offline before quiting application
...
fixes #141
2017-10-31 17:32:48 +01:00
fiaxh
0102abeec1
Fix warnings
2017-10-31 15:41:45 +01:00
fiaxh
b9df78e449
Move DatabaseError handling into Qlite
2017-10-31 15:41:45 +01:00
Dennis Fink
193ca0b671
Added luxembourgish translation
2017-10-29 01:10:04 +02:00
fiaxh
749edd21b9
Add oob tag to http-upload messages
...
fixes #166
2017-10-22 18:26:31 +02:00
fiaxh
9ea16b6d85
PGP encrypted file transfers
2017-10-22 18:26:31 +02:00
fiaxh
8b43df8ec3
Handle file uploading in libdino & main, have http upload as provider
2017-10-21 23:31:05 +02:00
fiaxh
9d8e1e88ec
http-files: max-file-size handling
2017-09-26 17:01:06 +02:00
fiaxh
8944029128
Move encryption menu into ChatInput, PGP support for MUCs
2017-09-06 00:15:18 +02:00
fiaxh
312372350e
http files: Accept url put/get urls in both attributes and string content
2017-09-05 19:13:30 +02:00
hrxi
2cd6e94cc5
Focus selected widgets in the accounts dialog
...
Previously, you had to issue two clicks in order to enter something into
the text fields.
This also replaces the `Entry` widgets with their label counterparts
once they lose focus. Since the `ComboBox` handling of focus seems to be
buggy (`focus_out_event` not firing), the OpenPGP key selection lacks
the latter feature.
2017-09-01 00:07:24 +02:00
fiaxh
d2a5287eff
Use utc time everywhere
2017-08-31 18:54:38 +02:00
fiaxh
a257b16337
Download & inline display images
2017-08-31 18:54:38 +02:00
Marvin W
b428c3a627
support platforms without UTF-8 and use native file picker
2017-08-29 22:09:07 +02:00
Marvin W
9840774a87
omemo: store and display identity keys of all devices
2017-08-27 14:52:18 +02:00
fiaxh
8533ba6450
Handle xmpp ?join and ?message uris
2017-08-25 22:30:03 +02:00
fiaxh
a8ba4a3974
"Default" per-contact settings (change UI)
2017-08-25 22:30:03 +02:00
Marvin W
7b395263c1
omemo: handle broken incoming key bundles
...
fixes #137
2017-08-24 15:58:32 +02:00
fiaxh
a8aceb1e39
README: Discussion MUC, change url
2017-08-22 16:04:41 +02:00
Marvin W
5dc460fc1a
libdino: remove dependency to GTK+ (all GTK+ code is in main+plugins)
2017-08-17 19:53:34 +02:00
fiaxh
3ddc53e683
openpgp: contact details provider (fingerprint), colored fingerprints, fix shown availability
2017-08-14 22:38:17 +02:00
fiaxh
b0264b3e00
xmpp-vala: Remove require-functions
2017-08-14 22:38:17 +02:00
fiaxh
a59f728bdd
Stream Management
2017-08-14 22:38:12 +02:00
fiaxh
b29d52fdda
SRV records for XMPP over TLS
2017-08-11 11:56:37 +02:00
fiaxh
e3e6a426f4
http files: Fix for servers w/o file size limit
2017-08-09 00:12:15 +02:00
fiaxh
0206139f0f
http files: Fix double-free rance-condition
...
... and move classes around
2017-08-07 21:48:43 +02:00
fiaxh
6bc950d042
Http file upload for version :0 and other server setups
2017-08-07 21:04:39 +02:00
fiaxh
ea174ab632
Http file upload
2017-08-03 15:59:04 +02:00
fiaxh
26973c89e3
Set jid handle in ContactDetails, use LabelHybrids more, remove edit from StartConversation
2017-06-17 16:13:23 +02:00
fiaxh
7bbbb738fd
Get rid of manual storage objects for delegates
2017-06-13 20:12:40 +02:00
fiaxh
2480c1ec26
Update translations
2017-05-31 20:29:56 +02:00
Marvin W
eddf17c682
cmake/signal-protocol: shared lib, mark_as_advanced and others
2017-04-26 21:48:53 +02:00
Marvin W
5c8275ed4e
signal-protocol: use proper types and fix memleak ( #59 )
2017-04-19 20:31:36 +02:00
Marvin W
7e388fb2bc
signal-protocol/omemo: fix null-pointer issues
...
Fixes #44 and #58
2017-04-18 20:20:41 +02:00
Marvin W
a0b2a66ef0
Replace OpenSSL with GCrypt
2017-04-15 18:03:24 +02:00
fiaxh
9bc83539d1
Gettext support
2017-04-10 15:47:21 +02:00
fiaxh
d8881c4b16
Show account status (incl errors) in ManageAccounts.Dialog
2017-04-10 15:47:17 +02:00
fiaxh
75e51b5ed3
MessageStorage/Processor, correctly resolve conversations (fixup 22adbd3
)
2017-04-04 15:57:35 +02:00
Marvin W
2a49d4a1aa
Add --print-xmpp flag to log details
2017-04-03 15:09:30 +02:00
Marvin W
8248cfcbb2
Make FHS compliant, split RPMs, fix compilation on older GCCs
2017-04-03 15:05:39 +02:00
Marvin W
3733d24a90
Fix -Werror=format-security issues
2017-03-30 22:38:51 +02:00
Marvin W
c95a400908
Fetch libsignal-protocol-c when not a submodule (still using git)
2017-03-23 19:41:32 +01:00
Marvin W
e6f89f8751
New CMake
...
- add install and uninstall targets
- compatibility for systems without pkg-config
2017-03-23 17:16:08 +01:00
Marvin W
ef0483765a
Small bug fixes and compatibility with Vala 0.36
2017-03-23 16:48:26 +01:00
fiaxh
db57a97353
Add typed identity to manager modules and stream flags
2017-03-20 22:28:27 +01:00
fiaxh
6f3eee1430
Improve when to send chat state notifications
2017-03-16 19:46:22 +01:00
fiaxh
af49a47cf6
Fix ChatInput for many lines + small UI changes
2017-03-16 17:56:38 +01:00
Marvin W
5038db063e
omemo plugin: improve session bootstrapping
2017-03-15 17:23:13 +01:00
Marvin W
2d6f580c87
correctly bootstrap omemo when there is no devicelist on server yet + concurrency bug fixes
2017-03-13 22:00:17 +01:00
Marvin W
1a4cd2508b
Make compatible with OpenSSL 1.1
2017-03-13 20:44:37 +01:00
Marvin W
bb811f8b29
Do not use gpgme 1.7.0+ features yet.
2017-03-13 10:35:47 +01:00
Marvin W
bd1f116b3a
Fix delegate copying issue
2017-03-12 21:24:47 +01:00
Marvin W
c2643a45b0
Qlite: Return OptionalRow instead of Row?, add ability to remove columns on version upgrade
2017-03-12 20:55:11 +01:00
fiaxh
fabd6ff251
amend 39722a4
2017-03-12 18:25:01 +01:00
fiaxh
39722a4973
Query GPG in other thread + only once (account settings)
2017-03-12 16:25:42 +01:00
Marvin W
a4cb998ec4
Unlock mutex on exceptions in gpgme helper
2017-03-12 15:21:15 +01:00
fiaxh
f24b47c44d
PGP module: store data in own db, use pgp key as specified in account settings
2017-03-12 14:44:09 +01:00
Marvin W
e8f11178ec
Move storage into user directory and fix plugin search path
2017-03-12 14:09:32 +01:00
Marvin W
a9ea0e9f87
Split OMEMO plug-in into files, various fixes
2017-03-12 03:17:21 +01:00
fiaxh
7e1ecb34cb
Move PGP support into plugin
2017-03-12 02:52:43 +01:00
Marvin W
766af21d87
Fix OMEMO plugin for latest changes
2017-03-12 00:25:47 +01:00
Marvin W
d5ea5172a7
Add OMEMO via Plugin
2017-03-11 23:59:04 +01:00