Commit Graph

315 Commits

Author SHA1 Message Date
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
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
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
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
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
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
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
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
Alexandre Oliveira
c53015c1af Show channel name on channel-related errors
Fixes #1207
2018-02-12 15:22:31 -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
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
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
Max Leiter
d4ad60c11d Support video file previews 2017-12-13 17:52:07 -08:00
Max Leiter
ad1114ccfe Support audio file previews 2017-12-12 11:29:13 -08: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
Jérémie Astori
7daf566025
Merge pull request #1758 from MaxLeiter/improve-regex
update nick regex for linking nicks in text
2017-11-27 18:30:37 -05:00
Max Leiter
f98deaba70 update nick regex for linking nicks in text 2017-11-27 13:58:10 -08:00
Jérémie Astori
b53f1719eb
Merge pull request #1749 from thelounge/astorije/avoid-escape-quotes
Avoid escaping quotes whenever possible
2017-11-27 12:57:55 -05:00
Jérémie Astori
39e99fcd29
Merge pull request #1753 from thelounge/xpaw/webp
Detect image/webp as an image
2017-11-27 12:55:27 -05:00
Max Leiter
3d31fa4686 Link nicks mentioned in messages 2017-11-27 09:10:56 -08:00
Pavel Djundik
4e45820235
Detect image/webp as an image 2017-11-27 15:50:35 +02:00
Jérémie Astori
287c3a8223
Avoid escaping quotes whenever possible
Our `.eslintrc.yml` configuration file already allows for avoiding escape (see [ESLint doc for `avoidEscape`](https://eslint.org/docs/rules/quotes#avoidescape)) so we might as well use it. We already use this in a few places I believe.
2017-11-26 17:34:28 -05:00
Pavel Djundik
727021be68 Call callback on fetch error 2017-11-25 20:59:12 +02:00
Erik Vosseberg
f40edc7dc2
Include all available whois info 2017-11-21 00:27:24 -05:00
Pavel Djundik
055bd5dca5
Merge pull request #1580 from thelounge/xpaw/mobile-active-notifications
Use service worker to display notifications if available
2017-11-19 18:40:45 +02:00
Pavel Djundik
57289396da
Not all topic callbacks include nick 2017-11-19 18:30:10 +02:00
Pavel Djundik
0402554563 Move cleanIrcMessage to a separate file 2017-11-19 18:19:52 +02: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
Pavel Djundik
7cfd8d90c1 Merge pull request #1554 from thelounge/astorije/rm-event-stream
Remove event-stream dependency in favor of plain Buffers
2017-09-26 11:00:35 +03:00
Pavel Djundik
08edc434ca Merge pull request #1567 from dgw/preview-length-abort
Abort image prefetch if Content-Length exceeds limit
2017-09-25 23:11:20 +03:00
dgw
09cd9ce33a Abort img prefetch if Content-Length exceeds limit
If the Content-Length header is present in the response when an image
is prefetched, The Lounge can avoid wasting bandwidth (both for itself
and for the image's host) if the value of the header exceeds the
prefetch size limit by aborting the request immediately.
2017-09-25 05:31:21 -05:00
Jérémie Astori
75b927b4a3
Remove event-stream dependency in favor of plain Buffers 2017-09-23 04:08:17 -04: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
dgw
e4c6d78762 Display correct kick modes
Defining both the kicker and the target before any code touches the
channel user list ensures that everything is passed to the template.
2017-09-14 02:39:00 -05:00
Pavel Djundik
0ac3ba28e1 Web Push Notifications 2017-08-22 10:54:18 +03:00
Jérémie Astori
dff94cc6fd Merge pull request #1406 from thelounge/xpaw/storage-dereferencing
Correctly dereference stored images when leaving channels
2017-08-13 12:17:02 -04:00
Pavel Djundik
66ea26f4bd Resolve relative URIs in link previewer
Also adds support for image_src links
2017-08-13 13:06:01 +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
ed9bfcf2fa Merge pull request #1194 from thelounge/xpaw/lazy-user-list
Lazily load user list in channels on init, keep autocompletion sort on server
2017-07-21 17:25:23 +03: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
48d367e379 Use findUser 2017-07-21 11:05:37 +03:00
Pavel Djundik
7af573fd96 Handle auto completion order on the server
Fixes #289.
2017-07-21 11:05:21 +03:00
Jérémie Astori
900d41bf47
Re-use .previews to order incoming previews instead of extra links 2017-07-21 01:51:51 -04:00
Jérémie Astori
a13c08a45b
Enforce correct order for previews on server-side prefectch rather than at client parsing
This has the benefit of not adding `.preview` divs everywhere, anytime we use `parse()`, and also to un-tie the position of the preview blocks from the result of the helper. This means that templates that call `parse` and have some extra markup after that are not constrained anymore.

This is effectively an alternative, better way to fix https://github.com/thelounge/lounge/issues/1343, but the initial fix that was put in place (https://github.com/thelounge/lounge/pull/1347) is still relevant, for example to make sure a preview stays hidden (and does not add extra margin/padding/etc.) if the link does not prefetch.
2017-07-21 01:06:42 -04:00
Jérémie Astori
03d6f284fb Merge pull request #1330 from MaxLeiter/MaxLeiter/TIME
Add SOURCE CTCP Command
2017-07-19 02:00:50 -04:00
Pavel Djundik
f35a2809a7 Store preview images on disk for privacy, security and caching 2017-07-18 11:37:16 +03:00
Max Leiter
58cf481d86 Add SOURCE CTCP Command 2017-07-17 11:09:20 -07: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
14b2ad7938 Refactor link previews 2017-07-03 00:41:18 +03:00
Jérémie Astori
ad10777684 Merge pull request #1274 from thelounge/xpaw/increase-prefetch-limit
Increase max downloaded bytes for link preview
2017-06-26 02:44:46 -04:00
Pavel Djundik
e967759802 Increase max downloaded bytes for link preview
twitter.com sends opengraph meta tags within ~20kb of data for individual tweets
2017-06-26 09:34:56 +03:00
Pavel Djundik
77667e7a3f Do not display preview if there is nothing to preview 2017-06-26 09:27:51 +03:00
Jérémie Astori
5abc4c8c2a Merge pull request #1256 from thelounge/xPaw/og-title
Check og:title before title tag
2017-06-26 01:48:07 -04:00
Jérémie Astori
147a36adde Merge pull request #1254 from thelounge/xpaw/thumb-is-img
Make sure thumbnail is a valid image
2017-06-26 01:46:20 -04:00
Jérémie Astori
0239fdd2fb Merge pull request #1255 from thelounge/xPaw/og-description
Check og:description before description
2017-06-26 01:44:54 -04:00
Pavel Djundik
ddc076e894 Check status code in link prefetcher
Fixes #1258.
2017-06-23 20:49:45 +03:00
Pavel Djundik
015a9fb6ef Check og:title before title tag 2017-06-22 22:41:05 +03:00
Pavel Djundik
23c7f7296c Check og:description before description 2017-06-22 22:34:17 +03:00
Pavel Djundik
3fd2849a37 Make sure thumbnail is a valid image
Fixes #1239.
Fixes #1180.
2017-06-22 22:32:13 +03:00
Niko Bews
57fd0562a2 Handle images with unknown size in prefetch 2017-06-21 14:40:51 +03:00
Pavel Djundik
f6dd616d5e Update to eslint 4 and enforce extra rules 2017-06-19 09:58:29 +03:00