Commit graph

1261 commits

Author SHA1 Message Date
Maxime Poulin 2c2dd1c76f Switch busboy implementation to @fastify/busboy
I've been notified the current implementation is abandonned and has been forked by fastify to fix bugs, including some crashes and hangs:
See:
* https://github.com/mscdex/busboy/issues/250
* https://github.com/mscdex/dicer/pull/22
* https://github.com/mscdex/dicer/pull/25
2021-12-04 19:49:21 -05:00
Max Leiter ecc0b9183e
Merge pull request #4423 from brunnre8/exit
Use non 0 exit code in abnormal shutdown
2021-12-04 14:57:48 -08:00
Reto Brunner 96c2d2419b Use non 0 exit code in abnormal shutdown 2021-12-02 07:55:06 +01:00
Max Leiter 304d207820
Merge pull request #4361 from supertassu/kickban 2021-12-01 18:25:09 -08:00
Reto Brunner 0ff9703a28 logs: Set umode to a more restrictive value
When TL first creates the log folder, let only the user read the
log files, should the admin override that subsequently we'll
simply warn about it but respect the decision.

Meaning we have private by default, but this can be overriden
2021-11-30 19:13:33 +01:00
Reto Brunner dc3a387120 vapid: keep the file secret
Contains a secret key, so we probably should keep it, well, secret.
Warn if the file is world readable.
2021-11-30 19:08:29 +01:00
Taavi Väänänen 324fb9023e
Add /kickban
This commit adds a new command, /kickban, that is a combination of /kick
and /ban: it kicks the specific user from the channel and then sets the
+b mode to ban the user from the channel.
2021-11-30 12:07:11 +02:00
sfan5 5f7ec9e8da
Don't download image contents during prefetch if not needed (#4363) 2021-11-22 16:59:33 -08:00
Max Leiter 40a5ee70b6
Disable /search and hide help item if searching is disabled 2021-11-17 20:23:51 -08:00
Max Leiter 3cec329e3b
Merge branch 'master' into fix-search-query 2021-11-15 12:42:56 -08:00
Max Leiter 186f8f68cd
Merge pull request #4351 from brunnre8/glob
Allow wildcards in hostmask
2021-11-04 14:36:27 -07:00
Max Leiter 59280cfdfd
Merge pull request #4329 from brunnre8/plugins
Add more plugin functionality
2021-11-04 14:12:02 -07:00
Reto Brunner 67503efd21 Allow wildcards in hostmask
According to https://modern.ircdocs.horse/#wildcard-expressions
masks should support "*" and "?" wildcards.
Within TL this only impacts the /ignore functionality.

The reasoning for doing this is to ignore say GuestNNNN!*@* with
guest*!*@* and be done with it if someone spams a gateway.
2021-11-04 20:16:20 +01:00
Max Leiter 0381cd11bf
Merge pull request #4345 from itsjohncs/small-db-cleanups
Small cleanup of messageStorage/sqlite.
2021-11-03 15:45:48 -07:00
itsjohncs 044cd2403b Small cleanup of messageStorage/sqlite.
* Extend test coverage to the `search` function.
* Test sort order of messages from `getMessages` and `search`
* Move reversal of `search` results from Vue to messageStorage.
* Remove unnecessary uses of `sqlite.serialize` in tests.
* Return promises from test functions where possible.
2021-10-28 00:48:11 -07:00
Reto Brunner 544146d9aa Force CSP header for all requests
Currently styles / plugins were not actually under the CSP
header protection.
There's no real reason to not have them for all requests, so
add them as a root middleware.
2021-10-26 22:20:06 +02:00
Nachtalb 206d554ce1
Save the proxy password so you don't have to reenter it after restart 2021-10-24 21:27:43 +02:00
Reto Brunner 1e896a9672 plugins: prefix logger with the plugin name 2021-10-13 23:39:32 +02:00
William Boman 2693db4274
client/Mentions: change button copy to "Dismiss all" (#4322)
* client/Mentions: change button copy to "Dismiss all"

* s/hide/dismiss/g
2021-10-12 15:56:39 -07:00
Reto Brunner 02ccbc1f69 plugins: expose persistant data dir
Plugins need to be able to store persistant files, say settings or
databases or similar things.
Expose a standard location that gets created when the path is
accessed.
2021-10-12 23:24:06 +02:00
Reto Brunner bb4ab4f168 plugins: add Logger interface
Plugins need to be able to log messasages, say for errors.
2021-10-12 23:24:06 +02:00
Max Leiter beb5530c65
Revert "Support animated webp images" (#4287)
This reverts pull/4186.
2021-08-31 12:27:43 -07:00
Reto 8fcd079204
Properly track user modes for context menu (#4267)
* properly track user modes for context menu

The RPL_ISUPPORT response contains a PREFIX element, which not only tracks the
prefix chars ("@", "+" etc) but also their corresponding mode chars (+O, +v)
This commit changes the context menu to not rely on a hardcoded list but rather
user the one given in the prefix response by the server.

Co-authored-by: Max Leiter <maxwell.leiter@gmail.com>
2021-07-21 00:30:07 -07:00
Max Leiter 03d38812e3
Merge pull request #4275 from hellomouse/isupport-modes
Optimise modes based on ISUPPORT
2021-07-06 17:09:31 -07:00
JeDaYoshi d96704835a
Send all modes in case of no ISUPPORT 2021-07-06 15:48:01 +00:00
Max Leiter 75cf4445c4
Merge pull request #4277 from hellomouse/server-privmsg-fix
Fix nick-less messages from servers
2021-07-06 01:02:18 -07:00
JeDaYoshi bbda392c3d
Move clientCommands to client
This approach automatically imports the command names.
2021-07-04 02:15:33 +00:00
JeDaYoshi 69c37a535b
Only add /search when there's a message provider 2021-07-04 00:31:43 +00:00
JeDaYoshi e0e12c1960
Fix tests for mode shorthand commands 2021-07-03 21:20:28 +00:00
JeDaYoshi 16177eb9f4
Move server nick code to handleMessage 2021-07-03 21:06:16 +00:00
JeDaYoshi 6439afd5c6
Fix nick-less PRIVMSGs from servers 2021-07-03 15:27:08 +00:00
JeDaYoshi 4dacaa46f3
Optimise modes based on ISUPPORT
This will see the maximum allowed of modes that are allowed at once as sent in RPL_ISUPPORT
and will send multiple batches while using /op, /voice, etc.

This also fixes a minor issue where it would try sending an empty voice if it had an extra space on arguments
(such as using '/voice  ')
2021-07-03 03:50:22 +00:00
JeDaYoshi 426841e6b7
Add /umode support 2021-07-03 02:28:21 +00:00
Max Leiter d106889127
Merge branch 'master' into feature/socks-support 2021-06-29 22:48:00 -07:00
Bradley Shaw a2d23810bf
Differentiate WALLOPS from NOTICE 2021-06-22 11:50:22 +01:00
Max Leiter aa310fe877
Merge pull request #4260 from BradleyShaw/snotice-channel
Display server-originated notices to channels in the channel window
2021-06-22 00:30:42 -07:00
Max Leiter 6b852d14c8
Fix not overriding config options with -c 2021-06-22 00:00:41 -07:00
Bradley Shaw 38c0c343c3
Send server->channel notices to the relevant channel 2021-06-19 19:49:04 +01:00
Reto Brunner c5fcc5d72f install: allow installation of local packages
It may not be desirable to host all plugins on npm, allow for local packages to
be installed given a package name with a `file:` prefix.

This is still more restrictive than what yarn would support but allows us to still
verify the thelounge compatibility by reading the package.json file.

`yarn add` messes up with local filepaths and generates a lockfile that is
"outdated" as far as any other yarn commands go, which makes them error out.

For some reason `yarn install` fixes that and hence we run that after an install.
Here's the diff of yarn.lock between the broken state after `yarn add file:$path`
and `yarn install`
	--- yarn.lock.2.afterAdd	2021-06-02 00:10:52.365134018 +0200
	+++ yarn.lock.3.afterinstall	2021-06-02 00:13:27.122760442 +0200
	@@ -2194,7 +2194,7 @@
	     safe-buffer "^5.1.2"
	     yallist "^3.0.3"

	-thelounge-plugin-shortcuts@/home/reto/sourcecode/thelounge-plugin-shortcuts:
	+"thelounge-plugin-shortcuts@file:../../sourcecode/thelounge-plugin-shortcuts":
	   version "1.0.12"
	   dependencies:
	     thelounge "4.2.0"

The only thing it does is switch an absolute path to a relative one for whatever
reason.
2021-06-05 13:01:55 +02:00
Max Leiter 58217cffb1
Merge pull request #4219 from TheDecryptor/jpegxl_support
Add support for JPEG XL image previews
2021-05-25 21:36:37 -07:00
Max Leiter fc6c916e7c
Merge pull request #4213 from Nachtalb/na/search-command
Add new "/search query" command to open the search window
2021-05-25 21:31:17 -07:00
Mary Strodl df5befb60e
Merge remote-tracking branch 'origin/master' into feature/socks-support 2021-05-19 19:01:42 -04:00
Alex Jones dbf6ff064b Add support for JPEG XL mimetype 2021-05-08 18:10:45 +10:00
Nachtalb 24a738d521
Add new command to open the search window 2021-05-06 03:22:09 +02:00
Mary Strodl abcad094d1
network: add support for SOCKS (closes #1375) 2021-05-05 20:06:00 -04:00
Nachtalb 0bfcd955e3
Improve inline audio file support
Tested on latest Chromium / Firefox. In case of .m4a files they want audio/x-m4a and not audio/m4a, in case of .flac files they want audio/flac and not audio/x-flac. The module we useed to detect the types however detects them only as audio/x-m4a and audio/x-flac as they are not offical IANA supported mime types (not in IANA spec == "x-" prefix): https://www.iana.org/assignments/media-types/media-types.xhtml Though flac is not in the IANA spec many programs such as the file command (https://man7.org/linux/man-pages/man1/file.1.html) and Chromium (flac) / Firefox (x-flac and flac) support audio/flac only or both.
2021-05-06 02:02:23 +02:00
Max Leiter 26a38b12ab
Merge pull request #4197 from Nachtalb/richrd/message-search
Message Search: Re-Rebase + Fixes / Adjustments
2021-05-03 16:18:15 -07:00
Nachtalb e010fe47cc
Respect metadata removal switch 2021-04-13 20:45:16 +02:00
Nachtalb 89390b3fc5
Ensure proper error handling when processing of file fails 2021-04-13 20:41:30 +02:00
Nachtalb c2c66031c0
Auto rotate images based on exif orientation
This makes sure that the orientation of the images work in all viewrs.
2021-04-13 18:24:33 +02:00