Commit graph

331 commits

Author SHA1 Message Date
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
Pavel Djundik
acf5dd5351 Do not store unnecessary information in user objects 2017-06-01 21:54:46 +03:00
Pavel Djundik
d6d7df62fe Fix away message disappearing
Closes #1102
2017-04-28 18:58:14 +03:00
Alistair McKinlay
b03d01b6eb Add ban/unban command
Fixes #1073
2017-04-26 08:54:25 +01:00
Jérémie Astori
b1159eff9b Merge pull request #1082 from MaxLeiter/setTopic
Use irc-framework setTopic() for topic command
2017-04-25 23:32:58 +02:00
Max Leiter
e45cfbf02c Use irc-framework setTopic() for topic command 2017-04-24 21:05:57 -07:00
Alistair McKinlay
1e504f4383 Add support for banlist messages 2017-04-22 13:51:28 +01:00
Jérémie Astori
4de632ba3c Merge pull request #1018 from swordbeta/sort_channel_list
Improve channels list.
2017-04-20 01:40:14 -04:00
Michael van Tricht
764ac831d4 Improve channels list.
- Set fixed width to channel and users column.
- Sort by number of users in channel.
- Executing /list multiple times wont show multiple tables.
- Channel list is not stickied to the bottom.
- Limit channels to 500. Scrolling through 1k is very slow on my system.
2017-04-19 12:02:15 +02: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
c409328ddf Fix variable shuffling around ident handler
Fixes #965
2017-03-17 22:24:40 +02:00
Jérémie Astori
ff72ebbb74 Merge pull request #804 from thelounge/xpaw/new-identd
Rewrite identd server, combine with oidentd
2017-03-13 02:04:24 -04:00
Pavel Djundik
9997aafec7 Rewrite identd server, combine with oidentd 2017-03-12 12:02:22 +02:00
Pavel Djundik
23599fc39b Prevent message sending in lobbies
Fixes #956
2017-03-11 20:09:37 +02:00
Daniel Stancu
36893c6d7c Do not prefetch URLs unless they are messages or /me actions
ACTION & MESSAGE type messages should be prefetched by default
2017-01-23 01:42:54 -05:00
Jérémie Astori
df4b14d546 Merge pull request #783 from thelounge/xpaw/irc-raw-log
Option to log raw IRC traffic
2017-01-04 01:56:19 -05:00
Jérémie Astori
da2e286ff8 Use double-nick in whois on query to get idle time
This queries server of the other user and not current user, which does
not know idle time.
See http://superuser.com/a/272069/208074.

Override is done before command is being sent to the server: if a
single argument is given to `/whois`, it is being repeated, otherwise
the command is sent as is.
2016-12-23 01:59:08 -05:00
Jérémie Astori
7ae11babcb Add human-readable idle time in whois info 2016-12-22 00:21:16 -05:00
Pavel Djundik
4dd79af9bb Option to log raw IRC traffic 2016-12-21 13:22:18 +02:00
Jérémie Astori
3d0e1fd9f0 Merge pull request #745 from thelounge/xpaw/away-command
Implement /away and /back commands
2016-12-16 23:16:02 -05:00
Pavel Djundik
e56d0c3be0 Fix #792: irc-fw update changed socket reference 2016-12-17 00:15:05 +02:00
Pavel Djundik
28056d678e Correctly remove closed sockets from oident file, remove unused functions 2016-12-11 08:56:32 +02:00
Pavel Djundik
62d4cd8fe8 Use correct channel when pushing link prefetch messages
Fixes #781
2016-12-09 23:00:33 +02:00
stepie22
aa8e0ae2c2 Set the (correct) time on link expands 2016-11-25 21:27:19 +02:00
Pavel Djundik
f24f707119 Implement /away and /back commands 2016-11-19 10:27:39 +02:00
Jérémie Astori
04f23704b8 Merge pull request #679 from thelounge/xpaw/fix-mode-command
Fix /mode command to correctly assume target
2016-10-17 15:30:02 -04: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
bfeaeee873 Fix /mode command to correctly assume target 2016-10-15 14:17:45 +03:00
Pavel Djundik
a58b7839a7 Merge pull request #685 from thelounge/astorije/fix-nick-in-logs
Fix nick changes not being properly reported in the logs
2016-10-15 14:00:47 +03:00
Jérémie Astori
93c4c14b72 Merge pull request #647 from nornagon/prefix-lookup
Fill in prefixLookup on network initialization
2016-10-12 03:37:06 -04:00
Jeremy Apthorp
b7814bc571 Fill in prefixLookup on network initialization
Fixes #644.
2016-10-11 22:17:58 -07:00
Jérémie Astori
310ab8f43c Fix nick changes not being properly reported in the logs
Before:

```
[2016-10-10 15:17:47] *  nick
```

After:

```
[2016-10-10 16:32:47] * astorije nick astorije2
```
2016-10-10 13:08:23 -04: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
2e82c6b5c6 Make use of multi-prefix cap and remove NAMES spam on mode changes 2016-10-08 20:30:25 +03:00
Jérémie Astori
ac3992bcdb Merge pull request #658 from thelounge/xpaw/wallops
Display wallops in server window
2016-10-08 00:02:16 -04:00
Pavel Djundik
024369d4c3 Implement our own /nick command to allow editing nick when not connected 2016-10-01 16:51:35 -04:00
Pavel Djundik
beb6d1ea5b Reset nickname in UI back to previous one on error 2016-10-01 16:51:35 -04:00
Pavel Djundik
63f4fc39c9 Display wallops in server window
Fixes #225
2016-10-01 00:29:49 +03:00
Jérémie Astori
345aac1a27 Merge pull request #258 from maxpoulin64/channel-list
Implement /list
2016-09-29 02:47:34 -04:00
Maxime Poulin
0c3dc31e31 Add debug config option for irc-fw debug log 2016-08-29 02:07:09 -04:00
Jérémie Astori
a0315b13d1 Disable debug logs in npm releases
This is temporary until https://github.com/thelounge/lounge/issues/459, but
meanwhile we should not be spamming connection debug messages in releases
or pre-releases.
2016-08-06 14:14:38 -04: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
Jérémie Astori
b1674f4f20 Add self info to TOGGLE messages to prevent unread marker to render for oneself 2016-07-07 02:53:30 -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
34b4a7a018 Merge pull request #366 from thelounge/xpaw/fix-clicks
Improve click handling on users and inline channels
2016-07-03 20:51:20 +03:00
Jérémie Astori
d231a4b583 Merge pull request #453 from thelounge/xpaw/fix-autojoin
Only auto join actual channels
2016-07-03 09:25:38 -04: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
2da6167cf5 Print network name and internal ids in debug log 2016-07-03 11:32:57 +03:00
Pavel Djundik
1f760d877e Update irc-framework to 2.1.0 2016-07-02 22:25:08 +03:00
William Boman
c57d9ac1dc irc-events/connection: increase join delay to 1000ms
100ms easily bypasses the excess flood threshold with constant
reproducibility with >20 channels (Freenode).
2016-06-28 00:11:19 +02:00
Pavel Djundik
100262ad1f Cache loaded config and merge it with defaults
Fixes #249
2016-06-26 19:30:25 +03:00
Pavel Djundik
da9b0636fb Improve click handling on users and inline channels 2016-06-22 18:36:01 +03:00
Pavel Djundik
d66e86ddc4 Fix channel join regression and fix possibly joining parted channels 2016-06-17 13:46:15 +03:00
Maxime Poulin
fabb758985 Add support for oidentd spoofing 2016-06-02 23:59:19 -04:00
Maxime Poulin
9aafffd273
Fix existing identd 2016-06-02 23:59:08 -04:00
Maxime Poulin
21eafef32d
Don't send completely empty messages 2016-05-25 03:27:25 -04:00
Pavel Djundik
a0010ca9f6 Allow /connect command to work on current network 2016-05-22 10:13:10 +03:00
Pavel Djundik
047a79ead6 Add separate /disconnect command 2016-05-22 10:13:08 +03:00
Pavel Djundik
e3a1bf2f87 Enable auto reconnection 2016-05-22 10:13:07 +03:00
Max-P
423151ad97 Merge pull request #334 from thelounge/xpaw/query-highlights
Fix notifications in query windows
2016-05-21 22:09:55 -04:00
Jérémie Astori
0599a40df7 Merge pull request #320 from maxpoulin64/fix-space
Fix sending messages starting with a space
2016-05-21 13:11:09 -04:00
Pavel Djundik
1c57363106 Fix notifications in queries, limit message highlights to channels 2016-05-16 22:46:54 +03:00
Pavel Djundik
aa8c3f6419 Improve nick highlights 2016-05-12 14:20:24 +03:00
Pavel Djundik
ac5e96cddf Update irc-framework 2016-05-12 10:15:37 +03:00
Maxime Poulin
5a3b07a698
Fix sending messages starting with a space
There really is no need to trim apart bringing more situations like this. If I want to put spaces in front of my message (say, for alignment purposes), then I should be able to.

Fixes #319
2016-05-10 21:31:42 -04:00
Pavel Djundik
4585583ebc Save user when parting channels 2016-05-06 19:32:35 +03:00
Pavel Djundik
e75a8f40a6 Stricter eslint rule for curly brackets 2016-05-01 12:41:17 +03:00
Jérémie Astori
404bf2c4df Merge pull request #270 from thelounge/ircv3/echo-message
Add support for echo-message and znc.in/self-message caps
2016-04-30 19:37:10 -04:00
Pavel Djundik
ede3131168 Add global logging helper 2016-04-27 00:05:55 +03:00
Pavel Djundik
80ac72709d Do not count your own messages as unread 2016-04-26 13:10:17 +03:00
Pavel Djundik
91aa4c6c4a Never highlight self messages in queries, and leave it up to the server to decide 2016-04-22 19:38:59 +03:00
Pavel Djundik
84685acdcd Add support for echo-message cap 2016-04-22 19:38:13 +03:00
Pavel Djundik
6dc807ef07 Create a single helper function to write messages 2016-04-19 13:20:18 +03:00
Pavel Djundik
71a4dde7ad Do not generate random nicks on nick errors if already registered with the network 2016-04-10 11:55:58 +03:00
Pavel Djundik
34af38ff92 Change how nick errors are displayed 2016-04-07 16:08:33 -04:00
Pavel Djundik
7fdd0e90c1 Generate a random hexadecimal nickname when servers says current nick is invalid 2016-04-07 16:08:33 -04:00
Pavel Djundik
40a15b2676 Whitelist which commands are allowed while not being connected 2016-04-07 16:08:33 -04:00
Pavel Djundik
7d24394814 Update irc-framework and fix issue when changing your own nick 2016-04-07 16:08:32 -04:00
Pavel Djundik
16370d8fcc Add /ctcp command and handle ctcp responses 2016-04-07 16:08:31 -04:00
Maxime Poulin
9cd4c6744c Support kick message in /kick command 2016-04-07 16:07:40 -04:00
Maxime Poulin
6c5ade3fe3 Fix the /topic command 2016-04-07 16:07:40 -04:00
Pavel Djundik
338116a01e Prevent opening query windows for CHANTYPES and PREFIX 2016-04-07 16:07:40 -04:00
Pavel Djundik
142aa85548 Handle invites
Requires irc-fw update
2016-04-07 16:07:40 -04:00
Pavel Djundik
3fc7036d32 Don't reset time in link expander and hide time with css 2016-04-07 16:07:40 -04:00
Pavel Djundik
6b2ebd790d Always send notices for non existing targets into server window
This matches current master behaviour
2016-04-07 16:07:40 -04:00
Pavel Djundik
d1da4b338a Update irc-framework, fixes quitting networks 2016-04-07 16:07:40 -04:00
Pavel Djundik
43f58a8075 Format topic set date 2016-04-07 16:07:40 -04:00
Pavel Djundik
92cc130e2b Always send notices that are not targeted at us into the server window 2016-04-07 16:07:40 -04:00
Pavel Djundik
e0fb454223 Search channel case insensitively 2016-04-07 16:07:37 -04:00
Pavel Djundik
54526215a4 Correctly create new windows for private messages 2016-04-07 16:06:03 -04:00
Pavel Djundik
17bcc37b80 Request names on mode change as a temporary measure 2016-04-07 16:06:02 -04:00
Pavel Djundik
db5fe00b60 A couple of fixes after rebasing and updating framework 2016-04-07 16:06:01 -04:00
Pavel Djundik
a01216fa4c Update irc-framework 2016-04-07 16:04:41 -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
7baf5f0f81 Remove unused notice event 2016-04-07 16:04:41 -04:00
Pavel Djundik
dff6eb33c5 Maintain backwards compatibility by sending symbols to the client 2016-04-07 16:04:41 -04:00
Pavel Djundik
b6993f6e37 Make whois work 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
2244dda566 Update commands 2016-04-07 16:04:40 -04:00
Pavel Djundik
82e192cd2c Enable link fetcher 2016-04-07 16:04:40 -04:00
Pavel Djundik
356851c3f2 Handle kick 2016-04-07 16:04:40 -04:00
Pavel Djundik
627b698221 Fix creating duplicate query windows when our nick is not known 2016-04-07 16:04:40 -04:00
Pavel Djundik
9ab71b2588 Handle nick 2016-04-07 16:04:40 -04:00
Pavel Djundik
4d986537bc Handle error 2016-04-07 16:04:40 -04:00
Pavel Djundik
360563528a Handle channel and user modes 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
Maxime Poulin
7209bcd58a Add config option to limit in-memory history size
This adds a (temporary?) config option to limit the amount of messages stored per channel to avoid the server's memory usage to grow as channels fills up with messages.
2016-04-06 03:29:35 -04:00
Pavel Djundik
93d7b16cd4 Harden url fetcher and don't crash on non-ASCII urls 2016-03-27 12:50:53 +03:00
Pavel Djundik
05ec819f2d Merge pull request #222 from maxpoulin64/fix-part
Fix /part command
2016-03-27 01:27:54 +02:00
Maxime Poulin
d5e67d6503 Fix /part command
Fixes the /part command closing the wrong window. The current implementation simply passes all arguments to slate, which ended up parting every arguments.

This changes the command to `/part message`, and always parts the current window. This will be fixed further once irc-framework is merged.
2016-03-26 16:13:34 -04:00
Jérémie Astori
fefc6c5132 Disallow /query on non-nicks 2016-03-26 13:18:55 -04:00
Pavel Djundik
7d7c3edcec Add a query command that simply opens a query window 2016-03-24 22:40:36 +02:00
Jérémie Astori
eadcca0b5e Merge pull request #208 from thelounge/xpaw/remove-commands
Remove join, nick and whois inputs, they are cleanly handled by the server
2016-03-22 02:03:50 -04:00
Pavel Djundik
83021cf0ac Fix #195: Support port in connect command 2016-03-20 19:35:20 +02:00
Pavel Djundik
9deb0489f6 Disallow parting from lobbies 2016-03-20 18:34:36 +02:00
Pavel Djundik
52b953c492 Remove join, nick and whois inputs, they are cleanly handled by the server
Fixes #201
2016-03-20 16:14:37 +02:00
Max-P
c74811c894 Merge pull request #191 from thelounge/astorije/direct-inputs
Load input plugins at startup and call them directly when a command is received
2016-03-14 20:38:47 -04:00
Jérémie Astori
93a393f10d Load input plugins at startup and call them directly when a command is received 2016-03-14 00:21:42 -04:00
Pavel Djundik
96ef274838 Keep track of highlights when user is offline 2016-03-13 18:05:05 +02:00
Pavel Djundik
842b8d620c Send unknown commands to the server 2016-03-10 10:05:56 +02:00
Pavel Djundik
42a7c54c0a Fix #153: Do not intercept service commands 2016-03-09 17:40:57 +02:00
Jérémie Astori
c8664b7cfa Merge pull request #161 from xPaw/whois-tpl
Make whois a client template
2016-03-09 00:16:47 -05:00