Commit Graph

191 Enmetoj

Author SHA1 Message Date
Jaidyn Ann 60ad595d5d (irc) Command support
Now raw IRC commands can be sent with a "//" command, like this:
	// HELP
… to print the server's HELP message to system buffer.
So on and so forth.
2021-08-16 01:25:30 -05:00
Jaidyn Ann 03556d674e (irc) Contact support 2021-08-16 00:42:39 -05:00
Jaidyn Ann 8d62ecca01 (irc) More reliable user-list population, IM_ROOM_GET_PARTICIPANTS 2021-08-15 21:55:10 -05:00
Jaidyn Ann e8e78eeae4 (irc) Support creating one-on-one chats/PMs 2021-08-15 20:44:34 -05:00
Jaidyn Ann b380b6115c Fix chat creation with non-contact users 2021-08-15 20:34:30 -05:00
Jaidyn Ann a11215ebf2 (purple) Loading from arbitary add-on directory 2021-08-15 01:08:32 -05:00
Jaidyn Ann ed7fe730cb Load protocols from any system add-on directory
… rather than soley "$APPDIR/protocols/".
The vague "protocols/" leaf was also renamed to "cardie/".
2021-08-15 00:55:16 -05:00
Jaidyn Ann 19e2676249 (xmpp) Rename protocol from 'Jabber' to 'XMPP' 2021-08-14 23:24:19 -05:00
Jaidyn Ann 71433599e4 (purple) Adhere to user setting 'offline' status 2021-08-13 15:57:06 -05:00
Jaidyn Ann a712d89c76 (irc) Don't connect until status set to 'online' 2021-08-13 14:32:46 -05:00
Jaidyn Ann 6258b2f2f3 (irc) Support formatting with implicit end 2021-08-13 13:00:32 -05:00
Jaidyn Ann ad869c8972 (irc) Parse basic formatting bytes (sans color) 2021-08-12 20:16:22 -05:00
Jaidyn Ann a26c33e5f3 (irc) Send MOTD and other system messages to account buffer 2021-08-12 15:47:06 -05:00
Jaidyn Ann d16f397fe6 (irc) Proper newline use, sending unicode messages 2021-08-12 13:55:32 -05:00
Jaidyn Ann c3994e4a73 (irc) Fix debug output 2021-08-12 10:14:46 -05:00
Jaidyn Ann 5fb7d5268c (irc) Report errors, use WELCOME-given nick 2021-08-11 20:47:40 -05:00
Jaidyn Ann 3f754bd79d (irc) Handling of QUIT 2021-08-11 18:51:41 -05:00
Jaidyn Ann ca704cb7b8 (irc) Add protocol icon
This one borrowed from the Haiku tree― /data/artwork/icons/App_Chat
2021-08-11 17:40:03 -05:00
Jaidyn Ann 6b8823d213 (irc) Better param parsing 2021-08-11 10:22:32 -05:00
Jaidyn Ann 35cd5cbc8f (irc) Write-lock and responding to pings 2021-08-10 12:53:20 -05:00
Jaidyn Ann 340aa405f3 (irc) Setting own/other nicks 2021-08-10 10:54:36 -05:00
Jaidyn Ann 8ac73ca50e (irc) Faster readying of protocol 2021-08-10 10:00:26 -05:00
Jaidyn Ann 723d6c1950 (irc) Add numerics file 2021-08-10 09:33:00 -05:00
Jaidyn Ann d0367db0bb (irc) Sending/receiving invites 2021-08-10 00:03:28 -05:00
Jaidyn Ann adee8d6181 (irc) Sending/receiving messages (PRIVMSG) 2021-08-09 23:08:40 -05:00
Jaidyn Ann 31ad5abf81 (irc) Leaving rooms 2021-08-09 22:33:56 -05:00
Jaidyn Ann e05d14dc95 (irc) Joining rooms, subject, user-list 2021-08-09 22:08:50 -05:00
Jaidyn Ann d692c34fea (irc) Handle NOTICE and better joining 2021-08-09 19:03:37 -05:00
Jaidyn Ann c202ef33ac (irc) Start add-on rewrite
The IRC add-on previously used libircclient, which is becoming inactive,
and newer versions don't compile on Haiku easily. A fresh rewrite seems
to be a better option.

So far it only supports basic connection and receiving the MOTD. :p
2021-08-09 14:07:50 -05:00
Jaidyn Ann c09c884068 (jabber) Rename PARTICIPANT_*_TYPING message 2021-08-09 07:09:05 -05:00
Jaidyn Ann 373dcb4a58 Protocol message tweaks, bump API version
Some chat protocol messages' names have been changed to more fitting or
consistent names― e.g., "IM_AVATAR_SET" to "IM_USER_AVATAR_SET", or
"IM_CONTACT_LIST_*" to "IM_ROSTER_*" (to agree with Cardie's usage of
the word).

The API version has been bumped― for the forseeable future (at least
several months, I promise!) no compatibility-breaking changes will be
introduced. Until then, any new feautures or message slots will be
additive and optional.
2021-08-08 21:01:42 -05:00
Jaidyn Ann 128ac91d56 (purple) Fix setting own nick 2021-08-05 10:20:52 -05:00
Jaidyn Ann d3f775d8b8 (jabber) Setting own nickname 2021-08-03 19:35:09 -05:00
Jaidyn Ann 8f3d206db1 (purple) Other users changing nick 2021-08-03 16:23:27 -05:00
Jaidyn Ann 8549404db5 (purple) Support setting own nick 2021-08-03 14:52:37 -05:00
Jaidyn Ann 8cca8a324e (jabber) Throttle own VCard updates; move avatar-cache to /tmp/ 2021-08-01 18:35:53 -05:00
Jaidyn Ann 4a6808f15f (purple) Kill daemon after sending protocol metadata 2021-07-31 20:23:54 -05:00
Jaidyn Ann 420340b6b4 (purple) Setting room subject, subject updates 2021-07-29 22:31:26 -05:00
Jaidyn Ann afb181d2f8 (jabber) Setting of room subject, reformatting 2021-07-29 22:13:20 -05:00
Jaidyn Ann d696ef55b3 (purple) Disable purple-side auto-login 2021-07-28 17:07:44 -05:00
Jaidyn Ann 6c1c5ccf18 Move avatar cache from 'Buddies' to 'Contacts' 2021-07-26 16:07:55 -05:00
Jaidyn Ann 4710e7f19f (purple) Save buddies 2021-07-26 15:20:07 -05:00
Jaidyn Ann 4fa0542fe0 (purple) Load buddy avatars 2021-07-25 19:01:46 -05:00
Jaidyn Ann 20c6b9fc30 (purple) Automatically reconnect disconnected account 2021-07-19 19:59:27 -05:00
Jaidyn Ann 2d36152296 (purple) Not all account slots are necessary
Since libpurple doesn't mark individual account settings as "required"
or not (Pidgin will accept account settings even with all-blank answers,
unlike Cardie), every setting was marked as required by Cardie, just to
err on the side of caution.

But that's not necessary now, and was bad to begin with (especially for
Jabber, etc, with superfluous options)― in the case of libpurple, we can
follow Pidgin's example. Cardie will accept account settings with
mostly-blank options, but the add-on will send an error (and disable the
account) when it doesn't work.
2021-07-19 06:41:50 -05:00
Jaidyn Ann 3516c64ffc (jabber) Localization, init catkeys 2021-07-18 22:25:38 -05:00
Jaidyn Ann 6875c3cb75 (purple) Localization, init catkeys 2021-07-18 21:51:38 -05:00
Jaidyn Ann 23e6f4ba5a (jabber) Add debug output 2021-07-18 20:03:42 -05:00
Jaidyn Ann 4905dbbe6c Redesign add-on disconnection
Currently, add-ons are disconnected when ChatProtocol::Shutdown() is
called, which the add-on can do by itself― but there is no standard way
for add-ons to notify the app about their Shutdown. Because of this,
they tend to not call Shutdown()― instead (as in the case of the Jabber
add-on), they display a BAlert (IM_ERROR) notifying the user of the
connection error, but the account is considered active by Cardie (and
its threads are still existant, including its ProtocolLooper).

Zombies are bad, so this is redesigned somewhat with this commit:
Protocols should no longer call ChatProtocol::Shutdown() themselves,
they must send an IM_MESSAGE of IM_PROTOCOL_DISABLE to the app.

This will delete its ProtocolLooper, which in turn will send a
notification to the user and delete the ChatProtocol, and so
calling ChatProtocol::Shutdown().

In the included protocols, an IM_ERROR is sent right before
IM_PROTOCOL_DISABLE is sent if due to a connection error. This is not
required, but it is courteous to inform your user about the "why." :)
2021-07-18 17:52:36 -05:00
Jaidyn Ann 8d47983c47 (purple) Send errors to Cardie; IM_PROTOCOL_DISABLED
Connection errors are now sent to Cardie through an IM_ERROR message
(which appear in a BAlert), and an IM_PROTOCOL_DISABLED IM_MESSAGE is
sent to Cardie when the account is disabled/connection fails.
2021-07-18 13:54:31 -05:00