Kramer Campbell
cff4f1ce2c
Add support for /kill
...
Fixes #3122
2019-03-16 12:57:24 -07:00
Pavel Djundik
71332f59d9
Display current channel mode on /mode command
...
Fixes #885
2019-03-07 12:57:31 +02:00
Pavel Djundik
4d9c01deea
Put channel errors and unhandled numerics to relevant channel if it exists
2019-02-22 14:04:33 +02:00
Jos Ahrens
0fbf301e0f
plugin/ctcp: Let the user know a CTCP request was sent
...
Because responding to a CTCP request is completely optional,
sometimes thelounge will just do absolutely nothing. (the request
was received, but the client did not respond to it)
This alleviates the problem by always notifying the user that
*something* was sent.
2019-02-16 21:01:32 +00:00
Pavel Djundik
b066dc301e
Move custom highlights to the server
2019-02-13 16:44:15 +02:00
Pavel Djundik
a4ec875c87
Check that CHANTYPES and PREFIX are set, and set defaults
2019-02-12 12:49:06 +02:00
Pavel Djundik
7c8441a93b
Clear user lists on all channels when disconnected from network
2019-02-12 12:48:45 +02:00
Pavel Djundik
853f67ab40
Synchornize channel state to the client
2019-02-12 12:48:44 +02:00
Pavel Djundik
f2cbd1efed
Pass PREFIX and CHANTYPES to parser
2019-02-12 12:48:44 +02:00
Pavel Djundik
771739cf94
Port ignore list to Vue
2019-02-12 12:48:42 +02:00
Pavel Djundik
595915fefd
Render link previews in Vue
2019-02-12 12:48:42 +02:00
Pavel Djundik
5f5b5fef3d
Enable .js linter
2019-02-12 12:48:42 +02:00
Pavel Djundik
db803a8548
Port channel list to Vue
2019-02-12 12:48:42 +02:00
Pavel Djundik
121dd35c3b
Port ban lists to Vue
2019-02-12 12:48:42 +02:00
Pavel Djundik
3300276c27
Delete some files and undo server change
2019-02-12 12:48:41 +02:00
Pavel Djundik
7e332b817d
Channel list rendering with Vue
...
Co-Authored-By: Tim Miller-Williams <timmw@users.noreply.github.com>
2019-02-12 12:48:41 +02:00
Pavel Djundik
211ebbfe5f
Allow forcing /disconnect to stop reconnection timer from running
2019-02-06 12:10:07 +02:00
creesch
39071aff50
Invites should not automatically highlight you.
2019-02-05 13:06:00 +01:00
Pavel Djundik
3d82378cbd
Fix incorrect 404 error for files with unknown file type
2019-01-31 10:12:50 +02:00
Jérémie Astori
3e623e8b77
Merge pull request #2939 from thelounge/renovate/file-type-10.x
...
Update dependency file-type to v10.7.0
2019-01-27 18:23:20 -05:00
Pavel Djundik
02a343624e
Always emit part message (required for logging)
...
Fixes #2988
2019-01-21 18:07:00 +02:00
Pavel Djundik
221b7145f1
Fix incorrect use of fs.stat
2019-01-19 12:00:09 +02:00
Pavel Djundik
ab083f9eb6
Fix wav mime type in uploader
2018-12-19 17:20:47 +02:00
Pavel Djundik
7da036bf34
Add extra logging in ldap
2018-12-12 22:33:30 +02:00
Pavel Djundik
dd61e6e09a
Use fileType.minimumBytes
2018-11-13 13:30:02 +02:00
Pavel Djundik
8d5d9617ae
Hard limit nicks to 100 characters, add maxlength on connect inputs
2018-10-20 14:10:26 +03:00
Pavel Djundik
1d8a0e639f
Encode uploaded file slugs
2018-10-14 00:23:41 +03:00
Pavel Djundik
88ce0cee99
Use Date.toISOString for logging
2018-09-23 21:57:40 +03:00
Pavel Djundik
2162f4a55a
Fix issues in regards to ignoring your own nickname
2018-09-22 13:27:03 +03:00
Pavel Djundik
b538360c5e
Limit network name length and replace spaces in log folders
2018-09-09 13:09:30 +03:00
Pavel Djundik
bec241e7fa
Move correct file after upload, put file extension in slug
2018-09-05 10:08:46 +03:00
Pavel Djundik
8fa8526698
Only emit upload url to the client that uploaded the file
...
Fixes #2747
2018-09-04 12:08:30 +03:00
Pavel Djundik
ce212e001c
Add file uploading support
...
Co-Authored-By: Max Leiter <hello@maxleiter.com>
Co-Authored-By: Jérémie Astori <astorije@users.noreply.github.com>
2018-09-03 10:30:05 +03:00
Jérémie Astori
0569ee2269
Merge pull request #2721 from thelounge/xpaw/fix-query-away-spam
...
Fix displaying away message multiple times in query windows
2018-08-26 21:06:36 -04:00
Pavel Djundik
f8bb8f9d6f
Fix displaying away message multiple times in query windows
2018-08-26 23:14:09 +03:00
Pavel Djundik
9bcec3bea5
Remember disconnected networks between server restarts
2018-08-25 12:11:59 +03:00
Alexandre Oliveira
619b054b95
Add X-Purpose header to link prefetcher
2018-08-07 21:10:03 -03:00
Pavel Djundik
e8c02d5ad2
Merge pull request #2669 from MaxLeiter/humandate-refactor
...
refactor getHumanDate() to accept a timestamp; avoids possible test failure; more accurate log times
2018-07-22 11:39:11 +03:00
Max Leiter
9bee3eca5a
refactor getHumanDate() to accept a timestamp; fixes test
2018-07-22 00:27:49 -07:00
Pavel Djundik
265876786c
Don't put .log in text log folder name
2018-07-22 00:39:22 +03:00
Alexandre Oliveira
671dad4ed6
Stop handling CTCP messages if the sender/target is ignored
2018-07-01 15:48:37 -03:00
Jérémie Astori
10642b8f5a
Merge pull request #2576 from thelounge/xpaw/query-away-notify
...
Also send away notices to query windows
2018-06-21 21:01:58 -04:00
Pavel Djundik
5091939aa4
Add support for WHOWAS
...
Fixes #2050
Co-Authored-By: jay2k1 <jay2k1@users.noreply.github.com>
2018-06-20 21:03:00 +03:00
Pavel Djundik
62e2cbe66b
Also send away notices to query windows
2018-06-20 19:45:27 +03:00
Pavel Djundik
b8d60ddaa6
Correctly handle away and back events
...
Also support for self messages
Co-Authored-By: jay2k1 <jay2k1@users.noreply.github.com>
2018-06-20 19:32:19 +03:00
Pavel Djundik
a9413dc277
Update for changes in irc-framework
2018-06-20 18:30:32 +03:00
Pavel Djundik
08682d2448
Fix circular dependency in Helper+log
...
Fixes #2568
2018-06-19 10:09:38 +03:00
Pavel Djundik
472d618033
Remove log
from global
2018-06-15 23:31:06 +03:00
Jay2k1
254e39df18
remove unnecessary comment
2018-06-15 13:42:47 +02:00
Jay2k1
e11f97a2bb
Improve formatting of text logs
2018-06-13 22:45:18 +02:00
Jérémie Astori
32ccfd50af
Merge pull request #2543 from thelounge/xpaw/link-title
...
Fix multiple <title> tags being concatenated
2018-06-11 09:15:37 -04:00
Pavel Djundik
ea00587c00
Fix sqlite history not loading when maxHistory is -1
...
Fixes #2545
2018-06-11 14:08:05 +03:00
Pavel Djundik
0d48c596c8
Fix multiple <title> tags being concatenated
2018-06-11 11:32:32 +03:00
Pavel Djundik
4e2523060b
De-duplicate link fetching to one request at once
2018-06-11 10:38:03 +03:00
Pavel Djundik
730c266ea8
Fix "/away " not setting you away
2018-06-07 19:23:51 +03:00
Pavel Djundik
c0d712c53d
Remove ability to change date format and timezone
2018-06-05 12:03:06 +03:00
Pavel Djundik
cd55e7bb2a
Merge pull request #2510 from Jay2k1/ctcp-unread-counter
...
Make CTCP requests/responses increase unread counter
2018-06-04 10:51:53 +03:00
Jay2k1
5d748a59cc
Make CTCP requests/responses increase unread counter
2018-06-04 00:47:30 +02:00
Pavel Djundik
cd1763cbf8
Merge pull request #2504 from thelounge/xpaw/fix-2438
...
If a preview fails to load, remove the link from msg object
2018-06-03 20:39:14 +03:00
Jérémie Astori
b336e4f202
Merge pull request #2505 from thelounge/xpaw/fix-2324
...
Don't mark your nick changes as self in each channel
2018-06-03 13:37:38 -04:00
Pavel Djundik
a663993d0b
If a preview fails to load, remove the link from msg object
...
Fixes #2438
2018-06-03 12:25:01 +03:00
Alexandre Oliveira
468427bfdb
Add support for /ignore, /unignore and /ignorelist commands
2018-05-28 16:46:12 -03:00
Pavel Djundik
0de90daa64
Merge pull request #2366 from thelounge/xpaw/refactor-userlog
...
Refactor userLog to be the same as sqlite logger
2018-05-26 23:53:17 +03:00
Pavel Djundik
5cfec76d3a
Refactor userLog to be the same as sqlite logger
...
Fixes #1392
2018-05-23 16:56:18 +03:00
Pavel Djundik
d4fa6bbcb0
Use WHATWG URL parser in link prefetcher
2018-05-23 16:31:02 +03:00
Pavel Djundik
629ae8bfa4
Fix protocol-aware urls, add better link validation in previews
2018-05-23 16:31:02 +03:00
Pavel Djundik
9d5f213289
Don't mark your nick changes as self in each channel
2018-05-15 10:00:16 +03:00
Pavel Djundik
d22f0344ea
Merge pull request #2391 from thelounge/xpaw/no-sqlite-crash
...
Gracefully fail if sqlite3 module fails to load
2018-05-13 17:04:22 +03:00
Pavel Djundik
bf8a16b7fe
Use per-client channel and message ids
...
Fixes #2341
2018-04-27 13:16:23 +03:00
Pavel Djundik
e136edb6ac
Remove network ids and use uuids everywhere
2018-04-26 12:37:28 +03:00
Pavel Djundik
0ad9def514
Gracefully fail if sqlite3 module fails to load
2018-04-26 12:11:38 +03:00
Pavel Djundik
2bea5f67b9
Use default nick set in config for fallback
2018-04-12 10:39:03 +03:00
Pavel Djundik
99386510d8
Replace client ids with guids
2018-04-10 16:15:44 +03:00
Jérémie Astori
5738642d44
Fix/Improve some nick fallbacks
...
- Rename a forgotten `lounge-user`
- Generate nick fallbacks when already in use by appending 0-9 instead of 10-98 (?!).
- Generate nick fallbacks when invalid similarly to our config default instead of random string. This is to make it less confusing when fallback gets used.
2018-03-26 03:00:46 -04:00
Pavel Djundik
1ddc617b79
Fix lint issue
2018-03-24 22:53:02 +02:00
Pavel Djundik
80c6e48b98
Merge pull request #2287 from thelounge/xpaw/accept
...
Send `Accept` header when fetching links
2018-03-24 16:58:00 +02:00
Pavel Djundik
ca96d09a23
Send Accept header
...
Closes #2277
2018-03-23 20:17:03 +02:00
Pavel Djundik
f82edcd7e7
quote-props: consistent-as-needed
2018-03-23 16:15:59 +02:00
Pavel Djundik
df04d697b1
Send hexip in ident responses
2018-03-15 15:30:37 +02:00
Jérémie Astori
00bca229f0
Enforce object literal shorthand syntax with ESLint
2018-03-15 00:22:09 -04:00
Pavel Djundik
0af3f10997
Do not try to write anything to sqlite after its closed
2018-03-14 08:45:52 +02:00
Pavel Djundik
351a203acd
Fix some URLs not being sent as-is to the client
2018-03-13 22:08:19 +02:00
Al McKinlay
5ce67ba093
Insert channel/user into channel list at alphabetically sorted point, not just the end
...
Don't sort queries/users after special chans
Set all users in tests to be of type query
Add test for not inserting infront of lobby
Break after finding the index, otherwise it always adds it to the end
Add checking for lobby in first test
Fix off-by-one error on the frontend
Fix utterly idiotic issue adding a duplicate of the channel we are on rather than the new user when we query
Check that we always insert before first special chan
2018-03-12 12:42:59 +00:00
Pavel Djundik
a15e922e27
Close sqlite database when user quits
...
Fixes #2178
2018-03-11 00:21:47 +02:00
Pavel Djundik
167101c3aa
Do not include colon in push message for actions
2018-03-09 11:06:19 +02:00
Pavel Djundik
5aa9d7e1dc
Merge pull request #1839 from thelounge/sqlite
...
Add sqlite logging and reloading messages
2018-03-09 09:06:25 +02:00
Pavel Djundik
dfc4cad712
Add test coverage for sqlite plugin
2018-03-08 20:23:29 +02:00
Pavel Djundik
941849eaa8
Add message indexing
2018-03-08 20:23:29 +02:00
Pavel Djundik
f475cc39ef
Normalize unicode URLs in link prefetcher
...
Fixes #1644
2018-03-08 19:43:39 +02:00
Pavel Djundik
58d9490c2a
Try to find og:video and og:audio on html pages
2018-03-07 12:53:56 +02:00
Pavel Djundik
6c6168e80a
Merge pull request #2164 from thelounge/xpaw/remove-maxlisteners
...
Remove setMaxListeners
2018-03-07 09:19:04 +02:00
Pavel Djundik
6fa48d3acf
Remove setMaxListeners
...
Reverts 2cee0ea6ef
as this no longer causes the EventEmitter warning due to `maxRedirects` being set to 5 on our end.
Ref: https://github.com/request/request/issues/311#issuecomment-153507416
2018-03-07 09:13:06 +02:00
Pavel Djundik
827310a645
Apply ECDH curve fix only on affected version
...
Fixes #2162
2018-03-07 08:44:22 +02:00
Pavel Djundik
501730f2ca
Fix default ecdh curve for better compatibility
2018-03-06 15:11:42 +02:00
Jérémie Astori
9107f9e351
Merge pull request #2145 from thelounge/xpaw/chalk
...
Replace colors.js with chalk
2018-03-03 02:42:04 -05:00
Pavel Djundik
fee81e78e1
Replace colors.js with chalk
2018-03-02 20:28:54 +02:00
Pavel Djundik
7a0a1b86f6
Set channel state to joined when channel already exists
...
Fixes #2141
Fixes #2103
2018-03-02 12:29:40 +02:00
Pavel Djundik
59ec0348b6
Merge pull request #1930 from thelounge/astorije/ctcp-request
...
Let user know someone is making a CTCP request against their nick
2018-02-27 13:15:27 +02:00
Pavel Djundik
1b97c1031d
Log socket close error if any
2018-02-26 14:20:23 +02:00
Jérémie Astori
7a6b560303
Merge pull request #2098 from keegan/master
...
Enable logging for LDAP users
2018-02-24 12:54:48 -05:00
Keegan
4fe7dc0808
Enable logging for LDAP users
2018-02-23 20:07:08 -05:00
Pavel Djundik
7f82b440a2
Fix log.warn in ldap
2018-02-23 17:52:16 +02:00
Pavel Djundik
3da870be8c
Send empty banlist error to lobby for channels user is not in
2018-02-22 11:01:49 +02:00
Jérémie Astori
fa4331bcd9
Limit CTCP requests to prevent easy spamming
2018-02-22 00:42:33 -05:00
Jérémie Astori
e03694b49c
Let user know someone is making a CTCP request against their nick
2018-02-22 00:42:33 -05:00
Pavel Djundik
59ec07be87
Update all links to thelounge repository
2018-02-21 22:47:52 -05:00
William Boman
acb6179b30
relay client's preferred language in link preview requests
...
Closes #1440 .
2018-02-21 10:35:33 +01:00
Pavel Djundik
37c61e2413
Report server errors when preview fetch fails
2018-02-20 11:33:42 +02:00
Pavel Djundik
c733e72e7a
Auto-fix code for padding-line-between-statements rule
2018-02-20 09:28:04 +02:00
Pavel Djundik
7330dc9553
Rewrite ctcp handling
2018-02-19 14:43:58 -05:00
Pavel Djundik
c97352905d
Merge pull request #1962 from thelounge/xpaw/no-var
...
Enable no-var rule
2018-02-19 20:12:31 +02:00
Pavel Djundik
8886459be9
Merge pull request #2049 from thelounge/xpaw/ui-network-status
...
Sync network status and security to client UI
2018-02-19 19:57:36 +02:00
Pavel Djundik
a3e448acf5
Enable no-var rule
...
Fixes #1961
2018-02-19 19:49:39 +02:00
Pavel Djundik
3ccdee6f00
Merge pull request #1927 from thelounge/astorije/fix-ctcp
...
Fix CTCP commands always sent upper-case
2018-02-19 19:06:08 +02:00
Pavel Djundik
742929280d
Merge pull request #1919 from thelounge/yamanickill/image-size-error
...
Show error if image is greater than max prefetch size
2018-02-19 18:49:18 +02:00
Jérémie Astori
4196e627f9
Fix CTCP commands always sent upper-case
...
This is a Node v6+ only fix.
`irc-framework` upper-cases the first argument, and we were sending everything as a string in first argument. This correctly splits.
2018-02-19 18:43:52 +02:00
Pavel Djundik
b82ceb162b
Merge pull request #2059 from thelounge/xpaw/motd
...
Render MOTD with a single message
2018-02-19 18:42:16 +02:00
Jérémie Astori
416f45d1e3
Use some ES6/Node v4-only syntax when possible
2018-02-19 18:30:00 +02:00
Pavel Djundik
b57830b859
Sync network status and security to client UI
...
Co-Authored-By: Jérémie Astori <astorije@users.noreply.github.com>
2018-02-19 13:12:01 +02:00
Jérémie Astori
c8418a638d
Merge pull request #2058 from thelounge/xpaw/channel-state
...
Track channel state to allow removing channels user is not in
2018-02-17 19:27:09 -05:00
Pavel Djundik
d1e5a8f492
Render MOTD with a single message
2018-02-14 11:00:46 +02:00
Pavel Djundik
72e5e9f237
Merge pull request #2055 from thelounge/xpaw/fix-2054
...
Fix border after nickname not taking full height
2018-02-13 16:22:43 +02:00
Pavel Djundik
13e81e5a41
Fix themes not loading
...
Broken by e4701be708
2018-02-13 13:57:13 +02:00
Pavel Djundik
fa993c29d5
Trim MOTD to avoid empty line at the end
2018-02-13 12:38:33 +02:00
Pavel Djundik
7e704b2d73
Track channel state to allow removing channels user is not in
2018-02-13 12:30:26 +02:00
Al McKinlay
865e5bb41b
Merge pull request #1933 from RockyTV/rockytv
...
Show channel name on channel-related errors
2018-02-13 10:03:20 +00:00
Pavel Djundik
4639a2528d
Merge pull request #2021 from thelounge/xpaw/ldapjs-no-dtrace
...
Use forked ldapjs to remove dtrace
2018-02-13 11:58:25 +02:00
Jérémie Astori
2c570fa9ef
Load packages from package.json, fix loading thelounge metadata from the wrong file, add tests
2018-02-13 01:06:31 -05:00
Jérémie Astori
b5d96d215f
Ensure packages loaded are directories
2018-02-13 01:06:30 -05:00
Alexandre Oliveira
c53015c1af
Show channel name on channel-related errors
...
Fixes #1207
2018-02-12 15:22:31 -02:00
Pavel Djundik
c4f6701d65
Use forked ldapjs to remove dtrace
...
Fixes #1756
2018-02-06 13:21:59 +02:00
Jérémie Astori
91e3ca88bb
UI for "Image too large" errors
2018-02-01 21:14:37 -05:00
Al McKinlay
335bd803af
Show error if image is greater than max prefetch size
2018-02-01 21:09:45 -05:00
Pavel Djundik
33dbc80dbc
Fix #1991 : Wait for server response when parting channels
2018-01-31 10:04:54 +02:00
Al McKinlay
5cf24b80e6
Save query channels in user.json
2018-01-30 17:14:51 +00:00
Jérémie Astori
c49239b4f1
Fix themes not being found in theme selector dropdown
2018-01-13 13:45:30 -05:00
Al McKinlay
3510094665
Allow custom css from plugins
2018-01-05 17:40:47 +00:00
Pavel Djundik
6675ced196
Store images with correct file extension
2018-01-03 13:33:52 +02:00
Pavel Djundik
349136f172
Do not match nicknames incorrectly as part of a bigger word
...
Fixes #1776
Fixes #1885
2017-12-27 20:44:59 +02:00
Jérémie Astori
238e894377
Improve the version checking part of the changelog feature
...
- There is no client caching of the changelog/version anymore. Instead, server returns the expiration date of its cache, and that is used by the client as well.
- There is now a "Check now" button on the client that appears when data is stale. This means that info is fetched only once and never refreshed (it was refreshed every hour before) unless the user explicitly wants to check latest version, which in turn is as stale as server info is, i.e. 15 minutes max.
- Button style is shared with the "Join a channel" feature, `.btn-small` (not `.btn-sm` to be explicit that this is not a Bootstrap thing).
- Version checker content is now centralized in the `version_checker` template, instead of being partially in the checker template, partially in the Help template, and partially in the code.
- A "Try again" button lets user attempt to fetch info instead of forcing them to reload the page.
- Use Flexbox to display a nicer version checker: icon is slightly bigger, and button is always aligned on the right.
- Changelog logic has been removed from `lounge.js` and moved into the component file.
- Changelog template is only passed what it needs instead of everything the server gives us.
- Public version now displays version checker, since server is caching things.
- Cleaner code overall.
2017-12-25 17:44:53 -05:00
Jérémie Astori
57c24704af
Cache changelog information on the server for 15 minutes
2017-12-23 13:37:33 -05:00
Jérémie Astori
9691df67e3
Improve UI of the About section and changelog viewer
...
- Keep consistent width between the Help page and Changelog (which is already different from other windows 😠 )
- Add icons to the About links
- Make sure `li` elements (i.e. all the lists in changelogs) are consistent in size with rest of the client
- Display version and release notes link on the "About The Lounge" header line, smaller, pushed to the right
- Check new releases when opening the Help window in order to display it without having to open the release notes. Release notes are being fed to the Changelog page at that moment to avoid fetching twice.
- Re-check version/fetch release notes after 24h. Since The Lounge can now run 24/7, reconnect when losing the network, we have to assume an "always-on" usage.
- Change icon, animate background color when getting response from GitHub to avoid flashing.
- Combine click handlers with our wonderful window management. These were the same handler, even with similar checks (`target` exists, etc.), just in 2 different places. This is necessary for the next item.
- Combine "Open release notes" and "Go back to Help" button behaviors with window management handlers. The window management code is gross as ever, and is in desperate need of a refactor, but at least there is no duplicated code for the same behavior + history management. This fixes the "Next" history behavior (however reloading the app while viewing the notes does not load on the notes, but this is a bug for a different PR!).
- Added a rule in the history management thingy: if a link we want to add history handling to has an `id`, store that in the state
- Added a button to go back to the Help window
- Fixed links to releases
- Send user to the GitHub issues *list* instead of *new issue form* because if they do not have a GitHub account, they will be redirected to the login page, which is a rather unpleasant experience when you are already confused...
- Fixed a bug that would return data about a new release in `latest` even though it is already the `current`. It was showing the current version as "The Lounge v... is now available".
- Added https://user-images.githubusercontent.com to the CSP rule when prefetch storage is enabled, because that is where we have stored screenshots in the changelog so far. Meh (we can improve that later if we decide to have a dedicated place for screenshots).
- Fetch changelog info even in public mode because users in public mode can access the release notes. They do not see the result of the version checker however.
2017-12-22 22:46:11 -05:00
Pavel Djundik
df858a5aaf
Add changelog viewing and update checking
2017-12-22 16:26:12 -05:00
Pavel Djundik
dc8c10f461
Correctly fix from
field in messages
...
This should have been in #1859
2017-12-20 13:45:17 +02:00
Pavel Djundik
ce5d18c4fa
Fix possible issues with from
in messages
2017-12-19 13:45:33 +02:00
Pavel Djundik
c06fb9a275
Clear storage folder after successful start and graceful exit
2017-12-18 16:59:05 +02:00
Max Leiter
d4ad60c11d
Support video file previews
2017-12-13 17:52:07 -08:00
Pavel Djundik
ccd37aba8f
Merge pull request #1725 from keegan/master
...
Stop LDAP Auth from succeeding without password
2017-12-13 20:20:10 +02:00
Pavel Djundik
7dcab09516
Merge pull request #1806 from MaxLeiter/sound
...
Support audio file previews
2017-12-13 11:03:04 +02:00
Max Leiter
ad1114ccfe
Support audio file previews
2017-12-12 11:29:13 -08:00