Commit Graph

535 Commits

Author SHA1 Message Date
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
Erik Vosseberg
33d865501d
Add whois and conversation as action to user contextmenu
Add Op specific actions to contextMenu

Show context menu when left clicking user

Switch to using data attributes as selectors

remove ban as possible action

Move `isOpInChannel()` to utils.js

Capitalize strings

use CSS.escape for `ownNick`

use string interpolation

properly point to findCurrentNetworkChan

Move context menu item actions to command pattern

add icons for context menu actions

Make list in context menu always list.

remove empty lines in style.css

use info circle instead of question circle

change context menu labels.

change contextMenuActions.execute to more explicit method.
2017-12-11 23:04:29 -05:00
Jérémie Astori
0482747781
Only use helpers and not shared variables around path helpers
This refactor has a few benefits, for example there cannot be a rogue update of `Helper.CONFIG_PATH` or something.
2017-12-07 23:02:32 -05:00
Pavel Djundik
5e48e04623 Show notices and errors inline 2017-12-06 17:58:52 +02:00
Pavel Djundik
2d0ddfb2e8
Merge pull request #1778 from thelounge/xpaw/lazy-init
Heavily improve performance of "init" event
2017-12-05 12:03:01 +02:00
Pavel Djundik
b5d39b96b9
Handle CHGHOST cap 2017-12-04 23:33:48 -05:00
Pavel Djundik
5fc70397a9 Make sure all joins send filtered clone 2017-12-03 16:31:37 +02:00
Pavel Djundik
104e270882
Merge pull request #1771 from thelounge/astorije/fix-user-in-msg
Clone instances of `User` in `Msg` to avoid unintentional mutations
2017-11-30 11:29:23 +02:00
Jérémie Astori
4ec10b922a
Clone instances of User in Msg to avoid unintentional mutations 2017-11-30 00:41:19 -05:00
Jérémie Astori
e60bbd9548
Fix nick changes wrongly reported 2017-11-29 18:44:33 -05:00