A multi-protocol chat program for Haiku.
Iri al dosiero
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
application Redesign add-on disconnection 2021-07-18 17:52:36 -05:00
data Update README and Contributors 2021-07-11 15:31:37 -05:00
libs (librunview) Remove URL hovering 2021-07-16 15:41:35 -05:00
protocols Redesign add-on disconnection 2021-07-18 17:52:36 -05:00
smileys Merged multiprotocol branch with trunk. 2010-05-16 21:02:50 +00:00
Contributors Update README and Contributors 2021-07-11 15:31:37 -05:00
License Merging caya and caya-gpl-protocols 2013-07-29 16:58:19 +02:00
Makefile Rename Caya to Cardie 2021-06-22 01:06:00 -05:00
Makefile.common Add debug mode 2021-07-10 09:31:31 -05:00
README.md Update README and Contributors 2021-07-11 15:31:37 -05:00

Cardie

GSoC 2021

A multi-protocol chat program.

Screenshot

Building

You can make Cardie and its protocols with:

$ make

Or one-by-one:

$ make libs; make app; make protocols

Cardie itself requires the expat_devel package, the XMPP protocol requires gloox_devel, and the libpurple add-on requires libpurple_devel and glib2_devel.

The (provisional) IRC protocol requires libircclient_devel, openssl_devel, and zlib_devel, though you have to build it specifically:

$ make -f protocols/irc/Makefile

License

Cardie itself is under the MIT license, but licenses vary for the included libraries and add-ons.

The xmpp and purple add-ons are under the GPLv2+, and irc the MIT license.

libsupport is under the MIT license, though containing some PD code. librunview contains code from Vision, and is under the MPL. libinterface is under the MIT license.