Commit Graph

166 Commits

Author SHA1 Message Date
Pavel Djundik
682d3070e9 Move IRC object and validation to network model 2018-04-12 10:37:45 +03:00
Jérémie Astori
00bca229f0
Enforce object literal shorthand syntax with ESLint 2018-03-15 00:22:09 -04: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
8f59ca1bec Add support for znc.in/playback
Fixes #1768
2018-03-08 20:23:29 +02:00
Pavel Djundik
941849eaa8 Add message indexing 2018-03-08 20:23:29 +02:00
Pavel Djundik
731b29c059 Generate uuid per network 2018-03-08 20:23:29 +02:00
Pavel Djundik
eab823ba66 Allow setting rejectUnauthorized per network 2018-03-04 12:45:48 +02: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
Pavel Djundik
dc6252d3f6 Consider localhost connections secure 2018-02-20 10:36:19 +02:00
Pavel Djundik
c733e72e7a Auto-fix code for padding-line-between-statements rule 2018-02-20 09:28:04 +02: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
a3e448acf5 Enable no-var rule
Fixes #1961
2018-02-19 19:49:39 +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
Pavel Djundik
7e704b2d73 Track channel state to allow removing channels user is not in 2018-02-13 12:30:26 +02:00
Pavel Djundik
aee1ec2739 Fix crash when hostname is changed in lockNetwork mode
Fixes #2040
2018-02-07 12:03:25 +02:00
Pavel Djundik
b7ccb5a294 Fix queries going to lobby if the network name matches user name
Fixes #1501
Fixes #1983
2018-02-05 14:35:01 +02:00
Pavel Djundik
1fdd1ff0c3 Define which message types should not be logged 2018-02-01 10:03:10 +02:00
Al McKinlay
5cf24b80e6 Save query channels in user.json 2018-01-30 17:14:51 +00:00
Pavel Djundik
6377e0de66 Fix #1883: message gaps when reconnecting 2017-12-23 11:36: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
552f3da67e Implement manual network/channel cloning for better performance 2017-12-03 16:31:37 +02:00
Pavel Djundik
41e121d270 Only emit a single message per channel on init 2017-12-03 16:13:18 +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
c0d348a678
Fix default value given to Msg.from
- `{}` is not falsey so Handlebars would try to render the block (see http://handlebarsjs.com/builtin_helpers.html#conditionals), therefore with a `nick` of `undefined`, which breaks `colorClass` (doing `undefined.length)
- There does not seem to be a way to check for empty objects in Handlebars (sigh) so checking `from.nick` seems like the most reliable way to check for a non-empty value. Alternatively, we could use a helper to check `{}` but meh.
2017-11-29 18:37:17 -05:00
Pavel Djundik
0f75c1a138 Change users array to be a Map 2017-11-19 11:35:15 +02:00
Pavel Djundik
74dcc52657
Refactor how user object is sent to the client 2017-11-19 02:46:45 -05:00
Jérémie Astori
1dc92d8934
Enforce dangling commas with ESLint
¯\_(ツ)_/¯
2017-11-15 01:35:15 -05:00
Pavel Djundik
feb7d9d4bb Fix #1692 when kicker is server 2017-11-08 23:10:17 +02:00
dgw
d675297405 Mark channels as read when receiving self-messages
Resets highlight counter and last unread message ID on server, and
clears the badge on the active client when the message is rendered.

Resolves #911
2017-10-17 08:05:35 -05:00
Pavel Djundik
fd21c84a76 Do not try to write user log if network is not found
Fixes #1584
2017-09-29 10:37:27 +03:00
Pavel Djundik
f85686bcb2 Merge pull request #1468 from thelounge/xpaw/combine-notifications
Combine unread notifications into a single one
2017-09-22 21:04:04 +03:00
Pavel Djundik
649e9c3192 Fix opening first channel on server start
Fixes #1547
2017-09-20 16:17:38 +03:00
Pavel Djundik
6cfe60e4d9 Group push notifications per target 2017-09-19 12:01:50 +03:00
Jérémie Astori
90cb79ac91 Merge pull request #845 from MaxLeiter/MaxLeiter/away-notify
Use away-notify to show updates on users away state
2017-09-17 14:45:27 -04:00
Max Leiter
163cfaba3c Use away-notify to show user away status change 2017-09-17 11:16:48 -07:00
Jérémie Astori
cb1b6db14e
Fix references to undefined this 2017-09-17 02:24:54 -04:00
Pavel Djundik
79eb83d82f Move userLog function where it belongs
Fixes #438
2017-09-14 10:41:50 +03:00
Pavel Djundik
0ac3ba28e1 Web Push Notifications 2017-08-22 10:54:18 +03:00
Pavel Djundik
6f32e7ae75 Correctly dereference stored images when leaving channels
Fixes #1404
2017-08-11 15:02:58 +03:00
Jérémie Astori
157289258a
Keep track of preview visibility on the server so it persists at page reload 2017-07-26 18:16:50 -04:00
Pavel Djundik
7d981d60d8 Recycle existing User objects in names event
This is required to keep lastMessage correct. This will also be useful for the away tracking PR.
2017-07-21 11:05:37 +03:00
Pavel Djundik
d06c279f02 Lazily load user list 2017-07-21 11:05:36 +03:00
Pavel Djundik
7af573fd96 Handle auto completion order on the server
Fixes #289.
2017-07-21 11:05:21 +03:00
Pavel Djundik
f35a2809a7 Store preview images on disk for privacy, security and caching 2017-07-18 11:37:16 +03:00
Pavel Djundik
199bc459b4 Merge pull request #1303 from thelounge/astorije/multiple-previews
Support multiple previews per message
2017-07-09 18:29:31 +03:00
Jérémie Astori
64ebe0f437
Support multiple previews per message
- Load up to 5 previews per message (to avoid abuse)
- Do not load multiple times the same URL
- Prepare preview containers per message instead of appending (to maintain correct order)
- Store an array of previews instead of a single preview in `Msg` objects
- Consolidate preview rendering for new messages and upon refresh/load history (when rendering entire channels)
- Update `parse` tests to reflect previous point
- Add test for multiple URLs
- Switch preview tests from `assert` API to `expect` API
2017-07-08 04:34:12 -04:00
Pavel Djundik
f06de70c40 Remove hostname prettifier 2017-07-06 15:02:32 +03:00
Pavel Djundik
14b2ad7938 Refactor link previews 2017-07-03 00:41:18 +03:00
Pavel Djundik
f6dd616d5e Update to eslint 4 and enforce extra rules 2017-06-19 09:58:29 +03:00
Pavel Djundik
acf5dd5351 Do not store unnecessary information in user objects 2017-06-01 21:54:46 +03:00
Alistair McKinlay
1e504f4383 Add support for banlist messages 2017-04-22 13:51:28 +01:00
Daniel Oaks
5c336d3789 Add slug with command to unhandled messages 2017-04-16 12:31:32 +03:00
Pavel Djundik
c0e364e1c2 Store channel keys 2017-04-01 15:28:38 -04:00
Pavel Djundik
4a68b78fd5 Implement away message restoration on reconnections and auto away 2017-03-29 00:27:58 -04:00
Pavel Djundik
6023035838 Update depdencides to latest stable versions 2016-11-19 10:49:16 +02:00
Pavel Djundik
a1f56c7395 Improve support for opening multiple clients at once
- Synchornize unread counter with the server
- Fix unread marker on no attached clients
- Increase unread counter for server messages
2016-10-17 01:31:22 -04:00
Jérémie Astori
089c315a8e Use forEach instead of lodash's each, and ES6 fat arrows like it's 2015 2016-10-15 15:58:48 -04:00
Pavel Djundik
3711aefc2d Merge pull request #664 from thelounge/xpaw/fix-defaults
Fix memory and reference shuffling when creating models
2016-10-15 14:14:53 +03:00
Pavel Djundik
aa02fd5180 Enforce more eslint rules 2016-10-09 17:55:37 -04:00
Jérémie Astori
caa46042bf Enforce strict mode across all JS files with ESLint
Several ES6 additions are only available in strict mode. Example:
> SyntaxError: Block-scoped declarations (let, const, function, class) not yet supported outside strict mode

Strict mode was also enabled in a few of our files already, and it is a good thing to have anyway.
2016-10-09 15:14:02 -04:00
Pavel Djundik
8f3f1ca0b1 Fix memory and reference shuffling when creating models 2016-10-08 21:49:31 +03:00
Pavel Djundik
2e82c6b5c6 Make use of multi-prefix cap and remove NAMES spam on mode changes 2016-10-08 20:30:25 +03:00
Maxime Poulin
0f439545d4 Fix broken IRC servers with /list 2016-07-22 21:42:42 -04:00
Maxime Poulin
1d47290ada Implement /list
Thanks to @xPaw for the base of this code
2016-07-22 21:42:42 -04:00
Maxime Poulin
18c615236d Merge pull request #332 from thelounge/xpaw/unread-marker
A proper unread marker
2016-07-06 04:06:14 +00:00
Jérémie Astori
b3d3582d2f Merge pull request #286 from thelounge/xpaw/unknown-command
Display unhandled numerics on the client
2016-07-05 23:23:15 -04:00
Pavel Djundik
d37e94308d Unread marker MVP 2016-07-05 15:32:41 -04:00
Alistair McKinlay
9c07f2b0f2 Merge pull request #387 from thelounge/xpaw/config
Cache loaded config and merge it with defaults
2016-07-04 08:18:55 +01:00
Pavel Djundik
e445fd8e25 Store channels in array format 2016-07-03 21:58:31 +03:00
Pavel Djundik
cada00ab6a Display unhandled numerics on the client 2016-07-03 11:47:53 +03:00
Pavel Djundik
f57328ef5b Only auto join actual channels
Fixes #450
2016-07-03 11:39:29 +03:00
Pavel Djundik
100262ad1f Cache loaded config and merge it with defaults
Fixes #249
2016-06-26 19:30:25 +03:00
Pavel Djundik
aa8c3f6419 Improve nick highlights 2016-05-12 14:20:24 +03:00
Maxime Poulin
96d282e73c
Add WEBIRC support
Fixes #181
2016-05-02 00:45:19 -04:00
Pavel Djundik
148be767bb Fix #232: Do not store messages in memory when running in public mode 2016-04-19 13:28:07 +03:00
Pavel Djundik
6dc807ef07 Create a single helper function to write messages 2016-04-19 13:20:18 +03:00
Pavel Djundik
16370d8fcc Add /ctcp command and handle ctcp responses 2016-04-07 16:08:31 -04:00
Pavel Djundik
e0fb454223 Search channel case insensitively 2016-04-07 16:07:37 -04:00
Jérémie Astori
40677e3248 Update tests to match the new irc-framework models 2016-04-07 16:06:03 -04:00
Pavel Djundik
db5fe00b60 A couple of fixes after rebasing and updating framework 2016-04-07 16:06:01 -04:00
Pavel Djundik
071881a9fa Sort user list within a single pass, use server provided user modes 2016-04-07 16:04:41 -04:00
Pavel Djundik
516ccd965f Add support for IRCv3 server-time 2016-04-07 16:04:41 -04:00
Pavel Djundik
28ae544b2a Move connection events to a separate file, sync PREFIX with frontend 2016-04-07 16:04:40 -04:00
Pavel Djundik
e380319400 Handle parts, quits, topics and topic set by 2016-04-07 16:04:40 -04:00
Pavel Djundik
da425fefaf Start working on moving to irc-framework 2016-04-07 16:04:28 -04:00
Max-P
e54409b3dd Merge pull request #193 from thelounge/astorije/minor-simplification
Remove unnecessary operation when sorting users
2016-03-14 20:55:49 -04:00
Jérémie Astori
d02c0bd72c Remove unnecessary operation when sorting users 2016-03-14 01:44:03 -04:00
Pavel Djundik
96ef274838 Keep track of highlights when user is offline 2016-03-13 18:05:05 +02:00
Pavel Djundik
d7750db87f Remove moment.js from the client 2016-03-11 22:18:49 +02:00
Alistair McKinlay
b2625aebae Merge pull request #38 from xPaw/lodash
Update lodash
2016-02-21 15:31:44 +00:00
Pavel Djundik
19bc4f37e0 Update lodash 2016-02-19 15:13:53 +02:00
Pavel Djundik
533ec1071b Handle invite event 2016-02-15 19:23:10 +02:00
William Boman
8fdfd70c7e Comply with ESLint 2015-10-26 03:01:47 +01:00
fbm-static
25e9f24d8b fix commands not being removed 2014-11-10 00:01:22 +08:00
Mattias Erming
aa02b0eaa7 Added client save 2014-10-12 00:47:24 +02:00
Mattias Erming
81401cec0f Added network export function 2014-10-11 22:44:56 +02:00
Mattias Erming
f42a6487d6 Emit topic over socket 2014-10-10 22:05:25 +02:00