Commit graph

96 commits

Author SHA1 Message Date
Pavel Djundik 54a4085b68 Store ip and language in a separate object in user file 2019-07-16 13:00:29 +03:00
Pavel Djundik cdcd7df425
Remove bogus prefetch limit 2019-05-25 15:40:55 +03:00
Pavel Djundik fe68f2a1ee Replace request with got 2019-05-13 10:30:43 +03:00
Pavel Djundik 595915fefd Render link previews in Vue 2019-02-12 12:48:42 +02:00
Alexandre Oliveira 619b054b95 Add X-Purpose header to link prefetcher 2018-08-07 21:10:03 -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 a663993d0b If a preview fails to load, remove the link from msg object
Fixes #2438
2018-06-03 12:25:01 +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 1ddc617b79 Fix lint issue 2018-03-24 22:53:02 +02:00
Pavel Djundik ca96d09a23 Send Accept header
Closes #2277
2018-03-23 20:17:03 +02:00
Jérémie Astori 00bca229f0
Enforce object literal shorthand syntax with ESLint 2018-03-15 00:22:09 -04:00
Pavel Djundik 351a203acd Fix some URLs not being sent as-is to the client 2018-03-13 22:08:19 +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 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 a3e448acf5 Enable no-var rule
Fixes #1961
2018-02-19 19:49:39 +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
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
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