266 Commits

Author SHA1 Message Date
39781d0149 fix(AI plugin): bufferize response with file
Bufferizing response with a file allows to avoid crash caused by data transfer, based on plugins API issue in the CProof.

Minor changes: change default model and set correct xai models in the docs
2025-09-08 13:05:52 +02:00
94e9b155ef feat: Add AI chat plugin, ai.py
Add ai.py plugin to support AI model interaction via LiteLLM. Requires litellm.
2025-07-15 15:16:12 +02:00
38b8a2fdf6 Include external plugins, minor cleanup
- Consolidate plugins from other repositories to make their installation easier
- Make minor changes to improve formatting
2025-07-14 12:14:25 +02:00
325316c3b2 ref: Cleanup and rearrange files, update documentation
- Remove Ruby files since they aren't supported anymore
- Remove test and samples files
- Move all the "stable" plugins to `src` folder to follow standard conventions
- Update links and descriptions in the documentation
2025-07-14 12:11:06 +02:00
68800cf823 feat(sounds): add per-JID mute support and enhance playback behavior
Some users requested the ability to mute notifications from specific JIDs
without disabling all sounds. This change introduces `mute` and `unmute`
commands to allow fine-grained control over sound playback.

While implementing this, the sound path expansion logic was improved by
switching to `pathlib` with `lru_cache` for efficiency and clarity.
Playback is now also rate-limited to avoid overlapping audio triggers
from rapid message bursts.

This lays the groundwork for more user-specific customization of sound
notifications while keeping the experience smooth and reliable.

Additionally the bug with ignoring sound's `kind` was fixed: now the plugin respects specific sounds set for rooms, chats and private messages within rooms.

Finally, code was formatted via Black to avoid ambiguity in the formatting.
2025-07-06 02:16:39 +02:00
Michael Vetter
179785ce4e Merge pull request #30 from subfxnet/jsh/variable-audioplayer
Add several new commands to the sounds.py plugin:
2024-04-23 21:35:39 +02:00
Jason Hensley
ade6439157 Add several new commands to the sounds.py plugin:
- /sounds set audioplayer <cmd>

  Allows configuring any CLI tool to be used for audio playback.  This
opens up the ability to play media types beyond mpeg3.

- /sounds reset audioplayer

  Resets the audio player to the default of "mpg123 -q".

- /sounds test chat|room|private

  Tests the /sounds setup to ensure the expected sounds will play on the
proper events.
2024-04-23 10:58:23 -04:00
Michael Vetter
0812b6c1e8 Merge pull request #29 from ReimarPB/reimar-plugins
Add Reimar's plugin collection to README
2023-12-10 17:34:09 +01:00
Reimar
92e708a10b Add external plugin collection from Reimar 2023-12-10 17:01:15 +01:00
Michael Vetter
255846954a Merge pull request #28 from H3rnand3zzz/patch-2
Refactor emoticons.py plugin, add new emoticons, and remove dependency
2023-11-10 22:16:06 +01:00
John Hernandez
339ad336e2 Refactor emoticons.py plugin, add new emoticons, and remove dependency
Enhance the emoticons.py plugin by using a dictionary for emoticon
replacement. Add new emoticons to the dictionary and remove the
dependency on the 'future' module. Update documentation accordingly.
2023-11-09 10:02:33 +01:00
Michael Vetter
2bff450e80 Merge pull request #27 from H3rnand3zzz/patch-1
Fix TypeError in syscmd.py plugin
2023-10-23 12:11:17 +02:00
John Hernandez
e53ecc76da Fix TypeError in syscmd.py plugin
Fix `TypeError: can only concatenate str (not "bytes") to str`
2023-10-23 12:02:17 +02:00
Michael Vetter
6559d236d1 Merge pull request #26 from H3rnand3zzz/patch-1
Add reference to profanity plugins from H3rnand3zzz
2023-04-14 20:02:38 +02:00
John Hernandez
f8587a26ca Add reference to profanity plugins by H3rnand3zzz 2023-04-14 19:47:09 +02:00
Michael Vetter
65a820b27a Add moj 2022-03-06 20:24:41 +01:00
Michael Vetter
c3a9420ad7 Add more external plugins 2022-02-18 11:21:18 +01:00
Michael Vetter
0ef7d9d1de Add profanity-notifycmd link 2022-02-18 11:11:31 +01:00
Michael Vetter
eb87f21922 Update master description 2021-09-21 14:59:05 +02:00
Michael Vetter
3972260733 Merge pull request #24 from diego-treitos/master
Added HTML strip plugin
2021-07-02 20:47:13 +02:00
Diego Blanco
efa13667ca Added HTML strip plugin 2021-07-02 20:38:48 +02:00
Michael Vetter
f5956dddf0 Merge pull request #22 from wasamasa/master
Use shlex to shell quote user input properly
2021-01-28 11:12:19 +01:00
Vasilij Schneidermann
ab9a606473 Use shlex to shell quote user input properly 2021-01-27 21:53:28 +01:00
Michael Vetter
6567aae509 Merge pull request #20 from lordwolfchild/master
Add autocorrector.py
2020-05-21 09:21:24 +02:00
Thomas Thiel
a479d2da7d added autocorrector.py
An autocorrection plugin for the messy typist.

replaces typos you make from a list of strings. can be used for other
purposes, too, i think, but I use it to correct my messy typing.
2020-05-20 17:34:58 +02:00
Stefan
2d9793cf32 Microblog (#18)
* Microblog Plugin

Display information about new blog entry
2020-03-02 09:12:13 +01:00
Michael Vetter
55da731bf6 Merge pull request #19 from DebXWoody/sample02
Plugin Example 02 - Define an own command
2020-03-02 09:11:01 +01:00
DebXWoody
fdb6d70f63 Plugin Example 02 - Define an own command 2020-02-29 07:14:52 +01:00
Stefan
19ff42c94f Profanity C-Plugin Example 01 (#16)
Profanity C-Plugin Example

This example provides a small example how to define and compile the callbacks.
2020-02-27 15:06:10 +01:00
Michael Vetter
8a3089b5be Merge pull request #14 from mdosch/patch-1
Update project URL
2019-08-07 14:33:48 +02:00
Martin
d69df863fe Update project URL
http://profanity.im -> https://profanity-im.github.io
2019-08-07 13:48:56 +02:00
James Booth
c49d29846c Update README.md 2017-01-29 00:27:02 +00:00
James Booth
16cb1452c0 Update test plugins 2017-01-28 19:45:42 +00:00
James Booth
4f9f513c08 Add pre chat a room message blocking 2017-01-22 16:00:58 +00:00
James Booth
9fb6ea1cf3 Added tests for encryption plugin changes 2017-01-22 00:57:09 +00:00
James Booth
c0eefa2ff7 syscmd.py: Make newlines configurable
issue #9
2016-11-13 21:50:45 +00:00
James Booth
e84dd620c8 Update README 2016-11-13 17:27:57 +00:00
James Booth
ce1c777338 Update README 2016-11-13 17:25:41 +00:00
James Booth
148c4b3ee1 Restructure project 2016-11-13 17:01:39 +00:00
James Booth
3f6ac94acb paste.py: newline option only for multiline text
issue #5
2016-11-13 16:14:41 +00:00
James Booth
3bbe6c6202 paste,py: add newline option
issue #5
2016-11-13 15:36:54 +00:00
James Booth
ff4b5198d8 sounds.py: don't play sounds on messages from self 2016-11-06 23:12:48 +00:00
James Booth
e2ab722f93 Add filepath autocompletion to sounds.py 2016-10-10 23:32:04 +01:00
James Booth
3f11319a5b Update plugins to use filepath completion 2016-10-10 22:46:53 +01:00
James Booth
39f5a03e78 imgur.py screenshot on OSX 2016-10-09 22:50:23 +01:00
James Booth
cd92ab06d3 Merge remote-tracking branch 'dotoole/imgur_screenshot' 2016-10-09 22:23:00 +01:00
Dolan O'Toole
9506e24609 adding requirements comment 2016-10-09 22:00:23 +01:00
Dolan O'Toole
da276cb2e8 added screenshot subcommand to imgur plugin 2016-10-09 21:56:25 +01:00
James Booth
18c2fc0654 Merge remote-tracking branch 'dotoole/imgur_plugin' 2016-09-20 00:24:32 +01:00
Dolan O'Toole
b578b5d720 dealing with ~ in path and file not found 2016-09-19 00:29:08 +01:00