Commit Graph

66 Commits

Author SHA1 Message Date
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
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
Pavel Djundik
0402554563 Move cleanIrcMessage to a separate file 2017-11-19 18:19:52 +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
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
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
0ac3ba28e1 Web Push Notifications 2017-08-22 10:54:18 +03: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
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
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
Pavel Djundik
f35a2809a7 Store preview images on disk for privacy, security and caching 2017-07-18 11:37:16 +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
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
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
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
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
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
Pavel Djundik
100262ad1f Cache loaded config and merge it with defaults
Fixes #249
2016-06-26 19:30:25 +03:00
Pavel Djundik
e75a8f40a6 Stricter eslint rule for curly brackets 2016-05-01 12:41:17 +03:00
Pavel Djundik
6dc807ef07 Create a single helper function to write messages 2016-04-19 13:20:18 +03: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
e0fb454223 Search channel case insensitively 2016-04-07 16:07:37 -04:00
Pavel Djundik
82e192cd2c Enable link fetcher 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
Pavel Djundik
93d7b16cd4 Harden url fetcher and don't crash on non-ASCII urls 2016-03-27 12:50:53 +03:00
Pavel Djundik
19bc4f37e0 Update lodash 2016-02-19 15:13:53 +02:00
Jérémie Astori
39dc4e8957 Update name and link to repo to new project 2016-02-10 06:20:05 +00:00
Pavel Djundik
12d798f0e2 Send useragent with link expander requests 2016-01-24 17:01:11 +02:00
Olivier Lambert
e5858744a2 Limit preview for large image files (fix #500) 2015-11-09 10:07:47 +01:00
William Boman
8fdfd70c7e Comply with ESLint 2015-10-26 03:01:47 +01:00
Jocelyn Delande
58aa236dcd Revert "Ignore localhost links" (on prefetch)
This reverts commit 29b66ff0ec.

Rationale:

1) It's not a security feature (abuse of prefetch can be on any server it's not
   more/less risky on localhost), it's pseudo-security measure
2) It's not to us to judge if it has no use-case (in fact it has, ex: two dev
   speaking and experimenting about urls of their local site/app instance,
   local web apps...)

refs #388
2015-09-29 22:22:45 +02:00